summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/Dependency.java
AgeCommit message (Collapse)Author
2022-03-15Merge SP2A.220305.013Haamed Gheibi
Bug: 220074017 Change-Id: Idfdd94e902f656ac65a2a75dfdd199f6f85ba472
2021-08-24[Provider Model] Cherry-pick from master ag/15008434, ag/15023697 and ↵Zoey Chen
ag/15023698 Add InternetAdapter for Wi-Fi network in internet dialog - Set each Wi-Fi entry into recycle view - Add InternetAdapterTest for unit test Add InternetDialog for showing current networks - Set mobile data layout - Set connected Wi-Fi layout - Set recycle view and adapter for Wi-Fi entries - Add InternetDialogTest for unit test Launch InternetDialog from tile and onReceive - Call from SystemUI: Inject - Call from outside: Receiver Bug: 187779230 Test: build pass Change-Id: Ib127ad43831ada06fa6a07802b3648b30faac5b0 Merged-In: Ib127ad43831ada06fa6a07802b3648b30faac5b0
2021-07-21Hook up the sysui backend for status bar content rectsEvan Laird
StatusBarContentInsetsProvider provides the sysui backend for the windowmanager api to communicate the location of the privacy indicators to apps. This CL hooks up that backend to the dot view controller and the PhoneStatusBarView, which provides us with a stronger guarantee that things are working and codifies the places where status bar content layout can be changed. Also in this CL is a better dot positioning algorithm that will ensure there is no flickering when the dot needs to rotate. Test: manual Bug 187973222 Change-Id: I3dba7719ac4c4d178c9ec5265865961dbd0450f9 Merged-In: I3dba7719ac4c4d178c9ec5265865961dbd0450f9
2021-07-20Use a different context when constructing an EdgeBackGestureHandler.Dave Mankoff
Fixes: 193758967 Test: atest SystemUITests Change-Id: I7417ccd3899ffba05411ebb4e56c255f6ef09f54 Merged-In: I7417ccd3899ffba05411ebb4e56c255f6ef09f54
2021-07-16Use Provider for EdgeBackGestureHandlerDave Mankoff
Ensures that EdgeBackGestureHandler is not a singleton. Fixes: 193758967 Test: atest SystemUITests Change-Id: I13f0130b57cf19d2ec8c3c4285a6785aba076486 Merged-In: I13f0130b57cf19d2ec8c3c4285a6785aba076486
2021-07-01Revert systemui status bar provider model behaviorEvan Laird
This CL reverts the status bar provider model behavior. It removes the logic to show only one icon at a time, and removes showing the call strength indicators. This change keeps the Internet tile, and decouples SystemUI from the system setting SETTING_PROVIDER_MODEL. Bug: 191903788 Test: atest SystemUITests SystemUIGoogleTests; manual Test: test with a SIM and a Wi-Fi connection and there should be both icons in the status bar and quick settings with this change. As well as the Internet tile should stay (rather than going back to the Cell and Wi-Fi tiles). Change-Id: I017c10e4d7c1b15b152c44d092695dbc77e4a0ec Merged-In: I017c10e4d7c1b15b152c44d092695dbc77e4a0ec
2021-05-05Add UiEvent logging for NOTIFICATION_REMOTE_INPUT_(OPEN|CLOSE|SEND|FAILURE).Yuri Lin
This adds the logging to RemoteInputView.java, where ACTION_REMOTE_INPUT_* were logged for Tron, in the same places as the existing Tron logging that this will eventually replace. Test: atest RemoteInputViewTest; statsd_testdrive verified that events were logged with new IDs Bug: 159697717 Change-Id: Ice4c274bfb114f90006a02dd895d92bbb701ecae
2021-04-27Recognize the Back Gesture in the FalsingManager.Dave Mankoff
Remove calls to Dependency.get from EdgeBackGestureHandler, making it injectable. Bug: 186011223 Test: manual Change-Id: I3d5e6b27f6afa46dcee88b6818f0b19722181421
2021-04-14Phase 1 of status bar system event animationsEvan Laird
Sketch of how things might work: - SystemEventCoordinator ties together arbitrary events and funnels them to the scheduler - Scheduler - a very simple prioritization and scheduling utility, since we don't want a spammy status bar - Animation controller - this class is probably going to evolve the most. Once an animation has a clear path, this class will actually make sure views are visible and allow individual view to animate in and out properly. It also potentially keeps the status bar open in immersive mode This CL stands up a couple of things meant to achieve system animations (currently only privacy items) that live in the status bar: 1. SystemStatusAnimationScheduler - simple prioritization queue which can take requests to play system status animations. It also handles the running of said animations by maintaining ValueAnimators and providing callbacks for the system to get out of the way while animations are happening. 2. SystemEventCoordinator - This is the front end for generating system events which trigger animations. Pretty simple, it sends StatusEvent objects to the scheduler to maybe play the relevant animation. 3. StatusEvent - Events are sent to be scheduled, and wrap a priority int. They also create the view that is to be animated (still WIP) 4. SystemStatusChipAnimationController - handles the presentation of the chip view. Still needs to be updated with prettier animations 5. PrivacyDotViewController - the most bespoke of classes added here. controls the location of the privacy dots (more on this below) System spaces are expected to listen for callbacks from the scheduler and do whatever is appropriate to get out of the way. E.g., hide the status bar system elements, keep the status bar window open in immersive mode, or hide keyguard elements. And finally, a note on the dot: for reasons(tm), the dot lives in ScreenDecorations. But since screen decorations creates very special windows that don't "just rotate", the locations are controlled by the PrivacyDotController. However, to create the illusion that the dots are in the status bar, they are always positioned on either side of where the status bar happens to be. Bug: 177323724 Test: coming soon to a theater near you Change-Id: If528bd7e9d1e0ca3be7391f83f7416fa10e7a41b
2021-03-23Create central TelephonyListenerManager.Dave Mankoff
The TelephonyManager doesn't like have "too many" listeners registered on int at any given time. It will actually throw exceptions when this happens. To lighten the load from the SystemUI side, TelephonyListenerManager now ensures that only one listener is ever subscribed at any point. SystemUI can now use this class instead, piggy-backing on the possibly already subscribed listener to retrieve the events it cares about. Also, use Executors in CarrierTextController instead of Handlers. Bug: 179775696 Test: atest SystemUITests Change-Id: I626e80a91396161022e1fc6387598521f77bf4fc
2021-03-19Handle the basic logic to show or hide accessibility floating menujasonwshsu
* AccessibilityFloatingMenuController will listen to the changes from AccessibilityButtonTargetsObserver and AccessibilityButtonModeObserver then handle the visibility of FloatingMenu * Add abstract class SecureSettingsContentObserver to handle a registry of listeners of specific types and dispatch changes to child Cherry picked from commit 523514fd24d72b8420c0ca184643751980e6f218 Bug: 173940864 Test: atest AccessibilityButtonTargetsObserverTest AccessibilityButtonModeObserverTest AccessibilityFloatingMenuControllerTest Change-Id: I07fded55340644bce84a3f17a7a4da950268d2d2 Merged-In: I07fded55340644bce84a3f17a7a4da950268d2d2
2021-02-24Auto-add ReduceBrightColorsTile to QS panel.Sally
Test: Manual, AutoTileManagerTest Bug: 128465252 Change-Id: I735724658be186415604c89e66cf2ca3d586d719
2021-01-11Add NavigationBarOverlayController.Peiyong Lin
A NavigationBarOverlayController is used to create and control buttons floating as an overlay with the navigation bar. Minor: Fix import order per lint error. Bug: b/176190597 Test: manual Change-Id: I9ce574f7a1c38baad12b4fc45a7799e07127fe87
2020-10-28Migrate Bubbles to wm-shell (4/n)Tony Huang
Move BubbleController sysui dependent code to new class BubblesManager and remove using of Dependency of Bubbles. TODO: Tests still need to be remain on sysui, find suitable method to test both classes independently. Bug: 161980186 Test: atest SystemUITests Change-Id: I7be1dfb81f7ddfb5fc20b180fc5affb7a1d8e93c
2020-10-19Isolate shell dependenciesWinson Chung
- 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>
2020-10-06Update OutputSwitcher from SettingsPanel to MediaOutputDialog in SystemUItimhypeng
-Put MediaOutputDialogFactory in Dependency provider -Inject MediaOutputDialogFactory in MediaControlPanel -Use Dependency.get() to get MediaOutputDialogFactory in MediaTransferManager -Use MediaOutputDialogFactory.create() to launch dialog in MediaControlPanel and MediaTransferManager Bug: 155822415 Test: atest MediaControlPanelTest DependencyTest Change-Id: I1b393d43bf4c7c869a3066404c9755ebef5f9c76
2020-09-25Merge "Add Executors to Dependency" am: 40ecd434e4 am: 5565ad41ef am: ↵Treehugger Robot
b3af577b3d am: 47a73ac9ac am: f3bcbd5bd2 Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1437251 Change-Id: I0668fc6154541bdf36ab9005f606ec2a76858193
2020-09-25Merge "Add Executors to Dependency" am: 40ecd434e4 am: 5565ad41ef am: ↵Treehugger Robot
b3af577b3d am: 47a73ac9ac Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1437251 Change-Id: Ieb63a9be346d1855e1f39c4a3f15ea969e6518dc
2020-09-24Add Executors to DependencyFabian Kozynski
Test: manual, trigger KeyguardBottomAreaView#launchVoiceAssist Fixes: 167421921 Change-Id: I9b366f2fb69f47e0fb7bf19ced0c5382d0bb9c7c
2020-09-22Migrate Bubbles to wm-shell (1/n)Tony Huang
Create Bubbles interface and optional mechanism The Dependency using still remain in some class will remove or refactor in follow-up CL. Bug: 161980186 Test: atest SystemUITests Test: manual Change-Id: I88e5cc6ead1c56985aac07fe8eac39f08f114248
2020-09-17Remove NotificationBlockingHelperSteve Elliott
Test: manual, atest Change-Id: I807ff02212a5a4c9cffd5d19f79a70f5a980e2bb
2020-08-26Create NotifGroupManagerHelper interfaceBeverly
This fixes group expansion for the new notif pipeline. Creates a new interface, NotifGroupManagerHelper, which helps controllers determine group information (ie: summary, parent, children) given a notification entry. This is necessary for parts of the notification pipeline that are shared between the old and new pipelines that require querying group information (ie: HighPriorityProvider, PeopleNotificationIdentifier). Many parts of the old pipeline directly inject NotificationGroupManagerLegacy. This indicates that when migrated to the new pipeline, we can delete the old group manager's functionality since the new pipeline handles the logic elsewhere (most likely in ShadeListBuilder) For example, the new pipeline no longer needs to track isolated entries nor suppressed summaries. Test: test SystemUITests Change-Id: Id716f881aa7122c08be6dada8fb43058594d89f1
2020-08-20Migrate splitscreen to WM shell lib (2/n)Jerry Chang
Removes Divider from SystemUI component list since it is no longer needed after the split screen feature migrated to WM shell library. Provides optional controller of split screen for sysui components to use. Different varients of SystemUI could leverage dagger module to decide whether to load the controller or not. Implements WMShell component in SysUISingleton scope to help delegating sysui specific events to WM shell controllers. Detached DisplayImeController's initialization step from split screen feature with the reason that some of SystemUI varients might not have split screen feature. Bug: 161116823 Test: atest SystemUITests Test: atest SystemUIGoogleTests Test: atest CarSystemUITests Test: manual verified spliscreen behavior Change-Id: I4220b5ce53bc7b793b95cfca34100e808b9f052c
2020-08-17Add visual stability manager to data-layerBeverly
Create OnUserInteractionCallback (to repace OnDimissCallback) which will handle user interactions with notifications (ExpandableNotificationRow) and send this information to the relevant notification pipeline. While we still have both notification pipelines in SystemUI, the new pipeline will use a VisualStabilityManagerStub (used by HeadsUpManagerPhone and MediaCarouselController) since the view layer no longer needs visual stability since this will be taken care of by the VisualStabilityCoordinator in the data-layer. Once we migrate to the new pipeline, the legacy VisualStabilityManager + Stub should deleted. Notes: - Currently only one coordinator can attach a visual stability manager or an IllegalStateException will be thrown. - The suppressed group and section changes are logged in the suppressedAttachState on the ListAttachState object on each entry. - Currently we do not suppress the ordering of children as part of the new VisualStabilityCoordinator; however the old pipeline does suppress ordering. Test: atest VisualStabilityCoordinatorTest Test: SystemUITests Change-Id: Ia26844ba885ac9ed3b8526af82e772f19e5dcd19
2020-08-166/N Move everything into SysUIComponent.Dave Mankoff
It is far easier to move _everything_ into SysUIComponent, and then selectively promote things back to GlobalScope and/or WMScope than it is to try to do it one at a time. With this change, though lots of files are touched, very little actually changes structurally. After this change goes in, folks should stop using @Singleton quite so freely. Most things should live in @SysuiSingleton. @Singleton is due to quickly be replaced by @GlobalScope. Bug: 162923491 Test: atest SystemUITests && manual Change-Id: Idc31d3d83b030581fb1fa869f7fafc4f2d3a8828
2020-08-13Separate UI and StatusBar from BiometricUnlockControllerHeemin Seog
Bug: 162744974 Bug: 155711562 Test: manual, atest SystemUITests, atest :carsysui-presubmit Change-Id: I1a8b6a31e6d965f849d678af0e4c46f236641aac
2020-08-12Clean up navigation barWinson Chung
- Move off fragments, now we have direct ownership of NavBarController -> NavBar (per display) -> NavBarView - Move the nav bar components to its own package - Removed some unused files - Can finally dump NavigationBarController instead of FragmentService :) - Clean up some of the dumps to be more consistent Bug: 163690441 Bug: 158605244 Test: atest SystemUITests Test: Test bar in various nav modes Change-Id: I21130899df560f6cf8b7f38d4d86edca6d8f920e
2020-07-24Streamline Dagger Initization.Dave Mankoff
This simplifies the dagger initilization, removing constructs that provided no value to the process, but did serve to make the code more complex to analyze. Update dagger.md while we're here. Fixes: 161911916 Test: manual Change-Id: I84ced47d7cd6ce90664b68339acb7d7db765d56f
2020-07-22Merge changes from topic "privacy_chip_master"TreeHugger Robot
* changes: Restricts notified app ops based on flags Add back privacy chip
2020-07-22Add back privacy chipFabian Kozynski
This adds back the privacy chip classes (Controller and view). Change to using Executors and DeviceConfigProxy, also fix tests that were flaky before. Test: SystemUITests Test: enabled hub and see chip appear (after re-opening QS) Bug: 160966908 Change-Id: Id3e5981a87c33a8cabe7ce348f9512d81ad2b1d8
2020-07-22Migrate wm package in sysui to WM shell lib (1/n)Jerry Chang
Bug: 161655636 Test: atest WindowManagerShellTests Test: atest SystemUITests Change-Id: I42f13ee7fbb14ba3b7f33ed5654ec72454dc6dba
2020-07-20Add back privacy chipFabian Kozynski
This adds back the privacy chip classes (Controller and view). Change to using Executors and DeviceConfigProxy, also fix tests that were flaky before. Test: SystemUITests Bug: 160966908 Change-Id: Id3e5981a87c33a8cabe7ce348f9512d81ad2b1d8 Merged-In: Id3e5981a87c33a8cabe7ce348f9512d81ad2b1d8
2020-04-30Only use "apply" when there are changesEvan Laird
ChannelEditorDialog now only uses the word "apply" when there are edits to be made by pressing the button. Otherwise use "done" Also removed ChannelEditorDialog from Dependency to allow for better testing / initialization of the class Test: atest ChannelEditorDialogControllerTest Fixes: 138957374 Change-Id: Idc111ccb0bee50df65f4037d3e552b498e135660
2020-04-16Combine AlertingManager and HeadsUpBindControllerKevin Han
Previously, it was difficult to tell when a notification was inflated before trying to show the heads up, and we got around it with a (now flawed) heuristic based off if a notification was just inflated and it has a heads up view. This issue stems from having two control classes that are not really communicating with each other. By combining these classes into one heads up controller, the logic becomes more readable and we can directly put a callback to show the HUN when the HUN content is inflated. Bug: 149028421 Test: HUN smoke test Change-Id: Ibb75597cfe26ccaf7e4d5247dc69d69bdf421ee6
2020-03-11Create interface for NotifInterruptStateProviderBeverly Tai
Take #2 Original CL disabled HUNs because NotificationAlertingManager was removed from the StatusBar constructor (but never injected elsewhere; therefore it was never instantiated). bcb499478af43fa6bd7626da45f5ba937e8abf2e Test: atest SystemUITests Bug: 151050224 Bug: 150797570 Change-Id: I601d58bfff4422bd0c52e56ebdb4192ce9a8f880
2020-03-09Revert "Create interface for NotifInterruptStateProvider"Beverly Tai
Revert "Move HUNs and pulsing to interrupt package" Revert submission 10548462-hun_interrupt_package Fixes: b/151050224 Reason for revert: broke HUNs Reverted Changes: I5ad5546d6:Move HUNs and pulsing to interrupt package I13be75809:Create interface for NotifInterruptStateProvider Change-Id: I421a7906a87236fb18fc3d434d654fb18c35e6a2
2020-03-06Create interface for NotifInterruptStateProviderBeverly
- Remove calls to Dependency.get(NotificationInterruptStateProvider) - Fix style errors in touched kt files - Remove some unused injects - Adjust Car components to match new interface Bug: 150797570 Test: atest SystemUITests Change-Id: I13be75809831656bf7eaf136f18aaa8b9b6225d2
2020-02-20Migrate DumpController -> DumpManagerNed Burns
Unify "everything that needs to dump stuff" to use the DumpManager. Test: atest, manual Change-Id: Ib475aba4eeccb24bd49ab909896f7d779a8e1b04
2020-02-20Introduce DumpManagerNed Burns
Introduces DumpManager, a unified dumping system that supports dumping at different priority levels. Currently, when a bug report gets taken, SystemUI is only dumped during the CRITICAL section. This has its advantages (we get to go first!) but also imposes a strict limit on how much we can dump. To get around this restriction, we need to *also* dump SystemUI during the NORMAL section, which has much more forgiving constraints. This CL simply creates the mechanism for systemUI to dump at different priority levels, but doesn't actually cause us to participate in the NORMAL section (yet, see later CLs). It introduces the DumpManager, unified replacement for DumpController & various logic in SystemUIService and Dependency.java. See kdoc in DumpManager for usage notes. Migration of current users of DumpController coming in a later CL. Test: atest, manual Change-Id: If4f41ed496c0c64024a83aad812b77f60fe27555
2020-02-18SystemUI Split via TaskOrganizerEvan Rosky
Use the early TaskOrganizer concepts to implement Split-screen in system-ui. This includes changes to both FW and SystemUI. The changes to FW involve removing the use of split-screen specific behavior (like minimize dock and direct ordering) and also reducing things that care about primary vs secondary. It also changed ActivityStack to inherit bounds from parent** when in split-mode so that sysui only needs to manipulate the tile and/or reparent stacks to effect their geometry. This means a lot of layout logic moves to SystemUI. The bulk of the work done in ActivityStack which is split-screen related is moved into SplitDisplayLayout. This basically takes a snapshot of display configuration and manages the sizes of splits and their snap targets. Intermediate dragging of divider bar now only moves root task leashes around rather than talking to WM. This includes position as well as crop (which used to be stack crop). Once the user releases the divider bar, it will calculate (based on snaps) the new root task sizes and update their configurations via WindowContainerTransaction. Because the interim updates are only on the leashes, no configuration updates occur until the end. Entering/Exiting split-mode is now handled by SplitScreentaskOrganizer# onTaskInfoChanged. This is effectively a state-machine that looks at the current split task membership vs. previous and then decides when to move things into/out-of split tasks and how to coordinate with the DividerView. Minimized dock is relegated to a purely system-ui concept. To accomplish this, **the home *stack* is set to the minimizedhomebounds by systemui. This means that it's relative position to its parent is negative! This allows us to leave the split sizes constant, have their children inherit the "actual" split sizes, but keep the home stack unchanging in its minimized size. We just adjust the crop negative to reveal it. IME handling is done through the same mechanism as app-driven IME animation... only Divider receives the control instead of the app. This allows synchronized animation of split tasks with IME. To account for insets, though, when IME is opened, the bottom stack will be repositioned in WM. Bug: 133381284 Test: Manual, use split-screen, rotate device, launch unresizable apps in split, use divider snap to close/maximize apps, etc. Change-Id: I7133e151a1037c42b275b97857936437a7a6725f
2020-02-12Remove final call to Dep.get(FalsingManager.class)Dave Mankoff
CarStatusBar had one last reference in its dump method. FalsingManager, however, directly registers itself with the DumpController, so this call is redundant. Bug: 136279712 Test: atest SystemUITests Change-Id: I3731e7ecac2f147e5d3967d4219f22d17e810843
2020-01-29Merge "Minor refactoring to support moving code to shell"Winson Chung
2020-01-29Minor refactoring to support moving code to shellWinson Chung
Bug: 148148105 Test: atest SystemUITests Change-Id: I8614fe50cb87f66b1e403dfbfe8a68d1e043bd13
2020-01-27Add initial SysUI trace supportWinson Chung
Bug: 144854916 Test: Take a sysui trace Change-Id: Ia8a87c8c6756ecbb77beb06a60d5b46b883ed8d9 t stat
2020-01-20Merge "Split status bar window (1/N)"Charles Chen
2020-01-17Split status bar window (1/N)wilsonshih
This is the first step to create another new window for status bar. Small window => TYPE_STATUS_BAR: The bar on top of screen. Large window => TYPE_NOTIFICATION_SHADE: Anything else. Bug: 136993073 Test: build then flash Test: atest WmTests SystemUITests Test: atest RegisterStatusBarResultTest InsetsFlagsTest Manual Test: - Bouncer can show when leave showWhenLocked activity. - StatusBar can show when comes HUN in fullscreen mode. - StatusBar can play enter/leave animation in fullscreen mode. - Able to drag notification panel when bubble/glow existing. - Switch to market launcher, and run above tests. - Drag notification panel from launcher several times and observe it works fine. Change-Id: Id9f72cd0e21f01b50d57f02ea60f97c6460926b7
2020-01-10Add screen recording QS tileBeth Thibodeau
Currently defaults to no taps, no audio. This adds a 3s countdown before actually launching the recording, which can be stopped from either the notification or the tile. Bug: 137153302 Test: manual Change-Id: I0e194dc8d43d8834e07e1f6d8de90a2c703a4c3a
2020-01-08IME to systemuiEvan Rosky
Re-route ime-control to SystemUI when it isn't driven by an app. This allows multi-window system-ui components to synchronize with the ime (eg. adjusting for split-screen). Ime control goes through a new interface IDisplayWindowInsetsController. This gets set on WM and there is only 1 per display. All of this is currently handled in DisplayImeController which will also drive the animation of the IME and dispatch to ImePositionProcessors. On the server-side, InputMethodControlTarget is separated from InputMethodTarget so that IME can be controlled by a different client than the IME target. Bug: 133381284 Test: Existing IME tests pass Change-Id: I8e8ed2e09c45998c228df72e52a671fa327308f2
2019-12-23Remove Dependency.get(InitController.class)Dave Mankoff
Bug: 141882822 Test: atest SystemUITests Change-Id: I3a7fbee69b08abffefc56b722c1753cb733eb528
2019-12-20Conslidate @MainHandler and similar to @Main (and similar).Dave Mankoff
@MainHandler, @MainLooper, @MainResources -> @Main @BgHandler, @BgLooper -> @Background. Also, move the providers for Handlers and Loopers into the ConcurrencyModule. Bug: 146510722 Test: atest SystemUITests Change-Id: I991735e1fdca397784427409a2ae696a7374f584