Test: long press on a not setup mode tile on a large screen device
Flag: android.app.modes_ui
Fixes: 360898235
Change-Id: I1d4128c6ee3469dceb00e8cffdd5da7f4b3732b4
This covers both the case of navigating to the mode page through the mode aggregator menu as well as if an app sends an intent to go to the mode.
The interstitial visuals are not done yet; in particular, the image is just a gray box for now.
Manual tests done:
- visually verifying the interstitial page in both portrait and landscape
- accessing the mode page from modes list, confirming interstitial pops up
- accessing enabled and disabled-by-user mode page from modes list (no interstitial)
- getting to the mode page from intent through an app
- accessing enabled and disabled-by-user mode pages from app intent (no interstitial)
- adjusted display and font size (it looks bad with max display & font size, maybe not much to be done)
Bug: 332730534
Test: manual, ZenModeFragmentTest, SetupInterstitialActivityTest
Flag: android.app.modes_ui
Change-Id: I21f13b0842d5b118a341f7d85e8fcac947ca3a06
* Don't keep Settings observers longer than start-stop.
* Only call updateState() once on controllers during create->start->resume.
* Remove some duplicate controller update methods from ZenModesFragmentBase (we can directly call DashboardFragment's).
* Don't update controllers if unrelated modes were changed.
* Extract ZenSettingsObserver for use in the link tile later.
* Add tests.
Fixes: 353946788
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I64b51714d699b5c3a592a76fcb615d2999998829
Looks like setting Preference visibility in updateState() is too late to avoid an animation, and isAvailable() should be used instead. This forces us to split ZenModeSetTriggerLinkPreferenceController (which handled the category and its two children) into separate controllers for the category and each child. Although untangling this code was annoying, the result is arguably cleaner, since the two child preferences deal with different things.
Fixes: 355623101
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I5fb1b3cbe424973b852f820ecf948491c050421f
* Show blurb based on mode type.
* Make the icon bigger and highlight it when mode is active.
* Increase spacing between elements.
Also eliminate some code duplication between header of mode page and header of icon picker.
Fixes: 355415875
Test: manual
Flag: android.app.modes_ui
Change-Id: I7e788b9b5920cedb791d1571b19b37e65ece6d0b
Also set some alpha on the circles so that they look more or less disabled as well.
Fixes: 354867828
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I53ef5e381d37afa20b0532f3c7ddb3f106b2e85e
Migrates to using MenuProvider instead of onCreateOptionsMenu, since the previous approach is apparently now deprecated.
Also wraps usages of requireActivity() so that we're sure the activity isn't null instead of potentially throwing an exception.
Flag: android.app.modes_ui
Bug: 346575126
Test: manually confirmed that manual DND is no longer deletable
Change-Id: I872f6054061c019db9a72028cc90cbb123a1cdce
Instead of a the plain appearance of a EntityHeaderController, make the top icon bigger and use the same circled style as the choices in the list. Also highlight the current icon in the list as selected, even if it is the default for the mode type.
Also cleaned up controllers that don't need a ZenModesBackend to not receive it.
(Both of these changes also line up with the "new mode" fragment that is incoming).
Bug: 333901673
Bug: 326442408
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I0c9f3e34019a1a6c48658933dde545ad8d7399ae
If there is no valid intent, the automatic trigger preference is disabled.
Flag: android.app.modes_ui
Bug: 341961712
Test: manual (for Bedtime & Driving modes), ZenModeSetTriggerLinkPreferenceControllerTest
Change-Id: I673792effb3cfdcaaa7cf85adfb55a93b44dcc86
This mostly continues to use the existing dialogs in settingslib (ZenDurationDialog, SettingsEnableZenModeDialog) and creates a controller to read from the settings value.
Also updates the "turn on / turn off" button to respect the preferred duration.
Flag: android.app.modes_ui
Bug: 343444249
Test: ZenModeButtonPreferenceControllerTest, ManualDurationPreferenceControllerTest
Change-Id: I2fd49a79d9a5807fefdd7ec310a6cc60d70f9bb1
* Don't finish the fragment from the controller (ugh!) instead just report the selected icon via a listener.
* Highlight the selected icon in the list.
* Cache the icon drawables (since we're using selectors for the colors, we don't need to swap them, one per icon resource id is enough).
* Improved the tests a bit too.
Bug: 333901673
Bug: 326442408
Test: ates
Flag: android.app.modes_ui
Change-Id: Ib2ec7a7e3ed99b13f9264aa6f7c209ee3f6967a0
This will allow us to access it from SystemUI.
Bug: 346519570
Test: builds
Flag: EXEMPT trivial refactor
Change-Id: I5bc480bd4eb0cbf8a26989dd11c064e66e5ee70e
So that when it's moved to SettingsLib, it doesn't need to carry that baggage.
Bug: 346519570
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I7911a521d96f5dbac2c2395171d324b7b54b8b07
Also adds the link to set trigger behavior to the main mode page (only for calendar so far), and the switch preference to enable/disable automatic rules (for all but manual DND mode).
Removes the "escape hatch" to allow manual mode to also use the new modes pages.
Ported from ZenModeEventRuleSettings.
Flag: android.app.modes_ui
Bug: 332730302
Test: ZenModeSetCalendarPreferenceControllerTest, ZenModeSetTriggerLinkPreferenceControllerTest, manual
Change-Id: Ia7a716c66663a21494a6c05711250a5bda87ca8c
Adds the settings page that a user will reach from a mode settings page
when they tap on "App," to allow them to select whether all, none, or
priority modes can break through and send notifications.
Bug: 308819928
Bug: 331267485
Flag: android.app.modes_ui DEVELOPMENT
Test: build and test, controller unit tests
Change-Id: I5bcebfca0fc2882f839afdced8d2b817dad14e6c
The new modes page has essentially no content yet, but this is a rough proof of concept for the existing abstract classes and hopefully serves as a building block for future changes. It lists modes and those preferences lead to contentless pages that will be fleshed out later..
Flag: android.app.modes_ui
Bug: 327260745
Test: ZenModePreferenceControllerTest
Test: manual; individual pages only have skeleton functionality and should be unit tested in future CLs
Change-Id: I12f48b48f761e3c9ff1a173445b15f7536d34edb