Storage stats on external SD card in Settings.

Storage categories are dynamically created from list of StorageVolumes instead
of a static XML.

Unknown files' sizes are part of Misc rather than Apps.

Categories with a size of 0 are removed.

TODO : remove the notion of a "nosdcard" product. Change strings accordingly.
See all TODO in code

Change-Id: I017ac20f5fa50ad9bdeba8e666754ec84acf3858
This commit is contained in:
Gilles Debunne
2011-05-19 10:34:14 -07:00
parent ce116503a7
commit 104ea2873d
10 changed files with 1075 additions and 1058 deletions

View File

@@ -16,12 +16,11 @@
package com.android.settings.deviceinfo;
import com.android.settings.R;
import com.android.settings.deviceinfo.MemoryMeasurement.FileInfo;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.os.storage.StorageVolume;
import android.text.format.Formatter;
import android.util.Log;
import android.util.SparseBooleanArray;
@@ -39,6 +38,9 @@ import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListView;
import com.android.settings.R;
import com.android.settings.deviceinfo.StorageMeasurement.FileInfo;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@@ -107,7 +109,7 @@ public class MiscFilesHandler extends ListActivity {
//item not selected
continue;
}
if (MemoryMeasurement.LOGV) {
if (StorageMeasurement.LOGV) {
Log.i(TAG, "deleting: " + mAdapter.getItem(i));
}
// delete the file
@@ -156,6 +158,7 @@ public class MiscFilesHandler extends ListActivity {
}
public void onDestroyActionMode(ActionMode mode) {
// This block intentionally left blank
}
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
@@ -181,17 +184,21 @@ public class MiscFilesHandler extends ListActivity {
}
}
public class MemoryMearurementAdapter extends BaseAdapter {
private ArrayList<MemoryMeasurement.FileInfo> mData = null;
class MemoryMearurementAdapter extends BaseAdapter {
private ArrayList<StorageMeasurement.FileInfo> mData = null;
private long mDataSize = 0;
private Context mContext;
public MemoryMearurementAdapter(Context context) {
mContext = context;
MemoryMeasurement mMeasurement = MemoryMeasurement.getInstance(context);
mData = (ArrayList<MemoryMeasurement.FileInfo>)mMeasurement.mFileInfoForMisc;
public MemoryMearurementAdapter(Activity activity) {
mContext = activity;
final Bundle extras = activity.getIntent().getExtras();
final StorageVolume storageVolume = extras.getParcelable(
StorageVolumePreferenceCategory.STORAGE_VOLUME);
StorageMeasurement mMeasurement =
StorageMeasurement.getInstance(activity, storageVolume, false);
mData = (ArrayList<StorageMeasurement.FileInfo>) mMeasurement.mFileInfoForMisc;
if (mData != null) {
for (MemoryMeasurement.FileInfo info : mData) {
for (StorageMeasurement.FileInfo info : mData) {
mDataSize += info.mSize;
}
}
@@ -203,7 +210,7 @@ public class MiscFilesHandler extends ListActivity {
}
@Override
public MemoryMeasurement.FileInfo getItem(int position) {
public StorageMeasurement.FileInfo getItem(int position) {
if (mData == null || mData.size() <= position) {
return null;
}
@@ -217,13 +224,14 @@ public class MiscFilesHandler extends ListActivity {
}
return mData.get(position).mId;
}
public void removeAll(List<Object> objs) {
if (mData == null) {
return;
}
for (Object o : objs) {
mData.remove(o);
mDataSize -= ((MemoryMeasurement.FileInfo) o).mSize;
mDataSize -= ((StorageMeasurement.FileInfo) o).mSize;
}
}