The expected usage pattern for noteOp is to get the
Context#getOpPackageName() and Context#getFeatureId() in the calling app
and the call
noteOp(callingPackageName, Binder.getCallingUid(), callingFeatureId)
As the featureId parameter is new this parameter has to been piped all
through from the ...Manager classes running in the app all way deep into
the bowels of the system server.
There is a special featureId==null for the "default" feature. This is
used in two cases:
- In case the system server (packageName == null || packageName ==
"android") makes a call
- In the case there is no caller. In this case I left annotations in the
code to make clear that the default feature is used
Raw binder interfaces (defined in AIDL files) are not supposed to be
used by apps. Still historically this has happened and we ended up with
@UnsupportedAppUsage tags in these files. Also AIDL does not support
two methods with the same name but different parameters. I.e. in the
case when I had to add a paramater to a method tagged as UnsupportedAppUsage I
- created a new method ...WithFeature with the additional paramter
- set a maxTargetSDK for the old method and mention the public API to
use in the deprecation method
This is really not pretty. Once there is no more app using the old
internal API this hack can be removed.
Additionally this change removed all internal calls to
AppOpsService.noteOperation and AppOpsService.checkOperation and
replaces them with the public API equivalent. This sometimes means to
move the resolution of the mAppOpsManager to be lazy.
Exempt-From-Owner-Approval:: Just piping through arguments
Bug: 136595429
Test: atest --test-mapping frameworks/base/services/core/java/com/android/server/am/
atest CtsAppOpsTestCases added test to cover activity start
atest WmTests
Change-Id: Ic7056b492cb1c9a79158e6c2b4864898a0eb5b2a
Revert the change where the DPC could no longer set location permissions
by calling DevicePolicyManager.setPermissionGrantState.
Bug: 148631522
Bug: 147650798
Test: manual
Test: see cts tests in associated CL.
Change-Id: Ic6ebb7c8001a8e356296bc6459fc3530e0531070
We have merged a cl for wide color gamut support of ImageWallpaper.
This cl is the unit tests for this feature.
Bug: 142845271
Test: atest com.android.systemui.glwallpaper.ImageWallpaperRendererTest
--rerun-until-failure 20
Test: atest com.android.systemui.glwallpaper.EglHelperTest
--rerun-until-failure 20
Change-Id: Ib22ee8c074b1f8d9e37e990589ca833c3d93892c
Also add a way to query for child containers of a container.
Combined, these provide enough flexibility to re-arrange
containers to system-ui. For now, it is locked-down a bit so
it only provides children of TaskTiles and can only reparent
ActivityStacks. Eventually, this can be expanded for nested
tasks or display areas.
Bug: 133381284
Test: Added TaskTileTest#testHierarchyTransaction
Change-Id: Id0e89a4e4b9352d9392349c4e1fe7d69b4f9f212
* changes:
Package manager is not ready when reading app-ops state
Use setUidMode when reading state
Expose syntax for app-ops settings as test-api
Callback startWatchingMode with the right op
Force update uid state when pending uid state is applied
Notify all packages is uid-mode is changed
This wraps our existing APIs for isChangeEnabled, and is exposed for
mainline modules to use.
Also upgrading PlatformCompatChangeRule to androidx to match with
frameworks coretests.
Test: http://aosp/1203413
Test: atest android.app.compat.CompatChangesTest
Test: atest com.android.tests.gating.PlatformCompatGatingTest
Bug: 142650523
Change-Id: I12b9436c2ea955e9b74228f150b872d6eb3a1081
We've decided to gate the text toast move on targetSdk due to an app
crash (b/148438364) but decided not to gate the background custom toast
block (in NMS) on targetSdk temporarily to gather dogfood and DP
feedback. This meant that app-rendered text toasts (which are only
possible for apps with targetSdk < 30) were being blocked in NMS since
they were being considered custom toasts.
This brings back the boolean inside Toast class that differentiates
between custom and text toasts for apps with targetSdk < 30, since both
are app-rendered in this case. This code won't be present on final
version and is temporary to gather feedback on dogfood and DP, since
almost no app currently targets SDK 30+. We'll gate both changes (the
system UI move and the bg custom toast block) on targetSdk later on.
Bug: 148761979
Bug: 148794147
Bug: 144754526
Test: Verify that, while on the background:
App with | Custom toast | Text toast
targetSdk < 30 | Blocked | Allowed
targetSdk 30+ | Blocked | Allowed
Test: atest android.widget.cts.ToastTest android.widget.cts29.ToastTest
LegacyToastTest
Change-Id: Id529028bc463034cd2f64a6f2f97e71bc6ea7c36
Renames PhoneTime[|Zone]Suggestion to TelephonyTime[|Zone]Suggestion.
Makes changes to generally avoid PHONE and use SLOT_INDEX or telephony
as appropriate for the usage. Removes telephony / phone from a few
variable names where it doesn't add value.
This commit also renames some remaining phoneId instances to slotIndex
which were missed when that rename happened.
Bug: 148842434
Test: treehugger
Change-Id: I4302e68082b802b75b53c02a9c9b1ae39dff6085
... in case the op has a switchOp.
Some ops have a switch-op. This means the mode of this op is not unique
to this op but shared with the switch-op.
E.g. FINE_LOCATIONs switch-op is COARSE_LOCATION.
Before R when you registered a startWatchingMode for FINE_LOCATION the
callbacks actually came for COARSE_LOCATION. Now the callbacks will
actually come for FINE_LOCATION
This is a subtle API change, hence guarded by a target-api change-id.
Bug: 148180766
Test: atest CtsAppOpsTestCases:android.app.appops.cts.ForegroundModeTest
Change-Id: I6bcb6f4876e524da65dd54c1d9f5cf1ce14c396c
This change prevent the recycled icon from writting to parcel. Some app
may recycle their icon while launch a new activity. Parceling tests is
added for TaskDescription.
Bug: 145504793
Test: Manual test with the reproduce steps in the bug.
Test: atest ActivityManagerTest:testTaskDescriptionParceling
Change-Id: Ib3bbfe6379419a0763c4d9da00cbd6670e488e1c
Manager(client)->Service(server) seems to be easier to understand.
Test: builds
Bug: b/136132412 b/133435829
Change-Id: I3bc447fbf7a7aac917df7b4632def75e0da3f1a0
Previously we passed back a SurfaceControl to the keyguard, updated to pass a SurfacePackage instead. The updated SurfaceControlViewHost logic addresses underlying accessibility bugs.
Bug: 136085151
Test: atest AdminSecondaryLockScreenControllerTest
Test: atest FrameworksServicesTests:DevicePolicyManagerTest
Change-Id: I4881d5766f118b99f497ee306cd71d3c5a65a2f3