Commit Graph

137 Commits

Author SHA1 Message Date
Chaohui Wang
08a1c9876e Revert^2 "Migrate to CompoundButton.OnCheckedChangeListener"
8979681a8d

Change-Id: I60edd3aabf49afbe4aa016af780baa68d928bddf
2023-11-07 14:17:15 +00:00
Sebastian Pickl
8979681a8d Revert "Migrate to CompoundButton.OnCheckedChangeListener"
Revert submission 25147565-onSwitchChanged-CompoundButton

Reason for revert: breaking builds 

Bug:309601476

Reverted changes: /q/submissionid:25147565-onSwitchChanged-CompoundButton

Change-Id: Ie746db87d9c642599593aa3d5e5baf6b7ba89c0e
2023-11-07 13:26:36 +00:00
Chaohui Wang
71d1f021af Migrate to CompoundButton.OnCheckedChangeListener
Switch and SwitchCompat are both CompoundButton.

Using CompoundButton in Java will helps migration in the future.

Bug: 306658427
Test: manual - check Settings pages
Change-Id: If2e08a9a9557ec66a3b31ef18cd2e15943098a59
2023-11-07 20:22:27 +08:00
Alexander Roederer
d44bfaf86f Adds group to DND settings if channel names same
Adds the channel group name as a summary to the DND channel Preference if two
or more channels have identical names in the DND Menu. This allows users to
disambiguate between the channels.

Bug: 294333850
Test: Unit test updated, run with $make -j RunSettingsRoboTests ROBOTEST_FILTER=AppChannelsBypassingDndPreferenceControllerTest
Change-Id: I4eaf48e5b2ea6513098fde79c3f81d18c6f4bb3d
2023-11-02 13:51:04 +00:00
Chaohui Wang
15ca95a31b Migrate to TwoStatePreference
SwitchPreference and SwitchPreferenceCompat are both TwoStatePreference.

Using TwoStatePreference in Java will helps migration in the future.

Bug: 306771414
Test: manual - check Settings pages
Change-Id: I84e1d7b09451106797c2b23d127855c6976678ca
2023-10-23 09:28:57 +00:00
Valentin Iftime
323fbda20e Validate ringtone URIs before setting
Add checks URIs for content from other users.
 Fail for users that are not profiles of the current user.

Test: atest DefaultRingtonePreferenceTest
Bug: 299614635
Change-Id: Ib266b285a3a1c6c5265ae2321159e61e08e349f6
2023-10-06 15:44:17 +02:00
Valentin Iftime
68916a9bbf Check for NameNotFoundException when querying for PackageInfo
PackageManager.getPackageInfo will throw NameNotFoundException if package was/is being removed.

Test: atest FullScreenIntentPermissionPreferenceControllerTest
Bug: 296163845
Change-Id: I3242ac7e68fa7ed99fe99c7de7cd97aaf87948ee
2023-09-29 11:17:00 +02:00
Chaohui Wang
cc2133ba8e Clean up unused fields from EntityHeaderController
Bug: 295260929
Test: manual - on pages with header
Test: robo test
Change-Id: Icebd63dbb5d3d44b4b46d3bececb8b65b30b4883
2023-08-21 13:58:07 +08:00
Colin Cross
87b870a090 Fix kotlin nullable errors in Settings
Fix kotlin nullable errors that were exposed by setting the retention
of android.annotation.NonNull and android.annotation.Nullable to
class retention.

Bug: 294110802
Test: builds
Change-Id: I6aa0516fa4f6443b6d4dff873baf3b08ff9189f0
2023-08-14 12:29:02 -07:00
Julia Tuttle
1ddbbd4542 Merge "Fix colors in importance and conversation priority preferences" into udc-dev am: bd74e47e5e am: 2390428dd8
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23690613

Change-Id: I62ce7d8d02d54605e3115ed3abd7583ad05010be
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-20 17:48:39 +00:00
Julia Tuttle
b23136041d Fix colors in importance and conversation priority preferences
This would have been simpler and faster, but the ChannelPanelActivity
was giving me a context where Material colors always inflated in light
theme even if the device was in dark theme, so I had to work around it.

On the plus side, whoever next needs to change these colors will find
them neatly organized in themes.xml!

Bug: 284380876
Test: manual
Change-Id: I2eee877fe44d307a96d60168d0317444ff002669
2023-06-16 19:17:09 +00:00
Mady Mellor
ebfa483008 Merge "Update the colors for bubbles settings based on new spec" into udc-dev am: 57406435cf am: d219333161
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23622468

Change-Id: I9e9b9fb1e07d65903b7e5482d1068df3fff5b5f2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-09 17:00:25 +00:00
Mady Mellor
fb1e921bd9 Update the colors for bubbles settings based on new spec
Test: manual - get a bubble, go to that apps bubble settings screen,
               observe the colors look correct, switch theme and
               check again.
Bug: 283951560
Change-Id: I28fa64f8d7b53419a57615bf3da4da7eff049674
2023-06-08 13:23:54 -07:00
Mady Mellor
aabf96a1c3 Merge "Fix colors in bubble settings so they're more visible" into udc-dev am: 8a47899369 am: ee31358597
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23607273

Change-Id: I7e495da8b325296a9e7b1e3beccda822a620e1a2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-08 19:03:18 +00:00
Mady Mellor
f184678802 Fix colors in bubble settings so they're more visible
Test: manual - get a bubble, go to that apps bubble settings screen,
               observe the colors look correct, switch theme and
               check again.
Bug: 283951560
Change-Id: I361b1c20e293c02b4d604e0b5845a074c31e5103
2023-06-08 09:21:13 -07:00
Matías Hernández
01c30221ce Merge "Fix RTL-flipped phone number in Conversations" into udc-qpr-dev am: 8238bfd731 am: e2afcd0d8b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23451080

Change-Id: I5d67fe79ce3dcc309256da8d05f8cc8461aa6f27
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-31 10:32:18 +00:00
Matías Hernández
acf9402657 Fix RTL-flipped phone number in Conversations
Fixes: 278430175
Test: Manual
Change-Id: I8fa506ec75e62958375026f1414838ba73604fe6
2023-05-30 17:06:29 +02:00
Julia Tuttle
77c21d9e45 Merge "Add FSI toggle to per-app notification settings" into udc-dev am: 28edfb8df9 am: a31916bd8f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22899254

Change-Id: I624e2cc82b796788869bef6a60efb441005bdc1d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-17 16:33:28 +00:00
Julia Tuttle
6630c852d9 Add FSI toggle to per-app notification settings
Bug: 277938609
Test: atest FullScreenIntentPermissionPreferenceControllerTest
Test: # manual, verifying against "Special app access" screen
Change-Id: I9cb0d9bc99ce59a7b0ff6bcd2cab7a3c2d63f45f
2023-05-17 14:30:49 +00:00
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