Commit Graph

18424 Commits

Author SHA1 Message Date
Jernej Virag
c515a0aed9 Merge changes from topic "large-icons-tm" into tm-dev
* changes:
  Size restrict right notification icon size
  Downscale large bitmaps in CachingIconView
  Support downscaling of Drawable icons in LocalImageResolver
2022-03-15 07:36:11 +00:00
Michael Wachenschwanz
3f53035561 Merge "Smear ModemActivityInfo across multiple stats" into tm-dev 2022-03-15 01:26:33 +00:00
Eric Biggers
e945bd62d6 Merge changes from topic "remove-fde" into tm-dev
* changes:
  Remove unused FDE methods from StorageManager
  Stop checking FDE password cache
  Remove checks for FDE in 'adb backup'
2022-03-14 23:03:22 +00:00
Rob Carr
6caacdcf72 Merge "WMS/ViewRoot: Prepare for Async BLAST Sync [1/N]" into tm-dev 2022-03-14 22:48:21 +00:00
Michael Wachenschwanz
be79640cb0 Smear ModemActivityInfo across multiple stats
If ModemActivityInfo is available on a device, smear the provided
transmit and received times across RadioAccessTechnology and frequency
(for NR RAT).

Bug: 207697945
Test: atest BatteryStatsNoteTest
Change-Id: Ifb4e30dc3fa5ac5dd4824a87a7a86c4a0d14d019
(cherry picked from commit e85ac3239e)
2022-03-14 15:16:15 -07:00
Jernej Virag
104e6492b2 Downscale large bitmaps in CachingIconView
CachingIconView is used to displayed (smallish) icons in Notifications. Those can accidentally be made very large if big resources are used.
This makes CachingIconView use LocalImageResolver to load those images with limited size. This fixes large memory use of notification header icons.

Bug: 210690571
Bug: 218845090

Test: Manually on small and large Pixel device with Notification tester APK
      Added Unit Tests to cover this case.
Change-Id: If3d871e788608c1702461d563673560fa18fc53f
2022-03-14 21:51:15 +00:00
Jernej Virag
f450d3c054 Support downscaling of Drawable icons in LocalImageResolver
LocalImageResolver only enforced downscaling for Uri-based Icons at this point. This still allowed app developers to provide large bitmaps as a resource or as a bitmap payload itself. This change also verifies these new types of bitmaps.
Also adds an external size parameter to image resolver so different widgets can use it - right now the upper limit was hardcoded in pixels.

Bug:218845090
Bug:210690571

Test: Manually on device - tested on Raven and new Pixel with multiple
                       notification sizes via notification test apk.
      Unit tests
Change-Id: I504694cb27953bc7950669b1b48f90d2e9c6a68d
2022-03-14 21:51:14 +00:00
Dmitri Plotnikov
b79d6441df Merge "Track CACHED procstate in BatteryStats" into tm-dev 2022-03-14 19:42:07 +00:00
TreeHugger Robot
ec74b17af9 Merge "Defer MessagingMessage#recycle until bind ends" into tm-dev 2022-03-14 15:25:15 +00:00
Andrei-Valentin Onea
ba30e36310 Merge "Use apex name when querying privapp allowlists" into tm-dev 2022-03-14 15:11:28 +00:00
Robert Carr
027b59d90a WMS/ViewRoot: Prepare for Async BLAST Sync [1/N]
We would like to make relayoutWindow a non-blocking call,
and of course why not, who likes blocking. However it functions
as a critical path of BLASTSync. To understand why examine the
Guarantee described in BLASTSync.md.

In order to implement this guarantee we need to know
“Which frame has the client finished drawing” when it calls
finishDrawing. The current answer to this question is
“The frame reflecting the state observed in the last call
to relayoutWindow”. The comments on mPending and mCurrentDrawHandlers
also have a lot more context on how this works currently. Since
relayoutWindow has a critical section, it also ensures that changes
to syncable state and preparation of sync will be observed atomically
(since they are both observed over relayoutWindow, which is always
called before any frame drawing updated syncable state).

We design a new protocol described in BLASTSync.md, which uses a seqId
to track which call to finishDrawing reflects which syncable state.
We implement this seqId based system. Unfortunately the WindowManager
doesn’t quite conform to the requirements specified by the protocol,
and a follow up CL ensures that syncable state changes will
always be sent with the seqId.

This CL simply adds the protocol specification and makes some required
interface changes. It can be seen to be a no-op.

Bug: 161810301
Bug: 175861051
Bug: 175861127
Bug: 200285149
Change-Id: If2dea07121fe7de5d2524c5b63678dddf955d4b7
2022-03-14 08:08:40 -07:00
Dmitri Plotnikov
c311349874 Track CACHED procstate in BatteryStats
Bug: 216361629
Test: atest FrameworksCoreTests:BatteryStatsTests

Change-Id: If3ada99a009d09db07f38be1ffb62e86c637e1a3
2022-03-10 17:26:11 -08:00
Rambo Wang
01da996576 Merge "Introduce CarrierPrivilegesCallback to replace CarrierPrivilegesListener" into tm-dev 2022-03-10 23:26:08 +00:00
Dmitri Plotnikov
1f90015283 Merge "Exclude SDK Sandbox virtual UID from BatteryUsageStats" into tm-dev 2022-03-10 23:25:00 +00:00
Eric Biggers
6ab6ad829e Stop checking FDE password cache
Now that FDE is no longer supported, checking the FDE password cache
will never accomplish anything.  Remove this check from Keyguard, and
remove the supporting code from LockSettingsService.

Bug: 208476087
Change-Id: If1bb80dfcc015aeea19916a88c89a4067e6ada32
(cherry picked from commit e9b69111b2)
Merged-In: If1bb80dfcc015aeea19916a88c89a4067e6ada32
2022-03-10 23:04:38 +00:00
Steve Elliott
88f4dbce89 Defer MessagingMessage#recycle until bind ends
See ag/17158486 for context.

Fixes: 216202070
Test: manual
Change-Id: I924f917fbf757d2c3866fcd60de2fbfccae2eb6a
2022-03-10 16:18:43 -05:00
Rambo Wang
b66e3e3aa8 Introduce CarrierPrivilegesCallback to replace CarrierPrivilegesListener
Add new interface in CarrierPrivilegesCallback to notify the registrants
that carrier service for current user has changed.

Reshape the parameters of onCarrierPrivilegesChanged callback with
both Set instead of List/Array.

CarrierPrivilegesListener is deprecated. Once all clients have migrated
to CarrierPrivilegesCallback, it will be throughly cleaned up.

Bug: 216549778
Test: atest CarrierPrivilegesTrackerTest CarrierServiceTest
Test: atest WifiCarrierInfoManagerTest TelephonyRegistryManagerTest
Test: atest TelephonySubscriptionTrackerTest

Change-Id: I195a99ec6508c7fe3398908bfca632d8446ab29c
2022-03-10 12:00:14 -08:00
Julia Tuttle
835b4f7d63 Merge "Make IStatusBarService.clearInlineReplyUriPermissions oneway" into tm-dev 2022-03-10 19:40:01 +00:00
Fabian Kozynski
82b2876457 Merge changes from topics "172251878", "presubmit-am-7890421506ee474b9057d3c5d333e341" into tm-dev
* changes:
  CompatChange to use hidden API in TileService
  Fix loopers in TileServices
2022-03-10 19:09:25 +00:00
Dmitri Plotnikov
64d4b30850 Exclude SDK Sandbox virtual UID from BatteryUsageStats
Bug: 219077358
Test: atest FrameworksCoreTests:BatteryStatsTests
Change-Id: I42e73348f787841677ce63e8cb2be98a0b8e53e2
2022-03-10 18:18:11 +00:00
Dmitri Plotnikov
27df8ca365 Merge "Fold SDK Sandbox UID battery stats into parent UID stats" into tm-dev 2022-03-10 18:17:38 +00:00
Derek Jedral
e20b057da5 Merge "Change LockPatternUtils to return empty list" into tm-dev 2022-03-10 17:36:21 +00:00
TreeHugger Robot
4827ea25a2 Merge "Add a few TODOs for removing getSfInstance" into tm-dev 2022-03-10 17:28:32 +00:00
Fabian Kozynski
af6c54c109 CompatChange to use hidden API in TileService
This adds a new hidden API in StatusBarManager for active
TileService#requestListeningState. That way, we can verify that the
calling package is the same as the one belonging to the tile.
This is enforced using CompatChange for apps that target T+.

Test: atest StatusBarManagerServiceTest
Test: atest TileServicesTest
Test: atest CtsSystemUiHostTestCases
Test: sample app targetting T
Fixes: 172251878

Change-Id: Ic9b8aca55dcfc2b32b018a5308f19e49a933c4c9
2022-03-10 16:47:27 +00:00
Andrei Onea
37389f61c1 Use apex name when querying privapp allowlists
Per-apex allowlists are stored based on their path, which corresponds
to the apex name and *not* the apex package name. These are the same for
AOSP targets, but for Google specific ones, the apex package name
*typically* is of the form com.google.android.* instead of com.android.*.

Test: m
Bug: 190375768
Change-Id: Iba36509285bd75db294e369088a23b73458f3a8b
2022-03-10 13:27:13 +00:00
TreeHugger Robot
771ed53fc2 Merge "Introduce a flag to enable shell caption" into tm-dev 2022-03-10 09:34:19 +00:00
Yunfan Chen
40c0b8bdb9 Introduce a flag to enable shell caption
A new interface in WindowManagerProxy was introduced to let the shell be
able to set insets with a given frame. The interface won't work for
caption as we applied special logic to assemble the caption frame with
the attached task frame. To make it work with caption insets, we need to
disable all the special logics to make use of the shell interface.

A flag CAPTION_ON_SHELL is introduced to disable the calling path and
enable the above client owned logic. Turn the flag to true when the
caption is moved to shell.

Test: InsetsControllerTest, WindowContainerInsetsSourceProviderTest
Bug: 189998209
Change-Id: I989b319001a118d1f1ff8e34761b39ee18fde335
2022-03-10 16:06:22 +09:00
Sarup Dalwani
bf3f189a34 Merge "Renaming isCredentialSharedWithParent to isCredentialSharableWithParent" into tm-dev 2022-03-10 05:59:57 +00:00
Dmitri Plotnikov
70a3d9e8a4 Fold SDK Sandbox UID battery stats into parent UID stats
Bug: 219077358
Test: atest FrameworksCoreTests:BatteryStatsTests
Change-Id: Id1a9ed5865b62bfce6de0bfdefe1528973fd5c3c
2022-03-09 23:54:59 +00:00
Julia Tuttle
4ce8da6789 Make IStatusBarService.clearInlineReplyUriPermissions oneway
Bug: 221201054
Test: tbd
Change-Id: Ib766e7d366b9fb4312b7414cabd59b9ffcb3c6df
2022-03-09 16:38:59 -05:00
Aleksandr Litovchenko
15aafa78c9 Make LockPatternView dot hit area circular.
Dot hit area is rectangular. Make it circular to be able to increase the area and preserve diagonal connections.
Cover with tests to ensure that touches handled correctly.

Bug: 204870856
Bug: 215183631
Tests: LockPatternViewTest and manualy on watch and phone
Change-Id: I7d7b539afcdd4d86cb8f828030a2f4866963f8aa
2022-03-09 11:50:49 +00:00
Wu Ahan
b6acbe6ce0 Merge "Add CUJ constants for SUW jank insturmentation" into tm-dev 2022-03-09 10:07:42 +00:00
Eric Biggers
031a23fa87 Stop trying to update FDE password from LockSettingsService
Since FDE is no longer supported, updating the FDE password never does
anything.  Stop trying to do so.  Remove updateEncryptionPassword() from
ILockSettings, since its only caller outside of LockSettingsService
itself was in LockPatternUtils, and the previous CL removed that caller.

Bug: 208476087
Change-Id: I46c2a472177836f0c9084e4c3b4ed2e6c0ab61d5
(cherry picked from commit 3762ada110)
Merged-In: I46c2a472177836f0c9084e4c3b4ed2e6c0ab61d5
2022-03-09 03:13:13 +00:00
Eric Biggers
50cfdac9ba Remove clearEncryptionPassword() from LockPatternUtils
Remove this method which cleared the FDE password, since is no longer
used.  It was only being used by the accessibility settings in the
Settings app, and that caller was removed by http://ag/16624515.

Bug: 208476087
Change-Id: If0c75774555d3503f21857e66cce527c5edfa586
(cherry picked from commit 8e265a9fd3)
Merged-In: If0c75774555d3503f21857e66cce527c5edfa586
2022-03-09 03:12:59 +00:00
Eric Biggers
87d60042aa Merge "Stop trying to get/set fields in FDE footer" into tm-dev 2022-03-09 03:08:05 +00:00
Derek Jedral
2144f16876 Change LockPatternUtils to return empty list
LockPatternUtils currently returns null if there are no active trust
agents. Changed to return an empty list instead to avoid possible NPEs

Test: atest
Bug: 222014696
Change-Id: I0100c6efec75d78e94797fa056b4be40acd11989
2022-03-09 00:56:01 +00:00
Eric Biggers
661fdb3d9f Stop trying to get/set fields in FDE footer
Now that FDE is no longer supported, getting/setting FDE fields is
always a no-op, so there is no need to do so.

Bug: 208476087
Change-Id: Iab7ba8d36890daa0645b2cedf33e4bd177a86b63
(cherry picked from commit c6ce767e59)
Merged-In: Iab7ba8d36890daa0645b2cedf33e4bd177a86b63
2022-03-08 17:08:39 -05:00
Xiang Wang
81aa0eac27 Merge "Provide game task bitmap to TakeScreenshotService as screenshot" into tm-dev 2022-03-08 20:06:57 +00:00
Evan Rosky
10dc2271c1 Merge "move shell_transit sysprop to persist.wm" into tm-dev 2022-03-08 19:34:01 +00:00
TreeHugger Robot
18654af7fd Merge "Use parentUserId when reading config_imeDrawsImeNavBar" into tm-dev 2022-03-08 00:45:59 +00:00
TreeHugger Robot
fca00d3193 Merge "Introduce InputMethodNavButtonFlags" into tm-dev 2022-03-07 22:00:58 +00:00
Yohei Yukawa
f93769b1ae Use parentUserId when reading config_imeDrawsImeNavBar
This CL rewrites my previous CLs [1][2], which were written with an
incorrect assumption that config_imeDrawsImeNavBar was overlaid for
the entire profile group.

While SysUI's navigation mode is dynamically configurable with Runtime
Resource Overlay (RRO), it turns out that we currently configure RRO
only for the profile parent user.  This means that processes run under
other profile users continue seeing the base resource value regardless
of how RRO is configured for the profile parent user.  This is the
root cause of Bug 219604375.

To work around this limitation, this CL uses InputMethodManagerService
to monitor the value of config_imeDrawsImeNavBar for the profile
parent user then to propagate it to the IME process.  Luckily we have
already been doing a similar thing for the IME switcher visibility.
What this CL does is 1) adding a new flag to InputMethodNavButtonFlags
then 2) just using the flag sent from IMMS instead of directly reading

  config_imeDrawsImeNavBar

NavigationBarController.

Alternative solutions considered:

* Set RRO for profile users

  One of straightforward ways to address this problem is letting the
  Setting app apply the same RRO for other profile users.  However,
  this could be tricky when 1) the user changes navigation mode then
  2) sets up a new profile, because the Settings app is not an
  always-running process.  While we might be able to rely on

    com.android.settings.SettingsInitialize#onReceive()

  to do so, the profile user's state could be left in a broken state
  if that method was somehow interrupted.  To minimize the risk, we
  decided to not take this approach for T.

* Make OverlayManager be aware of profile groups

  Given how RRO is used in SysUI, it's make more sense if
  OverlayManager natively supports resource overlay for the entire
  profile group.  However, introducing such a new concept is too late
  for Android T.  We have filed Bug 221443458 to see if we can do this
  in a future version of Android.

 [1]: I3e7e1f83554444131e2765dc159617bb9e2337c7
      ff7b453ca8
 [2]: Id0cfa44cce5de515dc5d28254e1d41bdfc01e201
      177e4aafdb

Fix: 219820813
Test: Manually verified as follows
  1. Build aosp_coral-userdebug then flash it.
  2. adb root
  3. adb shell setprop persist.sys.ime.can_render_gestural_nav_buttons true
  4. adb reboot
  5. adb install -r TestDPC-normalv8001.apk
  6. adb shell am start -n com.afwsamples.testdpc/.SetupManagementLaunchActivity
  7. Set up work-profile
  8. make -j EditTextVariations
  9. adb install -r \
   $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/arm64/EditTextVariations.apk
 10. adb shell am start --user 0 -n \
   com.android.inputmethod.tools.edittextvariations/.EditTextVariations
 11. adb shell dumpsys input_method | grep mNavigation
      -> "mNavigationBarController={mImeDrawsImeNavBar=false, ..."
 12. Enable gesture navigation
 13. adb shell dumpsys input_method | grep mNavigation
      -> "mNavigationBarController={mImeDrawsImeNavBar=true, ..."
 14. adb shell am start --user 10 -n \
   com.android.inputmethod.tools.edittextvariations/.EditTextVariations
 15. adb shell dumpsys input_method | grep mNavigation
      -> "mNavigationBarController={mImeDrawsImeNavBar=true, ..."
Change-Id: Id3d6a71d8ba1bfa49131350b68aa8d3424eca381
2022-03-07 11:13:58 -08:00
Yohei Yukawa
5f9f1ca560 Introduce InputMethodNavButtonFlags
This CL reworks my previous CL [1], which let
InputMethodManagerService report whether the IME switcher icon needs
to be shown or not to the IME process by using IInputMethod IPCs.

It turns out that we need to propagate one more boolean value in order
to address Bug 219820813.  It'd be much clearer if we use bit flags
rather than adding a new boolean parameter to each IPC method.  Thus
this CL rewrites my previous CL by using a bit flag defined in a newly
introduced InputMethodNavButtonFlags.

This is a purely mechanical refactroing.  There should be no behavior
change.

 [1]: I5de9ac0dc8670842edf66306bb4c281c77cea376
      75b935a12b

Bug: 215551357
Bug: 219820813
Test: Manually verified with for the following scenarios:
 * Enabling/disabling multiple IMEs
 * Attaching/detaching a hardware keyboard
 * Showing/hinding the IME switcher
 * Showing an IME on the lock screen
Change-Id: I81cb062a08d484ec8ce5d7b2fea64ce19028f82e
2022-03-07 10:47:47 -08:00
Julia Tuttle
6c56b7dea8 Make StatusBarService.clearNotificationEffects oneway
This doesn't need to be blocking (as far as me and a colleague can tell)
and was causing ANRs.

Bug: 204160836
Test: tbd
Change-Id: I16f7e20ddbcdb7546038273aede545a920fce87e
(cherry picked from commit 340cf6fdad)
2022-03-07 17:35:56 +00:00
Sarup Dalwani
61321ebc97 Renaming isCredentialSharedWithParent to isCredentialSharableWithParent
Renaming isCredentialSharedWithParent to isCredentialSharableWithParent,
as for work profile there is possibility to enroll its own credential.

Bug: 222108271
Test: atest android.multiuser.cts.UserManagerTest
atest LockSettingsServiceTests

Change-Id: If343342d0a5e996cbd430a4063b25fbc4874c5c0
Merged-In: If343342d0a5e996cbd430a4063b25fbc4874c5c0
(cherry picked from commit ece66c4116)
2022-03-07 15:00:19 +00:00
Issei Suzuki
4a785a1407 Merge "Apply right animation type on translucent window containers." into tm-dev 2022-03-07 11:46:47 +00:00
Chiachang Wang
7d2434fb76 Merge "Set local routes exclusion in the networkAgent" am: 4734b5810b am: b8cda9d7e0 am: c30f82b94b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1978095

Change-Id: I6bb0fc565b0596a17b47cf58878193b132b887cf
2022-03-07 08:30:24 +00:00
Chiachang Wang
c30f82b94b Merge "Set local routes exclusion in the networkAgent" am: 4734b5810b am: b8cda9d7e0
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1978095

Change-Id: I46931b7926b1da889989384159b012826e02d96a
2022-03-07 08:09:05 +00:00
Chiachang Wang
b8cda9d7e0 Merge "Set local routes exclusion in the networkAgent" am: 4734b5810b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1978095

Change-Id: I03eaf7cf1ffc7237f267a85d2d1a25d93afe3896
2022-03-07 07:46:21 +00:00
Chiachang Wang
4734b5810b Merge "Set local routes exclusion in the networkAgent" 2022-03-07 07:25:52 +00:00