Merge "Fix when search "storage", there are multiple results" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f7ee64da6c
@@ -70,6 +70,16 @@ import java.util.List;
|
||||
public class StorageSettings extends SettingsPreferenceFragment implements Indexable {
|
||||
static final String TAG = "StorageSettings";
|
||||
|
||||
private static final String KEY_STORAGE_SETTINGS = "storage_settings";
|
||||
private static final String KEY_INTERNAL_STORAGE = "storage_settings_internal_storage";
|
||||
private static final String KEY_STORAGE_SETTINGS_VOLUME = "storage_settings_volume_";
|
||||
private static final String KEY_STORAGE_SETTINGS_MEMORY_SIZE = "storage_settings_memory_size";
|
||||
private static final String KEY_STORAGE_SETTINGS_MEMORY = "storage_settings_memory_available";
|
||||
private static final String KEY_STORAGE_SETTINGS_DCIM = "storage_settings_dcim_space";
|
||||
private static final String KEY_STORAGE_SETTINGS_MUSIC = "storage_settings_music_space";
|
||||
private static final String KEY_STORAGE_SETTINGS_MISC = "storage_settings_misc_space";
|
||||
private static final String KEY_STORAGE_SETTINGS_FREE_SPACE = "storage_settings_free_space";
|
||||
|
||||
private static final String TAG_VOLUME_UNMOUNTED = "volume_unmounted";
|
||||
private static final String TAG_DISK_INIT = "disk_init";
|
||||
private static final int METRICS_CATEGORY = SettingsEnums.DEVICEINFO_STORAGE;
|
||||
@@ -551,14 +561,14 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
||||
|
||||
SearchIndexableRaw data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.storage_settings);
|
||||
data.key = "storage_settings";
|
||||
data.key = KEY_STORAGE_SETTINGS;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
data.keywords = context.getString(R.string.keywords_storage_settings);
|
||||
result.add(data);
|
||||
|
||||
data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.internal_storage);
|
||||
data.key = "storage_settings_internal_storage";
|
||||
data.key = KEY_INTERNAL_STORAGE;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
result.add(data);
|
||||
|
||||
@@ -568,7 +578,7 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
||||
for (VolumeInfo vol : vols) {
|
||||
if (isInteresting(vol)) {
|
||||
data.title = storage.getBestVolumeDescription(vol);
|
||||
data.key = "storage_settings_volume_" + vol.id;
|
||||
data.key = KEY_STORAGE_SETTINGS_VOLUME + vol.id;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
result.add(data);
|
||||
}
|
||||
@@ -576,37 +586,37 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
||||
|
||||
data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.memory_size);
|
||||
data.key = "storage_settings_memory_size";
|
||||
data.key = KEY_STORAGE_SETTINGS_MEMORY_SIZE;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
result.add(data);
|
||||
|
||||
data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.memory_available);
|
||||
data.key = "storage_settings_memory_available";
|
||||
data.key = KEY_STORAGE_SETTINGS_MEMORY;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
result.add(data);
|
||||
|
||||
data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.memory_dcim_usage);
|
||||
data.key = "storage_settings_dcim_space";
|
||||
data.key = KEY_STORAGE_SETTINGS_DCIM;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
result.add(data);
|
||||
|
||||
data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.memory_music_usage);
|
||||
data.key = "storage_settings_music_space";
|
||||
data.key = KEY_STORAGE_SETTINGS_MUSIC;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
result.add(data);
|
||||
|
||||
data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.memory_media_misc_usage);
|
||||
data.key = "storage_settings_misc_space";
|
||||
data.key = KEY_STORAGE_SETTINGS_MISC;
|
||||
data.screenTitle = context.getString(R.string.storage_settings);
|
||||
result.add(data);
|
||||
|
||||
data = new SearchIndexableRaw(context);
|
||||
data.title = context.getString(R.string.storage_menu_free);
|
||||
data.key = "storage_settings_free_space";
|
||||
data.key = KEY_STORAGE_SETTINGS_FREE_SPACE;
|
||||
data.screenTitle = context.getString(R.string.storage_menu_free);
|
||||
// We need to define all three in order for this to trigger properly.
|
||||
data.intentAction = StorageManager.ACTION_MANAGE_STORAGE;
|
||||
@@ -618,5 +628,69 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
final List<String> niks = super.getNonIndexableKeys(context);
|
||||
if (isExternalExist(context)) {
|
||||
niks.add(KEY_STORAGE_SETTINGS);
|
||||
niks.add(KEY_INTERNAL_STORAGE);
|
||||
niks.add(KEY_STORAGE_SETTINGS_MEMORY_SIZE);
|
||||
niks.add(KEY_STORAGE_SETTINGS_MEMORY);
|
||||
niks.add(KEY_STORAGE_SETTINGS_DCIM);
|
||||
niks.add(KEY_STORAGE_SETTINGS_MUSIC);
|
||||
niks.add(KEY_STORAGE_SETTINGS_MISC);
|
||||
niks.add(KEY_STORAGE_SETTINGS_FREE_SPACE);
|
||||
|
||||
final StorageManager storage = context.getSystemService(
|
||||
StorageManager.class);
|
||||
final List<VolumeInfo> vols = storage.getVolumes();
|
||||
for (VolumeInfo vol : vols) {
|
||||
if (isInteresting(vol)) {
|
||||
niks.add(KEY_STORAGE_SETTINGS_VOLUME + vol.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
return niks;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isPageSearchEnabled(Context context) {
|
||||
return !isExternalExist(context);
|
||||
}
|
||||
|
||||
private boolean isExternalExist(Context context) {
|
||||
int internalCount = 0;
|
||||
StorageManager storageManager = context.getSystemService(StorageManager.class);
|
||||
final List<VolumeInfo> volumes = storageManager.getVolumes();
|
||||
for (VolumeInfo vol : volumes) {
|
||||
//External storage
|
||||
if (vol.getType() == VolumeInfo.TYPE_PUBLIC
|
||||
|| vol.getType() == VolumeInfo.TYPE_STUB) {
|
||||
return true;
|
||||
} else if (vol.getType() == VolumeInfo.TYPE_PRIVATE) {
|
||||
internalCount++;
|
||||
}
|
||||
}
|
||||
|
||||
// Unsupported disks
|
||||
final List<DiskInfo> disks = storageManager.getDisks();
|
||||
for (DiskInfo disk : disks) {
|
||||
if (disk.volumeCount == 0 && disk.size > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Missing private volumes
|
||||
final List<VolumeRecord> recs = storageManager.getVolumeRecords();
|
||||
for (VolumeRecord rec : recs) {
|
||||
if (rec.getType() == VolumeInfo.TYPE_PRIVATE
|
||||
&& storageManager.findVolumeByUuid(rec.getFsUuid()) == null) {
|
||||
internalCount++;
|
||||
}
|
||||
}
|
||||
|
||||
return (internalCount != 1);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user