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
This commit is contained in:
@@ -85,7 +85,7 @@ import java.util.List;
|
||||
@SearchIndexable
|
||||
public class StorageDashboardFragment extends DashboardFragment
|
||||
implements
|
||||
LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.AppsStorageResult>>,
|
||||
LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.StorageResult>>,
|
||||
Preference.OnPreferenceClickListener {
|
||||
private static final String TAG = "StorageDashboardFrag";
|
||||
private static final String SUMMARY_PREF_KEY = "storage_summary";
|
||||
@@ -100,7 +100,7 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
private final List<StorageEntry> mStorageEntries = new ArrayList<>();
|
||||
private StorageEntry mSelectedStorageEntry;
|
||||
private PrivateStorageInfo mStorageInfo;
|
||||
private SparseArray<StorageAsyncLoader.AppsStorageResult> mAppsResult;
|
||||
private SparseArray<StorageAsyncLoader.StorageResult> mAppsResult;
|
||||
private CachedStorageValuesHelper mCachedStorageValuesHelper;
|
||||
|
||||
private StorageItemPreferenceController mPreferenceController;
|
||||
@@ -414,7 +414,7 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
* Updates the secondary user controller sizes.
|
||||
*/
|
||||
private void updateSecondaryUserControllers(List<AbstractPreferenceController> controllers,
|
||||
SparseArray<StorageAsyncLoader.AppsStorageResult> stats) {
|
||||
SparseArray<StorageAsyncLoader.StorageResult> stats) {
|
||||
for (int i = 0, size = controllers.size(); i < size; i++) {
|
||||
final AbstractPreferenceController controller = controllers.get(i);
|
||||
if (controller instanceof StorageAsyncLoader.ResultHandler) {
|
||||
@@ -455,7 +455,7 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
};
|
||||
|
||||
@Override
|
||||
public Loader<SparseArray<StorageAsyncLoader.AppsStorageResult>> onCreateLoader(int id,
|
||||
public Loader<SparseArray<StorageAsyncLoader.StorageResult>> onCreateLoader(int id,
|
||||
Bundle args) {
|
||||
final Context context = getContext();
|
||||
return new StorageAsyncLoader(context, mUserManager,
|
||||
@@ -465,15 +465,15 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(Loader<SparseArray<StorageAsyncLoader.AppsStorageResult>> loader,
|
||||
SparseArray<StorageAsyncLoader.AppsStorageResult> data) {
|
||||
public void onLoadFinished(Loader<SparseArray<StorageAsyncLoader.StorageResult>> loader,
|
||||
SparseArray<StorageAsyncLoader.StorageResult> data) {
|
||||
mAppsResult = data;
|
||||
maybeCacheFreshValues();
|
||||
onReceivedSizes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(Loader<SparseArray<StorageAsyncLoader.AppsStorageResult>> loader) {
|
||||
public void onLoaderReset(Loader<SparseArray<StorageAsyncLoader.StorageResult>> loader) {
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -507,20 +507,20 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public SparseArray<StorageAsyncLoader.AppsStorageResult> getAppsStorageResult() {
|
||||
public SparseArray<StorageAsyncLoader.StorageResult> getStorageResult() {
|
||||
return mAppsResult;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public void setAppsStorageResult(SparseArray<StorageAsyncLoader.AppsStorageResult> info) {
|
||||
public void setStorageResult(SparseArray<StorageAsyncLoader.StorageResult> info) {
|
||||
mAppsResult = info;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void initializeCachedValues() {
|
||||
final PrivateStorageInfo info = mCachedStorageValuesHelper.getCachedPrivateStorageInfo();
|
||||
final SparseArray<StorageAsyncLoader.AppsStorageResult> loaderResult =
|
||||
mCachedStorageValuesHelper.getCachedAppsStorageResult();
|
||||
final SparseArray<StorageAsyncLoader.StorageResult> loaderResult =
|
||||
mCachedStorageValuesHelper.getCachedStorageResult();
|
||||
if (info == null || loaderResult == null) {
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user