CL[1] introduces new WINDOW_FOCUS_GAIN_REPORT_ONLY flows to notify
InputMethodService only reports IME input target to WM when focusing to
the next window and its input connection remains.
Originally in android Q and prior devices, we don't need such report
mechnism but just skip to start new input connection and ignore
onStartInput / onFinishInput for the above use case.
Since starts from Android R, new IME insets control APIs relying on this
mechanism (see CL[2]) to keep the actual IME input target up-to-date.
As we expected there should be no new input connection and additional
onFinishInput when CL[1] landed.
However, in IMMS, startInputUncheckedLocked will be called
to callback additional onStartInput for InputMethodService, which mostly
is not expected, except when focusing the same window after device
turned screen on, we need to start input and callback onStartInput to
align with the behavior of android Q or the prior platform.
Besides, to have more clear code logic and debugging concept of
ignoring onStartInput and onFinishInput only when focused the same editor
with input connection remains, we remove WINDOW_FOCUS_GAIN_REPORT_ONLY
reason and introduced 2 more start input reasons to distinguish the
different behavior:
- WINDOW_FOCUS_GAIN_REPORT_WITH_SAME_EDITOR
- WINDOW_FOCUS_GAIN_REPORT_WITHOUT_EDITOR
[1]: I45a9814d812ad906f417c24200fd4219959e2423
[2]: I9e8984b7e5aa989a53ece9e2576393f795b9ef94
Fix: 158624922
Test: atest FocusHandlingTest InputMethodStartInputLifecycleTest
Test: manual as below steps:
1. Use Gboard, Open the emoji keyboard
2. Swipe down to reveal notification shade
3. Swipe up to dismiss notifications
4. Expect the Emoji keyboard is still open without close
Change-Id: I2da99ae67b9ce4051dec0c0f0e975ebe6e1ab118
This fixes several issues relating to pinning and work profile.
(In future, we might want to maintain a separate pinned list for
WP than for main profile - this CL doesn't address that but
doesn't prevent it.)
Fixes: 159038941, 159035711
Test: atest ChooserActivityTest, manual with WP enabled thru TestDPC
Change-Id: Ibbe908a60dfeee859e576c5e1473123f02147958
- in situation when developer provides message when op is noted, do not
report it through stack trace collection infrastructure
- collect only statcktraces for OP_FLAG_SELF and OP_FLAG_TRUSTED_PROXIED to
match collection of appops counts
Test: atest android.app.appops.cts.RuntimeMessageCollectionTest
Fixes: 159433071
Change-Id: I1ab56a530832873a1f1f68aba5ab6eabc9e8a17a
First, this treats non-resizable minimized the same as
resizable minimized except with a status-bar height primary.
This differs from before in that the dividerbar remains
visible/usable -- this makes it more obvious to the user that
they are in split-screen mode.
Second, this actually places the home stack into the split
secondary root and overrides its windowing-mode to fullscreen.
This is needed because otherwise it can't properly interleave
with the other secondary tasks -- which would cause backing-out
of the secondary task to return to recents instead of home.
Both of these combined also allows us to clean up some
special-case code.
Bug: 159247878
Test: Use split-screen with non-resizable 3p home.
Change-Id: Idc2050703d972a4b2fa8f74f5827bcc126dce832
Upon reuse of a view by the recyclerview, it was possible to show a
reused view's sublabel, as it was doing incorrect comparisons. Make
sure to always reset the textviews, and hide it if necessary.
Fixes: 150813955
Test: manual, but helpful to have many apps installed and launch the sharesheet
Change-Id: Idb0c03c0b0917104bd9f26cdd9ed33a0055fa6f2
This is a Client-only solution.
- Add to NetdClient a per-process std::atomic_boolean
similar to netIdForProcess and netIdForResolv.
- The boolean says whether the process should be
allowed Internet connectivity.
- Add an @hide method to NetUtils.java to set the boolean;
call it from the initialization code of the new
process just after forking from zygote.
- Make netdClientSocket and dnsOpenProxy check the
boolean. If the boolean is false, return EPERM from
socket calls.
Bug: 150028556
Test: atest NetworkUtilsTest
Test: atest CtsAppSecurityHostTestCases:UseProcessTest
Change-Id: If002280fbad493dfc2db3d9d505c0257d49a9056
Exempt-From-Owner-Approval: OWNERS already approved identical patchset 5
Also avoid breaking sharesheet, as the sublabel was intentionally
being marked visible with no text for better alignment.
Fixes: 149622636
Test: manual + atest ResolverActivityTest
Change-Id: Id65058de70cf70c4cb18940e75f4c5051f1da25c
- The old calls appear to account for the display cutout now which causes
the landscape/seascape comparison to fail
Bug: 157878422
Test: atest TaskSnapshotControllerTest
Test: TaskSnapshotSurfaceTest
Test: DecorViewTest
Test: Open an app with displaycutout layout shortEdge or always, and
rotate to landscape in non-gestural mode, and ensure that the
divider and background are drawn in the right place
Change-Id: Ib51964a76e25f902858aad4e8aeb810dfca2edc0
Merged-In: Ib51964a76e25f902858aad4e8aeb810dfca2edc0
Before we would only check the active tab for available
targets and finish the activity if there are none.
However, with the work tab, there can be cases where
the active tab has no targets, but the inactive tab does.
Fixes: 159202588
Test: manual
Change-Id: Ie03ebd1b022362681df432ec29299df86dceb490
Otherwise rotating the device while showing a tab with RTL
shows blank tab content. This could be due to ViewPager
bugs when handling RTL.
Fixes: 158862939
Test: manually rotating the device with RTL layout
Test: manually rotating the device with LTR layout
Change-Id: Iba4c71cf88747d6fbbc36d19b5102460e8aa7cec
The internal ViewPager seems to not handle RTL well. This CL
disables side swiping in that case.
Fixes: 159110029
Test: manually confirmed side swiping does not happen on RTL
languages
Test: manually side swiped on non-RTL languages
Change-Id: I30272426d1d1ef4f17ec656630cee01505f66c59
Previously, the sysconfig wasn't capable of understanding
carrier-associated apps that were added after a device's initial launch
(i.e. via OTA) because the logic in CarrierAppUtils explicitly avoids
disabling such apps a second time.
Most of this change is just plumbing everything through. For now, it's
all @hide due to R API deadlines. It will be made public in S.
Bug: 154872019
Test: manual, QA, atest FrameworksTelephonyTests:CarrierAppUtilsTest
Change-Id: I530a4f73146b09879547ca2e0c26428957fef37a
In order to save memory, FuseAppLoop maintains a buffer pool to use
when dispatching the read/write requests. Currently, it uses
the threadId of the ProxyFileDescriptorCallback as the key for this
buffer pool and this can result in an issue when a caller creates
multiple ProxyFileDescriptors with ProxyFileDescriptorCallbacks
running on the same thread. When this happens, it is possible that
a buffer is reused before a read/write request which was using it
earlier has been handled and would result in data from read/write
requests on different fds getting mixed up.
Bug: 158568683
Test: atest --test-mapping apex/blobstore
Change-Id: Iaffd54f4430ecb3778f01c80f5a1684ac448f8dc
Found a potential issue where the adapter list was being updated on
the bg thread, and could cause conflicts while the recyclerview is
loading.
Fixes: 159028662
Test: atest ChooserActivityTest
Change-Id: I60abd9a8325964ed2ca1218e8846f816b02da431
This reverts commit 2a38a35622.
Reason for revert: The original CL was reverted for b/158836294 and it turned out to be innocent. Re-land the CL.
Bug: b/155660756
Change-Id: Iada83e80059e7cb9566bb7ad4e4c9909b4ed794a
Oftentimes, the ProcStats protobuf is larger than StatsEvent can handle.
With this CL, we detect that state before it happens, and attempt to
shard the ProcStats data over multiple protobufs, each with its own
StatsEvent.
Test: see b/158294266
Bug: 158294266
Change-Id: I1787d0ddeb6825a55adb8e0e1ec55c89af6990c5