Commit Graph

87 Commits

Author SHA1 Message Date
Automerger Merge Worker
de86f9c950 Merge "Tidy up libcore.timezone APIs" am: 45834d96a8 am: 35ffa52384 am: 798407a441
Change-Id: I486df8f44bcd67baf933853145f7617cf6b0e891
2020-01-31 16:32:04 +00:00
Neil Fuller
7b54a31132 Tidy up libcore.timezone APIs
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
2020-01-28 15:08:31 +00:00
Stanley Wang
f0cd9742b5 The dynamic index implementation for time zone preferences.
Disable the region settings page if auto time zone is enabled.

Fixes: 146849126
Test: manual
Change-Id: Icce1e5aca14539d6c9149e05a3321429bd337f17
2019-12-30 12:46:32 +08:00
Edgar Wang
08f2a58459 Settings search - Navigate user to exact page
- 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
2019-12-24 21:04:11 +08:00
Neil Fuller
dc2058e931 Merge "Switch settings to use TimeDetector" am: 5da6521458 am: 72ed7e8f64
am: 5f1c405f30

Change-Id: Iaf7c3fb33f57ada39a8baef016fbc838f633be14
2019-12-05 09:17:42 -08:00
Alex Johnston
dd5467b13b Merge "Replace setAutoTimeRequired and getAutoTimeRequired with setAutoTime and getAutoTime" 2019-12-04 16:59:19 +00:00
Neil Fuller
df086ecb4f Switch settings to use TimeDetector
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
2019-12-04 13:43:58 +00:00
Neil Fuller
3c794261a5 Switch settings to use TimeDetector
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)
2019-11-27 16:36:59 +00:00
Neil Fuller
9861696306 Switch settings to use TimeDetector
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
2019-11-27 14:04:08 +00:00
Alex Johnston
606e6837e6 Replace setAutoTimeRequired and getAutoTimeRequired with setAutoTime and getAutoTime
* 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
2019-11-25 16:39:05 +00:00
Raff Tsai
29c15273b5 Fix Weird floating "add language" item
- 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
2019-11-04 17:34:02 +08:00
Raff Tsai
9e3a9fd255 Add fragment in xml instead of using injected way
- It can improve performance because we use less injected item
- Also remove summary provider from those fragments

Bug: 141653158
Test: robolectric
Change-Id: I6255f71b3b8300aea064a4fefd6711c1ff59e08a
2019-10-02 11:49:51 +08:00
Neil Fuller
78a7facc02 Merge "Add tobiast@ to the OWNERS file" am: a931693721 am: 46e53e770c am: bf673318f1
am: e13cd91161

Change-Id: I3cc978431a8fe0e01522e12842c44b0d99b135a8
2019-07-02 17:36:47 -07:00
Neil Fuller
46e53e770c Merge "Add tobiast@ to the OWNERS file"
am: a931693721

Change-Id: Id52f2dcd3755f4fbbd6f6918e993063aebc582ac
2019-07-02 10:13:36 -07:00
Neil Fuller
ca6542843c Add tobiast@ to the OWNERS file
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
2019-07-02 10:55:50 +01:00
tmfang
24c3324268 Use FooterPreference in xml explicitly
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
2019-06-13 18:29:37 +08:00
Fan Zhang
5d2e0fc10f Stop using framework internal layout for timezone header.
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
2019-03-19 10:17:46 -07:00
Neil Fuller
9b6fa3a4e1 Merge "Update the timestamp used for time zone filtering" am: 51376aefc1 am: d2b3df945c
am: 641ea6e4fa

Change-Id: I665c8d444e1eb58664e2884d371e21aae625f6fe
2019-02-27 11:20:47 -08:00
Neil Fuller
d0e076192e Update the timestamp used for time zone filtering
Update the timestamp used for time zone filtering and improve the
comment explaining what it is for.

Bug: 124756276
Test: build only
Change-Id: I2e53b1f3bd36602f8d08967e1335066d93ae05ea
2019-02-27 15:02:03 +00:00
Nikita Iashchenko
8db2d30fab Fix crash if timezone is changed and "Don't keep activities" mode is on
The issues is that TimeZoneData is being loaded with LoaderManager on
every fragment's onCreate(). At the same time this fragment has
onActivityResult() handler that accesses TimeZoneData and relies on the
fact that it has been already initialized prior this call. So when you
enable "Don't keep activities" mode, the TimeZoneSettings fragment [1]
that holds TimeZoneData is immediately destroyed after launching time zone
picker fragment [2] (which result [1] waits for), and when android calls
onActivityResult() for [1] (after time zone has been picked in [2]),
Android has to recreate [1] from scratch. So you get onCreate() called and
immidiately after that onActivityResult() called, and at this point we get
the crash, because the loader hasn't finished yet and onActivityResult()
tries to access uninitialized mTimeZoneData.

This CL fixes this crash issue by postponing
mTimeZoneData.lookupCountryTimeZones call until mTimeZoneData is loaded
by loader. It is done through saving data intent in onActivityResult()
and calling onZonePickerRequestResult() when time zone data is loaded.

Bug: 112351583
Test: m Settings droid successfully builds, manual testing with "Don't
keep activities" mode enabled

Change-Id: Id30d36dc17a0de96ba871f9d0f4a2686479d0eeb
2019-01-29 15:22:56 +00:00
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -08:00
Neil Fuller
17f04b66b2 Track move of timezone classes to libcore.timezone
Some time zone related libcore classes are moving from
libcore.util to libcore.timezone.

Bug: 119026403
Test: build only
Merged-In: I920411dfa7e000a0da9678826a035e0461211619
Change-Id: I920411dfa7e000a0da9678826a035e0461211619
(cherry picked from commit 1e1961a5b3)
2018-11-22 10:05:12 +00:00
Neil Fuller
1e1961a5b3 Track move of timezone classes to libcore.timezone
Some time zone related libcore classes are moving from
libcore.util to libcore.timezone.

Bug: 119026403
Test: build only
Change-Id: I920411dfa7e000a0da9678826a035e0461211619
2018-11-20 10:52:52 +00:00
Victor Chang
fe627a5901 Remove the feature flag and dead code for the old time zone picker
This commit backports commit 6be6c58206
to aosp/master.

Bug: 72376227
Test: build only
Merged-In: I332077a67cc9f9c83b298e25feea71463e1ee98b
Change-Id: I332077a67cc9f9c83b298e25feea71463e1ee98b
(cherry picked from commit 6be6c58206)
2018-11-13 07:49:32 +00:00
Neil Fuller
5b88d6e6ba Merge "Use ICU APIs not impl types" am: 811d817368 am: 09dcb87982
am: ccef9d9dc2

Change-Id: I302247aa892e018e58b6742f55d30c971a4f77f3
2018-10-02 06:29:44 -07:00
Neil Fuller
09dcb87982 Merge "Use ICU APIs not impl types"
am: 811d817368

Change-Id: I38d6806255619fec3de23945a184455072f34ec0
2018-10-02 06:16:23 -07:00
Neil Fuller
11be3acfe0 Use ICU APIs not impl types
It's possible to use BasicTimeZone in place of OlsonTimeZone.
Although neither are currently public SDK APIs the BasicTimeZone
is preferable.

Bug: 113148576
Test: build
Change-Id: I745b17feee678ecd053fadc6c447107fa80918e8
2018-10-02 10:15:36 +01:00
Fan Zhang
de117046ad DO NOT MERGE Import clean up.
Reordered all imports according to Android codestyle.

Test: rebuild
Change-Id: I750f01f70f2114d51838bf652833aebdc4065c98
2018-09-04 13:54:46 -07:00
Philip P. Moltmann
e3f721132a RestrictedLockUtils was split into ...Internal
This means that in some cases RestrictedLockUtils has to be used and in
some RestrictedLockUtilsInternal.

This causes a lot of trivial code changes.

I also updated the ordering of the imports in all affected files.

Bug: 110953302
Test: Built
      make -j RunSettingsRoboTests
Change-Id: I9bdf8b89134f853bae4f38c81af436715c73e924
2018-08-30 08:11:39 -07:00
Aurimas Liutikas
03fcde338b Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
Merged-In: I941dea40562170649bf056e675cc32e5163c0e39
(cherry picked from commit a290b873d0)
(cherry picked from commit b1af85d155)
2018-08-28 16:35:52 -07:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
Aurimas Liutikas
b1af85d155 Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
Merged-In: I941dea40562170649bf056e675cc32e5163c0e39
(cherry picked from commit a290b873d0)
2018-08-28 11:48:56 -07:00
tmfang
27c84de325 Settings Fragment Migration (Build pass app)
This patch focused on fixing compile errors and some runtime errors.

Test: We can't test it now. But we will have an integration test later.
Bug: 110259478
Change-Id: I16c471ddcd0fa1460c665b7f74d86fcace5ee67b
2018-07-11 18:24:51 -07:00
tmfang
99cc23d0da Settings Fragment Migration (Change imports)
This commit *only* changes imports and optimize imports.
We don't do anything else.

This patch can't compile pass and run test case.
We will update other patches to fix these problem.

Change list.

1. import android.app.Fragment; ->
   import androidx.fragment.app.Fragment;
2. import android.app.DialogFragment; ->
   import androidx.fragment.app.DialogFragment;
3. import android.app.ListFragment; ->
   import androidx.fragment.app.ListFragment;
4. import android.app.LoaderManager; ->
   import androidx.loader.app.LoaderManager;
5. import android.content.AsyncTaskLoader; ->
   import androidx.loader.content.AsyncTaskLoader;
6. import android.content.Loader; ->
   import androidx.loader.content.Loader;
7. import android.app.FragmentTransaction; ->
   import androidx.fragment.app.FragmentTransaction;
8. import android.app.FragmentManager; ->
   import androidx.fragment.app.FragmentManager;
9. import android.app.LoaderManager.LoaderCallbacks; ->
    import androidx.loader.app.LoaderManager.LoaderCallbacks;

Bug: 110259478
Test: Can't test it.
Change-Id: I0a3f98fff34a3494a839c3c42aeabcec3df2c8b3
2018-07-11 18:23:51 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Fan Zhang
fc7188d822 Clean up DeviceAdminSetting: make it into DashboardFragment
Change-Id: Ib5634f782daef15ab317175084c6813d6b8a8bb7
Fixes: 110207366
Test: robo
2018-06-18 18:09:01 +00:00
Antony Sargent
b81953228c Remove reference to preference_category_material_settings
This layout in settingslib has been migrated to the support library's
preference_category_material, so we can just reference that.

Bug: 110037570
Test: manual (format of category headers should look normal in Settings
timezone picker)

Change-Id: I32df326e1d4afd4d7ae6f694c38554f3d0f54e84
2018-06-13 10:35:24 -07:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
Victor Chang
6be6c58206 Remove the feature flag and dead code for the old time zone picker
Created b/77277084 to help Android variants to migrate from
old time zone data source, i.e. ZoneGetter.getZonesList, to
new time zone source, e.g. TimeZoneFinder.

Bug: 72376227
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime
Test: manual
Change-Id: I332077a67cc9f9c83b298e25feea71463e1ee98b
2018-04-06 16:31:27 +01:00
Victor Chang
93b5d0d3f0 Merge "Remove dead code in time zone picker" into pi-dev 2018-03-30 18:35:52 +00:00
Fan Zhang
65983f71d5 Update TimezoneInfoPrefController to register in xml
Test: robotest
Bug: 77216595
Change-Id: I0fde4f8058a8be156dddb620a756254cd85f6a9f
2018-03-29 14:38:44 -07:00
Victor Chang
4da3a7b5a8 Remove dead code in time zone picker
The codes are unused due to the UX changes in b/73952488

Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Bug: 72376227
Change-Id: I9562e97fe13a3c00f8c142f30af7ca350af10757
2018-03-29 19:01:26 +01:00
Victor Chang
77f97af8eb Fix incorrect GMT offset in display
- android.icu.impl.TimeZoneAdapter doesn't fully implement
java.util.TimeZone, e.g. does not override getOffset(long date).
TimeZoneAdapter isn't a public API in ICU/Android. It shouldn't be
used in the first place

Bug: 77223510
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Change-Id: Ic0d7794326948796dcc5cc0b268ef634a74803c4
2018-03-28 19:52:05 +01:00
Victor Chang
65f09f3091 Add a header view to show the country in RegionZonePicker
Extra fixes in this CL
- Minor string update in time zone picker.
  Use date_time_search_region string in search bar,
  and date_time_set_timezone_title string for lower case "zone".
- Fixed b/76893139. Remove the unnecessary top padding in RecyclerView.
  Create a new layout file time_zone_items_list.xml without the padding.
- Add missing return statement when region ISO code
  is invalid in RegionZonePicker#getAllTimeZoneInfos

Bug: 76209571
Bug: 76893139
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Test: Verified that the strings are updated in the UI
Change-Id: I1fb3e2abf80da3cb53cfbc3363bbe46e40a6ac22
2018-03-28 15:40:33 +01:00
Victor Chang
201c629fcc Fix crash in time zone picker due to race condition on view updates
- Can't reproduce the race condition with manual test, probably the view
  updates are fast enough that only monkey test can reproduce the issue.
- Reproduced a similar stacktrace and IndexOutOfBoundsException with
  Robolectric test by assuming that the race condition happens after
  text filtering and view updates. Try to fix the bug with this assumption
- The fix is to bind the data (data position in adapter) with ViewHolder.

Bug: 75322108
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Change-Id: Ie5d932bce30590b8067e042c3380911c9608872f
2018-03-27 09:31:54 +00:00
Neil Fuller
cbaa984cde Merge "Show time zone used in or after 2018 only" into pi-dev 2018-03-23 17:18:36 +00:00
Victor Chang
490e46e01b Show time zone used in or after 2018 only
- 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
2018-03-23 08:23:51 +00:00
Victor Chang
f11976d817 Merge "Align the search view with the setting items" into pi-dev 2018-03-12 22:58:53 +00:00
Victor Chang
9cc92cd90e Align the search view with the setting items
- Remove the margin and paddings in the search view

Bug: 73952488
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Change-Id: I67fb420cf77fc427a550449a053f80dcf66d16ff
2018-03-12 19:40:31 +00:00
Victor Chang
371404c404 Merge changes from topic "picker-analytics" into pi-dev
* changes:
  Fix UX problems in time zone pickers
  Add tron metric logging
2018-03-10 12:24:38 +00:00