This was done by looking at characters listed on the Wikipedia language recognition chart[0] for each language, finding the last character in the array that the language uses and splitting the rest off into misc. This was partially automated, but there is potential that there may be errors for some languages. All of the keys should still be there if misc keys are enabled, so the keyboard should still be usable for all affected languages even if there were errors, if misc keys are enabled.
[0] https://en.wikipedia.org/wiki/Wikipedia:Language_recognition_chart
The texts for more keys have been updated:
* morekeys_a should now include only letters relevant to the active language
* morekeys_misc_a should include misc letters (accents, etc) not specifically needed for typing in the language
The above still needs to be applied to most other languages. Only QWERTY has been updated with the new morekeys system. Other layouts still need to be updated.
The Python version uses json files, separate from the xml files. Comments haven't been migrated still.
I'm still not very happy with the way the keyboard texts are managed and that it requires running a separate tool to generate a .java file. It's at least better than manually editing an autogenerated file as before, and python3 is more widely available than the archaic Android build system
This commit is part of a large scale change to fix errorprone
errors that have been downgraded to warnings in the android
source tree, so that they can be promoted to errors again.
The full list of changes include the following, but not all
will be present in any one individual commit:
BadAnnotationImplementation
BadShiftAmount
BanJNDI
BoxedPrimitiveEquality
ComparableType
ComplexBooleanConstant
CollectionToArraySafeParameter
ConditionalExpressionNumericPromotion
DangerousLiteralNull
DoubleBraceInitialization
DurationFrom
DurationTemporalUnit
EmptyTopLevelDeclaration
EqualsNull
EqualsReference
FormatString
FromTemporalAccessor
GetClassOnAnnotation
GetClassOnClass
HashtableContains
IdentityBinaryExpression
IdentityHashMapBoxing
InstantTemporalUnit
InvalidTimeZoneID
InvalidZoneId
IsInstanceIncompatibleType
JUnitParameterMethodNotFound
LockOnBoxedPrimitive
MathRoundIntLong
MislabeledAndroidString
MisusedDayOfYear
MissingSuperCall
MisusedWeekYear
ModifyingCollectionWithItself
NoCanIgnoreReturnValueOnClasses
NonRuntimeAnnotation
NullableOnContainingClass
NullTernary
OverridesJavaxInjectableMethod
ParcelableCreator
PeriodFrom
PreconditionsInvalidPlaceholder
ProtoBuilderReturnValueIgnored
ProtoFieldNullComparison
RandomModInteger
RectIntersectReturnValueIgnored
ReturnValueIgnored
SelfAssignment
SelfComparison
SelfEquals
SizeGreaterThanOrEqualsZero
StringBuilderInitWithChar
TreeToString
TryFailThrowable
UnnecessaryCheckNotNull
UnusedCollectionModifiedInPlace
XorPower
See https://errorprone.info/bugpatterns for more
information on the checks.
Bug: 253827323
Test: m RUN_ERROR_PRONE=true javac-check
Change-Id: I454a105ae82484a2d19aff1808e8d9dd55ba64f4
Bug: 228766370
Test: manual by using EditorTextVariations tool
1) make and install EditTextVariations
2) Enable "Settings > Display over other apps" for
EditTextVariations
3) Launch EditTextVariations from all apps
4) Menu -> Show IME focuable overlay
5) Go to home screen by gesture or pressing home key
6) Launch any app (e.g. Chrome) and tap the editor
7) Expect IME can show up
Change-Id: Ib4b72e0a277d8b2fb78837bed5d2e9cccd819a07
From T, apps need POST_NOTIFICATION permission
to send the notification.
-. Add the permission into Manifest.
-. Request runtime permission when it's needed.
Bug: 209479751
Test: Manual test as following steps:
1. Open EditTextVariations at T device.
2. Tap direct reply to send notification.
3. Verify the permission dialog show up.
4. Send the notification if permission granted.
Change-Id: Iadae00f635ee556d1d1de9abbb9da0498b4070f1
Also, set the content intent to launch an editorActivity as the message
notifiation when tapping the notification.
Bug: 190057993
Test: make EditTextVariations, manual test by using EditTextVariations
app to simulate the issue step.
Change-Id: I1a4463dc44031eaebb286ad2a289870e97a1c475
With b/150232615, we will need an explicit value set for the exported
flag when intent filters are present, as the default behavior is
changing for S+. This change adds the value reflecting the previous
default to the manifest.
These changes were made using an automated tool, the xml file may be
reformatted slightly creating a larger diff. The only "real" change is
the addition of "android:exported" to activities, services, and
receivers that have one or more intent-filters.
Bug: 150232615
Test: TH
Exempt-From-Owner-Approval: mechanical refactoring
Change-Id: Idc43e262fd2911e19f0bcd20add29e4c3392d3da
This is a follow up CL to my previous CL [1], which enabled us to test
Direct-Reply with EditTextVariations.
What this CL does are:
* Specyfing min_sdk_version to avoid INSTALL_FAILED_OLDER_SDK error
when installing on older devices.
* Avoiding NoSuchMethodError on pre-O devices where
Notification.Builder does not have a constructor that takes
notification channel.
* Fixing a race condition where notification can be sent before
notification channel is created.
[1]: Iafffcc7d138b0f502116a5e557f0c3f17e9d0b73
da2486fd63
Bug: 122957841
Test: Made sure that we can install EditTextVariations on N devices
and "Direct-Reply" on EditTextVariations works there.
Change-Id: Ib4fbd447608b111e763fde4287226cf7e206e65e
With this CL, EditTextVariations is able to send Direct Repply
notification so that we can easily test IME behaviors there.
You don't need to set up a chat application then let it receive a
message from someone else any more just to test IME behaviors on
Direct Reply.
Fix: 122957841
Test: manually done as follows.
1. tapas EditTextVariations
2. make -j
3. adb install -r \
$ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk
4. Open EditTextVariations
5. Tap the menu icon.
6. Select "Direct Reply"
7. Make sure that there is a Direct Reply notification.
Change-Id: Iafffcc7d138b0f502116a5e557f0c3f17e9d0b73
This CL opensouces a testing tool called EditTextVariations that has
been used internally to test IME behaviors on various
EditorInfo#inputType and EditorInfo#imeOptions.
Bug: 80039502
Test: Manually verified as follows.
1. tapas EditTextVariations
2. make -j
3. adb install -r $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk
Change-Id: Ia87e655573c2fd1fc09d56e4af90bfb1dfd65f9b
This builds on Darwin fine, so remove the non-standard darwin checks.
Remove HOST_JDK_IS_64BIT_VERSION, it's always true now, and this is the
only user.
Test: mmm packages/inputmethods/LatinIME/tools/dicttool:liblatinime-aosp-dicttool-host
Change-Id: I750c6baa29cf1d27a885ff064f0daf9d986db0b9
Use framework/junit-host.jar instead of framework/junit.jar
Ran the script before and after making the change and it failed
in the same way with a build error but it was not due to a
problem with JUnit.
Bug: 30188076
Test: make checkbuild and ran the test-dicttool.sh script
Change-Id: I4cdd518f38184ff3ade5a06d968d6902770ece6b
This will allow to greatly improve the performance of the
metadata-generating files, as they won't have to wait for
the info command to read the entire dictionary when the
header is all we need.
Also add tests, and while we're at it, use the seed as
intended to enable reproducible tests.
Change-Id: I0ba79ef62f0292b23e63aed57ff565bb102281a2