Commit Graph

373 Commits

Author SHA1 Message Date
Sunny Shao
7f5e1f6e8b Customize Max Screen Timeout
Make it possible to customize the maximum screen timeout.
Added a configurable max timeout value which, if provided, will
limit the predefined timeout values.
Leverage code from aosp.

Flag: EXEMPT bugfix
Bug: 309512299
Test: atest ScreenTimeoutSettingsTest
Change-Id: Ibb180c89489fe890f1929bdefd5ced87a9566f07
2025-03-10 06:52:28 +00:00
Jacky Wang
0da0270ff7 [MainSwitchPreference] Remove OnCheckedChangeListener from NightDisplayActivationPreferenceController
Bug: 400335057
Flag: EXEMPT refactor
Test: manual
Change-Id: I97506685a9a188755297c90d15ead738667c8d5c
2025-03-07 19:44:59 +08:00
Santos Cordon
43e0a04580 Merge "Remove EvenDimmer Toggle" into main 2025-03-03 07:19:04 -08:00
Daniel Norman
551534959c Merge "Update the dark theme and EDT description" into main 2025-02-27 11:26:10 -08:00
Candice
4a97b31f42 Update the dark theme and EDT description
Bug: 315012822
Test: Manually. See screenshot in the bug
Test: atest DarkModeTopIntroPreferenceControllerTest
Flag: android.view.accessibility.force_invert_color
Change-Id: I94ba1af4e49c461978fc6b31e82e44c88ba19109
2025-02-26 15:56:44 +00:00
Vadym Omelnytskyi
cc96950d12 Display: make Colors settings entry preference reactive
Added `display_color_mode` listener to Colors preference. As a result,
it becomes reactive and updates its color mode value summary.

Flag: EXEMPT minor change
Bug: 397659800
Test: changed color mode using `adb` commands and verify that Colors
summary reacts and print correct color mode

Change-Id: I963768e3dbb43b547ec53e6445b2791ec0f57cff
2025-02-24 10:39:19 +00:00
Vadym Omelnytskyi
a8f1da6994 Display: refactor Color Mode settings
1. Refactor Color Mode by moving color summary functionality to the ColorModeUtils
class.
2. Migrated `ColorModeUtils` from Java to Kotlin.
3. Changed ColorModePreferenceControllerTest according to changes

Bug: 390644464
Flag: EXEMPT refactoring
Test: atest com.android.settings.display
Test: atest -c packages/apps/Settings/tests/robotests/src/com/android/settings/display/colors/ColorModePreferenceControllerTest.kt
Test: atest -c packages/apps/Settings/tests/unit/src/com/android/settings/display/ColorModePreferenceFragmentTest.java

Change-Id: I55ac6129b93e4e35bd58f0313215b711ce954c0a
2025-02-24 10:36:23 +00:00
Santos Cordon
5ac75884f8 Remove EvenDimmer Toggle
Bug: 372342802
Test: Manually verify toggle is gone
Flag: com.android.server.display.feature.flags.even_dimmer
Change-Id: I15583fda2bc164627a5ef9b60f09f66bdb95cddd
2025-02-14 15:47:40 +00:00
Riley Jones
94621548c1 Disabling elements on the A11y Shortcut setting subpage
Elements on the subpage get disabled if there are no enabled shortcut targets for the relevant type.
In the case of A11y button, the items on its fragment become unsearchable when the setting is disabled.

Test: Manually verify conditions described above & in bug
Bug: 349180207
Flag: com.android.settings.accessibility.fix_a11y_settings_search
Change-Id: Id39e2eda6c9d1de4cdbfcbc22b8a1f443e2822d9
2025-01-24 00:59:25 +00:00
Menghan Li
47550d4c8a fix(brightness suw): Hide brightness preference in the suw.
Root cause: there's a mismatch in how visibility is determined for
the AutoBrightnessPreferenceControllerForSetupWizard. The
getAvailabilityStatus method and the displayPreference method
(specifically the preference.setVisible call) use different
conditions for showing the preference.
Solution: To ensure consistency, I propose aligning these conditions
by incorporating an aconfig flag check in both places. This will
prevent unexpected behavior and make the logic clearer.

Bug: 389011125
Flag: com.android.settings.accessibility.add_brightness_settings_in_suw
Test: atest AutoBrightnessPreferenceControllerForSetupWizardTest
            BrightnessLevelPreferenceControllerForSetupWizardTest
Change-Id: I004bfe8b1e039734356715c971f0bfbe56ffa9db
2025-01-21 05:25:21 +00:00
Sunny Shao
03de6af4fc [Catalyst] Rollback the Adaptive brightness key
Let the redirect highlight function work from Turbo app.

NO_IFTTT=Catalyst migration

Test: devtool, atest AutoBrightnessScreenTest
Bug: 390525596
Flag: com.android.settings.flags.catalyst_display_settings_screen
Change-Id: Id7261d8a51368c45b7e23fee911565a226b30779
2025-01-17 08:27:02 +00:00
Menghan Li
242b3b8abd Merge changes I97841c5b,I64e47f92 into main
* changes:
  feat(EDT): Update the preference interaction and visiblity logic
  feat(EDT): Migrate entry into Display Settings
2024-12-23 22:00:42 -08:00
Menghan Li
9aa9199f08 feat(EDT): Migrate entry into Display Settings
The EDT toggle will be an subsetting in the DarkTheme settings page
- When the Dark Theme main toggle is on, we check the EDT setting to
decide applying normal DarkTheme or EDT now.
- The EDT preference is disabled when DarkTheme is off

Bug: 368721320
Flag: android.view.accessibility.force_invert_color
Test: atest ToggleForceInvertPreferenceControllerTest
            DarkModeSettingsFragmentTest
Change-Id: I64e47f92b14ee24a91f469cb55c7bb1285f05c62
2024-12-23 00:05:23 +00:00
Roy Chou
b694a0afc9 Merge "feat(brightness suw): hide brightness preferences if restricted" into main 2024-12-18 00:21:45 -08:00
Roy Chou
79632a9fc5 feat(brightness suw): hide brightness preferences if restricted
By default if a RestrictedPreference is restricted then the preference
becomes disabled but still visible. But for brightness preferences in
A11y SUW we'd like to hide them if they're restricted and disabled,
since it's meaningless to show disabled items in SUW.

To achieve this, in PreferenceController#displayPreference we check the
whether the preference is RestrictedPreference and restricted, so we can
decide whether to hide it. Besides, if the preference is restricted and
we hide it, in PreferenceController#getAvailableStatis we also return
CONDITIONALLY_UNAVAILABLE to make consistency.

Bug: 384620216
Flag: com.android.settings.accessibility.add_brightness_settings_in_suw
Test: manually
      atest AutoBrightnessPreferenceControllerForSetupWizardTest
      atest BrightnessLevelPreferenceControllerForSetupWizardTest
Change-Id: Ifb68b4d64fc111d91a23457882a006002173d232
2024-12-18 07:05:45 +00:00
Jacky Wang
dc1a52a2ee [Catalyst] Simplify KeyValueStore API calls
NO_IFTTT=Catalyst only

Bug: 325144964
Flag: com.android.settings.flags.catalyst
Test: atest
Change-Id: I518b9c861eac6d515dfc7f0ac2d028f9395e06a1
2024-12-08 19:22:18 +08:00
Fan Wu
b551184b15 Update resource name and format previously added file
Bug: 372774754
Test: atest and device test
Flag: com.android.settings.flags.catalyst_power_usage_summary_screen
Change-Id: Iaa6a07108c4401e844e1a1e19f07fc809e4c43c9
2024-11-14 03:33:57 +00:00
Fan Wu
a794e01d45 Revert "Revert "Migrate Battery percentage preference into catal..."
Revert submission 30375632-revert-30294757-catalyst_battery_percentage-RPJNJOPEZI

Reason for revert: the failures is part of the robolectric issue b/378822459. Tested locally that the change is not breaking ClockworkSetupWizardRoboTests.

Reverted changes: /q/submissionid:30375632-revert-30294757-catalyst_battery_percentage-RPJNJOPEZI

Change-Id: I2210002924650cb54c55a41be25d97a3997c065e
2024-11-14 01:59:16 +00:00
ELIYAZ MOMIN (xWF)
1bbe798c8f Revert "Migrate Battery percentage preference into catalyst. Ref..."
Revert submission 30294757-catalyst_battery_percentage

Reason for revert: <Potential culprit for b/378858348  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.>

Reverted changes: /q/submissionid:30294757-catalyst_battery_percentage

Change-Id: I17a124619a1d6c7b6930a1c26c2b84c1a52ce8f7
2024-11-13 13:39:43 +00:00
Fan Wu
c2f72f3cea Migrate Battery percentage preference into catalyst. Refactor logic from BatteryPercentagePreferenceController to BatteryPercentageSwitchPreference
Bug: 372774754
Test: atest and manual test
Flag: com.android.settings.flags.catalyst_power_usage_summary_screen
NO_IFTTT=already updated.

Change-Id: I9a259b966a832293e067c9f06c4c98479cb538a2
2024-11-13 01:28:02 +00:00
Jacky Wang
33c580ec45 [Catalyst] Support restriction for Display settings
NO_IFTTT=Catalyst only

Bug: 377600992
Flag: com.android.settings.flags.catalyst_display_settings_screen
Test: testdpc
Change-Id: I0a9a125a24614ea8d93e870891c7db6f73f4ac9e
2024-11-06 16:49:27 +08:00
Jacky Wang
d655faf940 Enable AutoBrightnessScreenTest
NO_IFTTT=Enable test

Bug: 374712065
Flag: EXEMPT test
Test: atest
Change-Id: I1402bbf37644cb9b22aca6b9cae06306524a3b8f
2024-11-04 04:14:09 +08:00
Jacky Wang
45f5ef607d [Catalyst] Proivde KeyValueStore for "Adaptive brightness"
NO_IFTTT=Ignore test

Bug: 374712065
Flag: com.android.settings.flags.catalyst_screen_brightness_mode
Test: adb shell settings delete/get/put system screen_brightness_mode
Change-Id: I57b72082853493173648d4658d2f225121f68bbf
2024-11-03 21:25:41 +08:00
Sunny Shao
369263156b [Catalyst] Migrate Adaptive brightness in the DisplayScreen
Migrate the AutoBrightnessPreferenceController to be a Catalyst type preference.

Test: atest AutoBrightnessScreenTest
Bug: 374712065
Flag: com.android.settings.flags.catalyst_screen_brightness_mode
Change-Id: I80d17a4f7fae237825ab84d1f428614affcb9065
2024-11-03 09:40:22 +08:00
Kenneth Ford
b8e331612b Merge "Update Settings tests to new DeviceStateManager API" into main 2024-10-17 16:15:00 +00:00
Jacky Wang
1e13457267 Rename CatalystScreenTestCase.context
Bug: 370394101
Flag: EXEMPT test
Test: N/A
Change-Id: Icfe546154a079f24a75455d25d128d5e550162cd
2024-10-17 07:38:31 +08:00
Jacky Wang
3ab6b197a9 Fix flaky tests due to shared system property
The system property is shared within JVM, change system property in a
test case might break test cases in another test class. To address the
issue, introduce SystemProperty helper class to back up and restore the
system properties in tests.

Bug: 373177618
Flag: EXEMPT Test only
Test: atest SettingsRoboTests
Change-Id: I15539ce5ac425f35571d796baa25f259df1b601f
2024-10-15 19:08:30 +08:00
Jacky Wang
44dfbe6748 Ignore catalyst test in DisplayScreenTest
Bug: 373177618
Bug: 368359268
Flag: EXEMPT fix test
Test: atest
Change-Id: I8de8468f53f4b9ec2c66e8e836bf9cf9072e6e63
2024-10-14 12:55:45 +08:00
Jacky Wang
92ce82809e [Catalyst] Use hybrid mode for display screen
Bug: 368359268
Flag: com.android.settings.flags.catalyst_display_settings_screen
Test: atest DisplayScreenTest
Change-Id: I5eed12ee5c596bee4c21c6e3aa9f3db0e0227bff
2024-10-12 16:38:31 +08:00
Kenneth Ford
476cd46b76 Update Settings tests to new DeviceStateManager API
Updates tests that use PosturesHelper to return both
the correct configuration values as well as the values
returned through the DeviceStateManager APIs

Flag: android.hardware.devicestate.feature.flags.device_state_property_migration
Bug: 336640888
Test: atest SettingsRoboTests
Change-Id: I23e7446de719f11c99a4f747e189e11405b203ef
2024-10-10 19:33:55 +00:00
Sunny Shao
b31c54b6f4 Migrate DisplayScreen
Add the skeleton of the DisplayScreen

Test: atest DisplayScreenTest
Bug: 368359268
Flag: com.android.settings.flags.catalyst_display_settings_screen
Change-Id: I806504ae839ba0a53320fd94fb4fe21a52dc249b
2024-10-08 11:12:41 +08:00
Menghan Li
e0f734526d refactor(brightness suw): decouple auto brightness initialization logic for setup flow
The AccessibilitySettingsForSetupWizard class should not be responsible for managing the initial
logic of controllers, such as determining which controllers need to be dynamically added or updated
using setInSetupWizard APIs. This logic should be handled directly by the controllers themselves.

Bug: 311093618
Flag: EXEMPT bugfix
Test: atest AccessibilitySettingsForSetupWizardTest
            AutoBrightnessPreferenceControllerForSetupWizardTest
            AutoBrightnessPreferenceControllerTest
            BrightnessLevelPreferenceControllerForSetupWizardTest
            BrightnessLevelPreferenceControllerTest

Change-Id: I6065a10e72d002981c0f514543e6933d79c2aa1b
2024-09-24 05:41:23 +00:00
Matías Hernández
2a3e8b3070 Update "Dark Theme" Settings screen to account for Modes that can toggle it
Bedtime is no longer a special case.

Fixes: 361592187
Test: atest com.android.settings.display.darkmode
Flag: android.app.modes_ui
Change-Id: Iddc5d8142d6bc0bb1f5c4ead876ee201c8818b12
2024-09-11 11:52:50 +02:00
Fiona Campbell
65ccea2e52 Even Dimmer for manual screen brightness mode
Bug: 338416256
Fixes: 331324279
Test: atest EvenDimmerPreferenceControllerTest

Change-Id: I039f90df1b77348cde543964905c0745c888413d
2024-06-10 11:16:31 +00:00
Roy Chou
535494eca9 Merge "feat(brightness suw): add brightness preferences in suw" into main 2024-05-15 07:25:06 +00:00
Roy Chou
042c8c7328 feat(brightness suw): add brightness preferences in suw
Add brightness level and auto brightness preference in
accessibility_settings_for_setup_wizard.xml. Since the flagging has not
be supported yet for non-Manifest resources, for now we add the
preferences by default, and update the preferece availablity status in
each preference controllers based on the flag.

Bug: 311093618
Flag: ACONFIG com.android.settings.accessibility.add_brightness_settings_in_suw DEVELOPMENT
Test: manually
      atest AccessibilitySettingsForSetupWizardTest
      atest AutoBrightnessPreferenceFragmentForSetupWizardTest
      atest AutoBrightnessPreferenceControllerTest
      atest BrightnessLevelPreferenceControllerTest
Change-Id: I350d99138bdd14bf28828a39e42f707b5b1066c1
2024-05-15 03:19:40 +00:00
marcusge
24289fa084 [Contrast] Migrate contrast settings into Display
Test: local raven device
Bug: 333905689

Change-Id: Ie94633c23ebe024b8fb48d7ffebdd7b1dfa588da
2024-05-09 06:32:29 +00:00
Fan Wu
0a0e591b96 Ignore failing tests to unblock presubmit
Bug: 331324279

Test: atest
Change-Id: Ia38c223ac7aa4aed2739a0fd371c7496811d2054
2024-03-27 15:37:45 +08:00
Fiona Campbell
4a401d4313 Disable even dimmer setting conditionally
- Disable even dimmer settings option if autobrightness is not enabled
  on the device

Bug:179428400
Test: manual

Change-Id: I8f7add839022fc7c27694fd8daa83a608cf2736a
2024-03-23 02:09:46 +00:00
Fiona Campbell
20909fa590 Merge "Create EvenDimmerPreferenceController" into main 2024-02-26 14:28:02 +00: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
Fiona Campbell
836018788d Create EvenDimmerPreferenceController
- Create preference controller
- linked to even dimmer activated setting

Bug: 179428400
Test: EvenDimmerPreferenceControllerTest
Change-Id: I3ac6501c3d45399caeda96fe6a7dd4164439d1bd
2024-02-19 11:46:11 +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
Jan Tomljanovic
6b4c754f5e Add auth challenge for increasing screen timeout.
We only require one auth after onStart(), and only for increasing the
timeout.

Test: atest SettingsRoboTests:com.android.settings.display.ScreenTimeoutSettingsTest
Test: also manually tested
Bug: 315937886
Change-Id: If4aed67736cd7545d3a518aadd8253ea6a9fae43
2023-12-20 21:53:56 +00:00
mxyyiyi
027db802fe Add power consumption footer in screen timeout page.
- show this footer when there's no footer about work profile
Screenshots:
[without work profile]: https://screenshot.googleplex.com/5pAD2xBvP6QSBvY
[with work profile]:  https://screenshot.googleplex.com/7BRd6ToAjFN9QZx

Bug: 300245790
Test: manual
Test: make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.display.ScreenTimeoutSettingsTest"
Change-Id: I6df018d7758fbec3277179358b17eb11fa1aee34
2023-11-24 17:11:15 +08:00
Sunny Shao
94bf9d9bc3 Fix the robo test case failed
- Fix the test case failed in the
  ControlsTrivialPrivacyPreferenceControllerTest.
- Use the correct paramter in the PackageManager.resolveActivity API.

Fixes: 300378707
Test: atest ControlsTrivialPrivacyPreferenceControllerTest
Change-Id: Id80dfb95ceffb048461b79d2d5ceb67100f83cd5
2023-11-13 14:00:25 +08:00
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
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