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
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
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
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
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
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
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
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
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
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
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
Also hide the header in that case (simiarly to bubbles).
Test: atest (new) + manual
Fixes: 273748214
Change-Id: I4f758a0bf5bb8cfa91701185f1568b358d8903a0
-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
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
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
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
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
mChannel is nullable and we have to do a null-check before calling its method.
Bug: 245506600
Test: manual and atest
Change-Id: Ib739f0f66f1a2aee1b2741263e7c206341782892
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
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
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
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
Rather than recalculating it again. Also align logic on
listing and details pages.
Test: NotificationBackendTest, NotificationPreferenceControllerTest
Bug: 231662091
Fixes: 231815850
Change-Id: If9572766666620008afb839ecb0828ace8d6073d
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