Implement flag for auto tz detection default
For internal testing experiments, implement a server flag for affecting
the auto time zone detection default setting value when the device
hasn't had an explicit value set.
Implementation notes:
The usual "value is not set so use [flag controlled] default value"
cannot be used; the auto_time_zone global setting cannot be left unset.
The setting it is regrettably a public API and could be observed by
other components. Instead, the system keeps a record of whether the
setting value has been set (via selected APIs) in a new (non-public)
global setting (auto_time_zone_explicit).
When the flag is set the system attempts to keep the auto_time_zone
setting value in sync with the current behavior value in case other
things are observing the value.
Manual Testing
==============
The server flag can be set using:
adb shell cmd device_config put system_time \
time_zone_detector_auto_detection_enabled_default \
[true|false]
... and unset using the delete verb of the same command:
adb shell cmd device_config delete system_time \
time_zone_detector_auto_detection_enabled_default
The existing setting can be read and set using:
adb shell settings get global auto_time_zone
adb shell settings put global auto_time_zone [0|1]
The new setting that controls whether the flag can be used can be
read/set/cleared for manual testing via:
adb shell settings get global auto_time_zone_explicit
adb shell settings put global auto_time_zone_explicit 1
adb shell settings delete global auto_time_zone_explicit
time_zone_detector configuration state and debug logs can be read via:
adb shell dumpsys time_zone_detector
Test: Manual testing with various scenarios, see above
Test: New test. See associated topic change in cts
Bug: 273403348
Change-Id: I7091d792428bf4884e6802a537e8cb6d8ecb674f
Loading
Please register or sign in to comment