Additional fix:
1. Fixed the SpannableUtil.getResourcesText to actually
preserve Spannable (TtsSpan in this use case) during formatting.
Bug: 185453652
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Change-Id: Iae5e1d4261ec0a34222ae1d042c7f3f027f2e512
Fix the logic used that determines whether the automatic time
zone detection toggle is available in the Settings UI Date & Time
screen. Also, ensure that the TimeZonePreferenceController uses correct
logic for whether the user can manually enter a time zone.
This change migrates the controllers to use a existing high-level
TimeManager API rather than (incorrectly) duplicating in Settings UI the
logic for whether time zone detection is supported / enabled.
Without this change, WiFi-only devices _with_ location-based time zone
detection enabled would incorrectly hide the "auto time zone" toggle,
which would have the knock-on of making it look like the user is allowed
to enter a time zone manually when they aren't (because it is
enabled/disabled based on the presence of the toggle).
That toggle still needs to be present while there is a possible time
zone detection mechanism. All the (quite complex) logic around this is
already considered by the TimeManager API.
Possible side effects:
This change decouples the "does the toggle show true or false?"
(isEnabled()) from the "should the toggle be shown at all?"
(isAvailable()) logic by removing a call to isAvailable() inside of
isEnabled(). This is to avoid making multiple (probably more expensive
than what it was doing before) calls to the time_zone_detector service,
and avoid the extra complexity of caching / cache invalidation that
would be needed to mitigate it. Previously, as a result of the call to
isAvailable(), isEnabled() would always return false when mIsFromSUW is
true, but now it will return the underlying value of the device's
auto_time_zone setting. This means that if the UI is changed in future
to render a visible-but-can't-be-changed-by-the-user toggle for auto
time zone, it will display the current setting value, which is perfectly
reasonable. It is assumed it will have no other side effects.
The AutoTimeZonePreferenceControllerTest.isFromSUW_notEnable test has
been changed to reflect the change in behavior. Various name changes
made to tests to reflect the new behavior.
Bug: 228247623
Bug: 186625820
Bug: 172891783
Test: treehugger
Test: Manual test on a device with telephony
Test: m ROBOTEST_FILTER=AutoTimeZonePreferenceControllerTest RunSettingsRoboTests -j40
Test: m ROBOTEST_FILTER=TimeZonePreferenceControllerTest RunSettingsRoboTests -j40
Change-Id: I4c7608e8645eee5994c8ecf85a14a27d3278ac04
(cherry picked from commit 7a8ac683d4)
Capitalize Settings UI time zone display name strings for languanges
like Polish for standalone locations like summaries and lists. The
motivating example case is the string for "Coordinated Universal Time"
in Polish, which is not capitalized in CLDR, as they capitalize for the
middle of sentences by default. In English, Coordinated Universal Time
is already capitalized, but the Polish string is not.
With this commit all "display name"-like strings have been capitalized
(region names, exemplar locations, time zone names like
"Coordinated Universal Time" and "British Summer Time") for
completeness. For the Polish case, many are already capitalized, but
capitalizing the first letter is therefore a no-op. The
"GMT+xx:xx"-style strings have not been changed.
Bug: 190109975
Test: Visual inspection in English and Polish of UTC, United States,
Russia in the time zone picker and the date & time screen on mobile
Change-Id: I57d915ac1e30e22cc05e605fcb7d46b102fa8ce1
The time zone transitions can be obtained via the public API
ZoneId.getRules() instead.
Bug: 119751170
Test: atest SettingsRoboTests
com.android.settings.datetime.timezone.TimeZoneInfoPreferenceControllerTest passes
Change-Id: I2c7864580b2a36b725ee250253e97f6cc86d72a4
As title, we do not allow user can scroll app bar while
the search menu is expanding.
So, we can ignore all drag events on app bar.
Test: Can not scroll on the app bar area
Fix: 181741353
Change-Id: I20c0b69059cdc4d13a15abd810a725d4591f6396
Collapse the tool bar when we're doing search for
a better user experience.
And we don't allow user can expand the tool bar at this moment
since it will see a large space at this moment.
Fix: 181741353
Test: Open the page and don't see a huge space now.
Change-Id: Iec5ebe9b22a2aad15dc8cf90113a64c358ee447e
It also makes setting in line with "Set time zone
automatically", which is rendered w/o toggle on search page.
Bug: 185906072
Test: manually verified that toggle is not shown
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceControllerTest"
Change-Id: Ie71572c4a9b9bd6adf3660556363331e2943fd5b
If America/Godthab is set as device time zone, display it as if
America/Nuuk is chosen.
If time zone is known, but is not an alternative and not shown
in time zone picker, region will de derived from user's locale.
Bug: 155738410
Test: atest com.android.settings.datetime.timezone.model
Test: set persist.sys.timezone via adb and checked
Date & Time screen
Change-Id: I168fb4319e144dbe9e2496d06a681d4c09b411c0
As of now GeoTZ state remains unchanged even if user enables
Location toggle.
Bug: 152746236
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceControllerTest"
Test: checked manually that dialog opens Location settings page
Change-Id: I5fd3288e9d5a7aac3bc82da6944b4ccd6bb9e0f5
Capabilities are extracted to separate class to reuse them
in time API.
Bug: 172891783
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceControllerTest"
Change-Id: If7351c4f022c69262ddffd26efacd449dc7238c5
Previous sub-menu is deleted.
Toggle is always enabled and shows current configuration
setting. If MLS or auto time zone detection is off,
the toggle has not effect.
Bug: 152746236
Test: toggled and checked dumpsys time_zone_detector
Test: checked summary info on different MLS/set time zone automatically
states combinations
Test: m -j30 RunSettingsRoboTests
ROBOTEST_FILTER="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceControllerTest"
Change-Id: I75ee41cfcaaf34b1b63e18809be4cd614446017d
Merged-In: I75ee41cfcaaf34b1b63e18809be4cd614446017d
Move the Location time zone detection setting to Date & Time as per
UI review / product request.
This initial commit just moves the existing MVP setting behavior to a
different screen. Still invisible by default.
Enable with:
$ adb shell setprop persist.sys.location_time_zone_detection_feature_enabled 1
.. plus a reboot.
Bug: 152746236
Test: Manual: build / boot / toggle switch in SettingsUI / inspect output of adb shell dumpsys time_zone_detector
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceControllerTest"
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.locationtimezone.TimeZoneDetectionTogglePreferenceControllerTest"
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.locationtimezone.TimeZoneDetectionSettingsTest"
Change-Id: I9ecfa853014a9f92086a9cb2d34e1517474ceb93
ICU's TimeZoneNames requires a "canonical" zone ID, otherwise it will
return no data. Usually the ID being used is the same as the canonical
ID so there's no problem. TZDB version 2020a switched the ID of one of
Greenland's zones from America/Godthab to America/Nuuk, and ICU/CLDR
hold their translation data against America/Godthab in the current
version of ICU on Android.
Bug: 155167041
Test: Manual - viewed settings on a device with the tzdb 2020a update
Change-Id: Ia89c777a832f8b41c8d56d3327a9b7370ba44b52
Tidy up the libcore.timezone APIs to make them as close as possible to
android.timezone. In future, these classes should be repackages to be
the actual android.timezone classes, so the APIs need to be in sync.
Bug: 148086409
Test: treehugger
Change-Id: I8d0521467bb3c3c8741ce98f50cde0ee8c1bec1a
- remove duplicate index preference
- default set searchable = false when the preference has fragment
- make some fragments indexable
Bug: 143057584
Test: robotest & manual
Change-Id: I4d64f6106d2f92f0a45e8c7e26388677f593f412
Switch settings to use TimeZoneDetector when setting the system time
zone rather than using AlarmManager directly.
Bug: 140712361
Test: treehugger
Test: manual
Test: make -j30 RunSettingsRoboTests
Change-Id: I6042093294ba9690d4355bfe1c47d9f88a2b7ac6
Switch settings to use TimeDetector when setting the system clock rather
than using AlarmManager directly.
Bug: 140712361
Test: treehugger
Test: manual
Test: make -j30 RunSettingsRoboTests ROBOTEST_FILTER=TimePreferenceControllerTest
Test: make -j30 RunSettingsRoboTests ROBOTEST_FILTER=DatePreferenceControllerTest
Change-Id: I671bf0e7e7364f64f1397d524c6277591eb4e22e
Merged-In: I671bf0e7e7364f64f1397d524c6277591eb4e22e
(cherry picked from commit 9861696306)
Switch settings to use TimeDetector when setting the system clock rather
than using AlarmManager directly.
Bug: 140712361
Test: treehugger
Test: manual
Test: make -j30 RunSettingsRoboTests ROBOTEST_FILTER=TimePreferenceControllerTest
Test: make -j30 RunSettingsRoboTests ROBOTEST_FILTER=DatePreferenceControllerTest
Change-Id: I671bf0e7e7364f64f1397d524c6277591eb4e22e
* Deprecate setAutoTimeRequired and getAutoTimeRequired.
* Added new API methods setAutoTime and getAutoTime.
* These new APIS use the DISALLOW_CONFIG_DATE_TIME user restriction to prevent the user from setting auto time.
* Updated Settings AutoTimePreferenceController to look at the DISALLOW_CONFIG_DATE_TIME restriction
Bug: 138709470
Test: Manual testing with testdpc and the set auto time toggle
DevicePolicyManagerTest
DeviceAndProfileOwnerTest
DevicePolicyLoggingTest
AutoTimePreferenceControllerTest
Change-Id: I55b44840089a0b701ca4d5572a0e91deb40152ed
- Base theme has android:clipToPadding=false attribute. It let user
UI draw under navigation bar but also cause this problem. Add
android:clipToPadding=true in layout to fix the problem.
Fixes: 142108980
Test: manual
Change-Id: Ibe60b348a3c7c01d9786612ceac23a47a78a208a
- It can improve performance because we use less injected item
- Also remove summary provider from those fragments
Bug: 141653158
Test: robolectric
Change-Id: I6255f71b3b8300aea064a4fefd6711c1ff59e08a
Add tobiast@ to the OWNERS file as libcore TL.
Remove pszczepaniak@ as he hasn't been on libcore
for a while.
Test: None
Change-Id: I714d3448ed60006cb58a0f49e95b7b834a6aac36
We don't rely on FooterPreferenceMixinCompat
to create footer preference in dashboard fragment.
Instead, declare a FooterPreference explicitly in
xml of screen.
It makes more sense for our referenceController design.
Test: visual, robotest
Bug: 124129485
Change-Id: I0b0c0f9e38d85aa89b815ce2b84ddff30a1d206b
The framework version header has deviated from supportlib version long
ago, and we shouldn't hack our theme to make this layout work. Instead
we now have a custom layout compatible to settings theme.
Fixes: 128833223
Test: visual
Change-Id: I83087352240de183b0639daf844bd7f90e02056a