Commit Graph

1583 Commits

Author SHA1 Message Date
Behnam Heydarshahi
ee56e95f90 Merge "Implement a separate controller for ring volume" into tm-qpr-dev 2023-01-11 14:08:01 +00:00
Behnam Heydarshahi
4f87dd4b56 Implement a separate controller for ring volume
When ring volume is separated from notification, a new xml preferece and
controller is needed for it, so that the settings search can show/hide
the slice correctly.

1. Use a separate preference and controller for ring volume (vs ring &
notification combined)
2. Notification slice in settings no longer grays out when ringer mode
is set to mute or vibrate.
3. Introduce an abstract RingerModeAffected preference controller class
to factor out duplicate code among ring, notification, and separate-ring
controller classes.

Bug: b/259084354

Test:   make ROBOTEST_FILTER=RingVolumePreferenceControllerTest
RunSettingsRoboTests -j40
        make ROBOTEST_FILTER=SeparateRingVolumePreferenceControllerTest
RunSettingsRoboTests -j40
        make ROBOTEST_FILTER=NotificationVolumePreferenceControllerTest
RunSettingsRoboTests -j40
        make ROBOTEST_FILTER=VolumePanelTest RunSettingsRoboTests -j40
	make
ROBOTEST_FILTER=RingerModeAffectedVolumePreferenceControllerTest -j40

Known Issue:
1. When streams are separate and ring volume set to mute/vibrate,
notification is set to zero, but not disabled. So it can be turned on
by user (and in settings the icon will stay mute/vibrate instead of
changing to the normal notification icon).

2. In the above scenario after notification is unmuted in settings,
the notification icon continues to stay vibrate/mute -- should change
to the normal notification icon.

Note: This feature is controlled using a boolean DeviceConfig flag:
systemui/"volume_separate_ring". The default value is 'false', which is
meant to keep the experience the same as before. It will be set to
'true' for teamfood and dogfood. Eventually the flag will be removed and
the code in the 'true' branch will prevail.


Change-Id: Ibec871eafeef4081e96c5e0dd04535565d50a077
2022-12-28 22:33:50 +00:00
changbetty
09a6899fc2 Change the intent flag to immutable
Bug: 256590210
Test: make RunSettingsRoboTests ROBOTEST_FILTER=MediaVolumePreferenceControllerTest
Change-Id: I68132f863027fab19351b4fdbc363e5c274e3327
2022-12-21 10:16:10 +00:00
Yuri Lin
afe52dfae5 Disable zen rule preferences with invalid activities
While resolveActivity is used to determine whether an Intent can be handled by something, this doesn't catch the case of explicit intents whose activity class doesn't exist. Here we check for it through PackageManager.queryIntentActivities instead for existing zen rules (if they were added when the activity exists, but it no longer does).

For new rules, check the validity of the activity for external rules before adding them to the list.

Bug: 238144390
Test: manual via DND app
Change-Id: Ia920ca792f9c17a5d684baf877c882ce7fadffd6
2022-12-14 14:13:36 -05:00
András Kurucz
80095fa001 Merge "Allow to block/unblock Conversation Notifications from Settings" into tm-qpr-dev 2022-11-28 16:32:00 +00:00
András Kurucz
0fa99226e1 Allow to block/unblock Conversation Notifications from Settings
The user can end up in a state where the Channel of a Conversation is
blocked (has an importance of 0).
Currently there was no way to unblock it, because we didn't allow it from
the Settings. Therefore now the option to block/unblock is added to the
Conversation Settings page.

Fixes: 255062535
Test: Block/Unblock a Conversation from Settings
Test: Mark a notification blocked and conversation by clicking the “Show
notifications” toggle and the “This is a conversation” button at once.
Now unblock it from the Settings.

Change-Id: I06778d259155d87d6af4bdb7013cd3b6c9a2e5ee
2022-11-23 13:24:36 +00:00
Steve Elliott
30ccc43ae1 Revert^2 "Add configuration for defaulting notification behavior"
Test: go through SUW on affected device, view notification screen
Bug: 240472040
Change-Id: I34dbe28226d830bc5ba633e72cd529d97021de85
2022-11-21 15:16:40 +00:00
Sam Dubey
a2d06273c1 Revert "Add configuration for defaulting notification behavior"
Likely causing b/259499400

This reverts commit a92688d642.

Change-Id: I781a7ecf9139eca11e1db895f86268b893258543
2022-11-17 07:33:18 +00:00
TreeHugger Robot
e2e892d46c Merge "Add configuration for defaulting notification behavior" into tm-qpr-dev 2022-11-15 22:42:34 +00:00
Yining Liu
3852625699 Merge "Increase the number of notification items that can be shown in Notification history - Recently dismissed" into tm-qpr-dev 2022-11-14 17:58:28 +00:00
Steve Elliott
a92688d642 Add configuration for defaulting notification behavior
Test: RedactionInterstitialTest
Test: go through SUW on a phone
Bug: 240472040
Change-Id: I7bcd9f1a128c757881693e0251d305d2e26e4fd8
2022-11-11 14:08:09 -05:00
Behnam Heydarshahi
2ac6fc5709 Read flag to show/hide notification slider
Replace the build-time boolean resource with a run time device config flag that
signals whether the ring notification slider should be displayed or not

Bug: b/38477228
Test: make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=NotificationVolumePreferenceControllerTest RunSettingsRoboTests -j40
      make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=RingVolumePreferenceControllerTest RunSettingsRoboTests -j40
Change-Id: I8b9a2cbd5af7fa1bba56ff9ba62771d677d4a932
2022-11-01 20:31:38 +00:00
Yining Liu
52ea5d8b7c Increase the number of notification items that can be shown in Notification history - Recently dismissed
Increase the max number of items shown in 'Notification history - Recently dismissed' from 6 to 50.

Bug: 255784319
Test: Manual: Dismiss 6 or more notifications, open Settings-Notifications-Notification History, the max item count under `Recently dismissed` should be 50.
Change-Id: Ia13158ae1ebca448d43bf4c6f6037758b3f40615
2022-11-01 20:20:41 +00:00
TreeHugger Robot
a82d5e7be2 Merge "Remove "Always show icon when in vibrate mode"" into tm-qpr-dev 2022-10-28 03:15:21 +00:00
Yining Liu
e899b4c96c Fix text in notification settings for apps that do not send notifications
Added a new string to show for apps apps that target T, but do not declare the POST_NOTIFICATIONS permission in notification settings.

Bug: 229108007
Test: `croot` `make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.notification.app.NotificationsOffPreferenceControllerTest"` and manual: open Settings-Notifications-App Settings, check the text for apps that does not post notifications with toggle disabled. Text should be: "This app does not send notifications" when system language is English.
Change-Id: I9822b6f983e00c5982522099e339d86fae45aefe
2022-10-27 20:19:44 +00:00
Tsung-Mao Fang
9065049733 Remove "Always show icon when in vibrate mode"
If device doesn't support vibrator, then disable this feature.

Test: No this setting
Fix: 253165108
Change-Id: I58e2bf7b36a3af61d458fc2cb8c92c18219d6684
2022-10-27 10:05:50 +00:00
changbetty
4f42ca1eac [LE Audio] Remove the broadcast icon when the device does not support
broadcast feature

Bug: 254743785
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=MediaOutputIndicatorWorkerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=MediaVolumePreferenceControllerTest
Change-Id: I02e429b3a306e2f9b0e2342118649208617c4944
2022-10-24 12:03:23 +00:00
Julia Tuttle
e9108aecd8 Default to hiding silent notifications on lockscreen in Settings
Also, fix an errorprone issue.

Bug: 252815574
Test: atest ShowOnLockscreenNotificationPreferenceControllerTest
Change-Id: I46e6d0f15c69abe60ef8505d300e5205b3c71e53
2022-10-15 01:24:19 -04:00
Julia Tuttle
9f0efa68a1 Fix some out-of-order imports
Bug: 20188695
Test: build
Change-Id: I47d463f82bee4e1b22300eb4260dd38dbeb13c88
2022-10-13 21:55:46 -04:00
Chloris Kuo
236eaed326 Disable Enhanced notifications setting when default NAS is not available
Test: NotificationAssistantPreferenceControllerTest
Bug: 251400808
Change-Id: Idec520013bea32cfaea0285f33c525a6e37f0124
(cherry picked from commit 873b8544e1)
2022-10-13 16:27:35 +00:00
Behnam Heydarshahi
3ac6aaf796 Add notification volume controller in settings
Separate notification and ring controllers based on the ring/volume
stream alias boolean in config.xml.

For both ring and volume controller: Not show vibrate icon when vibration is not supported on device. Show
silent icon instead.

Known issue: Add the notification volume slider only in Settings, and
not in VolumePanelDialog. When the alias is set to false and the streams
separated, the ring volume slider in VolumePanelDialog keeps its title
of "Ring & notification volume" instead of changing to "Ring volume".

Bug: b/38477228

Test: make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=NotificationVolumePreferenceControllerTest RunSettingsRoboTests -j40
      make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=RingVolumePreferenceControllerTest RunSettingsRoboTests -j40
      make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER=SoundSettingsTest RunSettingsRoboTests

Change-Id: Id17523f49b291a5cf612b90f93c3b2ab6486c62f
2022-10-10 14:42:56 +00:00
Chloris Kuo
6f79ffd831 Merge "Support ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS in Enhanced Notifications" into tm-qpr-dev 2022-08-24 22:37:58 +00:00
Chloris Kuo
54c677a83c Support ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS in Enhanced Notifications
Show detail settings page from the default NAS app if it implements the new intent ACTION_NOTIFICATION_ASSISTANT_DETAIL_SETTINGS.

Test: Robotest, manually test on device
Bug: 231492005
Change-Id: I6566cd9d615331a56728613583295637982bcd3f
Merged-In: I6566cd9d615331a56728613583295637982bcd3f
2022-08-24 19:51:08 +00:00
Michael Wright
1218065085 Merge "Revert^3 "Improve App notification loading"" into tm-qpr-dev 2022-08-24 15:24:15 +00:00
Michael Wright
475632c4fe Revert^3 "Improve App notification loading"
33710fd9e2

Change-Id: Ifb45f949c28bff04f8abfe3e1a73628f2e407241
2022-08-24 12:22:12 +00:00
Julia Reynolds
635b3f065e Merge "Revert^2 "Improve App notification loading"" into tm-qpr-dev 2022-08-22 13:56:41 +00:00
Chloris Kuo
359929732d Fix settings crash when enhanced notification shown in search results
init NotificationBackend in constructor and set isSliceable to false in
search result since the NAS enabling logic is required and is in the
parent fragment ConfigureNotificationSettings.

Bug: 237251075
Test: test manually on device
Change-Id: I9082d6eda27784cf378a0d06304b5fc1e2ae6d7f
(cherry picked from commit 26ce9a98f0)
2022-08-16 17:08:17 +00:00
Betty Chang
9c0904acde Merge "[LE Audio] To fix the condition of the broadcast icon display" into tm-qpr-dev 2022-08-12 01:29:01 +00:00
changbetty
d55a7067aa [LE Audio] To fix the condition of the broadcast icon display
- The broadcast icon will be displayed when the device is connected to
   the LE Audio device.

 - The broadcast option dialog will show the "Broadcast" option when the
   media is streaming. Otherwise, it will not show.

Bug: 235923182
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=MediaVolumePreferenceControllerTest
Change-Id: Ib225d185b6f15463f4fae809e0cdaa25920d52af
2022-08-11 02:01:55 +00:00
Julia Reynolds
33710fd9e2 Revert^2 "Improve App notification loading"
c5f1cb11e0

Change-Id: I5a6d39e0a5f2b7bd30bcc12e207b8bb23857c6d8
2022-08-10 13:41:22 -04:00
Julia Reynolds
6a110b91f8 Merge "Revert "Improve App notification loading"" into tm-qpr-dev 2022-07-26 14:56:20 +00:00
Neha Jain
c5f1cb11e0 Revert "Improve App notification loading"
Revert "Fix binder error when an app has many channels"

Revert submission 19290255-jr-bind-flicker

Reason for revert: b/240100577
Reverted Changes:
I9a1c96f75:Improve App notification loading
I391ce0b10:Fix binder error when an app has many channels

Change-Id: Iaae40de74d135a79c18201ec17e00f3d9d5f0f3b
2022-07-25 22:16:16 +00:00
Julia Reynolds
7ab7c1d6f8 Merge "Move zen rule deletion" into tm-qpr-dev 2022-07-25 17:24:42 +00:00
Julia Reynolds
f3b9bf55a9 Move zen rule deletion
To a non-exported component

Test: manually delete a rule in Settings
Fixes: 233607507
Change-Id: I6c4ac930eb62a2068582021d0ad16b93fbc9bdd3
2022-07-21 14:54:42 -04:00
Julia Reynolds
e90507373c Improve App notification loading
1) Use UiBlocker, for better animations for apps with a lot of channels
2) Only load data in onResume, because the data loading step in some
of the controllers is expensive

Test: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.notification"
Test: load small channel and large (6000ish) channel app pages
Test: load individual channel pages
Test: load in-app channel shelf UI
Fixes: 215072888
Change-Id: I9a1c96f75b02f94b3ffc529d17d9c0cad7752de1
2022-07-20 15:27:52 +00:00
Chaohui Wang
bd369cfee5 Fix Conversation page flickers
In this page, 3 conversation lists are implemented by the
ConversationListPreferenceController, these lists updates its contents
in updateState(), which is after the preference screen view created.
So when the first time this page is showed, animations of added contents
will be shown.

The improvement is when the first time, update the list in the
onCreate(), which is called before view creation, instead of the
updateState().

And also do the same thing for RecentConversationsPreferenceController.

Also, to reduce latency,
1. Because currently there are duplicated calls in
NoConversationsPreferenceController to check whether conversations are
exists or not, by removing the duplicated calls and reuse the result
from other controllers, the latency could be reduced.
2. Currently, there are seperated api calls, the
mBackend.getConversations(false) in AllConversationsPreferenceController
and the mBackend.getConversations(true) in
PriorityConversationsPreferenceController, use one
mBackend.getConversations(false) in ConversationListSettings to improve,
this does not change the behavior because the result is filtered in
matchesFilter() both before and after.
3. Currently, we sort conversations first then filter them, change to
filter first then sort to reduce latency.

Fix: 215073227
Test: visual check & robo tests
Change-Id: I028a7fabbbf64cf5627e6615372282a36eb784e5
2022-05-25 10:43:16 +08:00
Chaohui Wang
d30d1a74e1 Fix Conversation page flickers when back
In this page, there are 3 items flickery when back from conversation
page,
 - The summary under priority conversations
 - The summary under non-priority conversations
 - The clear all button under recent conversations

This is because there is no key on these 3 preferences, when preference
screen updated in onResume(), preference screen thought these 3 are new
items, shows an animation for them. Add keys to them to fix.

Bug: 215073227
Fix: 232341970
Test: visual check
Change-Id: I24691cfa89a624c1741786499b47ede87d518d1a
2022-05-20 16:25:00 +08:00
Alan Huang
bb3f56fc02 Update Spatial audio settings page
Bug: 229048602
Test: local build and verify page
Change-Id: I096eae1bd0ca3acd52e6025963a08b0d60cb8d74
2022-05-18 09:21:01 +00:00
Julia Reynolds
688c5c900d Update the 'is valid contentIntent' check
Existing check required that the original request code be 0,
but that's not actually required for the intent to work on this
page

Test: tap on email notification in history, be brought to email
page and not main email list page
Fixes: 232495202

Change-Id: I120022535ddbde19003f2db6f1b81a983d00789d
2022-05-13 17:37:52 +00:00
Julia Reynolds
2011588b16 Use NMS calculation of fixed importance
Rather than recalculating it again. Also align logic on
listing and details pages.

Test: NotificationBackendTest, NotificationPreferenceControllerTest
Bug: 231662091
Fixes: 231815850
Change-Id: If9572766666620008afb839ecb0828ace8d6073d
2022-05-11 16:38:04 +00:00
Julia Reynolds
23a85a1f96 Merge "Remove notification permission feature flag" into tm-dev 2022-05-09 20:16:09 +00:00
Raphael Kim
c6f7599158 Merge "Extract app label from component name in notification access confirmation UI" into tm-dev 2022-05-09 17:55:06 +00:00
Yuri Lin
9fb3262a1a Merge "Change zen mode schedules page rule handling" into tm-dev 2022-05-09 14:56:13 +00:00
Andy Hung
3198bd8cec Merge "SpatialAudioSettings: Fix state check" into tm-dev 2022-05-09 04:06:49 +00:00
Andy Hung
482ad196cc SpatialAudioSettings: Fix state check
Test: enable/disable spatial audio settings, check status
Bug: 231499448
Change-Id: Idf05fde45b17b95d9fb611cacd8d11c471a12fe4
2022-05-05 20:25:12 -07:00
Yuri Lin
7cbba753dc Change zen mode schedules page rule handling
The approach of reloading all rules (and recreating all ZenRulePreferences) every time the rule set changed causes the switches on the page to stop working.

This change keeps the ZenRulePreference around as long as the rule itself is around and keeps it updated, while re-adding the preferences to the PreferenceCategory if needed due to rules changing.

Fixes: 229879326
Test: manual, ZenModeAutomaticRulesPreferenceControllerTest
Change-Id: I4eba41e8252cedd87ac866e4b97513970ca2d94a
2022-05-05 14:24:42 -04:00
Jonathan Scott
b7f4f56cad Add missing settings strings.
Also re-enable and fix tests.

Test: manual
Fixes: 226183482
Fixes: 218799125
Fixes: 219375624

Change-Id: I9605f1f4e2e834baf63e015e96639567c5481b5f
2022-05-05 09:12:59 +00:00
Julia Reynolds
4138b6f68a Remove notification permission feature flag
Tes: Settings notification robotests
Bug: 231344755
Change-Id: I3e35eede94ea88bee4c2e7fc03ce998ed68b4f81
2022-05-04 16:24:23 -04:00
Raphael Kim
ff34195604 Extract app label from component name in notification access confirmation UI
Bug: 228178437
Test: Manually tested on POC
Change-Id: I8613d9b87a53d4641c0689bca9c961c66a2e9415
2022-05-04 19:41:13 +00:00
Chaohui Wang
b3db0000a6 Merge "Add the jank detection to Settings sliders" into tm-dev 2022-05-04 02:23:14 +00:00