Merge "Fix when search "storage", there are multiple results" into rvc-dev am: f7ee64da6c
Change-Id: I5bc7cb1b0ac17d75e7ff336b63bd6bcd4d18a0d2
This commit is contained in:
@@ -70,6 +70,16 @@ import java.util.List;
|
|||||||
public class StorageSettings extends SettingsPreferenceFragment implements Indexable {
|
public class StorageSettings extends SettingsPreferenceFragment implements Indexable {
|
||||||
static final String TAG = "StorageSettings";
|
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_VOLUME_UNMOUNTED = "volume_unmounted";
|
||||||
private static final String TAG_DISK_INIT = "disk_init";
|
private static final String TAG_DISK_INIT = "disk_init";
|
||||||
private static final int METRICS_CATEGORY = SettingsEnums.DEVICEINFO_STORAGE;
|
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);
|
SearchIndexableRaw data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.storage_settings);
|
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.screenTitle = context.getString(R.string.storage_settings);
|
||||||
data.keywords = context.getString(R.string.keywords_storage_settings);
|
data.keywords = context.getString(R.string.keywords_storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.internal_storage);
|
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);
|
data.screenTitle = context.getString(R.string.storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
@@ -568,7 +578,7 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
|||||||
for (VolumeInfo vol : vols) {
|
for (VolumeInfo vol : vols) {
|
||||||
if (isInteresting(vol)) {
|
if (isInteresting(vol)) {
|
||||||
data.title = storage.getBestVolumeDescription(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);
|
data.screenTitle = context.getString(R.string.storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
}
|
}
|
||||||
@@ -576,37 +586,37 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
|||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.memory_size);
|
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);
|
data.screenTitle = context.getString(R.string.storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.memory_available);
|
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);
|
data.screenTitle = context.getString(R.string.storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.memory_dcim_usage);
|
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);
|
data.screenTitle = context.getString(R.string.storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.memory_music_usage);
|
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);
|
data.screenTitle = context.getString(R.string.storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.memory_media_misc_usage);
|
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);
|
data.screenTitle = context.getString(R.string.storage_settings);
|
||||||
result.add(data);
|
result.add(data);
|
||||||
|
|
||||||
data = new SearchIndexableRaw(context);
|
data = new SearchIndexableRaw(context);
|
||||||
data.title = context.getString(R.string.storage_menu_free);
|
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);
|
data.screenTitle = context.getString(R.string.storage_menu_free);
|
||||||
// We need to define all three in order for this to trigger properly.
|
// We need to define all three in order for this to trigger properly.
|
||||||
data.intentAction = StorageManager.ACTION_MANAGE_STORAGE;
|
data.intentAction = StorageManager.ACTION_MANAGE_STORAGE;
|
||||||
@@ -618,5 +628,69 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
|
|||||||
|
|
||||||
return result;
|
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