Commit Graph

1891 Commits

Author SHA1 Message Date
Alexander Roederer
a6b1d7cbbc Adds summary helper for apps subtitle
The subtitle for the apps page says which apps (up to two/three) and how
many (if there are more than three) are allowed to bypass dnd under the
main "Apps" page.

Bug: 308819928
Test: atest ZenModesSummaryHelperTest
Flag: android.app.modes_ui
Change-Id: I15696384c392ba3f054948db50eea614f91d8c48
2024-06-13 13:20:29 +00:00
Matías Hernández
2bdd13fd26 Merge "Follow-up improvements to zen mode icon picker" into main 2024-06-13 09:28:24 +00:00
Matías Hernández
37bdf39ad6 Follow-up improvements to zen mode icon picker
* Propose icons from com.android.internal.R instead of android.R (as a proof of concept) since this is what we'll be doing with the final icons.
* Provide the icon options as a parameter to the controller (can also be used for testing).
* Fix some Lint warnings.

Test: atest ZenModeIconPickerListPreferenceControllerTest
Bug: 333901673
Flag: android.app.modes_ui
Change-Id: I023eed0fd5719c5c4540f8d145335f60d088e7fb
2024-06-12 19:33:12 +02:00
Julia Reynolds
71698935f3 Support device effects for manual mode
Test: ZenModesBackendTest
Flag: android.app.modes_ui
Fixes: 333530553
Change-Id: I31c484b73d1dfe0f986fe3c344f3a9a1d8580172
2024-06-12 15:19:42 +00:00
Matías Hernández
ec5b25eb48 Merge "Add icon picker for zen modes" into main 2024-06-10 22:38:36 +00:00
Yuri Lin
00c7a2c16b Merge "Add schedule setting page for time-based modes." into main 2024-06-10 20:50:57 +00:00
Matías Hernández
8d397f038f Add icon picker for zen modes
Bug: 333901673
Test: atest ZenModeIconPickerListPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: Ib6faaac7c93b25423d18dbdcd0a2310de15fa86f
2024-06-10 19:37:49 +02:00
Yuri Lin
4203f311dd Add schedule setting page for time-based modes.
Creates new layout for setting the start & end time, and days of the week, for a schedule-based mode.

This is close to the mocks specified in https://screenshot.googleplex.com/8zmb7PAjjt73VkN, but with the following differences:
- the end time is left-aligned with the center rather than on the right side of the screen. This is a side effect of using LinearLayout to evenly space start & end times, and could in theory be fixed by using a ConstraintLayout, but that option seems to cause times to overlap instead of wrap when display size is cranked up. Could be fixed later.
- no icons yet on either side of the time display
- no Done button. Instead, has the "exit at alarm" switch that exists today.

Have not yet checked how this interacts with TalkBack, etc.

Flag: android.app.modes_ui
Bug: 332730302
Test: ZenModeSetSchedulePreferenceControllerTest, ZenModeExitAtAlarmPreferenceControllerTest, ZenModeSetTriggerLinkPreferenceControllerTest
Test: manual: interacting with UI in normal size, with font & display at minimum and maximum, and in locales (fr) where the first day of the week is a different day
Change-Id: I0b76f55891d6c12fc27720657c9eea6fe42fbafe
2024-06-10 13:26:06 -04:00
Mady Mellor
34677c7b08 Maybe fix NPE - don't notifyChange if selected visibility is the same
Flag: none / bugfix
Test: none / can't repro
Test: manual - switch between the different radio buttons in bubble settings to make sure they
               all work
Bug: 343167554
Change-Id: I19fc3fa0df59c44e3f22de035c0b377caea1158f
2024-06-04 20:25:11 +00:00
Matías Hernández
8f93b4d789 Merge "Add default icons for all mode types" into main 2024-05-30 21:10:16 +00:00
Matías Hernández
fcb8acc277 Add default icons for all mode types
Also a couple of icon-related fixes:
* Use the proper context, since we need theming (this also means it cannot be stored in IconLoader, which is a singleton, and must be supplied).
* Force apply the standard size and tint, since app-provided icons may be arbitrary.
* Fix the schedule-time icon (the viewport size was incorrect).

Bug: 308819461
Fixes: 333528437
Flag: android.app.modes_ui
Test: atest com.android.settings.notification.modes
Change-Id: Iae447c8c4a0218a8bc989c01d1d56d0c06abd8e7
2024-05-30 18:11:25 +02:00
Yuri Lin
cfaedb0199 Merge "Add page for choosing calendar & reply for event modes." into main 2024-05-30 14:59:00 +00:00
Julia Reynolds
3f208db1dd Merge "Update check boxes to switches" into main 2024-05-30 13:08:45 +00:00
Julia Reynolds
2af266f423 Update check boxes to switches
To match the rest of the settings

Test: ZenModeNotifVisPreferenceControllerTest
Bug: 337087926
Flag: android.app.modes_ui
Change-Id: I193db8404a3b6c8bdacbbb9e19e3a7c1826d745f
2024-05-29 18:35:31 +00:00
Yuri Lin
f29f44296a Add page for choosing calendar & reply for event modes.
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
2024-05-29 17:29:23 +00:00
Alexander Roederer
4e10ac8dae Merge changes from topic "b308819928-ModesSettingsAppBreakthroughPage" into main
* changes:
  Moves ZenModeBypassingAppsSettings into modes dir
  Adds modes settings page for bypassing apps
2024-05-29 14:20:02 +00:00
Alexander Roederer
c50457613e Moves ZenModeBypassingAppsSettings into modes dir
Copies these files into modes dir, so we can continue to deprecate the
old zen directory

Bug: 308819928
Test: flash+test, atest ZenModeAllBypassingAppsPreferenceControllerTest,
atestZenModeAddBypassingAppsPreferenceControllerTest
Flag: android.app.modes_ui
Change-Id: Ib18930bb16a3d675e460028f5c52ef32060541ad

Change-Id: Id6c8d834bbd106fef068c5f04acf8cd71229a5e3
2024-05-29 12:23:59 +00:00
Alexander Roederer
c512046eb9 Adds modes settings page for bypassing apps
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
2024-05-28 22:12:27 +00:00
Julia Reynolds
97b462dbf0 Add button for activating modes manually
Fixes: 308819907
Flag: android.app.modes_ui
Test: ZenModeButtonPreferenceControllerTest
Test: atest com.android.settings.notification.modes
Change-Id: Id018d360c648dd948d2f950ca67cfbea71cc5c68
2024-05-28 13:17:43 -04:00
Yining Liu
3e46f1f1c9 Merge changes I081a35c8,I8a84f688,I60b64a0c into main
* changes:
  Clean un-used code for notification cool down
  Add tests for updating Settings Page for Avalanche Suppression
  Update Settings Page for Avalanche Suppression
2024-05-28 15:55:14 +00:00
Julia Reynolds
91c67cf728 Fix Messages onClick.
The state of the preference doesn't change until after we get the
callback.

Test: ZenModePrioritySendersPreferenceControllerTest
Flag: android.app.modes_ui
Fixes: 337079247
Change-Id: I1c98561de89e9398f26300bb14710f18991f78f4
2024-05-28 13:42:38 +00:00
Yining Liu
3d0640985b Clean un-used code for notification cool down
Clean the un-used code for notification cool down.

Bug: 330606963
Test: PoliteNotificationGlobalPreferenceControllerTest
Flag: com.android.server.notification.polite_notifications
Change-Id: I081a35c8be8b9996fabb04b238cb426f0da2de58
2024-05-24 22:18:48 +00:00
Yining Liu
bf6d958073 Update Settings Page for Avalanche Suppression
Update the Settings Page for the Avalanche
visual and auditory Suppression.

Bug: 330606963
Test: PoliteNotificationPreferenceControllerTest
Flag: com.android.server.notification.polite_notifications
Change-Id: I60b64a0c00cafb22ac1db74285002862affb82d2
2024-05-24 22:18:37 +00:00
Matías Hernández
43d67b0080 Refactor preference controllers to receive and mutate ZenMode/ZenPolicy
Also fixed a handful of style issues / warnings along the way.

Fixes: 341950853
Fixes: 341910620
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I65900941fcdf53824caf052fd0a24401c1bfb476
2024-05-23 20:29:06 +00:00
Julia Reynolds
11b10202fe Merge "Add display and notif vis effects to new modes ui" into main 2024-05-23 13:32:56 +00:00
Julia Reynolds
4a84e58dba Add display and notif vis effects to new modes ui
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Fixes: 337087926
Fixes: 308820151
Change-Id: Id9cd9cc4b2d521713a2ba1d4581eb818ad0e5eee
2024-05-22 13:22:16 -04:00
Matías Hernández
52ac9410e8 Merge "Load app-provided mode icons asynchronously, and cache them" into main 2024-05-22 13:57:13 +00:00
Matías Hernández
90f60e5912 Load app-provided mode icons asynchronously, and cache them
Bug: 333528586
Bug: 308819461
Test: atest IconLoaderTest
Flag: android.app.modes_ui
Change-Id: I230d0a17bf21533dfca1f25d4806f9231105801b
2024-05-21 19:16:26 +00:00
Julia Reynolds
3f2bcf973a Migrate alarms and other interruptions to modes_ui
Also add missing tests for repeat callers

Flag: android.app.modes_ui
Test: ZenModesSummaryHelperTest
Test: ZenModeOtherPreferenceControllerTest
Test: ZenModeOtherLinkPreferenceControllerTest
Bug: 337086854
Change-Id: Ie0a849de61c32b5f9feacae9a1bac457f9dd526c
2024-05-21 11:54:48 -04:00
Julia Reynolds
2bd1799fb9 Migrate people settings to new modes UI
Flag: android.app.modes_ui
Bug: 337079247
Test: make -j RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.notification.modes
Change-Id: If5e7b82a006e856b4aceca7acdfc8cc0d11092a7
2024-05-20 21:29:13 +00:00
Julia Reynolds
f60595d0d5 Merge "Fix test failures" into main 2024-05-20 18:24:42 +00:00
Julia Reynolds
44044a1898 Fix test failures
Test: ZenModesBackendTest
Flag: android.app.modes_ui
Fixes: 341693051
Change-Id: I4149db371a85abe8008c10cf76a84206f75143f6
2024-05-20 13:31:40 -04:00
Yuri Lin
fdb948df20 Add mode names to search results dynamically.
The resulting search result takes the user to the modes aggregator page.

Flag: android.app.modes_ui
Bug: 332937523
Test: ZenModesListPreferenceControllerTest, manual with modes_ui on and off
Change-Id: I7372307cb995667f6f7234530a3140f5295ab06a
2024-05-20 11:29:29 -04:00
Julia Reynolds
b42553dccc Some minor additions (icons, sorting) to modes
Test: manually viewing pages
Flag: android.app.modes_ui
Fixes: 331429435
Fixes: 308819461
Bug: 322373473
Change-Id: I17e6df82e17a4cfadc2948258829746cdb5473db
2024-05-17 14:21:54 +00:00
Yuri Lin
eff863e5a3 Redirect to new modes page when modes_ui is on.
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
2024-05-15 14:00:25 -04:00
Yuri Lin
7469ed03de Rename ZenMode(s)SettingsBase to ZenMode(s)FragmentBase
to be more consistent with more Settings usages and with the DashboardFragment class these extend.

Flag: android.app.modes_ui
Bug: 335259054
Test: n/a, just renamed
Change-Id: Ie64c06eb3ed92822ba47cf272f507d4b4a85d11c
2024-04-30 14:22:49 -04:00
Yuri Lin
b77b2ec7c8 Add flow for updating zen mode status on modes pages
The main responsibility for updating stored ZenMode data when updated is the Settings page, which reloads mode data whenever any changes are detected. This change adds a process for that Settings page to then update the ZenMode data associated with all controllers on that page.

Flag: android.app.modes_ui
Bug: 335259054
Test: manual with toy implementations
Change-Id: Ie1692da54d962c90378085d8bd8573e5b93f8eb6
2024-04-29 12:55:42 -04:00
Yuri Lin
d1347a5d85 Merge "Base classes for general modes settings and rule-specific settings pages." into main 2024-04-24 15:59:01 +00:00
Yuri Lin
34c82e17ec Base classes for general modes settings and rule-specific settings pages.
Flag: android.app.modes_ui
Bug: 335259054
Test: manual through toy extensions of the base classes
Change-Id: I3b950c5556299aaf89fd730c91bf87adfe2f0784
2024-04-24 10:31:15 -04:00
Matías Hernández
7cfc461e63 Merge "Add support for rules with filter=ALL in ZenModesBackend" into main 2024-04-24 12:02:41 +00:00
Matías Hernández
3819299a08 Add support for rules with filter=ALL in ZenModesBackend
This is represented as an extra, special value for the AllowChannels field in ZenPolicy, with special treatment.

Bug: 327419222
Bug: 331267485
Test: atest ZenModeTest
Flag: android.app.modes_ui
Change-Id: I44440e40e729d295150b36beda824ddbfa1f170d
2024-04-24 12:07:20 +02:00
paulzhchen
5f391359e3 Reland add FeatureProvider for SyncAcrossDevices Settings integration.
Prior CL ag/26930404 was reverted because an unused class was
trimmed in AOSP, causing test cases to throw NoClassDefFoundError
exceptions. This CL combines ag/26930404 and ag/26995936 to address
the failure.

Bug: 330498032
Test: atest FakeFeatureFactory, atest SyncAcrossDevicesPreferenceControllerTest
Change-Id: I0a7ebccdebcad20e06d7542d7c4a0005885f393b
2024-04-24 02:02:35 +00:00
Pechetty Sravani
dbb7d1772b Merge "Revert "Add FeatureProvider for SyncAcrossDevices Settings integ..."" into main 2024-04-23 09:12:48 +00:00
Pechetty Sravani
ea26f2d729 Revert "Add FeatureProvider for SyncAcrossDevices Settings integ..."
Revert submission 26930404-syncacrossdevices

Reason for revert: Potential culprit for b/336431732- verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.

Reverted changes: /q/submissionid:26930404-syncacrossdevices

Change-Id: I9da0de82978fa6984a4636e0c9ccc891d9287fd2
2024-04-23 07:43:47 +00:00
Paulz Chen
319245cdbe Merge "Add FeatureProvider for SyncAcrossDevices Settings integration." into main 2024-04-22 23:52:23 +00:00
Yuri Lin
9dbd8ddffe Merge "Add info on whether the rule is active to ZenMode" into main 2024-04-22 16:20:38 +00:00
Yuri Lin
af82199317 Add info on whether the rule is active to ZenMode
modifying the corresponding methods on ZenModesBackend to collect that information from NotificationManager.

Bug: 327419222
Test: ZenModesBackendTest, ZenModeTest
Change-Id: I01cb0ffa21a7fecaa5128cec51ced3eff384f370
2024-04-22 10:57:32 -04:00
paulzhchen
132e7341ea Add FeatureProvider for SyncAcrossDevices Settings integration.
Bug: 330498032
Test: FakeFeatureFactory
Change-Id: Iccf7ca4411a03d29e9eeba6c1544ccbd95b97654
2024-04-22 06:58:31 +00:00
Matías Hernández
c19aba4115 Remove TODO which is resolved by changes in ZenModeHelper
Bug: 326061620
Test: N/A
Change-Id: Ibbf025341c8c1705253accccc5a07b568de6f34a
2024-04-18 17:38:31 +02:00
Matías Hernández
fb0e00e3eb Merge "Introduce ZenModesBackend and ZenMode" into main 2024-04-17 08:59:48 +00:00