Commit Graph

118 Commits

Author SHA1 Message Date
Hiroki Sato
e44848cdce Don't show bubble settings when framework doesn't support it
Some devices don't support bubbles by configuring config_supportsBubble
value. When the value is set false, it doesn't make sense to show bubble
related preferences.

This CL disables showing bubble preferences when device doesn't support
it.

Bug: 274711609
Test: Set config_supportsBubble false, and check UI.
Test: m -j80 RunSettingsRoboTests ROBOTEST_FILTER="Bubble"
Change-Id: I670ad2a9e243819ea014e5e1ddb9d62ad76d2168
2023-05-02 15:46:27 +09:00
Julia Tuttle
3a68e5bf28 Optimize imports in AppNotificationSettings
Bug: 277938609
Test: builds
Change-Id: Id44390f6fc8b6294c951a7f4ec9bd37e0a364dfd
2023-04-27 17:24:14 -04:00
Julia Reynolds
6c7a1524d3 Merge "Fix channel panel UI on 3 button nav devices" into udc-dev 2023-04-27 00:52:15 +00:00
Julia Reynolds
766ec49e8d Fix channel panel UI on 3 button nav devices
Test: edit panel on 3 button & gesture nav devices
Fixes: 278710039
Change-Id: I45b7e7c942578c4f49be8a0d193893cf872ff36e
2023-04-26 19:34:50 +00:00
Matías Hernández
8c40305ad6 Tweak refresh of notification channel group preferences
Previously, we were discarding and re-adding all channel preference switches when a group was toggled. This caused the group switch itself to flicker and sometimes lose the a11y focus as well. Because the group toggle is always at the top, it's not necessary to ever re-sort it (which is the main reason for doing the remove+add dance).

This CL also resurrects ChannelListPreferenceControllerTest which was disabled.

Fixes: 248056830
Test: atest ChannelListPreferenceControllerTest

Change-Id: I5672c102d4571430e26ad6bee92d8c88794214ae
2023-04-24 11:39:59 +02:00
Julia Reynolds
2494fd0187 Merge "Add missing conversation field" into udc-dev 2023-03-20 14:28:41 +00:00
Julia Reynolds
5164149efc Add missing conversation field
NotificationChannel#EDIT_CONVERSATION should show
both 'demote conversation' and 'promote conversation'
fields.

Test: View Partial and Full Settings for promoted and
demoted channels
Fixes: 273508155

Change-Id: I4a17a73d695d7c79837fc647b79968f535fa4393
2023-03-20 13:04:11 +00:00
Matías Hernández
08893ed0b3 Merge "Refresh the app's "Conversations" list when there are none" into udc-dev 2023-03-16 15:57:11 +00:00
Matías Hernández
a5eea1c034 Refresh the app's "Conversations" list when there are none
Also hide the header in that case (simiarly to bubbles).

Test: atest (new) + manual
Fixes: 273748214
Change-Id: I4f758a0bf5bb8cfa91701185f1568b358d8903a0
2023-03-16 15:07:13 +01:00
Julia Reynolds
a331c50b53 Reduce jank when revoking notification permission
-Reorder fields so the appear/disappear more cleanly
-Remove some divider lines- they don't animate with the content, for
some reason
-Remove an unused field
-Hide the badge field (remaining field with divider) if there are no
channels
-Change style of 'Notifications are blocked' field to better match
the other fields

Test: revoke notification permission for apps with and without channels
Test: BadgePreferenceControllerTest
Fixes: 233962859
Change-Id: Ife894172bf91d838edf3b0546c5ee00e206a855f
2023-03-15 09:08:10 -04:00
Matías Hernández
bf1b95e0fe Don't allow setting channels to bypass DND if the app cannot show notifications
The fix makes the flow more consistent with preexisting behavior:
* Apps appear in the "Apps that can interrupt" section only if some channels are set to bypass DND *and* the app is able to show notifications.
* Channels cannot be set to bypass if those individual channels are blocked.

Fixes: 265064188
Test: atest AppChannelsBypassingDndPreferenceControllerTest
Change-Id: If10f086fd60f0f70f53adb8f5cd67f90936bc35f
2023-03-07 16:41:36 +01:00
xinghailu
1637a3a10a Cleanup plurals format
Change <one> to <1> in string res file
Test: Update, existing tests still pass
bug: 199230342

Change-Id: Ic3a5259570cb52cd1664638f3b1058c87a631c04
2022-12-27 12:12:11 +08:00
András Kurucz
918a7d1844 Merge "Allow to block/unblock Conversation Notifications from Settings" into tm-qpr-dev am: 80095fa001 am: e06c0d905e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20551986

Change-Id: I9965bff813d7943ed40271c739ea9a2e909759f3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-28 17:25:56 +00:00
András Kurucz
e06c0d905e Merge "Allow to block/unblock Conversation Notifications from Settings" into tm-qpr-dev am: 80095fa001
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20551986

Change-Id: I1437a24ea8da6e36be62a2dab42307a24dc5e167
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-28 16:57:05 +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
Yining Liu
923cdcae41 Fix text in notification settings for apps that do not send notifications am: e899b4c96c am: 7f6b3cc7ca
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20283152

Change-Id: I3b63362fab7d5c532d231b7db82553fc9a7bde4d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-28 00:23:19 +00:00
Yining Liu
7f6b3cc7ca Fix text in notification settings for apps that do not send notifications am: e899b4c96c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20283152

Change-Id: Ic748f560f9a4767b6c75349506ae569cde1473af
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-10-27 23:29:27 +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
Chaohui Wang
507e5f8c90 Fix some errors for Settings project
Attrs could not have same name, so create a common parent for the
messageText. And BiometricEnrollCheckbox is not in use.

Replace some com.android.settingslib.R with com.android.settings.R,
because these are files in settings instead of settingslib.

Bug: 253772249
Test: TAP
Change-Id: Ifa796e923bf26facf4935be4968637affdb4b48b
2022-10-16 14:14:02 +08:00
Shen Lin
78fc8a21a4 Fix potential NPE crash in ConversationHeaderPreferenceController
mChannel is nullable and we have to do a null-check before calling its method.

Bug: 245506600

Test: manual and atest
Change-Id: Ib739f0f66f1a2aee1b2741263e7c206341782892
2022-09-09 10:16:29 +08:00
Michael Wright
475632c4fe Revert^3 "Improve App notification loading"
33710fd9e2

Change-Id: Ifb45f949c28bff04f8abfe3e1a73628f2e407241
2022-08-24 12:22:12 +00:00
Julia Reynolds
33710fd9e2 Revert^2 "Improve App notification loading"
c5f1cb11e0

Change-Id: I5a6d39e0a5f2b7bd30bcc12e207b8bb23857c6d8
2022-08-10 13:41:22 -04: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
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
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
4138b6f68a Remove notification permission feature flag
Tes: Settings notification robotests
Bug: 231344755
Change-Id: I3e35eede94ea88bee4c2e7fc03ce998ed68b4f81
2022-05-04 16:24:23 -04:00
Julia Reynolds
856cc0da65 Fix app notification toggle
Test: CTS Verifier 'Notification Listener Test'
Bug: 222372861
Change-Id: I060b8b9bf7b749736596676a3d98cd609dc65846
2022-03-08 09:18:56 -05:00
Mady Mellor
28f18c4b0a Merge "Use hasSentValidBubble in settings" 2022-01-14 17:58:50 +00:00
Lais Andrade
141b5bb3bc Update Settings to use intensity settings as main preference keys
Updating the Settings app to allow setting the value off for key
HAPTIC_FEEDBACK_INTENSITY. This setting state is also copied onto
HAPTIC_FEEDBACK_ENABLED setting, so both should be in sync after this
change.

Similar logic is applied between RING_VIBRATION_INTENSITY and
VIBRATE_WHEN_RINGING.

This will not disable the hardware feedback since that one is controlled
by a separate setting key now.

The "vibrate for calls" was also removed and the single toggle for
"vibrate first then ring gradually" was moved into the "Vibration &
haptics" page.

Bug: 185351540
Test: [HapticFeedback|NotificationVibration|RingVibration][Intensity|Toggle]PreferenceControllerTest
      and manual testing of the AOSP settings app
Change-Id: I9c94cef331a1500a1272a601ba32667ca995ddab
2022-01-12 22:59:29 +00:00
Mady Mellor
f9fc2e0d1e Use hasSentValidBubble in settings
This change makes it such that bubble settings will only be available once
the app has sent a bubble notification.

Test: atest BubbleSummaryPreferenceControllerTest
Bug: 178387292
Change-Id: I459ffcedc4194d953e8b7170937e2eb5334d1422
2022-01-12 14:10:34 -08:00
Julia Reynolds
a1c0dc75cd Properly show conversation settings
... when the backing shortcut is missing, so users can change
notification settings when the shortcut hasn't yet been recreated by the
app when setting up a new device

Test: Robotests (confirmed that the 2 controllers that used
mConversationInfo already tested for null), manual
Fixes: 203991823

Change-Id: I477c6b0aef0d978767788cbfc1bfadea4d36cda8
2021-11-10 14:16:42 -05:00
Julia Reynolds
a024c10517 Migrate to using fixed permissions
When deciding which app/group/channel level fields are editable. If
an app has a fixed notification permission, no importance type fields
(including blocking, importance, minimizing, popping on screen, or
prioirty conversions) can be edited.

Test: Robotests
Bug: 194833441
Change-Id: Idc198ea05cd2ab6e43387ae4e8290f446ccfa0c6
2021-10-29 11:27:01 -04:00
TreeHugger Robot
99e05ea46c Merge "Add NEW_TASK flag for intents that leave Settings" into sc-v2-dev am: 5a7966884b am: e99fe9b60c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16018030

Change-Id: I740ef2294a340ad01366fd99df986f34563e28da
2021-10-11 16:05:50 +00:00
Julia Reynolds
f8cdea4b9d Add NEW_TASK flag for intents that leave Settings
Test: manual
Fixes: 202101382
Change-Id: Ie0cc7c10b19b49ad33227f3fdaad397e03e33858
2021-10-08 17:05:45 +00:00
Wilson Wu
9edf79741d Update settings PrimarySwitchPreference reference
To make InputMethodPreference support 2 target
reference, CL[1] move the PrimarySwitchPreference
into SettingsLib.

Change all PrimarySwitchPreference reference to
Settingslib one and remove the original one.

[1]: Idea3935d95b8d22b00ca89313e9eb3e979e4aa74

Bug: 197705032
Test: Presubmit
Change-Id: I95d111522344bb7cbdd380382e48fe60a5ebc9a2
2021-09-02 13:10:19 +08:00
Julia Reynolds
2ffbb747d4 Handle spanned conversation labels
Test: Robotests
Fixes: 194446117
Change-Id: If21f727e00b181f0da127b09e5a1c46ec3257836
2021-08-12 20:11:00 +00:00
Edgar Wang
9bac8ec684 Adjust bubbles avatar icon size to align left icon
Bug: 185596897
Test: robotest & visual
Change-Id: I5d283db7e6b7f0d8cda9689c1ead2fdd318cc8ab
2021-06-21 23:59:45 +08:00
Julia Reynolds
6a603e7f4b Clean up notification settings
- Reorganize settings
- Fix dividers
- Add icons
- Fix titles
- Fix colors
- Fix indentation
- Add summaries

Fixes: 190079590
Test: manual inspection, robotests

Change-Id: Ia03219575d3b0c78f9f9b088aa3cdaa29cfdf412
2021-06-18 14:36:20 -04:00
TreeHugger Robot
d6b3885ef5 Merge "Revert "Disable RecyclerView animation to fix the broken UI"" into sc-dev 2021-06-18 10:45:20 +00:00
Yi-Ling Chuang
357b08a63e Revert "Disable RecyclerView animation to fix the broken UI"
This reverts commit 5b219a34ab.

Reason for revert: <b/191335572>

Bug: 191335572
Change-Id: I47ceb8d043e3b02a59e43a1ae021c3c7855cbe57
2021-06-18 10:45:13 +00:00
Julia Reynolds
0d937afbb8 Add a11y text for disappearing preference
Test: Talkback
Fixes: 182241259
Change-Id: I99c1ce635c5717e22ee28bc86b51bd3be4b83d91
2021-06-17 14:28:35 +00:00
Julia Reynolds
a2c2889c78 Merge "Update method name" into sc-dev 2021-06-09 17:33:23 +00:00
Julia Reynolds
b70d3d5c13 Update method name
Test: RoboTests
Bug: 184709662
Change-Id: I3a998a151f9647efae00909e2b4f88fa27d645eb
2021-06-09 09:53:09 -04:00
Giuliano Procida
ef0e09f7a3 Merge "Revert "Apply SettingsLib SeekBarPreference to Settings"" into sc-dev 2021-06-08 09:55:58 +00:00
Edgar Wang
cdff5c6ceb Revert "Apply SettingsLib SeekBarPreference to Settings"
Revert submission 13422386-seekbar-sc-dev

Reason for revert: build broken in SettingsGoogle
Reverted Changes:
I0c2d0d5fb:Apply SettingsLib SeekBarPreference to SettingsGoo...
I1844bb3b0:Apply SettingsLib SeekBarPreference to a11y vibrat...
Ia3e4adec8:Apply SettingsLib SeekBarPreference to a11y vibrat...
Iadee57e9d:Apply SettingsLib SeekBarPreference to a11y vibrat...
I219878716:Apply SettingsLib SeekBarPreference to Settings
I959f5672c:Create SettingsLibSeekBarPreference
I92545a69c:Apply SettingsLib SeekBarPreference to a11y vibrat...

Change-Id: Ie6c3b0dc072e044796abdb33fca305f9f9d47c4d
Bug: 176818438
2021-06-08 09:47:51 +00:00
Edgar Wang
4aad4a88a7 Merge "Apply SettingsLib SeekBarPreference to Settings" into sc-dev 2021-06-08 07:23:54 +00:00
Edgar Wang
d6b5bbb5cb Apply SettingsLib SeekBarPreference to Settings
Bug: 176818438
Test: robotest

Change-Id: I219878716457ce4bb7cad251bccf5d50d93030a5
2021-06-07 18:09:19 +00:00
Julia Reynolds
6d6280c634 Merge changes I31066a6f,I081cea0d into sc-dev
* changes:
  Fix broken test
  Updates to conversation page
2021-06-07 14:50:00 +00:00