Commit Graph

24 Commits

Author SHA1 Message Date
Chris Antol
1b8c0fdfdb Annotate Nullability for DevSettings fragment usage
Bug: 319310316
Change-Id: I4f2d219b818971e222346fc630c358b1d8b84ae9
Test: None
2024-06-11 19:45:38 +00:00
Jason Chiu
1908551cc2 Merge "[Safer intents] System" into main 2024-03-27 02:02:26 +00:00
Jason Chiu
d89fd5942f [Safer intents] System
To avoid implicit intents, make intents launch explicitly.

Bug: 323061508
Test: build
Change-Id: Iaf5466f3acd3293e738f450e0117e180b93d4e1c
2024-03-25 18:08:03 +08:00
Edgar Wang
26a5c73dc7 Listen Developer option enable state
- When developer option disabled, any page in Developer option
  should be closed.

Bug: 293894425
Test: manual

Change-Id: I392b122e885118770be1af2b51c0c7ef92279e1b
2024-03-21 04:08:08 +00:00
Sunny Shao
076ed573eb Revert^2 "Nullability Annotations replacement"
This reverts commit 19d1d3d15d.

Reason for revert: revert it because this is not the root cause.

bug: 316867690
Change-Id: I0f168dbb64044aa720202af7b1040afd4f028c9c
2024-01-10 07:34:01 +00:00
Sunny Shao
19d1d3d15d Revert "Nullability Annotations replacement"
This reverts commit cf0501e4d7.

Reason for revert: b/317462033, it seems a flaky but revert it first.

Change-Id: Ie1d5e279cca6477fc17d8c27c1ecda8d7a6b2553
2023-12-29 02:28:24 +00:00
sunnyshao
cf0501e4d7 Nullability Annotations replacement
-- Replace the android.annotation.Nullable / android.annotation.NonNull
   with androidx.annotation.Nullable / androidx.annotation.NonNull

Bug: 316867690
Test: build pass
Change-Id: I0c1da55dfb09ece855151c47e0492d6f46538621
2023-12-20 08:50:09 +08:00
Peiyong Lin
714490851f Merge "Unconditionally enable ANGLE developer option UI." into main 2023-11-15 01:38:35 +00:00
Chaohui Wang
e752f7214b Remove unused SwitchBar
Only used in tests, so also migrate the tests.

Bug: 306658346
Test: manual - on bluetooth
Test: m RunSettingsRoboTests
Change-Id: Id2b010c1d9c32abe21dcc8765e9446fc4f7a5b25
2023-10-25 12:17:49 +08:00
Peiyong Lin
aad20f216d Unconditionally enable ANGLE developer option UI.
Bug: b/283781993
Test: atest CtsAngleIntegrationHostTestCases -c
Test: atest SettingsRoboTests:GraphicsDriverEnableAngleAsSystemDriverControllerTest
Change-Id: I7f491151cc26dc10ccdb2900cfa81ff09c23b184
2023-10-23 20:39:46 +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
Peiyong Lin
8e6af783ce Allow ANGLE developer option toggle UI enabled if ANGLE is enabled.
Previously the ANGLE developer option toggle UI was disabled by default
and a user would need to use adb command to set the debug property to
true to enable it, and every reboot would reset the debug property to
false again and hence disable the toggle UI again. However, since ANGLE
is still in experiment, we would like to make sure it's not easy to
enable but easy to disable. This patch keeps ANGLE toggle UI enabled
when ANGLE is enabled so that users can easily disable. Once ANGLE is
disabled, if the debug property is not set to true, the toggle UI will
remain disabled.

Bug: b/293503000
Test: atest -c GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest
Test: atest SettingsRoboTests:GraphicsDriverEnableAngleAsSystemDriverControllerTest
Change-Id: I2e63431cd0d8cf4712fc278646627fbf34a2b542
2023-10-13 00:36:36 +00:00
Peiyong Lin
774378530f Add debug property to safe guard ANGLE developer option UI.
Add a debug property to guard ANGLE developer option UI, only when the
debug property is enabled will ANGLE developer option UI be enabled.

Add further clarification in the text to indicate that this is an
experimental feature.

Bug: b/287909344
Test: atest -c GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest
Test: atest -c GraphicsDriverEnableAngleAsSystemDriverControllerTest
Change-Id: Ife31f4b0426f3ce107f86cfbaf3f1aeca567e250
2023-09-25 18:33:00 +00:00
Yuxin Hu
0183cfd816 Fix "Enable ANGLE" switch behavior when Developer Option Switch is off
Fix below bugs:
1) When developer option switch is turned off,
"Enable ANGLE" switch is not disabled. Fixed it in
GraphicsDriverEnableAngleAsSystemDriverController::update().

2) When user turns off developer option switch,
a restart is not always mandatory. However, we should ask
user to restart the device is "Enable ANGLE" is forced to
change due to developer option switch turning off.
Fixed it in DevelopmentSettingsDashboardFragment::onSwitchChanged().

3) When user turns off developer option switch and
the reboot dialog pops up, user can dismiss the dialog by
not clicking either POSITIVE_BUTTON or NEGATIVE_BUTTON.
We should enforce user to click the button and disallow the
option to dimiss the dialog by touching screen areas
outside the window's bounds.
Fixed it in DisableDevSettingsDialogFragment.java.

Did a few clean-up and in
GraphicsDriverEnableAngleAsSystemDriverController.java, and updated
unit test to reflect new code behavior.

Bug: b/270994705
Test: m; flash and device can boot.
Test: atest -c GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest
Test: atest GraphicsDriverEnableAngleAsSystemDriverControllerTest
Test: atest SettingsRoboTests:FreeformWindowsPreferenceControllerTest
Test: atest SettingsRoboTests:DesktopModePreferenceControllerTest

Change-Id: I199b2fe59b6ad948b753793254c822a293d8b40d
2023-05-24 01:37:35 +00:00
Yuxin Hu
2cbb587f81 Toggle switch back when user dismisses dialog by tapping screen
The reboot dialog can be dismissed when user:
1) Clicks any button on the reboot dialog
2) Taps any screen area outside of reboot dialog

We want to toggle back the "Enable ANGLE" switch
whenever the user chooses to not reboot the device
immetiately.

This change adds the function to toggle the
"Enable ANGLE" switch back when:
1) User clicks "Cancel" on reboot dialog.
2) User taps screen area outside of reboot dialog
to dismiss the reboot dialog.

Bug: b/270994705
Test: m; flash and device can boot.
atest -c GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest

Change-Id: I84fde5ea5bae9d8793bcef30f4c37d832152ae43
2023-05-16 01:58:25 +00:00
Yuxin Hu
715a70603c Add AndroidJUnitTest for developer option switch
Bug: b/270994705
Test: m -j45
atest SettingsRoboTests:GraphicsDriverEnableAngleAsSystemDriverControllerTest
atest -c GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest

Change-Id: Idbb93458a64894c3eba78a8f9373c40e3ddf35c5
2023-05-11 17:59:21 +00:00
Yuxin Hu
25b270c0f8 Add developer option switch to set ANGLE as the default system driver
This change adds a new developer option switch called
"Enable ANGLE". It defaults to off. User can choose
to toggle it on and off, and the value of the system
property "persist.graphics.egl" is changed accordingly:

switch off: persist.graphics.egl=""
switch on: persist.graphics.egl="angle"

When user toggles the switch, a reboot window is
popped up asking user to reboot now to make the change
takes effect. If user chooses to cancel the reboot,
the switch is toggled back. This enforces that a reboot
is required whenever the "persis.graphics.egl" value
changes.

Upon reboot, we will load either ANGLE or native
GLES driver as the system driver, based on the value of
"persist.graphics.egl".

The switch is disabled if ANGLE is not installed
in /vendor partition. We use the system property
"ro.gfx.angle.supported" as an indicator. We set the
two conditions together in angle.mk file. Any device
mk file that inherits angle.mk file will result in
ANGLE libs installed in /vendor and "ro.gfx.angle.supported"
set to true.

Bug: b/270994705
Test: m; flash and check Pixel 7 boots fine
atest SettingsRoboTests:GraphicsDriverEnableAngleAsSystemDriverControllerTest

Change-Id: I565eff614472bb6ba50742e7dfa49b50dca2809f
2023-04-28 18:42:10 +00:00
Stanley Wang
b87ddba6cd Use SettingsLib's MainSwitchBar to replace SwitchBar in Settings.
To log Settings metrics, the MainSwitch extends MainSwitchBar and
replace the SwitchBar in SettingsActivity.

Bug: 175181773
Test: Run robotest and apply the widget in Settings and see the ui

Change-Id: I3add3702e9058ad9192b5172c7cf0e2ccfb55a70
2021-01-14 22:48:31 +08:00
Tsung-Mao Fang
00956fb4e1 Apply top intro preference in Settings app (1/n)
Based on content in footer, we need to convert some footers
to top info prefernce.

Test: Run robo test and see the screens
Bug: 173087905
Change-Id: Ie62a503481f9d385f5468896fba8f607cb3437d3
2020-11-16 18:44:40 +08:00
Peiyong Lin
9511d443cb Rename game driver to updatable driver.
Game driver is considered a production name. We should use the term
updatable driver instead of the production name.

Bug: b/164449016
Test: make RunSettingsRoboTests ROBOTEST_FILTER=GraphicsDriver
Change-Id: I2237dfb22ecd94bc2475249b1460796ac1693d81
2020-08-14 16:29:03 -07:00
Peiyong Lin
fc4155a02c Only show graphics driver option when the apk is available.
Previously we always show all options, this patch makes the dashboard
only shows the option when the driver apk is available.

Bug: b/148626177
Test: make RunSettingsRoboTests ROBOTEST_FILTER=GraphicsDriver
Change-Id: Ifde5929d826d5ab542e855aa334546dd744b138b
2020-02-28 03:34:02 +00:00
Peiyong Lin
b94e6b9e4e Add prerelease driver to graphics driver preference dashboard.
To facilitate better development, add prerelease driver choice to graphics
driver preferences dashboard. This patch also makes sure that when game driver
or developer driver is not shipped, the choice doesn't show up.

Minor: Add tests.

Bug: b/148626177
Test: make RunSettingsRoboTests ROBOTEST_FILTER=GraphicsDriver
Change-Id: Iad398cd663300086d3f4802ffab34531e11dfb17
2020-02-20 09:28:40 -08:00
Peiyong Lin
89bc735369 Show the footer when global switch is off.
In the original implementation we showed a footer when global switch is off,
however, this was broken due to some refactor. This patch fixes the issue where
we don't set the visibility of the footer when global switch is on/off.

Bug: b/148626177
Test: make RunSettingsRoboTests ROBOTEST_FILTER=GraphicsDriver
Change-Id: I0f0763ee1551199cc8611c650350a2adbdf402ed
2020-02-12 16:03:51 -08:00
Peiyong Lin
4e89f929d7 Rename GameDriver* to GraphicsDriver*.
To make graphics driver selection more generic, rename GameDriver
specific classes to GraphicsDriver.

Bug: b/148626177
Test: make RunSettingsRoboTests ROBOTEST_FILTER=GraphicsDriver
Change-Id: If2780b32e2826bda56de11734736260f916182d0
2020-02-11 16:50:26 -08:00