summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/dagger/WMComponent.java
Commit message (Collapse)AuthorAgeFilesLines
* Remove FloatingTaskController & replace usages with BubblesMady Mellor2022-11-021-4/+0
| | | | | | | | | | | | Switch to using newly exposed method Bubbles#showAppBubble as what FloatingTaskController does is no longer POR. Calling this allows 1 bubble from a specific app to be added to the stack. The only user of this method is NoteTaskController which is guarded by the NOTE_TASK. Bug: 237678727 Test: treehugger Change-Id: I47c5c010a050796eff848ba3fcabc40cf5fbd902
* Add support to show apps on desktop in sysui proxyAts Jenk2022-09-261-0/+7
| | | | | | | | | | This enabled launcher to show all desktop apps when user clicks on the desktop tile in recents. This is only enabled when Desktop Mode feature flag is enabled. Bug: 244348395 Test: atest DesktopModeControllerTest Change-Id: I3c89ef01fd7d1f457a7afabda94b481711c0a350
* Support for a floating task window (behind a sysui flag)Mady Mellor2022-09-211-2/+4
| | | | | | | | | | | | | | | | | | | | | | Creates a new package within shell for floating tasks along with a basic controller and interfaces for sysui and launcher to use to manage floating tasks. A single floating task is allowed at a time and they can only be created if a sysui flag is turned on. The floating task is backed by a TaskView, floats above all other content, and can be moved via a handle at the top of the view. The view sticks along the left and right edges of the screen, can be stashed (similar to PIP), and can be removed by dragging to a dismiss target in the middle of the screen (similar to PIP & bubbles). The tests included trigger the sysui flag on and off to ensure the flag behavior (i.e. that you can't create one unless the flag is on). Test: atest FloatingTaskControllerTest Bug: 237678727 Change-Id: I490c44685825e14166869b2cf7c2994ee0e30ba7
* 6/ Removing unused code from previous cleanupWinson Chung2022-08-101-13/+0
| | | | | | | | | - No module overrides DisplayImeController now - ShellController injects ShellInit & ShellCommandHandler now Bug: 238217847 Test: atest WMShellUnitTests Change-Id: I09ca0aa50e83fa9c4bfe203a0e17cb750d4a5a82
* Remove ShellInit/ShellCommandHandler interfaces to SysUIWinson Chung2022-07-201-6/+13
| | | | | | | | | | | - SysUI now calls init/commands/dump via the ShellController interface - Move ShellInit/ShellCommandHandler into the sysui package since it's only called on sysui startup Test: atest WMShellUnitTests Test: atest SystemUITests Bug: 238217847 Change-Id: I7b05dbab7648cb8a8c6f9381b0b5f545ed3398f1
* Remove unused interfaces and controllersWinson Chung2022-07-201-16/+0
| | | | | | | | | | - Some interfaces only existed to propagate configuration or keyguard changes which now go through the ShellController. TaskSurfaceHelper is no longer used since game dashboard has moved to GMS. Bug: 238217847 Test: atest WMShellUnitTests Change-Id: Ie8c5a77bf7bd5b8cc5f4a1b2382013228b1e5e3d
* Add single interface for SysUI to call into ShellWinson Chung2022-07-181-0/+4
| | | | | | | | | | | | - Currently update configuration callbacks to use this interface so that individual features don't need to expose their own config change callbacks. Will followup with moving keyguard/shell init /shell command handler. Bug: 238217847 Test: atest WMShellUnitTests Change-Id: Id526ed588de8cf962e821a3b9e1933a67f354d77
* Revert^2 "Change SysemUIFactory to SystemUIInitializer."Dave Mankoff2022-07-141-2/+2
| | | | | | | | | | | Restores ag/18917521 Reverted in ag/15142270fe17845890d147aca8720a32b8c73ecf Test: Ran failed test in http://b/238359875 Bug: 235624311 Change-Id: I08457dac1aa09c44f0c9c02349e8c6773587cd84 Merged-In: I08457dac1aa09c44f0c9c02349e8c6773587cd84
* Remove App pairs related codes and filesTony Huang2022-05-091-4/+0
| | | | | | | | Bug: 199236198 Test: build pass Test: pass existing tests Ignore-AOSP-First: remove whole folder Change-Id: Iebd8803f53f1106d1b2df306ac239ad8c3765802
* Clean up the legacy split screen (9/n)Tony Huang2022-05-091-4/+0
| | | | | | | | | | | This should be final clean patch, remove legacy split screen package and its windowing modes Bug: 199236198 Test: build pass Test: pass existing tests Ignore-AOSP-First: remove whole package Change-Id: Ib2af42834938032bf525b8c16b1046b4c898b8d5
* Move wm component initialization to shell main threadWinson Chung2022-02-171-2/+11
| | | | | | | | | | | | | | | | | | | - Previously, mWMComponent.init() would make a blocking call to WMShell to initialize on the shell main thread. We're expanding that to include the construction of the shell objects as well to provide a little more consistency and predictability on the shell side (ie. fetching some statics may seem safe, but actually aren't). We're continuing to recommending that ctors don't include any initialization logic though Bug: 181979527 Test: Verify with trace that shell init happens on the shell main thread Test: atest SystemUITests Test: atest WMShellUnitTests Change-Id: I60559a47e00e91d34be7d4e94f4f3e041fdc590d Signed-off-by: Winson Chung <winsonc@google.com>
* Integration of back gesture animation on Sysui (BackNav 2/n)Vadim Caen2022-01-201-0/+4
| | | | | | | | | | | | This CL contains the BackAnimationController, on WMShell, which controls the gesture based animation. When the gesture is done, the animation is done. It will be handed over to a TransisionHandler (in the next CL) Test: atest WMShellUnitTests:BackAnimationControllerTest Bug: 131727607 Change-Id: Ifc2ed99bfd51079f12a83468ca44e4aa19460e47
* [1/n] Camera Compat UI: Refactor size compat mode UI controller.Mariia Sandrikova2021-12-111-2/+2
| | | | | | | | | | | | | | | | First CL in the chain that will add a camera compat UI control which will be used to correct stretched issues in TextureView and SurfaceView cause by apps not handling mismatch between camera buffers and view size correctly. This change is necessary because right now there are 2 instances of WindowlessWindowManager (SizeCompatUIWindowManager) in SizeCompatUILayout: for a hint and for a restart button. They are also positioned relatively by computing offsets in java code rather than by specifying layout with XML. This code structure will cause issues since with upcoming camera changes there will be a need to coordinate relative position of 4 UI elements (2 buttons and 2 hints). What is changing in this CL: - Majority of changes are simple renaming from "size compat UI" to "compat UI" since, starting from the next change, two different compat controls will be supported. - Merging 2 instances of SizeCompatUIWindowManager into one (CompatUIWindowManager) and for that create a joint layout in compat_ui_layout.xml - Merge SizeCompatLayout logic into CompatUIWindowManager since in absence of 2 instances of WindowlessWindowManager there is no good reason to keep them separate. - Merging and renaming tests to follow refactoring of the implementation. Test: atest WMShellUnitTests (the same set of tests should be sufficient since this refactoring just reorganized the structure of the implementation) Bug: 206602997 Change-Id: I7141c69b7ba4742c5b7b2018329b91a1b37b45bc
* Drag and drop to split transitionMady Mellor2021-11-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * DropZoneView represents a drop zone and handles animating the margins around it along with the splashscreen or highlight when the user drags into or out of the zone. * DragLayout hosts two of these views and populates them with the relevant app info for the splashscreen * While dragging the status bar is hidden Test: manual/visual on large screen device: - have an app open and drag and drop an app to split - try this in portrait and landscape - try dragging between the two drop zones - try releasing not in a drop zone - have two apps already in split and try dragging a different app to split - have an app open and get a notif, drag it to split - verify that the status bar hides while dragging and shows again (and is interactable) after dragging is done - trigger the drag and drop UI, then switch theme and trigger again, it should match the new theme => verify that the animation looks correct / matches mocks Test: atest WMShellUnitTests Bug: 202017826 Change-Id: I806e8ff8ba30d01b9b47d12aa0987cec7aeb7d0c
* Remove all size compat UIs when the keyguard becomes occludedtomnatan2021-11-171-2/+6
| | | | | | | | | This is needed because when a non resizable activity is launched over the lockscreen and a size compat restart button is displayed (after fold/unfold), clicking on it results in undefined behavior that seems broken. The solution to hide the restart button in such cases was a UX decision. Fix: 202712269 Test: atest WMShellUnitTests:SizeCompatUILayoutTest Test: atest SystemUITests:WMShellTest Change-Id: Iced3948e0d7a37feb2f3422a7f25a22aab20a888
* Move dagger modules into shell library for reuseWinson Chung2021-11-051-2/+3
| | | | | | | | | | | | | | - Certain system ui implementations which use the shell don't depend on SystemUI-core, which means that the dagger modules for providing the core Shell components need to be copied (which makes it more cumbersome to make changes). Instead, move these modules back into the shell lib for any SysUI app to reference. Bug: 205019015 Test: make SystemUIGoogle Test: make CarSystemUI Test: make ArcSystemUI Change-Id: I8dc938a7695972f9d7b3d7ea8e3ce65a7b454b13
* Add shell recents interfaceWinson Chung2021-11-041-0/+4
| | | | | | | | | | | | - Add a shell component and interface for Launcher to use to get recent tasks including paired splits (pending integration w/ split controller) Bug: 202740477 Test: atest WMShellUnitTests:com.android.wm.shell.recents.RecentTasksControllerTest Signed-off-by: Winson Chung <winsonc@google.com> Change-Id: I34d834061ed2391d89cf56d6a2fd262868707674 Merged-In: I34d834061ed2391d89cf56d6a2fd262868707674
* Synchronize screen turning on and unfold overlayNick Chameyev2021-10-151-0/+4
| | | | | | | | | | | | | | | | | | | Changes unfold overlay implementation from a window to surface control view host. To make sure that the unfold overlay is drawn by the time when we remove screen blocker we synchronously apply a transaction with drawn overlay and apply another empty transaction with vsyncId+1. Also these changes disable the unfold transition when using power button by filtering only first screen turning on events after unfolding the device. Bug: 197538198 Test: manual fold/unfolds Test: killing SysUI process, checking rotation animation, magnification Test: atest com.android.systemui.unfold.updates.DeviceFoldStateProviderTest Change-Id: I8e0bc635b041595602145b313548b14fcabd157e
* Add TaskSurfaceHelper/Controller in WMShell to plumb game mode to SFAdithya Srinivasan2021-05-271-0/+4
| | | | | | | | | | TaskSurfaceHelper(Controller) will be used as an interface to communicate with the SurfaceControl of the underlying Task. This change adds a function to set the game mode metadata for the task layer. Bug: 186025682 Test: atest TaskSurfaceControllerTest Change-Id: I136b65636b98e1883eaf9e4f4f0b34c61350d4e4
* 2/ Add mechanism to expose other features directlyWinson Chung2021-03-181-2/+2
| | | | | | | | | | | | - Expose interfaces for splitscreen, one handed, shell transitions, starting window - Make the shell code only reference the starting window controller and not the exported interface Bug: 180074017 Test: atest WMShellUnitTests Test: Verify Pip calls from Launcher work Change-Id: Idafed90a8ed3382adfb4322b4b1797237be86a90
* Revert "2/ Add mechanism to expose other features directly"Winson Chung2021-03-151-2/+2
| | | | | | | | | | | | | | | | | | Revert "Add shell aidl files" Revert "Update starting window init call for CarLauncher" Revert submission 13608835-shell_feature_interfaces Reason for revert: SysUI Studio aidl import issue Reverted Changes: I49a5a0419:2/ Add mechanism to expose other features directly... I19425896d:Update starting window init call for CarLauncher If048d2cd9:1/ Add mechanism to expose shell feature directly ... Ibb8365d3c:Add shell aidl files Ie41b0b77a:Update calls to go through the feature interface i... Change-Id: I8bacc844fc3f0447311b5a97c4d356f2fb80f3ce
* 2/ Add mechanism to expose other features directlyWinson Chung2021-03-121-2/+2
| | | | | | | | | | | | - Expose interfaces for splitscreen, one handed, shell transitions, starting window - Make the shell code only reference the starting window controller and not the exported interface Bug: 180074017 Test: atest WMShellUnitTests Test: Verify Pip calls from Launcher work Change-Id: I49a5a0419996754e5e154df7af1e475268035a5a
* Extract StartingSurface interface on WMShellBaseModule(7/N)wilsonshih2021-02-261-0/+4
| | | | | | | | | | | Decouple the dependency for the rest CLs. Bug: 73289295 Bug: 131311659 Test: atest WindowOrganizerTests StartingSurfaceDrawerTests SplashscreenTests Change-Id: Ifd323714184fad285b4d65f8c86c9b8feafc2374
* 11/ Clean up usage of exported interfaces from internal controllersWinson Chung2021-02-091-1/+12
| | | | | | | | | | | | | | | | | | | - Adding documentation for dagger setup for shell - We should only reference the controllers from shell code instead of through the external interfaces. This reduces the number of exposed methods, and is also more direct (it ends up in the controller anyways). This means that the base module will provide the controllers separately and we can remove some duplication in the create methods for the controllers (except in cases where it's doing other initialization) - Remove SizeCompatUi interface since it's not actually used in SysUI - Group related dependencies in the module to make it a little eaiser to parse Bug: 161979899 Test: atest WMShellUnitTests Test: atest SystemUITests Change-Id: I07c2c002b87ffd127ebfce67b5485ff47d127e1f
* 9/ Update transitions/starting window for shell threadWinson Chung2021-02-071-7/+2
| | | | | | | Bug: 161979899 Test: atest WMShellUnitTests Test: atest SystemUITests Change-Id: I0afbacd0db32ef02f1e178f7a53b16df5b64449b
* Add sysui support for remote transitions in shell transitionsEvan Rosky2021-01-141-0/+5
| | | | | | | | This is the sysui portion of the changes. Bug: 169035082 Test: launch app from launcher and observe the icon animation Change-Id: Ia3866bda975ce99bd8307df625b49f8cad3b87ed
* Baseline support for main/side stage split-screen modelWale Ogunwale2021-01-131-0/+4
| | | | | | | Bug: 175416931 Test: atest StageCoordinatorTests StageTaskListenerTests Test: atest MainStageTests SideStageTests Change-Id: Ib5f000599d09d6a07b559aa8a06e5786541f2324
* Migrate DetailDialog from ActivityView to TaskView.Yuncheol Heo2021-01-081-0/+4
| | | | | | | | | - Remove the task in TaskView when releasing the view. - Known issue: b/175918200 - Padding doesn't work in TaskView. Bug: 165794075 Test: Launch power menu control and check if long-press on the control launches an Activity. Change-Id: I94bb85ac6752caebefce65dd781d05a57e9453ba
* Basic support for split-screen in new transition systemEvan Rosky2021-01-071-1/+1
| | | | | | | | | | | | | | | | | | | Sends the "trigger" taskinfo associated with a transition when applicable. This can be used by the transitionplayer to make decisions about how to start and play transitions. Additionally, TaskInfo is provided in each Change object if they are tasks. This provides all the information needed to choose how to handle split. Shell's transitionplayer makes use of this to add support for "handlers" to deal with specific transition requests. Currently a single handler is added to process split-screen transitions. Bug: 169035082 Test: Use split-screen (enter, exit via swipe up/down, exit via dismiss top) Change-Id: I53a03dd85cb260505e66d5d87a34afa4ab1f8cc8
* Rename splitscreen package to legacysplitscreenWale Ogunwale2020-12-141-2/+2
| | | | | | | | | | Split-screen implementations moving forward would be based on app-pairs and main/side stage models. So, renaming existing package to avoid confusion. Bug: 175416931 Test: They pass! Change-Id: I55ab1d27fb1c00ba7a58d685ea7eb2840efb9437
* Make positioning in letterbox mode configurable.Mariia Sandrikova2020-11-171-2/+2
| | | | | | | | | | | | | Changes: - Allow to specify in config_letterboxPortraitGravity and config_letterboxLandscapeGravity desired alignment for letterboxed apps. - Add ADB commands to allow overriding these config values for testing - Move positioning logic for letterbox mode from WM Core to WM Shell. Test: atest LetterboxTaskListenerTest LetterboxConfigControllerTest Test: go/wm-smoke Test: manual with adb shell dumpsys activity service SystemUIService WMShell (get)set-letterbox-portrait-gravity / (get)set-letterbox-landscape-gravity Fix: 170216257, 170215849 Change-Id: I8e6392faab05bec1bf61b9691f3bd9b8b09b9621
* App-pairs baseline commitWale Ogunwale2020-11-131-0/+4
| | | | | | | | | | | | | | | | | | | | | - AppPairs: Main interface used to pair and unpair tasks. - AppPairsController: Main controller for app-pairs and implements AppPairs interface. - AppPair: Manages a singal instance of an app-pair consisting of a root task and 2 other tasks that are paired together. - AppPairPool: Helper object pool for AppPair class so we don't have to wait for a root task creation from system_server when we need an app-pair. - adb shell commands for pairing and unpairing tasks Test: adb shell commands for pair/unpair adb shell dumpsys activity service SystemUIService WMShell \ pair taskId1 taskId2 adb shell dumpsys activity service SystemUIService WMShell \ unpair taskId Test: AppPairTests, AppPairsPoolTests, AppPairControllerTests Bug: 172704672 Change-Id: Ie0a70c1aa764ad83b763931501234c1960251ca4
* Support hide display cutout with display areashawnlin2020-11-111-0/+4
| | | | | | | | | | | | | | - Added a new DisplayArea feature for hide display cutout - Added a new config for enable/disable hide display cutout - Resize and shift display areas to exclude the cutout areas. - Force dark status bar when there is a cutout area at top - Update bounds & offsets for different rotations. Bug: 157388722 Test: atest HideDisplayCutoutControllerTest atest HideDisplayCutoutOrganizerTest atest WMShellTest Change-Id: Iad2c8b1eff1ea4523f8a7e362c9e851d8594141c
* Clean up task stack listenersWinson Chung2020-11-061-10/+0
| | | | | | | | | | | | | | | | - Have shell provided a task stack listener that various controllers can add to, and remove registration from outside the controllers (this also removes methods on the interface exposed only for use from the task stack listeners) - Move copy of InputConsumerController into shell (shared lib version can probably be refactored into use just by launcher for gesture nav) - Hide remaining wm components that are exposed now that all the features are in the Shell Bug: 169894807 Test: atest WMShellUnitTests WMShellTest Test: Verify Pip/Split/One handed still behaves as expected Change-Id: If0f50f6b701ac4b013a9e41fe6f88857ea35bf5b
* Migrate Bubbles to wm-shell (5/n)Tony Huang2020-11-041-2/+4
| | | | | | | | | | Move bubbles package and related resources to shell package, also copied some used codes and resources. Bug: 161980186 Test: atest SystemUITests Test: atest WMShellUnitTests Change-Id: Ia108bd4149b3c3bf86631ba1a7a6bce0e76af78f
* 1/ Add basic infra for global drag handling in the ShellWinson Chung2020-10-231-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | - Add private window flag INTERCEPT_GLOBAL_DRAG_AND_DROP (protected by MANAGE_ACTIVITY_STACKS permission) to be considered as a part of the normal flow for global drag and drops even if the window is not visible. In addition, the window with the flag receives the clip data on DRAG_STARTED and the drag surface on DROP. If the window consumes the drop, then it will relinquish cleanup of the drag surface from the system. - Add MIMETYPE_APPLICATION_ACTIVITY for an app to report that they are starting a global drag of an activity. The associated data must include an intent with the pending intent and user to launch the activity for. - Add a test drag handler on the shell end to receive the drag, setup a drag layout, and just launch the intent (for now). Bug: 169894807 Test: atest DragDropControllerTest Test: atest DragDropTest Change-Id: I7f5cdca3cf515b693a8f1e507e90e22a670b5fa6 Merged-In: I7f5cdca3cf515b693a8f1e507e90e22a670b5fa6 Signed-off-by: Winson Chung <winsonc@google.com>
* Isolate shell dependenciesWinson Chung2020-10-191-13/+39
| | | | | | | | | | | | | | | | - Add initializer path for required shell dependencies - Move shell dependencies into WMComponent scope, and expose shell features to SysUIComponent explicitly - Moved temporary Bubble's specific dependencies to global scope until the migration finishes Bug: 162923491 Test: atest WMShellUnitTestsWMShellUnitTests Test: make SystemUIGoogle CarSystemUI ArcSystemUI AAECarSystemUI Test: Verify pip/split/onehanded/bubbles still works Change-Id: Ibaa8b5a718f32a1fff49d1756a18a009d6ad164f Signed-off-by: Winson Chung <winsonc@google.com>
* Stand up an example of a WMShell api.Dave Mankoff2020-08-261-0/+17
| | | | | | Fixes: 166173556 Test: manual Change-Id: I43e3ebeddb48430ae76f8f58027363c048fb4d83
* 2/N: Introduce WMComponent and SysUIComponent.Dave Mankoff2020-08-111-0/+35
This creates the primary subcompents that will divide WindowManager from SystemUI Core. Bug: 162923491 Test: manual Change-Id: I43f88d5356f023bd2785cf76635bfc9aec0c82b6