Commit Graph

175 Commits

Author SHA1 Message Date
Matías Hernández
a588f3ebc4 Fix missing mode title and menu
By moving these from onStart to onResume. Looks like a recent change to Settings broke this.

Bug: 391543900
Test: manual
Flag: EXEMPT Trivial bugfix
Change-Id: Ie9b8bd08e8513e7c6c2f1baeab4801af2fbe1cae
2025-01-22 14:57:48 +01:00
Ioana Alexandru
07534f76a9 Rename SettingsEnableZenModeDialog to EnableDndDialogFragment
We also renamed the base EnableZenModeDialog to
EnableDndDialogFactory, see other CL in topic.

Flag: EXEMPT trivial rename
Test: builds
Bug: 388261320
Change-Id: Iaa2043bbb8d1f62482d0c38d0951da4025676f27
2025-01-15 17:42:23 +01:00
Matías Hernández
5098df9b6c Fix NPE on modes page when schedule has no days
Fixes: 387088843
Test: atest ZenModeTriggerUpdatePreferenceControllerTest
Flag: EXEMPT trivial bugfix
Change-Id: I3b845784f5923521d7f3f6cae9d6d27a21f55361
2025-01-08 19:14:40 +01:00
Matías Hernández
5cf2306221 Merge "Use different "None" strings for Messages and Calls in Modes breakthrough" into main 2024-12-10 15:58:06 +00:00
Matías Hernández
6ba4109c2b Use different "None" strings for Messages and Calls in Modes breakthrough
Bug: 330870672
Test: manual
Flag: android.app.modes_ui
Change-Id: I33c6ebce9281313d5d1cb483b82dfd90d1ff48a1
2024-12-10 12:47:31 +01:00
Marcelo Arteiro
8577c10535 Migrate materialColor* attributes into colors
The new color were already introduces in a previous CL ag/30322786

This CL is about replacing the attribute usage by the new color resources, which should work the same but cannot be overwritten, or styled, guaranteeing consistency across the OS.

The old attributes will be removed in CL: ag/29910036

Bug: 374273611
Test: presubmit
Flag: EXEMPT Un-flaggable refactor of private color resources
Change-Id: I05b5261054bcb6de40e4e40d633025495f3dd01f
2024-12-06 16:55:33 +00:00
Matías Hernández
0cf61ba759 Merge "Hide the blurb for custom-manual types" into main 2024-11-14 23:32:00 +00:00
Matías Hernández
1f24f061b4 Hide the blurb for custom-manual types
Fixes: 377691826
Test: manual
Flag: android.app.modes_ui
Change-Id: I3c959f32c7ae1cc2c95fb4e9180e2f871ed3ee91
2024-11-14 20:26:40 +00:00
Matías Hernández
0baf70a4b3 Exclude implicit modes from the summary of the Modes entry in Settings
They are called "Do Not Disturb (App)" which places alphabetically near the top (in English). This can often result in a summary like "DND, Bedtime, DND (App)", which looks silly.

Fixes: 379089451
Test: atest ZenModeSummaryHelperTest
Flag: android.app.modes_ui
Change-Id: Id41caee09cca874297ca12d2ac934aed3f9a43ab
2024-11-14 15:33:54 +00:00
Matías Hernández
68158ee324 Merge "Use full day names in the a11y version of schedules in mode list descriptions" into main 2024-11-13 12:16:07 +00:00
Julia Reynolds
987d14b8df Merge "reduce number of binder calls when loading page" into main 2024-11-12 22:00:26 +00:00
Julia Reynolds
a37572a4e5 reduce number of binder calls when loading page
Test: ZenModeAllBypassingAppsPreferenceControllerTest
Test: ZenModeAppsLinkPreferenceControllerTest
Test: manual - load page and validate that it loads a few seconds faster
Flag: EXEMPT bug fix
Fixes: 368623163
Change-Id: I6d34a21f0948b117a96beefc405de4b623f49609
2024-11-12 18:29:41 +00:00
Matías Hernández
3863c67a01 Use full day names in the a11y version of schedules in mode list descriptions
Bug: 370358575
Test: atest ZenModesListItemPreferenceTest
Flag: android.app.modes_ui
Change-Id: I5d22b878c1d685476cf71167e7163be65416da68
2024-11-08 17:24:01 +01:00
Matías Hernández
b152c2d34f Fix stray ProfileSelectDialog when only one profile exists
Fixes: 377829434
Test: atest ZenModePrioritySendersPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: Ia5f667fd937107af98dfb3a073cadeb935ff8a8a
2024-11-07 18:52:59 +01:00
Matías Hernández
f201899e7c Merge "Add TtsSpan to schedule-time modes trigger segment so that full day names are read" into main 2024-10-28 16:26:40 +00:00
Matías Hernández
1e8933123a Add TtsSpan to schedule-time modes trigger segment so that full day names are read
Bug: 370358575
Test: atest ZenModeTriggerUpdatePreferenceControllerTest + manual with Talkback
Flag: android.app.modes_ui
Change-Id: Ia9ed53c75176d887f26da90a713f1038cf26e01f
2024-10-28 12:01:10 +01:00
Matías Hernández
a9e8225ba4 Update summary of Modes entry in Settings
Instead of the number of automatic modes, simply list the first (up to 3) existing modes, according to the standard sort order, when none are active.

As a consequence, the summary is never empty now.

Fixes: 374179941
Test: atest ZenModeSummaryHelperTest + manual
Flag: android.app.modes_ui
Change-Id: I04f9d90a5e1e4ed13d66181b85d77fef8c6ff256
2024-10-24 16:18:50 +02:00
Matías Hernández
1694adb1aa Change the icon in the trigger segment for TYPE_DRIVING modes
Use the "settings gear" icon instead of the "car" icon.

Fixes: 369326738
Test: manual
Flag: android.app.modes_ui
Change-Id: I49d7089558fcd0b9e02020a8ad215bc23ebb8e0e
2024-10-23 16:13:57 +00:00
Treehugger Robot
c7be2f126e Merge "Better Support for profiles in "People that can interrupt"" into main 2024-10-07 20:11:09 +00:00
Treehugger Robot
7aabe039f4 Merge "Don't disable "Done" button when it cannot be pressed" into main 2024-10-07 17:27:33 +00:00
Matías Hernández
25d75c0df7 Merge "Don't crash when recreating ZenModeTimePickerFragment" into main 2024-10-07 16:49:20 +00:00
Matías Hernández
73c7ee115b Don't disable "Done" button when it cannot be pressed
Show an error on tap instead. According to a11y guidelines this is preferrable.

Fixes: 369942776
Test: atest ZenModeEditDonePreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: Ib5e47a4151c1515e5085a776d538a27c2ef41574
2024-10-07 15:56:21 +00:00
Matías Hernández
504e927168 Better Support for profiles in "People that can interrupt"
* Show contacts from personal and work profile.
* Open personal or work profile Contacts app when choosing settings.
* Skip conversations with no ShortcutInfo (they are returned for a disabled work profile but we cannot show an icon for them).

Fixes: 371513451
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: Id8653a85ee4fd15dfccbecb3ea2d31e615d29f8c
2024-10-07 17:37:37 +02:00
Matías Hernández
e5720f43ee Don't crash when recreating ZenModeTimePickerFragment
Instead, just bail out.

Fixes: 369814629
Test: manual, with don't keep activities
Flag: android.app.modes_ui
Change-Id: I893b6363801b3a56bc29999dd801d7c8152cb5e8
2024-10-04 18:58:53 +02:00
Matías Hernández
154a91fc7e Merge "Use TextInputLayout for the name field in the create/rename mode page" into main 2024-10-03 20:45:04 +00:00
Julia Reynolds
8c2312d8ab Update dependent logic in modes vis page
If the list isn't visible, we shouldn't allow HUNs to be

Test: ZenModeNotifVisFragmentTest, manual
Fixes: 367222597
Flag: EXEMPT bugfix
Change-Id: I1dc72061dfb99aed8b644c703214b17d62b0532e
2024-10-03 15:28:50 +00:00
Matías Hernández
b1e28233c1 Use TextInputLayout for the name field in the create/rename mode page
In addition to looking nicer, this fixes two accessibility issues ("no hint when text is entered" and "reason for disabled button is unclear").

This requires a bit of theme merging black magic, because TextInputLayout requires a Theme.AppCompat descendant, which the Settings theme isn't.

Fixes: 356398157
Fixes: 370654542
Fixes: 369942776
Test: atest ZenModeEditNamePreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: I92d8ec044dabc6daed5d755e206120ec7abc143e
2024-10-03 14:14:34 +02:00
Treehugger Robot
2d9dc0521f Merge "Set content description for the "settings" of starred contacts, priority conversations, etc" into main 2024-10-02 00:51:31 +00:00
Matías Hernández
58a110bc48 Set content description for the "settings" of starred contacts, priority conversations, etc
Fixes: 368124250
Test: manual, with Talkback
Flag: android.app.modes_ui
Change-Id: Ib4e8bdd5ea0931db2049925f82696d3a55f35bcb
2024-10-01 18:51:19 +02:00
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
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
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
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
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
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