| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
The first parameter in `GestureDetector.OnGestureListener#onScroll` might be null, which indicates an incomplete event stream or error state. https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener#onScroll(android.view.MotionEvent,%20android.view.MotionEvent,%20float,%20float)
Bug: 383053077
Change-Id: I6e49ae353beafb6585184fa729041570991f240c
|
|
|
|
|
|
|
|
|
|
| |
Root cause: The AOSP keyboard uses `DisplayMetrics#widthPixels` to calculate the keyboard width and draw keys. Since Android 15’s edge-to-edge enforcement, this property now returns the full screen width, including window insets. This results in an incorrectly large key width calculation.
Fix: Subtract window insets including system bar and display cutout from the width.
Change-Id: Iea01ba749a48145cf5b484dc22a570874b1b7ca4
Test: use `m LatinIME` to install the AOSP keyboard and test landscape mode manually
Bug: 377594757
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, Metalava has some special handling of '@attr ref R.<field>`
references to make sure that they are fully qualified, i.e.
`@attr ref android.R.<field>`. That special handling complicates
Metalava and is blocking some flagged API work so will be removed.
Before that can be done, the existing incorrect documentation needs to
be cleaned up.
This change cleans up those cases in this repo.
Bug: 371997321
Test: Run `m offline-sdk-docs` before and after to make sure that
there are no differences.
Flag: DOCS_ONLY
Change-Id: Ic3d959fd8e95ac4524be5feb93feae3a08389370
|
|
|
|
|
|
|
|
|
|
|
|
| |
* checkTimeAndMaybeSetupUpdateAlarm method created an Implicit PendingIntent vulnerability, which may cause security threats in the form of denial-of-service, private data theft, and privilege escalation.
* PendingIntents are Intents delegated to another app to be delivered at some future time. Creating an implicit intent wrapped under a PendingIntent is a security vulnerability that might lead to denial-of-service, private data theft, and privilege escalation.
* We've used FLAG_IMMUTABLE (added in SDK 23) to create PendingIntents for SDK > 23, This prevents apps that receive the PendingIntent from filling in unpopulated properties & Ensures that PendingIntent is only delivered to trusted components.
Test: m
Change-Id: I68a1f3f2d81138e42092cc201d36e5d29853a86e
Signed-off-by: techyminati <sinha.aryan03@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Android T allows apps to declare a runtime receiver as not exported
by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag;
receivers registered with this flag will only receive broadcasts from
the platform and the app itself. However to ensure developers can
properly protect their receivers, all apps targeting U
and registering a receiver for non-system broadcasts must
specify either the exported or not exported flag when invoking
registerReceiver; if one of these flags is not provided, the
platform will throw a SecurityException. This commit updates
the dictionary receivers with the RECEIVER_NOT_EXPORTED flag since
these are only sent from the local app. The HIDE_SOFT_INPUT
receiver is flagged with the RECEIVER_EXPORTED flag since it
can be sent by any app with the corresponding permission.
Bug: 234659204
Test: Build
Change-Id: I2b9a1360e0eb1c1965c07cc71dca9f11eb153517
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The ArrayEquals, ArrayHashCode, ArrayToString, and
ArraysAsListPrimitiveArray errorprone findings were
demoted from errors to warnings. Fix existing
occurrences of them so they can be made errors again.
Bug: 242630963
Test: RUN_ERROR_PRONE=true m javac-check
Change-Id: I689397a7196277de3fd301836e72f7555e2036cb
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the showDictionaryAvailableNotification
method since there is no module use it.
Bug: 209479751
Test: presubmit
Change-Id: I4c88b4a2d0cb36761d9102ce35260f93303625d9
|
|/
|
|
|
|
|
|
|
| |
The keyboard key-press haptic feedback should follow the user
settings for "Touch feedback".
Bug: 185351540
Test: manual
Change-Id: I718d3bf15b1ef841a869a898038d0eca1eca78f0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With CL[1],[2] to migrate InputMethodService as the subclass of the new
introduced class WindowProviderService in S_V2, IME context resources
can be managed by associating the window container of IME window when
its display/window configuration changed.
So we can get rid of createDisplayContext logic from S_V2 with gated
by SDK version and refining the method of get IME context with
documentation to make it clear.
[1]: Ie565e30ed5dd3f2cfe27355a6dded76dc3adc14b
[2]: I64a1614f32d097785915f6105b1813a929e0fe32
Bug: 213118079
Bug: 133825283
Test: manual with below steps
1) adb install -r EditTextVariations.apk
2) tapas LatinIME
3) make
4) adb install -r out/target/product/generic/system/app/LatinIME/\
LatinIME.apk
5) adb shell ime enable com.android.inputmethod.latin/.LatinIME
6) adb shell ime set com.android.inputmethod.latin/.LatinIME
5) Enable screen auto-rotation
7) Launch EditTextVariations from launcher's shortcut
8) Tap the first EditText field to show IME
9) Rotate the device to the landscape mode
10) Expect the IME should not be shrunk
Change-Id: If2cc1c5bdb257a9c0af653fa7157cf781a90bf1d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As CL[1] introduces diplayContext to address
IME service context's Resources / DisplayMetrics update when
switching IME window to another display after onConfigurationChange.
In LatinIME#onInitializeInterface, we only update keyboard theme context
and displayContent when the displayId is changed, but overlooked even
the displayId is the same, the display context's resource configuration
might changed like the device orientation changd.
It leads getDefaultKeyboardHeight will get wrong config_max_keyboard_height
fraction value when rotating to landcape because the context resources
didn't get updated.
Add a check to update keyboard theme context when the current display
configuation is changed accordingly.
[1]: I0ed6a079af1ed90c75fee1d36d5ce3ef3c41f8ed
Fix: 186507147
Test: manual as issue steps
1) Turn on auto-rotate
2) Open Settings
3) Rotating the device to landscape mode
4) Tap “Search settings", verify if the soft-keyboard shown and the
size is expected.
Change-Id: I288a31baf04fa2e63d6b4a14ad81b401cb36ece5
Merged-In: I288a31baf04fa2e63d6b4a14ad81b401cb36ece5
|
|
|
|
|
|
|
| |
See https://source.android.com/setup/contribute/respectful-code for reference
Bug: 162536543
Change-Id: I5df9e60ec6caa2e1e3253532c2b59b74adfc1749
|
|
|
|
|
|
|
| |
See https://source.android.com/setup/contribute/respectful-code for reference
Bug: 161896447
Change-Id: I171bc299e660f96f20041a67a3052bd8a2ed781c
|
|
|
|
|
|
|
|
| |
See https://source.android.com/setup/contribute/respectful-code for reference
Bug: 161896447
Test: tapas LatinIME && m
Change-Id: I2ffb39ff70f61e579b62761d3da526a545dead1f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From Android Q, Talkback supports lift-to-type feature if the node claims
it is a text entry key via setTextEntryKey(). We implement this API to
show how this API is applied.
This CL uses AccessibilityNodeInfoCompat instead of AccessibilityNodeInfo
so that the same functionality can be used even on pre-Q devices when
the AccessibilityService supports it.
With that, this CL removes the legacy code of lift-to-type feature,
which was implemented in the AOSP Keyboard side.
Bug: 131644969
Test: manual - enable Talkback suporting lift-to-type,check Talback
perform click action when finger is lifted.
Change-Id: I1ec2928f5a9ba0bde999b09d4c0b9c922f179a2a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To address IME service context's Resources / DisplayMetrics update
when switching IME window to another display after onConfigurationChange.
We use Context#createDisplayContext to create display specific context when
display changed, to ensure soft keyboard can re-layout with correct resources.
Bug: 126930163
Test: manual with AOSP IME as below steps:
1) Settings > Developer options > enable "Simulated Display" & "Force desktop mode".
2) Reboot device
3) Launch app (i.e. Contacts) with bluetooth or usb mouse in Simulated display.
4) Tap EditText on app to see see if IME window layout correctly on simulated display.
5) Launch app (i.e Files) on primary display.
6) Tap EditText on app to see if IME window layout correctly on primary display.
Change-Id: I0ed6a079af1ed90c75fee1d36d5ce3ef3c41f8ed
Merged-In: I0ed6a079af1ed90c75fee1d36d5ce3ef3c41f8ed
|
|\
| |
| |
| |
| |
| | |
am: ff1db79a18
Change-Id: Ic162b5e20213a3f1b2aeaf77250bf1d7edc198c5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove EXTENDED_TOUCHABLE_REGION_HEIGHT from LatinIME#onComputeInsets
to prevent keyboard touch region covered navigation bar
when in split-window mode with display density < 240 case.
Fix: 134893742
Test: manual as below steps:
1) Set window density as 240 with "adb shell wm density 240"
2) Launch a app (i.e. Messages) from recents activity, set as split-screen mode.
3) Tap Search bar to show IME keyboard.
4) Press home / back / recents key if it works, expect it works.
Change-Id: I596b7276041fecc50d2bc095c7e51664f632368d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This CL demonstrates how an IME can show an Activity on the display
where the IME is shown. The key points are:
* The current display ID can be obtained as follows.
final int curentDisplayId = inputMethodService
.getSystemService(WindowManager.class)
.getDefaultDisplay()
.getDisplayId();
* When launching an Activity, specify the target display ID as
follows.
inputMethodService.startActivity(intent, ActivityOptions
.makeBasic()
.setLaunchDisplayId(curentDisplayId)
.toBundle());
Fix: 131718879
Test: Manually verified as follows.
1. Build aosp_blueline-userdebug and flash it.
2. adb shell settings put global force_desktop_mode_on_external_displays 1
3. adb shell settings put global overlay_display_devices 1920x1080/320
4. adb reboot
5. With a mouse, launch any application that has input field
in the secondary display.
6. Click that input field to bring up AOSP Keyboard.
7. Long click the comma key then select the gear icon.
8. Select "Android Keyboard Settings (AOSP)"
9. Make sure that the AOSP Keyboard Settings is launched in
the secondary display, not in the default display.
10. Go back to the step 7.
11. Select "Languages"
12. Subtype Enabler for AOSP Keyboard is shown in the secondary
display, not in the default display.
Change-Id: I9f89f371c38d9a7b5a06d018d4b41aa09815ea24
|
|\|
| |
| |
| |
| |
| | |
am: 6aed05232b
Change-Id: I558fb5ff22a7428d1d82eac82b4caba469ed48d4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This CL partially reverts
- Id88b02b74bdfe4ca05b08181ceb6b34d5652fc0c
- I05c7d8429e8d9a26139456763c77997340fea8c2
And followup (remove shortcut support)
- I73b7dc008a5acaf75a31a36a2d332b5afabd82d0
Bug: 28255684
Test: make -j10 dicttool_aosp
Change-Id: I2e01ed86b9517a1141aee35ea6d8ef39258981d1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PersonalDictionaryLookup has never been used. Usually proguard can
remove this class but it also makes it difficult to run unit tests.
We should just remove this unused class.
Bug: 111164993
Test: compile
Test: No new test failure
Change-Id: I732db94cb3aac4ed9c6b5954679b896334a12a9c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a preparation to deprecate frameworks/opt/inputmethodcommon
repository.
Currently repository 'inputmethodcommon' is used only from LatinIME.
Having such a repository only for one project is overkill. Also, to
add gradle build support to LatinIME project, it would be much easier
LatinIME didn't have such a dependency.
This CL mechanically copies files in 'inputmethodcommon' repository to
'LatinIME' repository. In theory there should be no behavior change.
Bug: 110741521
Test: tapas LatinIME && make -j
Change-Id: I3fabb038be9a944dcd9ef79ffcc89800a5f0bf5a
|
| |
| |
| |
| |
| |
| | |
Bug: 76692459
Test: mmma packages/inputmethods/LatinIME/
Change-Id: Ib76af6f6db1a0dd5cf64a06a4ea56151712e9692
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL a logical revert of a previous CL [1], which separated Java
files into common ones and overridable ones. Now that that overriding
concept is no longer used, there is no need to keep having separate
directory structure.
[1]: Ic734bd4d20aa050c688a3158b1a382ae0ac18991
fb74ab15c1343084740d65ef8744cad33a678e82
Fix: 79323502
Test: make -j aosp_taimen-userdebug && make -j
Test: tapas LatinIME && make -j
Change-Id: I2090bc25d18e6d4f24e91c2cbfe832755cbb4e8f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL introduces a custom intent action for apps to ask AOSP Keyboard to
close its software keyboard with guarding it with a signature-protected
permission.
Any app that is signed with the same signature as AOSP Keyboard can have
the following line in AndroidManifest.xml
<uses-permission
android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"/>
to request AOSP Keyboard to close its software keyboard as follows.
sendBroadcast(new Intent("com.android.inputmethod.latin.HIDE_SOFT_INPUT")
.setPackage("com.android.inputmethod.latin"));
Test: Manually verified with a test app.
Fixes: 65270710
Change-Id: I4fd2e3a7336ec66c70582a2f274a200cbf035a7f
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
am: 947cc7d7cd
* commit '947cc7d7cd32417c016ef474889ed93114395c4e':
Follow class package change: LocaleList
Change-Id: I7e665d609267182bcfcf11e3fb309dbe9d02c830
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In order to avoid layering violation, LocaleList needs to be moved from
android.util package to android.os package [1]. This CL follows up that
package change.
No behavior change is intended.
[1]: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18
Bug: 28819696
Change-Id: Ie795c191e299358c7c463693823f309ce61cc985
|
|/
|
|
|
|
|
|
| |
Bug introduced in 5ac4638f999db4fea8a9e24171dbceb640a10858.
Bug found by error prone:
Bug: 27723540
Change-Id: I4325f3bc1f1186bd24d4b0074f0c573cc5cb4e31
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LatinIME checks hardware keyboard presence and software keyboard
visibility to decide whether to start full screen mode.
This doesn't work well with the recent update on "Show input method"
(Bug: 22517687, Id4d332e3909590c68345e).
On the first tap, software keyboard is not shown and hardware keyboard
is connected; so full screen mode is not started. However,
onEvaluateInputViewShown may return true ant software keyboard may be
brought up.
In this care, on the second tap, software keyboard is visible so full
screen mode will be started regardless of hardware keyboard presence.
This CL checks onEvaluateInputViewShown to decide whether to start
full screen mode.
Bug: 27234709
Change-Id: I587262cc36e5fccc59620b4bd2d2c3c05c72232f
|
|
|
|
|
|
|
|
|
|
|
| |
We want to expose Serbian (Latin) layout as "sr-Latn" to the system,
while our internal logic may not be ready to deal with "sr-Latn" yet.
As a temporary workaround, we remap "sr-Latn" into "sr_ZZ" for our
internal use.
Bug: 27348943
Change-Id: I93ff0c75b3687bb1b913f451b9eb5f2820beefbc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 3e2670265e17e91c5a8cfff01711f973dccd2a0c.
It turns out that the behavior change in libcore was unintentional, and
it was already fixed [1]. Let's revert our workaround back to see if
the existing code is compatible with N.
[1]: Ibacb192abc37870c74a2500d65b94d68f9c2318e
5e7b572c2b494ab86ddd2baca3883a40a6064c1e
Bug: 26239281
Change-Id: I6cd2340492d93251231e7ee37c3d4f82c1721293
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 26239281
Change-Id: Ib30beb3548f8fb4a8e338b5da863ae28c252bc2b
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow up CL to the previous CL [1], in which we started
calling Window#setNavigationBarColor(int) when the window visibility is
changed.
One thing we missed is that calling Window#setNavigationBarColor(int) on
KitKant or prior devices would result in a runtime crash. Hence with
this CL we do not call that method unless the OS version is N or leter,
because specifying Color.TRANSPARENT would make sense on N+ devices.
[1]: I14d9490e00caa852035a05830e76114cbe6af8f2
6c04339c5aadb5118b0e0a8178b3d569956bbad7
Bug: 22564251
Bug: 27302540
Change-Id: Ib7299dd8c3dad4271f8fac453e690c83bda4a954
|
|
|
|
|
|
|
|
|
|
|
| |
This follows up to a recent CL [1] that removed #getPrimary() method
from LocaleList class.
[1] I75f77aea6b75e38793ed8477e5e5a4420d5e6d85
fee44846376c212114223fc4259382921e6dca7a
Bug: 26984092
Change-Id: Ied4678d35c4dcb380ce24e9bce9336dbbf6c16b8
|
|
|
|
|
| |
Bug: 23975618
Change-Id: I5933beaa5b28404f85e100461bdeab5496eb3c0e
|
|
|
|
|
|
|
|
|
|
|
| |
With this CL, LatinIME switches the current subtype from its enabled
subtypes based on the first locale in EditorInfo#hintLocales.
This functionality is still experimental, and will be triggered only
when EditorInfo#hintLocales is specified by the application.
Bug: 22859862
Change-Id: Ibd0559b370d8aa0d50d1bada8ecfdac0ed8db898
|
|
|
|
|
|
|
|
| |
This CL updates LatinIME's compatibility library so that we can access
EditorInfo#hintLocales without directly depending on unreleased SDK.
Bug: 22859862
Change-Id: I4ba7d294bc314002c3abf8842f097a4249783364
|
|
|
|
|
|
|
|
|
|
| |
With this CL, RichInputMethodSubtype#getLocale() starts returning
a Locale object that is initialized with "languageTag" when it is
specified. No behavior change is intended when "languageTag" attribute
is not available or specified.
Bug: 22858221
Change-Id: I23f2e479b8e284ce589c6950b071ba84c5dd8ce1
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Starting in N, we are going to have new APIs to officially support the
situation where apps need to run before the user has unlocked their
device for the first time. For IME developers those APIs would be
important not only because IMEs developers may want to support other
apps that support that feature but also because IMEs developers have
already needed to pay attention to the same situation where the IME is
running so that the user can enter the initial password (e.g. for an
encrypted device).
Bug 11270326 is a perfect example of this scenario. Now we can disable
settings-key until the device is unlocked by using the new API when
running in Android N devices.
Bug: 11270326
Change-Id: Ie1c6efa63b60b91430f1a78dde624d0f3dff3c69
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When upgrading to a new version of APK we may find that the stored Emoji
category ID is no longer applicable. For example it happened when we
brought in the new Unicode 8.0 Emojis.
Also restore the "Symbols" emoji category on pre-kitkat devices which
was accidentally dropped when bringing in Unicode 8.0 Emojis.
b/25972978
Change-Id: I91c044603b0aac8757cb8597d3af995f84b822f3
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
am: 7674a65367
* commit '7674a653678b542d795b0bd05c241654ffe1015a':
Unicode 8.0 emoji additions to Google Keyboard.
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
am: e1d5012683
* commit 'e1d501268396e58bfdd37a0a50dfeb2ac48139a8':
Revert "Unicode 8.0 emoji changes to Google Keyboard."
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
am: 9cc42549d1
* commit '9cc42549d18f1e28ffc8dae94ff36728933f53f1':
Unicode 8.0 emoji changes to Google Keyboard.
|