To accompany the rear display API's to allow
apps to move their content to the cover screen
on a foldable device, to use the powerful rear
cameras for selfies, there needs to be a consisten
educational dialog to let users know what is going
to happen. This will be shown for all apps that use
the rear display jetpack API's, to keep consistency
and remove any knowledge an app would have to know
about the device they are on.
Bug: 207686851
Test: Manual RearDisplay flow testing
Change-Id: Ib9e2b286c0d84e2411f19f7cf0b0397486e4d4b1
This is the content provider that wallpaper picker will be using to
query for slots, affordances, and selections, and for setting or
unsetting selections.
Fix: 254857637
Test: Manually verified the API by
issuing adb shell content commands and seeing affordances appear and
disappear on the actual lock screen.
Change-Id: Ia47a8ee322028042bb3e118ddb82a92a27eae191
Merged-In: Ia47a8ee322028042bb3e118ddb82a92a27eae191
This is the content provider that wallpaper picker will be using to
query for slots, affordances, and selections, and for setting or
unsetting selections.
The CL also includes a contract definition and "client" utility
functions that any customer can use to query and update the content
provider.
Fix: 254857637
Test: end-to-end unit tests included. Manually verified the API by
issuing adb shell content commands and seeing affordances appear and
disappear on the actual lock screen.
Change-Id: Ia47a8ee322028042bb3e118ddb82a92a27eae191
This is the content provider that wallpaper picker will be using to
query for slots, affordances, and selections, and for setting or
unsetting selections.
The CL also includes a contract definition and "client" utility
functions that any customer can use to query and update the content
provider.
Fix: 254857637
Test: end-to-end unit tests included. Manually verified the API by
issuing adb shell content commands and seeing affordances appear and
disappear on the actual lock screen.
Change-Id: I08eefc931dcc7b5133c412f7b97715fedfe84f30
- We need to add this action in the platform so that WearOS can also handle it, not only SysUi.
- Add tests for MediaOutputDialogReceiver class.
- Add android:priority=1 to the MediaOutputDialogReceiver so that it's always the default handler for the action.
Bug: 246997969
Test: atest MediaOutputDialogReceiverTest
Change-Id: I25d60eef7d4170b5f0b748b9b61ebf043a7c189c
This change is to implement device log access dialog from SystemUI rather than
system server.
Bug: 238434889, 244173014
Test: GtsVerifier
Ignore-AOSP-First: migration of device log access dialog
Change-Id: I17058c008084f91099cd45a51ec8d8fbab1d78bb
For near-field file-based audio transfer and
explicit user audio interaction.
Bug: 253416313
Bug: 235618473
Test: m -j
Change-Id: I4379f395496f0c49936798f74222a767ed79385c
Dispatches any system `KeyEvent` from `PhoneWindowManager` to SystemUI, allowing SystemUI to handle the KeyEvent with custom behaviour. How the `KeyEvent` is handled will depend on the context:
- If user is in the lockscreen, it will launch a full screen experience.
- Otherwise, it will launch a floating task.
Once the context is decided, we will query for any Activity that can handle the new action `android.intent.action.NOTES` to execute the launch. If no `Activity` is available, nothing will happen.
To enable the feature, one must run the following ADB commands:
- adb shell setprop "persist.wm.debug.floating_tasks" 1 # enables floating windows
- adb shell setprop "persist.wm.debug.floating_tasks_as_bubbles" 1 # optional: enables bubble windows
- adb shell setprop ""persist.sysui.debug.note_tasks"" 1 # enables note tasking experience
- adb reboot # restart to load the new configs
Test: atest SystemUITests:WMShellTest
Test: atest SystemUITests:NoteTaskControllerTest
Test: atest SystemUITests:NoteTaskInitializerTest
Test: atest SystemUITests:NoteTaskIntentResolverTest
Fixes: 248274123
Change-Id: I36f30b3cbfe9e538729471d531b1b4b770738544
In order to be able to proxy the permissions to read/write the
screenshot when editing/sharing, the intents must be launched from a
service running *as* the work profile user (if the screenshot is work
profile). That is done with ScreenshotProxyService.
In order to untangle action execution to accomodate this, I created
ActionIntentExecutor, which does the following:
1. Dismisses the keyguard
2. Launches the intent (either directly if it's the main user, or
delegating to the cross profile service if it's not)
3. Override some transition logic for shared element.
This flow is used whenever the work profile flag is set (it works for
either profile, but is required for work profile).
Once we switch to this model, we can drop a lot of the
SaveImageInBackgroundTask action code, drop ActionProxyReceiver entirely,
etc.
Extracted intent creation to its own class so it could be tested.
All behavior changes covered by currently-off flags.
Known issues:
1. This doesn't fix smart actions
2. If you do an action on the lock screen, the bouncer doesn't come up
in the new implementation. I verified that the same call is being
made and it's even getting to the bouncer's show() call but haven't
figured out what's wrong here yet.
Bug: 231957192
Test: manual sharing and editing screenshtos of wp and non-wp apps.
Change-Id: Id2b423c22d209fc73f796ed6ba6e3d153e0f638e
Test: Manual on mobile (try to download & attach a wallpaper, check that
nothing breaks)
Test: atest ImageWallpaperTest
Bug: 243402530
Change-Id: I5af1acf08bb1c43a5e119597a9cef2ea667723c3
Move most of the logic of the Settings' volume panel to a SystemUIDialog
to make the dialogs consistent with other system dialog.
Bug: 202262476
Test: manual build and launch the new dialog.
Change-Id: Ic27dcca77072dee2b78827e1eb58c28022b47265
This reverts commit 633f19a08e.
Reason for revert: fails CTS test. Cannot add this for security reasons: b/243542908
Change-Id: I35f06ae38776eb58c1ec5e7e1252084e36a42617
When a request is received, screen contents are inspected
to determine the most appropriate owner. If the primary
content belongs to a work profile app, the screenshot will
be isolated to the task content.
See: go/work-profile-screenshots for details.
This change also enables the foreground app package name to
be provided with uievent logging.
Additional functionality to follow.
To activate, enable the flag WORK_PROFILE_SCREENSHOT_POLICY
adb shell cmd statusbar flag 1301 on
This also requires the flag SCREENSHOTS_REQUEST_PROCESSOR
adb shell cmd statusbar flag 1300 on
Bug: 159422805
Bug: 231957192
Bug: 200294244
Test: atest RequestProcessorTest
manual; enable flags,
take screenshot of launcher
take screenshot of work profile app
observe logs and screenshot content
Change-Id: Idc74b04ddd449bfd9765ab9a456e9f9344c3aa2c
Add this permission to enable the UserManager to read if the user is in
a call and determine user switchability.
Bug: 242957252
Test: Built on device and switched users.
Change-Id: I09bb8fea927d78d0d44d70c6e19e8868edd0d612
Adds an activity that inherits ChooserActivity
to select an app in the partial screen sharing
flow under a feature flag.
It doesn't have a proper visual design, analytics,
enterprise policies handling.
Bug: 218314434
Test: start partial screen sharing
Change-Id: Ia7d9ae07e2ef35d33f85530f26cab4e6cdc1f94a
* Instead, set the background in the auth_biometric_background view
* This fixes a bug where there is an infinite loop to start the confirm device credential intent
Bug: 234536059
Test: Manual testing with TestDPC
Manual testing steps
* Setup device with TestDPC
* Set a work lock
* Open TestDPC in the work profile
* Select "lock now"
* Verify there is no infinite loop
Change-Id: I866e3d48a66e562050ad89ebc7f2ae0ac0455737
Add/fix content descriptions for content preview, share button and remote copy.
Add labels for the overlay window and the edit activity.
Reset timeout on hover so that a11y exploration keeps the UI up.
Bug: 232485623
Bug: 232494683
Bug: 232487324
Test: Manual evaluation with talkback enabled.
Change-Id: I995083a8b00f68d85d0a1c3f699a7f27a3c40aad
* Remove existing coloured background.
* Add a background with a layout that includes a
badged icon of the app being opened.
Manual testing steps:
* Set up device with a work profile using TestDPC
* Set a fingerprint in the work profile
* Open a work app
* Lock the device
* Verify the background protection is shown behind
the biometric prompt
Screenshots:
* Dark mode: https://screenshot.googleplex.com/3SwGWrBREYoZFaH
* Light mode: https://screenshot.googleplex.com/8bzX9wLoFGJ2ado
Bug: 206761107
Test: Manual testing
WorkLockActivityControllerTest
TaskStackListenerImplTest
Change-Id: I90d117a97d7457a3186953c16db8bd0bbac048ed
This makes the Tv Pip move away from the dialog in order to not cover
its content
Bug: 227596282
Test: manual: start activity in Pip; start Duo and send:
adb shell cmd sensor_privacy enable 0 microphone && \
adb shell appops start com.google.android.apps.tachyon 27
Change-Id: Ifb0a11cc6c09b2b088d8a28c6016b831f5c57ac9
SystemUI runs as user 0, we shouldn't be spawning new instances in other
users.
Bug: 227350805
Test: Manual
Change-Id: Ifd7c810ddbdb0c623a4f09d858ced1b7c814482b
Even if the app's notifications are disabled.
Test: NotificationManagerServiceTest
Test: NotificationInfoTest
Test: manually call device
Fixes: 227456870
Change-Id: Ib218e57d585a6066ddbc713d2d3a8445ac959ad2
It's read out by accessibility. Otherwise it just says "system UI".
Test: Enable talkback, listen when activity is invoked.
Bug: 208713927
Change-Id: I0d1714fc6492221cd803affaea1de7833f560749
This adds ag/17208491 (check compat change with UserHandle) to the
original change
da972b8c71
Bug: 220034304
Test: manual
Test: make tradefed-all javac-check -j64 RUN_ERROR_PRONE=true
Test: atest PlatformScenarioTests:android.platform.test.scenario.sysui.media.QSMediaPlayerContent
Change-Id: Ibaec0c9a0443fd3b0f2c5fae7c74b2110371b425
Revert "Update media flag descriptions"
Revert submission 17161599-b220034304-media-compat
Reason for revert: This seems to cause the break in b/224895002
BUG: 224895002
Reverted Changes:
Ifeecb4e13:Update media flag descriptions
Ie032fe9ec:Use compat framework to gate session actions
Change-Id: I8b309a69282f41b4a45bd82bd3dcc9f85751da7e
Adds CompatChange to check if an app posting media controls targets T,
and if so, that app's controls will use PlaybackState actions.
Otherwise, the notification actions will be used.
The MEDIA_SESSION_ACTIONS flag is set to false by default, and can be
used to override this and use session actions for all apps.
Fixes: 220034304
Test: atest com.android.systemui.media
Test: manual - verify in developer settings, override behavior works
Change-Id: Ie032fe9ec8ce7d46b1f9dc8f590ed6fbfa7ee9aa
Moved the findMaxColumns function from ControlsUiControllerImpl to
ControlAdapter to be used as a shared functin. It is used across 3
files.
I removed orientation from configChanges in the manifest so that the
recyclerview can recalculate max columns again after rotation.
I moved the spanCount calculation one level higher so that we can set
the spancount for ZONE type view holders to be the max number of
columns. This makes it so that the view holder will take up the whole
row.
Fixes: 222729341
Test: manual test on device
Change-Id: Id0819e417c8d5995474abb0a8060ee9e694fe4a7
Also add some javadoc to CentralSurfaces.java to make its purpose
slightly clearer.
Bug: 197137564
Test: compiles
Test: atest SystemUITests
Change-Id: Id06e7ba7641d6d2bc276cce57101c9c7236bc758
Merged-In: Id06e7ba7641d6d2bc276cce57101c9c7236bc758
The code that checks for the captions service component will be removed
once the integration in the system captions side will happen.
Also cleans up the unused stream opt-out property.
Change-Id: I606f0d7a5319bbdc54b2e853fb70ea44ff9645a0
Bug: 221021539.
Bug: 136282740.
Test: Manually.
media devices from external clients.
Bug: 216313420
Test: CTS included in same topic
Test: atest NearbyMediaDevicesManagerTest
Change-Id: Ic5f26d3048a3475dbd232c913bb00bee46339b0a
Supports fullscreen user switcher launched from QS, and enabled by
config_enableFullscreenUserSwitcher. Allows adding guests, with
support for adding new users coming shortly. First round of work on
this feature.
Bug: 217365397
Test: atest UserSwitcherControllerTest
Change-Id: Ib81f44c9b950830a7d89b95cbaef53b7228ed5a4
This migrates the media transfer from just a service to a full-fledged
@SystemApi. Some of the testing infrastructure has not yet been migrated
to keep this CL slightly smaller.
Bug: 216318437
Test: systemui media.taptotransfer tests *still need to be updated*
Change-Id: Idf1f72de1343020668e158d74051c1dfb970cfcd