Commit Graph

2016 Commits

Author SHA1 Message Date
Matías Hernández
78367de795 Fix a11y readout of the day toggles in Time Schedule of Modes
Content description (full day name) replaces TextOn/TextOff (day name initial), and the state description no longer has the day name. As a result:
* the initial readout changes from "Monday, off, M, Switch" to "Off, Monday, Switch"
* when toggling, the name of the day is no longer repeated, and just "On/Off" is announced.

Fixes: 370360007
Test: manual, with Talkback
Flag: android.app.modes_ui
Change-Id: I57bbd7034e1af2836582720a7f4871a79d6644ab
2024-09-30 17:47:36 +02:00
Julia Reynolds
2fe4cb6393 Merge "Make legacy DND pages not searchable" into main 2024-09-24 20:19:17 +00:00
Julia Reynolds
0c5eb711a9 Make legacy DND pages not searchable
Flag: EXEMPT unflaggable
Fixes: 341726633
Test: manual, searching in settings
Change-Id: I592a1775a890711086db1099fb333c1dc1a11e0b
2024-09-24 15:18:16 +00:00
Matías Hernández
a78f2b834c Merge "Don't add the "Events" mode anymore, and delete it if disabled" into main 2024-09-23 12:49:05 +00:00
Treehugger Robot
d1ced23c7f Merge "Support customized summary in Channel Notification" into main 2024-09-23 00:10:43 +00:00
Treehugger Robot
35fafa5ef4 Merge "Fix mode icon sharing in modes list" into main 2024-09-20 15:36:00 +00:00
Matías Hernández
58b04ae7cf Fix mode icon sharing in modes list
Modes sharing the same icon would also share the applied tint (e.g. all with the "active" tint even if only the last one of them is active).

(Although it should never happen, also removed a potential NPE for mode icons without ConstantState).

Fixes: 367131481
Test: manual
Flag: android.app.modes_ui
Change-Id: I56867783310ea57f2e92c866ff0b5b53ac86bf37
2024-09-20 11:47:59 +02:00
yumeichen
4edaf1b804 Support customized summary in Channel Notification
Want to show the vibration name if customised vibration in channel notification is enabled. Therefore, need the summary function could be overrided.

Flag: com.android.server.notification.notification_vibration_in_sound_uri
Test: manual test
Bug: 351975435
Change-Id: I1fcd6deb3f176ef5943da59ae8861136d4a63f79
2024-09-20 08:51:58 +00:00
Matías Hernández
97f06864f8 Don't add the "Events" mode anymore, and delete it if disabled
Fixes: 368227085
Test: atest ZenModeHelperTest
Flag: android.app.modes_ui
Change-Id: Idd5563505ca92463485b433e80f29bf3e0f98d39
2024-09-19 13:51:19 +02:00
Treehugger Robot
2b9e976cbb Merge "Hide the Default Notification Sound if enabling customized vibration" into main 2024-09-19 10:07:01 +00:00
Treehugger Robot
ad856d326f Merge changes from topic "b361144180-PreferenceControllerMixin" into main
* changes:
  Move ListAddMode PrefController key to constructor
  ZenModesListAdd extend BasePreferenceContoller
2024-09-17 17:28:27 +00:00
Alexander Roederer
c6c5c1dfad Move ListAddMode PrefController key to constructor
Passes the key for the ZenModesListAddModePreferenceController into the
constructor, to be supplied from the Fragment.

Flag: android.app.modes_ui
Bug: 361144180
Test: atest ZenModesListAddModePreferenceControllerTest
Change-Id: I23d5c11f8676b9ed2bde807e24f20346444e7963
2024-09-17 16:15:00 +00:00
yumeichen
23bba426b5 Hide the Default Notification Sound if enabling customized vibration
Flag:com.android.server.notification.notification_vibration_in_sound_uri
Test: atest NotificationRingtonePreferenceControllerTest
Bug: 358525376

Change-Id: Ic7517828df746700ceb6e0605a9d32066c7aed50
2024-09-17 14:38:02 +00:00
Alexander Roederer
3791aa5ee9 ZenModesListAdd extend BasePreferenceContoller
Makes ZenModesListAddModePreferenceController extend
BasePreferenceController. This should fix warning statements, and has
the effect of adding "Create your own mode" to the Settings Search menu.

Test: build+flash
Bug: 361144180
Flag: android.app.modes_ui
Change-Id: Ic8675420b831818f658506f36938f38e803cc9aa
2024-09-17 03:20:39 +00:00
Matías Hernández
46744e40f0 Merge "Rename usages of ZenRule.isAutomaticActive() to isActive() in Settings" into main 2024-09-13 17:43:29 +00:00
Julia Reynolds
b8533bad72 Merge "Remove stale TODOs" into main 2024-09-12 15:56:43 +00:00
Treehugger Robot
4b8d2cacd5 Merge "Remove unneeded setttings search info" into main 2024-09-12 15:53:55 +00:00
Julia Reynolds
1b869f2845 Remove stale TODOs
These aren't in scope for the modes_ui release

Test: N/A
Flag: android.app.modes_ui
Bug: 354141067
Change-Id: I28887d766cde2d6a4e18a66a99d1625f80aa0667
2024-09-12 10:31:31 -04:00
Julia Reynolds
fcebcb2735 Remove unneeded setttings search info
Test: chage languages in Settings, search for a mode by name
Bug: 354141067
Flag: android.app.modes_ui

Change-Id: If12d76d268134e415510304278441a53d76af36d
2024-09-12 09:14:11 -04:00
Matías Hernández
5b26a37a7e Rename usages of ZenRule.isAutomaticActive() to isActive() in Settings
Bug: 363193376
Test: N/A, automatic refactor
Flag: EXEMPT automatic refactor
Change-Id: Ice1ceccbe09e6206555b2f2b75bd7ea39d24dfd7
2024-09-11 13:39:43 +00:00
Matías Hernández
c43be041f5 Merge "Support (non-editable) display of DND with a filter != PRIORITY" into main 2024-09-03 18:45:16 +00:00
Matías Hernández
b210f35a76 Prevent "new mode" and "choose schedule" dialogs from being created without a listener
This can happen if the activity is recreated; our approach doesn't support this case very well. With this change, the dialog is not reshown when the activity is recreated, which is not optimal but better than crashing (as it does today). There is no lost work because it's the first choice, and the follow-on steps (icon picker, etc) can be recreated without problems.

Fixes: 359746551
Test: manual, with don't keep activities
Flag: android.app.modes_ui
Change-Id: I84bdeb0007e8c50ec9dd8af61991c7e55ddb8298
2024-09-02 18:29:23 +02:00
Matías Hernández
50c954923f Support (non-editable) display of DND with a filter != PRIORITY
Whenever setInterruptionFilter() is called with NONE or ALARMS, the Do Not Disturb mode now shows the current policy (nothing allowed or alarms/media allowed), instead of the normal PRIORITY policy. This policy is read-only in the UI since it cannot be customized.

This should be, or at least become, pretty rare (with small exceptions, apps targeting V that call setInterruptionFilter() will use an implicit mode instead of changing the global zen mode, plus using these filters is quite nonstandard in itself).

Fixes: 361586248
Test: atest & manual (toggling DND via cmd shell)
Flag: android.app.modes_ui
Change-Id: If2439480235d30aa310ad8925341183b9761784c
2024-08-30 15:03:03 +02:00
Treehugger Robot
e6aaa5c87b Merge "Make ZenIconLoader injectable (in SystemUI)" into main 2024-08-29 22:59:49 +00:00
Yuri Lin
772928694f Merge "Add modes to Settings homepage." into main 2024-08-29 00:56:11 +00:00
Yuri Lin
3ccbb0ffa5 Add modes to Settings homepage.
Also moves the modes entrypoints out of the sub-pages it was previously in (notifications and sound settings).

Bug: 353700470
Test: manual by opening the homepage
Flag: android.app.modes_ui
Change-Id: I53124bfed25c43fc2dabaf9c43ce0513bbfc7377
2024-08-28 13:13:46 -04:00
Matías Hernández
227548d927 Make ZenIconLoader injectable (in SystemUI)
In settings, reduce calls to getInstance(), and pass it to preferences and their controllers instead.

Bug: 360399800
Test: atest ZenModesListItemPreferenceTest ZenModesListPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I318320575e3bd32b5d13a385fa644f8032484e1c
2024-08-28 14:10:20 +02:00
Treehugger Robot
78e191a69c Merge "Use ZenMode.getIconKey() and ZenIconLoader.getIcon() in Settings" into main 2024-08-27 23:24:11 +00:00
Matías Hernández
dd7f6b9163 Use ZenMode.getIconKey() and ZenIconLoader.getIcon() in Settings
Bug: 360399800
Bug: 361597532
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I82baaeaaa0d722f8042c7ac6be33b8654418391f
2024-08-25 15:50:56 +02:00
Treehugger Robot
ba055aa8c2 Merge "Add log for enable/disable zen mode" into main 2024-08-23 18:38:19 +00:00
Treehugger Robot
bd74edd186 Merge "Add metrics for driving and bedtime interstitials" into main 2024-08-23 02:59:26 +00:00
Matías Hernández
f2f2da6147 Merge "Update Modes List if modes change in the background" into main 2024-08-22 18:49:18 +00:00
Matías Hernández
d8603124d1 Don't observe Modes changes if MODES_UI is disabled
The ZenModesLinkPreferenceController is present in the Notifications and Sound screens, and although isAvailable() is false when MODES_UI is not enabled, it was still registering the listener for Settings changes, and calling updateState().

Thus, Settings would (likely) crash if Zen settings change while the user is in one of those screens, due to not finding the manual rule.

Fixes: 360498255
Test: atest ZenSettingsObserverTest
Flag: android.app.modes_ui
Change-Id: I7741809fd0028aace6ac58992be965701e64a2e3
2024-08-22 17:48:53 +00:00
Matías Hernández
8c50cdc72a Update Modes List if modes change in the background
Fixes: 361518126
Test: manual
Flag: android.app.modes_ui
Change-Id: Ia00025adbb89ddc9163a9c50582cbcbd524231bb
2024-08-22 19:31:22 +02:00
Alexander Roederer
6d879999ea Add log for enable/disable zen mode
Adds logging for button on confirmation dialog after enable/disable zen
mode toggle is clicked.

Bug: 356154473
Flag: android.app.modes_ui
Test: build and flash
Change-Id: Ie1dc1c14e1519541da641a69a217cf8a5dfa54f2
2024-08-21 21:34:44 +00:00
Alexander Roederer
0a43ecdf2b Add metrics for driving and bedtime interstitials
Adds metrics categories for driving and bedtime interstitial pages,
which we want to distinguish from other types of interstitial pages.

Bug: 332937635
Flag: android.app.modes_ui
Test: Build and flash
Change-Id: I49f2fd9f86f7d2737aebd9ef9d8675787421cc09
2024-08-20 19:14:47 +00:00
Matías Hernández
ef4792c811 Merge "Flip the INTERRUPTION_FILTER_ALL switch" into main 2024-08-20 14:06:17 +00:00
Treehugger Robot
a6f3c74533 Merge "Flip order of start/finish" into main 2024-08-19 22:41:59 +00:00
Julia Reynolds
a2ca48723a Flip order of start/finish
Test: long press on a not setup mode tile on a large screen device
Flag: android.app.modes_ui
Fixes: 360898235
Change-Id: I1d4128c6ee3469dceb00e8cffdd5da7f4b3732b4
2024-08-19 21:18:08 +00:00
Matías Hernández
c85e48b0aa Merge "Rename DND Access to Priority Modes Access in Settings" into main 2024-08-19 17:18:26 +00:00
Matías Hernández
fe1d29699e Rename DND Access to Priority Modes Access in Settings
Bug: 360384256
Test: manual
Flag: android.app.modes_ui
Change-Id: If01a14cfac8cf5660cf93ef10bce6a334472a0b9
2024-08-19 16:42:18 +02:00
Treehugger Robot
4cffde0188 Merge "Use the new inspirational text in mode interstitials" into main 2024-08-16 18:52:44 +00:00
Matías Hernández
70a05ec421 Use the new inspirational text in mode interstitials
Also use the OTHER image for calendar/time, instead of UNKNOWN.

Bug: 332730534
Test: manual
Flag: android.app.modes_ui
Change-Id: I85a36d2d409ad3e9f3d5f70f95d90512443971a7
2024-08-16 19:50:17 +02:00
Matías Hernández
7883588653 Flip the INTERRUPTION_FILTER_ALL switch
Instead of "Limit what can notify you", title is now "Allow all notifications" and its behavior is reversed (switch ON hides people/apps/other).

Fixes: 360359116
Test: atest InterruptionFilterPreferenceControllerTest + manual
Flag: android.app.modes_ui
Change-Id: Ibb5334889662ec3aa778cd74c51506718ab0ebc7
2024-08-16 16:45:54 +00:00
Matías Hernández
0a5c7530ed Merge "Fix several issues related to CircularIconsPreference" into main 2024-08-16 16:44:24 +00:00
Matías Hernández
b676ca3a62 Fix several issues related to CircularIconsPreference
* Sometimes would cause an unending stream of accessibility events (particularly if starting off-screen). This would break TalkBack and anything that depends on UiAutomator (although the system itself took it like a champ).
* Sometimes would not load images (because the ViewTreeObserver would never fire onGlobalLayout after being added because measured width was 0, even though a new width was calculated later).
* Would not recalculate the number of icons that fit if the width changes after the first layout.

Combining ViewHolders with waiting for measuring and/or ViewTreeObservers was always a wonky approach, even though it should've worked in theory. This should be more robust.

Also fixes the unwanted animation on mode screen load related to the absence of the header name being applied a tad too late.

Fixes: 359948417
Fixes: 360072876
Fixes: 360328804
Test: atest SettingsRoboTests + manual + adb shell uiautomator events
Flag: android.app.modes_ui
Change-Id: I7e5dfbdab220d1ebc1c68e5e87ce544ee86b6a65
2024-08-16 16:20:38 +02:00
Matías Hernández
e7c670ea27 Merge "Fix refresh of "apps that can interrupt" segment" into main 2024-08-15 18:53:55 +00:00
Matías Hernández
195c698cdf Fix refresh of "apps that can interrupt" segment
Switching from Priority Apps to None would still show the icons of the priority apps. There were several minor things wrong:
* We were keeping the AppSession when a mode switches from "priority apps" to "none", and because onResume always fires the callback, we were loading the icons.
* Even when deactivating the session, its own onResume lifecycle listener was still firing one extra time, before we had a chance to deactivate it.

Also two minor improvements to CircularIconsPreference:
* Update mLoadedIcons when we early exit due to mIconSet having no items. Mostly for testing, since the icons wouldn't be visible anyway.
* Use notifyChanged() when we get a measured view, instead of holding a reference to the view. Technically the previous code violated the "shouldn't keep references to views outside of onBindViewHolder" (although I didn't see this having an effect in practice).

Fixes: 360077747
Test: atest ZenModeAppsLinkPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I6d4b7a344542da46f5ebfcd0774f1af27ed113ac
2024-08-15 17:40:36 +02:00
Alexander Roederer
84cb2f6a02 Merge "Adds Zen metrics categories" into main 2024-08-15 14:39:45 +00:00
Alexander Roederer
64593a873a Adds Zen metrics categories
Assigns metrics categories to all modes pages under
ZenModesListFragment. Includes new metrics categories where appropriate.

Bug: 332937635
Test: Build and flash
Flag: android.app.modes_ui
Change-Id: Ic19862ec194b40eae294d3c30240fe3f51304665
2024-08-14 20:27:13 +00:00