When setting a new locale, SettingsActivity restarts to load
everything in the new locale.
Data (containing locale specific title/summary etc) is reloaded
correctly and triggers a callback to UI to redraw.
However we skip the first callback as an optimization for app startup
time. When we restart fragment, we failed to save the state whether we
have already seen the first callback. So when data with new locale text
triggers the callback, it's being skipped and this make UI still render
in old locale.
The fix is to just save the state before fragment gets destroyed before
locale change so the callback can trigger later.
A better fix is: make data (Tile object) not cache text. Then we don't
need to worry about locale cache at all. We should do this fix in the
long term.
Test: localeswitcher
Test: adb shell am broadcast -a com.google.android.testing.i18n.localeswitcher.CHANGE_LOCALE -e LANGUAGE_TAG "zh"
Test: adb shell am broadcast -a com.google.android.testing.i18n.localeswitcher.CHANGE_LOCALE -e LANGUAGE_TAG "ja"
Fixes: 77470788
Bug: 77600770
Change-Id: Ic4223ddbb679db64d0fc3c29d16a5f61a66cc99c
Some of the AmbientDisplay preference controllers were
crashing when their isAvailable methods were being called
by their fragment's search index providers, which meant that
the entire collection of non-indexable keys failed. Thus,
all search results were showing up. In the case of a secondary
user, they were able to see developer options which crashed
settings when clicked.
There are two issues addressed in this cl.
1. Fix the crashes so the non-indexable keys collection works
2. Contain each fragment's collection, so that if a fragment does
crash, the damage is minimized.
Part 1 is checking that the config in isAvailable is not null,
and creating one if so.
Part 2 is fixed by surrounding the collection of non-indexable
keys in a try-catch, with an option in the catch to re-throw the
error if a system property is set. Thus, in a new pre-submit
instrumentation test, we can and docheck if any of the fragments crash
when collecting non-indexable keys.
Change-Id: I820bd9cb2649aa6faff7f82fcf575a62e41dc4fc
Fixes: 77486668
Test: atest NonIndexableCrashTest, robotests
- Year 2018 is picked as the new time zone data
for picker is introduced in 2018. I can be adjusted
in the future to show more merged time zones.
- Add test to ensure each region has at least
one time zone.
- Fix a issue not using a singleton of TimeZoneData
in commit 6c33caad4b
Bug: 72142943
Test: atest SettingsUnitTests:TimeZoneDataTest
Change-Id: I5eba7fbd59a2d3fd2e8062c9615946dc4bbb6314
If the fragment was started via ACTION_PRINT_SETTINGS the intent extra
does not get transformed into a fragment argument. Hence need to check
the intent extra.
Fixes: 74456525
Test: Opened print job settings from a print notification,
atest com.android.settings.print.PrintJobSettingsActivityTest
Change-Id: I6c4605309c348456a862c4d7b48a11400b62fb70
The duplicate page already removed in b/70848054, we need to update
the test.
Change-Id: Ia1f313d211e7528311e56596dbab152aad54bf22
Fixes: 70848054
Test: runtest -x UniquePreferenceTest
Matching changes to the framework behavior. The
setting is on by default iff the user has agreed
to use the a11y shortcut.
Bug: 70944865
Test: Adding new test for this fragment that checks
this behavior
Change-Id: I7831f64cf3ec59c2d266340cc570227433a4febb
- Discovered a few more fragments that weren't whitelisted, so I
whistlisted those as well.
- Also found ZenModeExternalRuleSettings is misconfigured in manifest
and no longer needed, so deleted all artifacts about this activity.
Fixes: 74060141
Test: atest
Change-Id: I159e403bfa6707e2939d075ecc2b8d2f13514153
* The first option in Bluetooth max connected audio devices preference
should be using system default
* Added template based string array to show system default in the list
preference and in preference summary when default is chosen
* Reset max connected audio devices property to empty string when
development setting is disabled or when system default is chosen
* Added instrumentation test to check preference array size and whether
default value is within range of preference array values
* Modified robolectric tests to verify the updated behaviors
Bug: 64767509
Test: Enable and disable multi-device mode in development settings
make -j32 RunSettingsRoboTests
atest SettingsUnitTests:BluetoothMaxConnectedAudioDevicesPreferenceControllerInstrumentationTest
Change-Id: I4915f12df0ac0e6f715e44e0df4a3707dde8d1a4
To getPreferenceControllers. "all" is redundant. Then internally, the
old getPreferenceControllers() is renamed to
createPreferenceControllers() to emphasize the controllers are created
from code (versus the ones created from xml).
Bug: 73668763
Test: robotest
Change-Id: Ifec46aefdc2a418031c8e152028b30bdcd396fc7
- If a <preference> tag also defines a controller, we will try to
instantiate it before displaying the UI. The same logic is shared by
BaseSearchIndexProvider so it also drives search suppression.
- If user also defines a list of controllers programatically, the
programatically created ones takes precedence.
Bug: 73668763
Test: WIP
Change-Id: I7aecec270bcd3af261e012ef1f6995d2a523cfa1
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.
Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.
Test: make relevant packages
Bug: 73535841
Change-Id: Ic906adbd670c4dbfe2cdf0b71cdbeaf9ac08a27e
This class is currently used by both search and slice, in the future
will be used by DashboardFragment to build controller list. So the scope
of this class is beyond search now.
Test: rerun robotests
Change-Id: If43ebca065aac31ad24f95a94bfe5be784109605
Using this, we split overlays based on their category, so that
cutout emulation and theme overlays no longer clash in their
respective settings.
Bug: 72436677
Test: make ROBOTEST_FILTER=EmulateDisplayCutoutPreferenceControllerTest RunSettingsRoboTests
Change-Id: I23f22113351b3948beb9e3a1fb969700852539cc
- add a test service that provides a test authenticator and a test
preference screen. Creates corresponding test account and verifies that
the preferences defined in the authenticator is displayed from the
account detail page.
Change-Id: Iab87177ae500d0a36272cf8ecf464139a3dc07cd
Fixes: 35353708
Test: make SettingsUnitTests
Now that WifiTracker correctly handles eviction of stale scan results
only after scanning has resumed, it is no longer necessary to
conditionally fetch APs on app resumption.
Fix broken test.
Bug: 68030053
Test: runtest --path
tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
Change-Id: Ib4c8d6e53cf760fcb5f00069da40c578171c09f4
- also update launch sequence for Users settings tests as Users settings
has been moved inside system settings and the preference title has
changed.
- and change the test to run with AndroidJUnit4.
Change-Id: I049b83f9ae4b2724608af267e8900dd9e6749874
Fixes: 34774778
Test: make SettingsUnitTests
- Moved HighlightableAdapter to its own class
- Replaced ripple with blue background
- Bluebackground only stays for 5 seconds. After that it's replaced by
?attr/selectableBackground
Misc fixes.
- Fix NPE in UserSettings
- Update char limit on a new string
Change-Id: I4687e54e71fd7b9243f520b7630563df58be23d4
Fixes: 71715698
Fixes: 72761974
Test: robotests
- change to use AppInfoDashboardFragment completely
- remove InstalledAppDetails and the corresponding tests
Change-Id: I8cbdf71cadc8b5743929abbafe91185e5e39b6b2
Fixes: 69384089
Test: make RunSettingsRoboTests
When building icon for shortcut, check if the icon is LayerDrawable.
- If yes, only take the second layer (foreground).
Also move the class to shortcut package
Change-Id: I3513dbeb6509f11aa70ab3230d441e268ca9356d
Fixes: 72553870
Test: atest
By adding in the About Phone v2 screen, we duplicated some settings.
This isn't actually a problem because when the flag to turn on V2 is on,
V1 goes away, and vice versa.
Change-Id: I9aa327ac532ed2ac240bb2d6cbb327f299438889
Bug: 72459760
Test: adb shell am instrument -w -e class
com.android.settings.core.UniquePreferenceTest
com.android.settings.tests.unit/android.support.test.runner.AndroidJUnitRunner