Commit Graph

439 Commits

Author SHA1 Message Date
Mill Chen
34eecaad79 Merge "Add cache mechanism for secondary users in Storage" into tm-dev 2022-04-08 05:48:45 +00:00
Chaohui Wang
6c9da58f4b Clean up unused Sliceable.copy()
Sliceable.isCopyableSlice() is not set to true for any controller, so this function is not used.

Usage is removed in Change: I81474aed994678c42d73cc59e169573880de1378

Bug: 227722942
Test: robotest & manual
Change-Id: I86e23aa8ad43f60b5017ff0a278e20e3f727706c
2022-04-02 19:16:22 +08:00
Mill Chen
ee41ad89a9 Add cache mechanism for secondary users in Storage
To prevent from the flicker happening, the size info for secondary users
will be cached.

Bug: 220259287
Test: manual test
1) Create secondary user
2) Finish setup flow
3) Install any types of apps and try to change the storage size
4) Navigate to Settings > Storage
5) Observe the storage size and progress bar, they should have animation
   when storage size info updated.

Change-Id: Iff706b20446603f08334a0b782dd505ca78bdab2
2022-04-01 15:42:31 +08:00
Colin Cross
54a9fd4e17 Merge "Use Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY for user visible versions" am: 9c59242102 am: e23884eed9 am: f21625fe80
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2003011

Change-Id: I6e850608c5454ce80562a956074bc9ebe5c1597d
2022-03-02 00:55:39 +00:00
Colin Cross
3f67f87efe Use Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY for user visible versions
Use Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY which will show a user
friendly version name for preview releases, and the release version
for final releases.

Bug: 221950960
Test: manual
Change-Id: I3a7e6a3c996d52614b89888afd35da8cff458b43
2022-02-28 18:03:23 -08:00
Mill Chen
c23be3fa16 Cache mechanism for Storage page
- Use SharedPreference to cache the size info
- Improve the flicker problem on Documents & other preference
- The jobs are destroied on onPause to prevent the jobs being
  restarting when back to Storage page
- Enable progress bar animation for each storage item

Bug: 191117970
Test: manual test
1) The loading spinner will be shown when entering Storage page
   at first time.
2) Back to Settings homepage and switch back to Storage page, the
   loading spinner shouldn't be shown.
3) Click each preference in the Storage page and switch between these
   pages, the size info should be updated if something removed and the
   order of preference shouldn't be changed.

Change-Id: I75533742a025dc61116207285a894ee728d0af68
Merged-In: I75533742a025dc61116207285a894ee728d0af68
(cherry picked from commit 77775a66f2)
2022-02-23 08:15:14 +00:00
Tsung-Mao Fang
aa19771a37 Ignore/Fix broken tests
Fix: 214943221
Fix: 215070875
Bug: 215071960
Bug: 215071948
Bug: 215072120
Test: run robo test
Change-Id: Id11c8461a2cb11cba96feebbfb0337b096eb3a17
2022-01-18 17:39:24 +08:00
Wilson Wu
9edf79741d Update settings PrimarySwitchPreference reference
To make InputMethodPreference support 2 target
reference, CL[1] move the PrimarySwitchPreference
into SettingsLib.

Change all PrimarySwitchPreference reference to
Settingslib one and remove the original one.

[1]: Idea3935d95b8d22b00ca89313e9eb3e979e4aa74

Bug: 197705032
Test: Presubmit
Change-Id: I95d111522344bb7cbdd380382e48fe60a5ebc9a2
2021-09-02 13:10:19 +08:00
Stanley Wang
1fcdafbcda Fix the problem that the SIM status and IMEI after the "Build number".
- Adding the SIM status and IMEI items of SIM2 to the PreferenceScreen
  can not put these items in the correct categories. We have to put
  these items directly into the correct categories.

Fix: 193384705
Test: robotest and see the UI

Merged-In: I2de7ee72fc1315eeef01288b386f8756ca366e33
Change-Id: I9472ecd604afe2f2e2eaf08c92ec11e439e8fc1d
2021-07-16 22:03:54 +08:00
Stanley Wang
9c63c415ea Fix the problem that the SIM status and IMEI after the "Build number".
- Adding the SIM status and IMEI items of SIM2 to the PreferenceScreen
  can not put these items in the correct categories. We have to put
  these items directly into the correct categories.

Bug: 193384705
Test: robotest and see the UI
Change-Id: I2de7ee72fc1315eeef01288b386f8756ca366e33
2021-07-16 19:44:25 +08:00
Arc Wang
496b898bac Merge "Fix incorrect storage size in Storage Settings" into sc-dev am: 68caefba32 am: 1e7e8d8104
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15175229

Change-Id: I86e6806cf37736696aef427f1c8c59a3e5aad6f0
2021-07-02 10:35:27 +00:00
Arc Wang
25880d0d0e Fix incorrect storage size in Storage Settings
From Android S, Storage Settings queries file sizes
from MediaProvider, it's not necessary to count size
data from getExternalStorageStats when calculating
size data.

Bug: 185542752
Test: make RunSettingsRoboTests ROBOTEST_FILTER=testMeasurementCompletedUpdatesPreferences
      manual
      1. Connect device to PC via USB File transfer.
      2. Copy large files from PC to device.
      3. Observe size information in Storage Settings.
Change-Id: I43cbec764e97f5003a4ec981717c9f213a21b614
2021-07-02 10:57:57 +08:00
TreeHugger Robot
549dac0dc3 Merge "Storage Settings hides categories when loading" into sc-dev am: 03d4644673 am: 1a181a3239 am: e6c6db1f61
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14772155

Change-Id: I321a39dc2d76d16a8f4551f7e5157a0d1a1fc7b3
2021-06-04 12:04:29 +00:00
Arc Wang
51b3e7a093 Storage Settings hides categories when loading
To hide sorting animation.

- Storage Settings always loads cache and updates UI, then
  loads storage size and updates UI.
  Remove the chche design because storage category preferences
  will hide during loading, it no meaning to load from cache
  and update UI.

- Hides loading circle before storage category preferences
  become visible, it prevents flickers.

- Remove Calculating... summary of StorageItemPreference.

- Private storage category preferences and secondary user
  preference become visible at
  StorageItemPreferenceController#onLoadFinished.

Bug: 188731179
Bug: 185547228
Bug: 188615591
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
      manual visual
Change-Id: I3ebef5829ef4f806add07f58fa02520804768be5
2021-06-04 11:50:12 +08:00
TreeHugger Robot
ed6c25eefe Merge "Reduce flickers when launching Storage Settings" into sc-dev am: 0462ffaffc am: c73a8cff20 am: 29671a86d7
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14716098

Change-Id: Id4df6e798f2192d49e77aa80cffa9ccb51e74eb0
2021-05-31 15:09:49 +00:00
Arc Wang
96b6106f2f Reduce flickers when launching Storage Settings
This change remove unnecessary UI dpdate of
StorageItemPreferenceController.

- For StorageItemPreferenceController:
  Remove UI update at #displayPreference since onLoadFinished will update.
  Don't update order at #setVolume since onLoadFinished will update.

- StorageDashboardFragment & StorageCategoryFragment update
  StorageItemPreferenceController only when both StorageInfo
  and StorageResult are loaded.

Bug: 185547228
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
      manual visual
      Click each file category to count files size is the same as
      displayed in Storage Settings.
      manual visual
Change-Id: Id449003827a3e340e7a90f706152100b5568f834
2021-05-31 12:48:02 +00:00
TreeHugger Robot
a84f439bea Merge "Query storage size instead of calculate size of installed APP" into sc-dev am: 0eaf329a43 am: ebf9d33fb9 am: caa0805121
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14554355

Change-Id: I8387c7f9f18d3aaed0f745eee7616b533f5234b5
2021-05-26 00:59:25 +00:00
Arc Wang
044c91cc70 Query storage size instead of calculate size of installed APP
From android S, Storage Settings show files of images/videos/audios
category instead of installed APP of each category. So it's
necessary to change the way to calculate size information.

This change also
- StorageItemPreference shows changing storage size units instead
  of fixed GB. It helps UX for categories of only small size files.
- Query media provider for size of Documents and others.
- Query media provider for size of Trash.

Bug: 170918505
Bug: 177892478
Bug: 179871408
Bug: 184379946
Bug: 186077224
Bug: 187128447
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
      manual visual
      Click each file category to count files size is the same as
      displayed in Storage Settings.
Change-Id: I37c7b3a4b5860323cb55581b23a90f583f4af216
2021-05-25 23:44:21 +08:00
Arc Wang
0052f7f46a Rename audios to audio am: 6062b6491d am: 9c191a1018
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14518465

Change-Id: I274afecba4917ab6cc52274943f7132b7fa44e5c
2021-05-20 01:50:08 +00:00
Arc Wang
6062b6491d Rename audios to audio
Bug: 186635176
Test: build pass
Change-Id: I0d909f639fe36edf2e5088c7ec219cceee4e963a
2021-05-17 14:11:17 +08:00
Arc Wang
543068210f Implements profile selection tab in Storage Settings
- StorageDashboardFragment and StorageItemPreferenceController works only
  for one profile per instance.
- StorageAsyncLoader loads for all users(profiles) and regards each user independent.
- SecondaryUserController will not load personal profile user in work profile tab.
- Cleanup some unused profile related files.

Bug: 174964885
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
Change-Id: I8361c29bc240c519c7261b19522c41439479c1c2
Merged-In: I8361c29bc240c519c7261b19522c41439479c1c2
2021-05-11 20:00:08 +08:00
Arc Wang
fa6e82b879 Implements profile selection tab in Storage Settings
- StorageDashboardFragment and StorageItemPreferenceController works only
  for one profile per instance.
- StorageAsyncLoader loads for all users(profiles) and regards each user independent.
- SecondaryUserController will not load personal profile user in work profile tab.
- Cleanup some unused profile related files.

Bug: 174964885
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
Change-Id: I8361c29bc240c519c7261b19522c41439479c1c2
2021-05-10 15:21:33 +08:00
Yanting Yang
eecd27406c Merge "Add summary back to the homepage" into sc-dev am: c37abc9edb
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14442216

Change-Id: Ida5e3fec18839e4ba2ce266aa5b4d2424b65ef3a
2021-05-07 09:14:08 +00:00
Yanting Yang
d1312e8e6e Add summary back to the homepage
Also update some summaries with new strings.

Bug: 183586663
Test: robotests & atest & visual

Change-Id: I692be9b34e8867501aaa8c8e40428870b99644f8
2021-05-06 00:27:37 +08:00
Yanting Yang
cd60664cc3 Merge "TopLevelStoragePreferenceControllerTest converted to JUnit" into sc-dev 2021-05-05 07:32:45 +00:00
Jeremy Goldman
8e712c1501 TopLevelStoragePreferenceControllerTest converted to JUnit
Helper function composed to return thread future, to guarantee
concurrent function finishes before test condition is checked.
Additionally a @VisibleForTesting helper function is used rather than
robolectric reflection helpers to set a class variable.

Fixes: 187249674
Test: atest -c TopLevelStoragePreferenceControllerTest
Change-Id: Ia22ebac4baec60f72b8516e9e79998cd788266ab
Merged-In: Ia22ebac4baec60f72b8516e9e79998cd788266ab
(cherry picked from commit 899eb7282d)
2021-05-05 07:31:35 +00:00
Arc Wang
ddc9e22f72 Merge "Cleanup Storage Settings" into sc-dev am: 3576b10330
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14408668

Change-Id: I23fae74a9cf6b2e0ceeefdf91707b0f5c250271e
2021-05-05 03:38:04 +00:00
Arc Wang
e64f01ccfc Cleanup Storage Settings
There is AOSP built in file browser for image/video/audio
file category, this change cleanup APP based category
for image/video/audio.

Bug: 183078080
Test: atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
Change-Id: I925fc9296b8c2df5bd793668f66a12beb7744469
2021-05-04 22:21:53 +08:00
TreeHugger Robot
fdfe60d87e Merge "Cleanup Storage Settings" into sc-dev am: fce594ad7f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14182146

Change-Id: I2871f2febd498e3f71e264327bbe6d911b8d4dd5
2021-04-15 02:44:40 +00:00
Arc Wang
192fd24f26 Cleanup Storage Settings
Bug: 183078080
Test: make
      make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.deviceinfo
      make RunSettingsRoboTests
      ROBOTEST_FILTER=com.android.settings.deviceinfo.storage
      atest com.android.settings.deviceinfo
      atest com.android.settings.deviceinfo.storage
Change-Id: I901f5f7999ea94dafb72a2517a11e2ff1fd51b42
2021-04-14 21:37:46 +08:00
Arc Wang
5db8f5ae05 Merge "Check config to decide if Smart Storage toggle should exist" into sc-dev am: 21cf6c04db
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13994999

Change-Id: Ib25fad04992539fb95bc32870a0ea28ab562a8c0
2021-03-30 11:18:35 +00:00
Arc Wang
71ec654fcc Merge "Show "Files" category for public storage in Storage Settings" into sc-dev am: dd2f2f51e0
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13975110

Change-Id: Iea8ea56dfa32eca83adeb75b5fc98668af017b80
2021-03-30 11:18:15 +00:00
Arc Wang
21cf6c04db Merge "Check config to decide if Smart Storage toggle should exist" into sc-dev 2021-03-30 09:49:48 +00:00
Arc Wang
dd2f2f51e0 Merge "Show "Files" category for public storage in Storage Settings" into sc-dev 2021-03-30 09:48:04 +00:00
Arc Wang
78bafc988a Check config to decide if Smart Storage toggle should exist
Bug: 174964885
Test: AutomaticStorageManagementSwitchPreferenceControllerTest
Change-Id: I3090e3d1b01b18b3d0f68396671c8791321cc480
2021-03-30 07:58:37 +00:00
Arc Wang
c626380689 Show "Files" category for public storage in Storage Settings
Users can click this preference to see public storage files
in external file browsers.

Bug: 170918505
Test: make RunSettingsRoboTests ROBOTEST_FILTER=StorageItemPreferenceControllerTest
      manual
      Select private storage and public storage and observe UI
Change-Id: If3f0d59b2ebf941d70e81e60c4c2015b80e7cf33
2021-03-30 15:51:49 +08:00
Bonian Chen
e12af7c44d Merge "Revert "[Settings] Support getSystemService(Class<T>)"" into sc-dev am: fecfb7f5e4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14022667

Change-Id: If7b7aed4d406cea84e118a9b8f9c29ae6206287d
2021-03-30 05:37:24 +00:00
Bonian Chen
fecfb7f5e4 Merge "Revert "[Settings] Support getSystemService(Class<T>)"" into sc-dev 2021-03-30 05:31:52 +00:00
Bonian Chen
234b698fb2 Revert "[Settings] Support getSystemService(Class<T>)"
This reverts commit d5ccde31a8.

Reason for revert: failure on test cases

Change-Id: I0a179a6ebb5ef1dec566ce6e8facd5f3b82d7c8a
2021-03-30 00:51:15 +00:00
Arc Wang
25741ce431 Merge "Storage category UX changes in Storage Settings" into sc-dev am: 8774295309
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13960257

Change-Id: I7db3a72f918b224cb1886396e2f33fef44cd8b2b
2021-03-25 14:22:00 +00:00
Arc Wang
2b00ecdda9 Storage category UX changes in Storage Settings
- Change category types.
- Use Intent.ACTION_VIEW to show content of each category.
- Sort order of each category by storage size.

Bug: 170918505
Test: make RunSettingsRoboTests ROBOTEST_FILTER=StorageItemPreferenceTest
      make RunSettingsRoboTests ROBOTEST_FILTER=StorageItemPreferenceControllerTest
      manual
      Click each category in Storage Settings.
Change-Id: Ib7beb1779a0fcbfd7b8ec52446707b105fcebff5
2021-03-25 20:27:50 +08:00
Bonian Chen
90bb37b6aa Merge "[Settings] Support getSystemService(Class<T>)" into sc-dev am: 8debbfa8a4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13973145

Change-Id: Iccfaf2ad15c5915d998ec291fcddd815bae6047e
2021-03-24 04:44:09 +00:00
Bonian Chen
d5ccde31a8 [Settings] Support getSystemService(Class<T>)
Add getSystemService(Class<T>) to align the capability with framework
part.

This is a back port from aosp/1639943, aosp/1645152 and aosp/1648047

Bug: 179640862
Test: local
Change-Id: I035db55a71f94000ca35f8d71f03c19208423c73
2021-03-24 00:59:46 +08:00
TreeHugger Robot
d7fff5790a Merge changes from topic "revamp storage settings header" into sc-dev
* changes:
  Add option menu in StorageDashboardFragment
  Revamp Storage Settings header part
2021-03-20 16:06:50 +00:00
Arc Wang
c22749530b Add option menu in StorageDashboardFragment
Add option menu for each kind of storage

1. Unsupported disk: Format.
2. Missing volume record: Forget.
3. Unmounted storage: Mount.
4. Default internal storage: Migrate.
5. Private volume: Rename / Unmount / Format as portable / Migrate.
6. Publuc volume: Rename / Unmount / Format / Format as internal.

Bug: 174964885
Test: atest VolumeOptionMenuControllerTest
Change-Id: I85fa117ff0a49ec7a53ba36580591c7ce7f5a8dc
Merged-In: I85fa117ff0a49ec7a53ba36580591c7ce7f5a8dc
2021-03-19 18:08:48 +08:00
Chiachang Wang
5d1d5b3df7 Merge "Update mocking to correct target methods" am: efa884758b am: b64bf233a3 am: 7dce573e9d am: 04f43b188d
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1644306

Change-Id: I9c33e18c8f4ee238b03dbc2bc16ebbe10e95f7e4
2021-03-18 15:28:52 +00:00
Chiachang Wang
04f43b188d Merge "Update mocking to correct target methods" am: efa884758b am: b64bf233a3 am: 7dce573e9d
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1644306

Change-Id: I99179fe4a754849f50f6b06ce9b7424a88478184
2021-03-18 15:14:07 +00:00
Chiachang Wang
7dce573e9d Merge "Update mocking to correct target methods" am: efa884758b am: b64bf233a3
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/1644306

Change-Id: I8fed607cd748348e714470f5fe8159abe445313d
2021-03-18 14:29:12 +00:00
Chiachang Wang
6290ad9509 Update mocking to correct target methods
The correct target context should use the mActivity in
MobileNetworkSettingsTest, so that the mocking for
telephony service could correctly applied.

Both AutoTimeZonePreferenceControllerTest and
BasebandVersionPreferenceControllerTest refer to the lib
implemented shadow Connectivitymanager but that does not
the correct reference after utils class being updated.
Update the test logic inside to refer to correct method.
The reference to ShadowConnectivityManager does not needed
anymore so remove it from the test.

Fix: 183068151
Fix: 183067742
Fix: 183068139
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
com.android.settings.network.telephony.MobileNetworkSettingsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
com.android.settings.datetime.AutoTimeZonePreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings\
.deviceinfo.firmwareversion.BasebandVersionPreferenceControllerTest

Change-Id: I15ecc6aab7d530d20cd23b06267cc184a2c62b40
2021-03-18 14:53:07 +08:00
Colin Cross
1871042664 Merge "resolve merge conflicts of d42d9a41f6 to sc-dev" into sc-dev am: 321f413343
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/13904045

Change-Id: I019ec2f2f5ed6ec8d2be519d821ee7f139af4bb3
2021-03-17 22:02:02 +00:00