Commit Graph

185 Commits

Author SHA1 Message Date
alukin
67835caf33 Split Documents&Other
Splitting Documents&Other category in
Settings > Storage into "Documents"
and "Other".

"Documents" category is calculated by
querying MediaStore for all files with
MediaType = "Document".

"Other" category is calculated by
querying MediaStore for all files with
MEDIA_TYPE != "Image" AND MEDIA_TYPE != "Video"
AND MEDIA_TYPE != "Audio" AND MEDIA_TYPE != "Document".

Bug: 328505030
Test: atest StorageItemPreferenceControllerTest
Test: atest StorageCacheHelperTest
Change-Id: I413c502c7b3fd66df9a3b5e0d91f8bd024f4b6e0
2024-04-05 19:54:21 +00:00
alukin
f4329ada00 Split System category
Splitting System category in
Settings > Storage into "Android 14"
and "Temporary system files".

Android 14 is calculated as
StorageStatsManager#getTotalBytes - (size of /data partition).
Basically it's the size of all partitions
except for the userdata. It also includes
the storage rounding which we do to display
a nice round storage size (128GB, 256GB, etc).

Temporary System Files serves as "Everything else"
category that represents all the used storage
that didn't fall under any other category.
It's the same as how currently "System" category works.

Bug: 309801699
Test: atest StorageItemPreferenceControllerTest
Test: atest StorageCacheHelperTest
Change-Id: Ifae5819bf1d7a1a675df1fa67bd6dcdfa074b584
2024-04-04 13:26:07 +00:00
Sunny Shao
076ed573eb Revert^2 "Nullability Annotations replacement"
This reverts commit 19d1d3d15d.

Reason for revert: revert it because this is not the root cause.

bug: 316867690
Change-Id: I0f168dbb64044aa720202af7b1040afd4f028c9c
2024-01-10 07:34:01 +00:00
Sunny Shao
19d1d3d15d Revert "Nullability Annotations replacement"
This reverts commit cf0501e4d7.

Reason for revert: b/317462033, it seems a flaky but revert it first.

Change-Id: Ie1d5e279cca6477fc17d8c27c1ecda8d7a6b2553
2023-12-29 02:28:24 +00:00
sunnyshao
cf0501e4d7 Nullability Annotations replacement
-- Replace the android.annotation.Nullable / android.annotation.NonNull
   with androidx.annotation.Nullable / androidx.annotation.NonNull

Bug: 316867690
Test: build pass
Change-Id: I0c1da55dfb09ece855151c47e0492d6f46538621
2023-12-20 08:50:09 +08:00
Manish Singh
6efc455f2c Show a separate tab for the Private Space
This covers all the known Settings pages using the tabbed view model.

https://docs.google.com/document/d/1CdjUjAE84-5ZEPRIfw5KYFjLVHtEZxc_sF0w95su8DA/edit?resourcekey=0-dAACT9HRexY1IyoxMmkVlw#heading=h.58jd58rmznte

Screenshots:
all apps
https://screenshot.googleplex.com/3E5Jm7Pi2JfN64r
with work tab:
https://screenshot.googleplex.com/8egk4yHK5jSENjR

PS Apps Special media management apps
https://screenshot.googleplex.com/BHHafqW7bgUwSGg
with work tab:
https://screenshot.googleplex.com/3cocdhruEmCCh5k

PS Location Services tab view
https://screenshot.googleplex.com/3DqJcT2BFTEpvYT
with work tab:
https://screenshot.googleplex.com/6Avpx6hxSrdGJw5

PS on screen keyboard tab view
https://screenshot.googleplex.com/4FzVNnBWwbUeJNw
with work tab:
https://screenshot.googleplex.com/8E8UhpWq8PL5nxU

PS password account tab view
https://screenshot.googleplex.com/6bDR4AKtth2S3EW
with work tab:
https://screenshot.googleplex.com/9msXV2TdHdJapch

PS storage tab view
https://screenshot.googleplex.com/5Nk2FTxwdmpEv3B
with work tab:
https://screenshot.googleplex.com/79tw2EaWZKfMsnC

PS appl_languages_work
https://screenshot.googleplex.com/3qrREeg3RQdHhhH

Bug: 302278487
Test: manual
Change-Id: I8cd39170827fbe251bc4075ef306206020b3a022
2023-10-11 12:32:17 +01:00
Aleksandr Lukin
344a4da39f Merge "Update the API usage to get total size of devices" into udc-qpr-dev am: 1bc145ab6b am: 595db29382
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24434307

Change-Id: I276e74bc1534ec9253b886ceaf29dc5710a011fb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-08-23 14:46:55 +00:00
Edgar Wang
2d57d002ae Update the API usage to get total size of devices
StorageStatsManager fixed in StorageStatsService#getTotalBytes
So that we should change back to call the API.

Bug: 295358118
Bug: 288103116
Test: verified manually
Change-Id: I3dcc9698403612f961cf0de41925dcbcb43e260b
2023-08-22 11:26:57 +00:00
Chaohui Wang
8e2ae547d6 Clean up FeatureFactory.getFeature()
Bug: 286764889
Test: m Settings
Change-Id: I7e472e6b0ca6b7a735c1b92742ddf06c545176fc
2023-08-08 08:41:48 +00:00
Edgar Wang
e52320e755 Correct used size of Storage Settings.
Since StorageManager rounded the totalBytes of device storage but
they don't do that rounding for freeBytes.
So in some cases the freeBytes can be greater than totalBytes.

We propose to get totalBytes of device storage directly to calculate
correct privateUsedBytes.

Test: robotest
Bug: 281955532
Change-Id: I4f137c20e7c2f54f4e037d50e81b3176edc1a83a
2023-06-27 06:29:00 +00:00
Tetiana Meronyk
db6b029287 Remove system user from displaying in Storage Settings in HSUM
Bug: 259525664
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.deviceinfo.storage.NonCurrentUserControllerTest"
Change-Id: I9425a9becdb89588da4a917c0ba9401d6b354238
2022-11-25 00:24:30 +00:00
Arc Wang
32785eb260 Fix can't access SD card from work profile
It may not be reasonable to access SD card from
work profile launched File apps. This change
hides 'Files' Preference for SD card in Storage
Settings.

Bug: 238386355
Test: manual visual
      Settings -> Storage -> SD card -> Work profile
Change-Id: Ibdbba930335cb4690a93fa6218b2991e13a3eca6
2022-11-14 22:21:16 +08:00
Tetiana Meronyk
5c0bb75de8 Show other users in storage settings
Bug: 232969364
Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.deviceinfo.storage.NonCurrentUserControllerTest"
Change-Id: I8d933bec8f12faa971684939b722cfae957f4953
2022-10-19 10:44:06 +00:00
Treehugger Robot
2a0a88af4d Merge "Fix incorrect storage calculation when SD card is inserted" am: e705fcd7c3
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2147780

Change-Id: I6ba5b7c40e87df6c231e0c774913b1320c9c3996
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-16 02:51:11 +00:00
Xingbin Feng
3cbff800a3 Fix incorrect storage calculation when SD card is inserted
The displayed internal storage is incorrect when an SD card
is inserted into the device.

Bug: 209962845
Test: Insert an SD card with some content. The System
storage calculation should remain unchanged.

Change-Id: I0a338bc306c0ade68747356714cd291e209a5069
2022-07-07 14:42:57 +02:00
Arc Wang
03b1b23c74 Fix 'Documents & other' missing problem
Should check if 'Documents & other' is visible
when mVolume is updated.

Bug: 230215783
Test: manual visual
      Settings -> Storage
Change-Id: Ife36b71bee66ff16802e352785824e10c17dceb8
2022-04-24 15:30:16 +08:00
Arc Wang
ea4260c0e7 Fix ManageStoragePreferenceController always consume click event
ManageStoragePreferenceController should only consume click
event when its preference key matches the key of the clicked
preference.

Bug: 228970667
Test: atest ManageStoragePreferenceControllerTest
Change-Id: Ia6c62cf457fc4cadc27dc160dbd9b04ec3392d68
2022-04-19 17:35:05 +08:00
Mill Chen
34eecaad79 Merge "Add cache mechanism for secondary users in Storage" into tm-dev 2022-04-08 05:48:45 +00:00
Arc Wang
b7409f8b39 Add work profile badge for icon of free up space
- Get badged icon from target app.
- Add card_preference layout file to align icon & text
  with other Preference.

Bug: 192555970
Test: manual visual
Change-Id: Id98d05e8871032ad61627783b8e47bfee1363448
2022-04-01 17:41:08 +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
Mill Chen
d45b5275d1 Update animation on storage item
To prevent the flicker happening, the animation is being applied to both
progress bar and storage size info in the storage item.

Bug: 222421324
Test: manual test
1) Install memory fill
2) Increase storage size using memory fill
3) Navigate to Settings > Storage
3) Check the progress bar and size info has animation when updating

Change-Id: I4583358697afd416bc20cafac3ff89361397b6b9
2022-03-14 15:49:05 +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
Edgar Wang
fa5ab2e268 Replace SettingsSpinner with Spinner
Bug: 219610512
Test: manual
Change-Id: Ib8562a64299a6cb36f8225199f9432cb81e8e9f2
2022-02-17 02:16:27 +08:00
Junyu Lai
e539db77c4 [MS49] Remove NetworkStats hidden Api usages
This includes:
1. Remove unused INetworkStatsService and NetworkStatsHistory.
2. Replace NetworkTemplate usages with builder.
3. Replace TrafficStats references to DataUnit.
4. Reimplement NetworkTemplate#normalize.

Test: make RunSettingsRoboTests
Bug: 204830222

  (cherry-picked from ag/16724040)

Change-Id: I8efecda5df403e9ed588daecd169cb3498d213a2
Merged-In: I8efecda5df403e9ed588daecd169cb3498d213a2
2022-01-28 13:08:52 +00:00
Junyu Lai
893c1ee0cc Merge "[MS49] Remove NetworkStats hidden Api usages" 2022-01-28 00:42:44 +00:00
Junyu Lai
25e26ea7af [MS49] Remove NetworkStats hidden Api usages
This includes:
1. Remove unused INetworkStatsService and NetworkStatsHistory.
2. Replace NetworkTemplate usages with builder.
3. Replace TrafficStats references to DataUnit.
4. Reimplement NetworkTemplate#normalize.

Test: make RunSettingsRoboTests
Bug: 204830222
Change-Id: I8efecda5df403e9ed588daecd169cb3498d213a2
2022-01-26 11:05:57 +00:00
Arc Wang
0c7a2632bc Fix UI problems of PublicVolumeSettings
This change replaces StorageSummaryPreference with
UsageProgressBarPreference.

Bug: 215325625
Test: manual visual
      1. Disable 'Files by Google'
      2. Settings -> Storage -> select SD card -> Files
      3. Option menu -> Storage Settings
Change-Id: I5db8c5971429ccd444d6d898b1df2c09363455b0
2022-01-21 18:24:13 +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
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
Arc Wang
248970aad7 Fix negative size when size is greater than 2,147,483,647
Java integer max is 2,147,483,647, it's about 2GB.
Use getLong to get size from provider instead of getInt.

Bug: 190721008
Test: manual visual
      Copy video files more than 2,147,483,647 bytes
      and observe Videos size information.
Change-Id: Ic804db43554fdd580627faebecfe30d9ad2a9120
2021-06-18 11:30:18 +08:00
TreeHugger Robot
03d4644673 Merge "Storage Settings hides categories when loading" into sc-dev 2021-06-04 11:09:01 +00:00
Arc Wang
1beae1bf91 Set storage volume spinner invsible when only 1 volume
Bug: 189390166
Test: atest StorageSelectionPreferenceControllerTest
Change-Id: I93e5fbf50153580ec60c146959d21e61f556c18c
2021-06-04 07:25:30 +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
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
Arc Wang
8fde6ca821 Shows trash category in Storage Settings
If there is APP which supports VIEW_TRASH intent,
use it to show trash files. Otherwise popup a dialog
to guide users to empty trash files.

Bug: 189109564
Test: manual visual
      Observe size information are the same as files in Files APP.
      Observe if empty trash button empty trash files.
      Observe if Trash category update summary and order after emptying
      trash files.
Change-Id: Ia3c46dcb1b4fadcdfb865f7dd315c27f8f98cb2c
2021-05-27 17:50:11 +08: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
07dc4fe79a Shows "This device" for default internal storage
Bug: 188492974
Test: atest StorageEntryTest
Change-Id: I7278ff604f22acafd47cef2f5d613a2bf9f0e371
2021-05-18 16:23:25 +08: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
c0b5ba5225 Storage Settings shift profile selection tab position
In this change, Storage Settings main UI is composed by 3 fragments.

StorageDashboardFragment only shows when there is only personal profile for
current user.

ProfileSelectStorageFragment (controls preferences above profile tab) and
StorageDashboardNoHeaderFragment (controls preferences below profile tab)
only show when current user has installed work profile.

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: I50dea2fbcae39a1488e648f3ca615f54840e19d5
2021-05-17 14:07:24 +08:00
Arc Wang
76cf622e9b Fix Storage Settings progress bar summary jank problem
Only updates progress bar summary for a selected StorageEntry.
(Ignore updateState callback from DashboardFragment)

Bug: 187145219
Test: manual visual
Change-Id: I4a760ae6a0921c99348c0fce54251b2667bf29ae
2021-05-12 23:57:01 +08:00
TreeHugger Robot
0b43270035 Merge "Implements profile selection tab in Storage Settings" into sc-dev 2021-05-12 07:48:43 +00:00
TreeHugger Robot
2853e766f5 Merge "Set storage volume spinner not clickable when only 1 volume" into sc-dev 2021-05-12 03:10:53 +00: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
Hai Zhang
6bf47f6274 Don't add SettingsLib to static_libs in Settings unit test.
Adding them results in duplicate classes and causes conflict for the R
classes and resource loading.

Meanwhile, correctly removing the SettingsLibSettingsSpinner resulted
in the test failing to find the getSelectedItem() method which is
unused inside Settings app. This is an inherent issue when unit
testing an optimized (and shrunk) app, and since there's no other way
for the test to get the current selected item, this change simply
changes the Settings code to invoke getSelectedItem() as well. This
has exactly the same effect because SettingsSpinnerPreference updates
its mPosition right before calling the OnItemSelectedListener in its
implementation.

Bug: 183340630
Bug: 177638625
Bug: 183342958
Test: atest SettingsSliderPreferenceControllerTest
Test: atest PrivateVolumeForgetTest
Change-Id: Ia26ca923369b41291614fb9bd50dfbd2aac2f0fa
2021-05-11 03:33:08 -07:00
Arc Wang
65d3f45606 Set storage volume spinner not clickable when only 1 volume
Bug: 187801712
Test: manual
      Click the spinner when there is only default volume.
      Click the spinner when there is USB drive connected.
Change-Id: Ifbd26c96f467757ffcfef750bd80533834123f82
2021-05-11 18:06:47 +08: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
Arc Wang
4cd89bb082 Storage Settings Apps category shows image/video/audio APPs
There is AOSP built in file browser for image/video/audio
file category, all APPs except games should be included in
Apps category.

- Shows image/video/audio APPs in APPs category.
- Count Image/Video/Audio APPs storage size to Apps storage size.
- Remove APP size & cache size for Images/Videos/Audios category.

Bug: 170918505
Test: atest StorageAsyncLoaderTest.java
Change-Id: I07e0a3a66a13f36b9e0cbde289d8ba90df4ae295
2021-05-03 20:17:58 +08:00
Arc Wang
2e04e81da8 Update storage usage progress bar summary text
Shows a simplified version, e.g., 24GB used / 64 GB total

Bug: 174964885
Test: manual visual
Change-Id: Ia7a12d0cf7444ebb172ef2c23209196e01eadac0
2021-04-19 12:08:16 +08:00