Bug 57747 - TextFlagCapWords is not honored in Android Nougat
Summary: TextFlagCapWords is not honored in Android Nougat
Alias: None
Product: Forms
Classification: Xamarin
Component: Android ()
Version: 2.3.4
Hardware: PC Windows
: --- normal
Target Milestone: ---
Assignee: Jimmy [MSFT]
Depends on:
Reported: 2017-06-24 22:41 UTC by Britton Beckham
Modified: 2017-07-17 05:50 UTC (History)
3 users (show)

Is this bug a regression?: ---
Last known good build:

Demo Project showing bug (46.92 KB, application/x-zip-compressed)
2017-06-24 22:41 UTC, Britton Beckham

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Description Britton Beckham 2017-06-24 22:41:49 UTC
Created attachment 23100 [details]
Demo Project showing bug

This should be an easy fix for you guys. Basically, in Android Nougat 7 or higher, an Entry with the CapWords flag set is not honored. I have verified that earlier versions are honored (at least 5.x and 6.x), so this bug applies to 7.x only.

Control.InputType = Android.Text.InputTypes.TextFlagCapWords;

Attached is a demo project. Run any emulation with 5.x or 6.x and it will work (i.e. as you type, each new word will force the keyboard to Uppercase mode for the first letter). In 7.x, the same behavior does not occur.

As a side-perk only, I would love to see this in the 2.3.5 release before its final build.
Comment 1 Paul DiPietro [MSFT] 2017-06-26 15:32:34 UTC
I don't seem able to reproduce this in a 7.0 emulator. The first letter changes to a space after each word is typed, at least using the emulator keyboard. Are you using a specific emulator or device, and/or a version newer than 7.0?
Comment 2 Britton Beckham 2017-06-26 15:46:58 UTC
I don't have a 7.x emulator so I use my own device, a Google Pixel. I have also repro'd this on Samsung Galaxy S7 Edge with Nougat running on it. Can you try a physical device?

P.S. Where do we get emulator images for Android N (I'm using Visual Studio Emulator for Android and the max I see is 6.0 API 23)
Comment 3 Britton Beckham 2017-06-26 15:48:17 UTC
Also my Pixel is currently running 7.1.2, but this is a recent upgrade, I was experiencing the same issue on 7.1.1 and 7.1. Don't know about just straight 7.0 though.
Comment 4 Britton Beckham 2017-07-06 21:21:57 UTC
Did I need to reset the status on this bug after adding the additional information?
Comment 5 Britton Beckham 2017-07-06 21:23:07 UTC
Changing status.
Comment 6 Jimmy [MSFT] 2017-07-07 16:42:01 UTC
I ran the project on a Nexus 5X running Android 7.1.1 and I could not reproduce the issue either. What keyboard are your devices using? I'm using the Google Keyboard and I noticed that if the "Auto capitalization" setting was disabled, then the issue appeared. Can you confirm that the setting is enabled on the devices?
Comment 7 Britton Beckham 2017-07-07 18:19:05 UTC
So i have Swift Key installed and I do have the auto caps setting enable. (which in swift key is "Automatically capitalize after punctuation".

I wonder if this is the issue. I will do some more testing and get back to you.
Comment 8 Britton Beckham 2017-07-17 05:50:15 UTC
I can confirm after turning off my SwiftKey keyboard that the issue disappears. Seems like an issue with SwiftKey. I'll reach out to them.