Commit Graph

16 Commits

Author SHA1 Message Date
Sunny Shao
48a1edb12e Migrate Smooth display
Test: manual test
Bug: 374936314
Bug: 368359268
Flag: com.android.settings.flags.catalyst_display_settings_screen
Change-Id: Iaacf72751806ca64018145531dd33d510dca7f6a
2024-10-30 16:29:59 +08:00
Piotr Wilczyński
96343a9eff Refresh rate preference controllers aware of multiple displays
Set mPeakRefreshRate in the preference controllers to the highest refresh rate among all the modes of all the displays. It'll then be used to determine two things:
- if the setting is available
- the summary of the setting

This should only be done if the back up smooth display feature flag is enabled. If it's disabled, mPeakRefreshRate is passed to DisplayModeDirector and used for the votes. If the highest refresh rate of one display is 120 and that of the other is 130, we shouldn't set the vote to 130 for both displays. With the flag enabled, DisplayModeDirector figures out the highest refresh rate for each display.

Bug: 310238382
Test: atest PeakRefreshRatePreferenceControllerTest
Test: atest ForcePeakRefreshRatePreferenceControllerTest
Test: atest RefreshRateSettingsUtilsTest
Change-Id: I369927ba22df70958178505d8fc7c5747aaa8fdd
2024-02-23 18:01:22 +00:00
Piotr Wilczyński
369cfd8ea5 Don't back up Smooth Display if feature flag off
In the previous CL (ag/24838636), we decided to back up Smooth Display and Force Peak Refresh Rate even if the feature flag is off and then just convert the value in DisplayModeDirector based on the state of the feature flag. This was because it wasn't clear how to access the feature flag from the Settings module. This resulted in the feature partially working if the flag is off.

Bug: 313021502
Test: atest DisplayModeDirectorTest
Test: atest ForcePeakRefreshRatePreferenceControllerTest
Test: atest PeakRefreshRatePreferenceControllerTest
Test: atest SettingsBackupAgentTest
Test: atest SettingsBackupTest
Test: atest SettingsValidatorsTest
Change-Id: I3406bc5c5f49fe6102cdfe6934813a9c4073ac6f
2024-01-02 15:06:31 +00:00
Peter Lin
f59044d827 Make the peak refresh rate with rounding
To ensure accurate comparison of peak refresh rates, it is essential
to consider the peak refresh rate after rounding. This eliminates the
risk of unexpected triggers that could activate the Smooth Display
settings UI.

Bug: 312121651
Test: check the settings with Smooth Display
Change-Id: I4cd68efbcf4fdb9d4664c96332901661a23f4f09
2023-11-30 13:16:08 +00:00
Piotr Wilczyński
176a63a1db Back up peak refresh rate and min refresh rate
It's possible that in the future the peak refresh rate setting will have multiple values (e.g. 90, 120). For that reason, we shouldn't convert it to a boolean like in the previous CLs (ag/24604787, ag/24604847).

- set peak/min refresh rate to infinity if it's the highest refresh rate so that when we restore the setting on another device, we also choose the highest refresh rate
- back up peak/min refresh rate and add validators
- upgrade settings in SettingsProvider
- create a utils class - RefreshRateSettingsUtils

Bug: 211737588
Test: atest DisplayModeDirectorTest
Test: atest ForcePeakRefreshRatePreferenceControllerTest
Test: atest PeakRefreshRatePreferenceControllerTest
Test: atest SettingsBackupTest
Test: atest SettingsProviderTest
Test: atest RefreshRateSettingsUtilsTest
Change-Id: Ie1d8cfc76e42c7d98c4a36743463ccaf3ca5d483
2023-10-10 14:10:38 +00:00
Piotr Wilczyński
0066bdea3e Merge "Revert "Back up the smooth display setting"" into udc-d1-dev 2023-04-27 16:06:37 +00:00
Piotr Wilczyński
139bc341f3 Revert "Back up the smooth display setting"
Revert submission 22741921-cherrypick-bug-211737588-lp9s6r5vn3

Reason for revert: b/279215664

Reverted changes: /q/submissionid:22741921-cherrypick-bug-211737588-lp9s6r5vn3

Change-Id: I9b50aa0e2c5a7d328c4aa70b049c37c81e49e89b
2023-04-25 09:49:51 +00:00
Ken Lin
947f9f2553 Merge "Smooth Display description error" into udc-dev am: 24a5a1c824
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22693748

Change-Id: Ia06e9e7f22400e884bd3effdb6995564f2b116df
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-20 20:12:54 +00:00
Piotr Wilczyński
af320436fb Back up the smooth display setting
- Convert "Smooth display" and "Force peak refresh rate" to a boolean. If they are a boolean, they can be backed up without being device-specific.
- Back up "Smooth display" and add a validator
- Upgrade the settings in SettingsProvider
- Create a utils class - RefreshRateSettingsUtils

Bug: 211737588
Test: atest DisplayModeDirectorTest
Test: atest ForcePeakRefreshRatePreferenceControllerTest
Test: atest PeakRefreshRatePreferenceControllerTest
Test: atest SettingsBackupTest
Test: atest SettingsProviderTest
Change-Id: Ib2cb2dd100f06f5452083b7606109a486e795a0e
2023-04-19 11:35:08 +00:00
Ken Lin
8809994fce Smooth Display description error
Correct max refresh rate

Bug: 278111301
Test: Settings > Display > Smooth Display (and read description)
Change-Id: I9c701596712606ebd9d7d5640edd7dc3135ff5c9
2023-04-18 05:24:14 +00:00
Jake Weinstein
bfa7606ee6 Change Peak Refresh Rate string from 90 Hz to config_defaultPeakRefreshRate
This should not be static, devices can launch with various
max refresh rates. Without this commit, you would need
to manually change the string for the summary
to be accurate.

Test: mm
Change-Id: I6f06fd5ebd57d7069a3d76e555950558a3edc48e
2022-09-30 17:47:31 +00:00
Jason Chiu
2989c50a23 Add highlight menu keys for all toggle pref controllers and custom slices
Bug: 204695404
Test: manual, robotest build pass, unit
Change-Id: Iad2e28ada8ddb766ffa7eff2c8dc581250cbd6f8
2021-11-01 15:00:18 +08:00
Yichi Chen
70a9e8ea3e RefreshRatePrefCtr: Correct the check of peak refresh rate
The peak refresh rate will not be guaranteed to be integer, but
config_defaultPeakRefreshRate only takes integer into the comparison.
To expose the smooth display is enabled by default in Settings, the
patch corrects the check of peak refresh rate with proper rounding.

Bug: 185102566
Test: Enable smooth display by default in Settings
Change-Id: I658ce22cf0b0a108c4b721e3e5320caf9c379639
2021-04-29 23:34:12 +08:00
Ben Murdoch
38567b98d4 Correctly select peak refresh rate.
Currently we will get an arbitrary value that is greater than the
default depending on the order returned by the Display.

Bug: 180723012
Test: make RunSettingsRoboTests
      ROBOTEST_FILTER="com.android.settings.display.PeakRefreshRatePreferenceControllerTest"
Change-Id: Id2c99f2bea9c6b2814d82a9db3a417e4a93ee06d
2021-02-19 22:31:12 +00:00
Stanley Wang
61147df890 Fix the bug of showing the "Smooth display" item in the search result.
The controller can't be created when Settings Search gets the
non-indexable keys. So Settings Search can't get the correct value
from it.
The controller creates the Handler without the parameter in constructor
and causes the exception. It should use the main Looper of Context as
the parameter to create the Handler.

Fixes: 160179400
Test: run robotest and observe the search result
Change-Id: I6f9bf6de087ae776e8d531ff59d28966aee96b7b
2020-07-02 14:35:43 +08:00
Amy Hsu
7730d301b7 Move PeakRefreshRateController to Settings app
1. 60/90 Hz switch
2. Allow DeviceConfig to change default refresh rate

bug: 139869828
bug: 137064289
bug: 132750102

Test: Check refresh rate is expected.
Change-Id: Ia6a3e3717fd8845c7177e55b70bc6d2d952d58f3
2020-05-19 21:45:33 +08:00