most of the use cases for this involve uiautomator tests,
which are slow anyway. In this case it may be possible for
the checkpoint to record the current time, and then the
test event arrive before the clock ticks over to the
next millisecond, which would cause them to be ignored.
If this fixes the flakiness we should consider a more gneeral fix.
Test: runtest --path frameworks/base/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java
Bug: 35138327
Change-Id: Idc4aec50df1a75be710c5a69522af058f7e68ec1
Before the cache unregistration logic was posted to the worker thread.
However, when WifiSettings is quit, the onDestroy method immediately
kills the WorkHandler. This caused unregistration to never occur, which
left the cache registered and the listener to try to post work on the
dead worker thread. The cache is now registered and unregistered
serially in start and stop tracking, respectively. Furthermore, the
cachelistener is running on the mainHandler as it is a lightweight task
(posting to work handler).
Bug: 34891717
Test: runtest --path
frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java
Change-Id: I7739fdbe036be5b2870be45f33f670fd69d69af1
The previous CL (I47f902cc8f) fixed ImeSubtypeListItem.compareTo() is
compliant to Comparable#compareTo(T) (Bug 34255739) and introduced the
following order of comparing ImeSubtypeListItem fields.
1. ImeSubtypeListItem#mImeName
2. ImeSubtypeListItem#mSubtypeName
3. ImeSubtypeListItem#mIsSystemLocale
4. ImeSubtypeListItem#mIsSystemLanguage
But it didn't keep the previous ordering (Bug 34821121). This CL
fixes the order of comparing ImeSubtypeListItem fields as compatible
as ones before I47f902cc8f.
1. ImeSubtypeListItem#mImeName
2. ImeSubtypeListItem#mIsSystemLocale
3. ImeSubtypeListItem#mIsSystemLanguage
4. ImeSubtypeListItem#mSubtypeName
Bug: 34255739
Fixes: 34821121
Test: Install FramewroksCoreTests.apk and run
InputMethodSubtypeSwitchingControllerTest and verify all tests passed.
Change-Id: I813403fd29c5c52a3ca375174ec4b95e4b5433f2
Can be disabled by setting the "debug.bgcheck" system property to
"n" or "no" or "0" or "false" or "off". (Writing that property
requires root.)
Bug 30953212
Test: observed restrictions being enforced
Change-Id: I4cda9b7840ff25240b6bcaab210ea13888d08cad
Lots of stuff:
- Make StatusBarIconController be a permanent dependency
- Break out dark stuff into DarkIconDispatcher
- Create StatusBarFragment
- This bit is a bit ugly for now, but will be better later
- Other stuff probably
Test: runtest systemui
Change-Id: I4973bc9f944e66af92731bf1edd2b39657f1782f
As explained in the commit message of my previous CL [1], we have
had a design issue in how to notify the full-screen mode change
from the IME to InputMethodManager running in the target application.
Histrically we have done this by using hooking the following IPC
from the IME to the target application.
InputConnection#reportFullscreenMode()
However, since we also want InputConnection to be deactivated in some
situations such as the when the target application is no longer
focused. In other words, InputConnection is not a reliable way to
notify something.
As a result, we have suffered from many stale state issues.
Bug 21455064 and Bug 28157836 are such examples. In Android N, we
introduced yet another hack to work around those issues, but it is
really time to fix the protocol design instead.
The new strategy is to rely on internal IPCs provided by
InputMethodManager to deliver such critical notifications from one
process to the other. This is actually more natural because our goal
is to make sure that InputMethodManager#isFullscreenMode() always
returns the latest value as long as the caller is the focused
application.
For backword compatibility, applications that are monitoring
this callback should continue working, as InputMethodManager emulates
the previous behavior. However, as updated in JavaDoc, IMEs are no
longer allowed to invoke InputConnection#reportFullscreenMode(),
which should be OK because even on previous releases IMEs should rely on
InputMethodService#updateFullscreenMode() instead.
[1]: Iba184245a01a3b340f006bc4e415d304de3c2696
1544def0facda69c210b0ae64b17394ea2860d39
Fixes: 28406127
Test: Make sure Bug 21455064 is still fixed.
1. Input some words in extract mode.
2. Select a word.
3. Perform copy.
4. Select a word.
5. Rotate the device.
6. Try to select a word.
7. Make sure he word is selected and action mode starts.
Test: Make sure Bug 28157836 is still fixed.
1. Rotate device to landscape mode.
2. Tap on EditText and start full screen extracted mode.
3. Rotate device to portrait mode.
4. Long press to start action mode.
5. Make sure Action mode gets started.
Test: `adb shell dumpsys input_method` to make sure that fullscreen
state is synchronized across the app, IMMS, and the IME.
Change-Id: If23e7c7c265ab3dfb48c2fb6fdb361b17d22c594
This shouldn't properly be emplaced as a side-effect of partner-
specific configurations; so now we don't do that any more.
Bug 35151478
Test: verify whitelist contents with 'bmgr whitelist'
Change-Id: I854ddfdbcec1def882b24f5ea7955b28d4789806