OSDN Git Service

Add indexing for Storage preferences
authorFabrice Di Meglio <fdimeglio@google.com>
Thu, 3 Apr 2014 00:07:36 +0000 (17:07 -0700)
committerFabrice Di Meglio <fdimeglio@google.com>
Thu, 3 Apr 2014 00:18:56 +0000 (17:18 -0700)
- implement the contract for SEARCH_INDEX_DATA_PROVIDER

Change-Id: I131e9176c47ccd697d05961b09546ba0e51059f7

src/com/android/settings/deviceinfo/Memory.java
src/com/android/settings/search/SearchIndexableResources.java

index 4923070..de793cf 100644 (file)
@@ -41,6 +41,7 @@ import android.os.storage.StorageManager;
 import android.os.storage.StorageVolume;
 import android.preference.Preference;
 import android.preference.PreferenceScreen;
+import android.provider.SearchIndexableResource;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -51,6 +52,8 @@ import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settings.search.Indexable;
+import com.android.settings.search.SearchIndexableRaw;
 import com.google.android.collect.Lists;
 
 import java.util.ArrayList;
@@ -60,7 +63,7 @@ import java.util.List;
  * Panel showing storage usage on disk for known {@link StorageVolume} returned
  * by {@link StorageManager}. Calculates and displays usage of data types.
  */
-public class Memory extends SettingsPreferenceFragment {
+public class Memory extends SettingsPreferenceFragment implements Indexable{
     private static final String TAG = "MemorySettings";
 
     private static final String TAG_CONFIRM_CLEAR_CACHE = "confirmClearCache";
@@ -424,4 +427,85 @@ public class Memory extends SettingsPreferenceFragment {
             return builder.create();
         }
     }
+
+    /**
+     * Enable indexing of searchable data
+     */
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+        new SearchIndexProvider() {
+
+            @Override
+            public List<SearchIndexableResource> getXmlResourcesToIndex(
+                    Context context, boolean enabled) {
+                return null;
+            }
+
+            @Override
+            public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
+                final List<SearchIndexableRaw> result = new ArrayList<SearchIndexableRaw>();
+
+                SearchIndexableRaw data = new SearchIndexableRaw(context);
+                data.title = context.getString(R.string.storage_settings);
+                data.screenTitle = context.getString(R.string.storage_settings);
+                result.add(data);
+
+                data = new SearchIndexableRaw(context);
+                data.title = context.getString(R.string.internal_storage);
+                data.screenTitle = context.getString(R.string.storage_settings);
+                result.add(data);
+
+                data = new SearchIndexableRaw(context);
+                final StorageVolume[] storageVolumes = StorageManager.from(context).getVolumeList();
+                for (StorageVolume volume : storageVolumes) {
+                    if (!volume.isEmulated()) {
+                        data.title = volume.getDescription(context);
+                        data.screenTitle = context.getString(R.string.storage_settings);
+                        result.add(data);
+                    }
+                }
+
+                data = new SearchIndexableRaw(context);
+                data.title = context.getString(R.string.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.screenTitle = context.getString(R.string.storage_settings);
+                result.add(data);
+
+                data = new SearchIndexableRaw(context);
+                data.title = context.getString(R.string.memory_apps_usage);
+                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.screenTitle = context.getString(R.string.storage_settings);
+                result.add(data);
+
+                data = new SearchIndexableRaw(context);
+                data.title = context.getString(R.string.memory_music_usage);
+                data.screenTitle = context.getString(R.string.storage_settings);
+                result.add(data);
+
+                data = new SearchIndexableRaw(context);
+                data.title = context.getString(R.string.memory_downloads_usage);
+                data.screenTitle = context.getString(R.string.storage_settings);
+                result.add(data);
+
+                data = new SearchIndexableRaw(context);
+                data.title = context.getString(R.string.memory_media_cache_usage);
+                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.screenTitle = context.getString(R.string.storage_settings);
+                result.add(data);
+
+                return result;
+            }
+        };
+
 }
index bc6725e..9c0e5ea 100644 (file)
@@ -22,7 +22,6 @@ import com.android.settings.DevelopmentSettings;
 import com.android.settings.DeviceInfoSettings;
 import com.android.settings.DisplaySettings;
 import com.android.settings.HomeSettings;
-import com.android.settings.NotificationAccessSettings;
 import com.android.settings.NotificationSettings;
 import com.android.settings.PrivacySettings;
 import com.android.settings.R;
@@ -44,7 +43,6 @@ import com.android.settings.wifi.WifiSettings;
 
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
 
 public final class SearchIndexableResources {
 
@@ -139,7 +137,7 @@ public final class SearchIndexableResources {
 
         sResMap.put(Memory.class.getName(),
                 new SearchIndexableResource(RANK_MEMORY,
-                        R.xml.device_info_memory,
+                        NO_DATA_RES_ID,
                         Memory.class.getName(),
                         R.drawable.ic_settings_storage));