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
Add jank detection when click the following preferences,
- SwitchPreference
Single target, detect click in InstrumentedPreferenceFragment
- PrimarySwitchPreference
Two target, only detect click switch in switch's onClick()
- MainSwitchPreference
Single target, detect click in TogglePreferenceController
- SettingsMainSwitchPreference
Single target, detect click in its onSwitchChanged()
Bug: 230285829
Test: manual & robo tests
Change-Id: I97a13e05a601237b16cd2d903ba2fb6ec4a69a74
Rather than recalculating it again. Also align logic on
listing and details pages.
Test: NotificationBackendTest, NotificationPreferenceControllerTest
Bug: 231662091
Fixes: 231815850
Change-Id: If9572766666620008afb839ecb0828ace8d6073d
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
- Currently most the sliders are implemented by
com.android.settings.widget.SeekBarPreference.
- Volume ones are implemented by VolumeSeekBarPreference, which resets
the OnSeekBarChangeListener, so need special handling.
- PointerSpeedPreference is standalone, added separately.
Bug: 230285829
Test: Verify trace via jank developer guideline.
Change-Id: Ia2978df196676ad6675d2834f6af6cb2aa9094cf
In two places, Settings uses getProfileIdsWithDisabled intending to
restrict itself to *managed* profiles, but actually allows for any type
of profile.
Since the declared intent is to only deal with managed profiles, we
update the code to only consider managed profiles.
On devices that only have managed profiles (currently almost all
devices), this cl is a no-op.
Bug: 230495929
Bug: 230534572
Bug: 170249807
Test: com.android.settings.UtilsTest
Test: make RunSettingsRoboTests -j
Change-Id: Id04d45839ef61080b00ca2f91525718cb3a85120
this follows the model of the change to ZenModeEventRuleSettingsTest in ag/17607148
Fixes: 215062934
Test: settings robotests
Change-Id: I44abec9316f78be318b51ba541d20b863eb86c8d
As promised in the api docs
Test: AbstractZenModeAutomaticRulePreferenceControllerTest, view
schedule DND page
Fixes: 221423986
Change-Id: I7ddc1b112950da225afa2ba13ebf5df481922177
Set rule to header, switch and action buttons controllers before their
isAvailable() is called in onCreate().
Fix: 228262001
Test: manual
Change-Id: Idc0ea779ab768497a8426ac847c4bbb2c6c4faea
The Spatial audio settings page control the state for the phone speaker
and the wired headphones
Test: make RunSettingsRoboTests
Bug: 220811398
Change-Id: I49e3fab48186d09357a8481652bdccb4aa5d044a
Revert submission 16632971-yl-prioritymode
Reason for revert: We're not launching this change with T, so this will revert all the relevant string changes.
Reverted Changes:
I5eff72db8:Rename Do Not Disturb -> Priority Mode
Ie7a9e35e6:Rename Do Not Disturb -> Priority Mode
I7bb74d2fd:Rename Do Not Disturb -> Priority Mode
Id17942024:Rename Do Not Disturb -> Priority Mode
Ib8efd7289:Rename Do Not Disturb -> Priority Mode
Ia1b77f9ee:Rename Do Not Disturb -> Priority Mode
Bug: 190180868
Test: TH
Change-Id: I7516c97809c7968f999d7caa8885f0cb5cdc844f
Merged-In: I7516c97809c7968f999d7caa8885f0cb5cdc844f
Specifically, apps that haven't requested the notif permission
in their manifest, as we cannot grant/revoke the permission unless
they do
Test: NotificationBackendTest, AppStateNotificationBridgeTest
Fixes: 218315122
Change-Id: Icd936de806d7642809ef6c79d2d169bd673c2659
in strings only -- no UI changes in this CL.
Bug: 190180868
Test: manual, ZenModeBypassingAppsPreferenceControllerTest (robotest)
Change-Id: I7bb74d2fd1a9d3b24a8b81a6cc8ba35d38b25656
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
Move setting to configure "Vibrate for calls" into "Vibraiton & haptics"
screen. Also make this page accessible via both Accessibility and
"Sound & vibration" settings pages.
Bug: 185351540
Test: SoundSettingsTest
manually using the settings app and checking updates
Change-Id: I7e40af3f332fdff8afd1a31d54a676f7e13a6678
... 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
Remove group conditions - we don't have a group page
and so don't need to test what its header would be
Test: this
Fixes: 201021319
Change-Id: I22049bc7ea2153a574ed5aa5428a5dfb295447a5
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
The Spatial audio toggle will be showed only on supported devices
Test: robotest, manual checked the UI, but not the actual functionality due to
doesn't have supported device in hand
Bug: 191870827
Change-Id: I7db264902b03fddb7808676d8cb98cbe045deda1
This change explicitly allows for multiselect between priority senders (starred, contacts) & priority conversations, and also allows unchecking boxes by clicking on the same ones again.
Also makes the screens for setting messages and calls in custom rules consistent in behavior with the main DND settings. Since much of the functionality is shared, this change refactors most of the logic into a new helper class used by both.
While these changes also affect how the "calls" screen is constructed, in effect there is no change to the functionality of priority call sender settings except under the hood.
Test: atest ZenPrioritySendersHelperTest; Settings robotests
Bug: 190180868
Bug: 197223270
Change-Id: I894775537a18feb7a891b2668b9a613a203a129c