summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/WallpaperTypeSettings.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/WallpaperTypeSettings.java')
-rw-r--r--src/com/android/settings/WallpaperTypeSettings.java51
1 files changed, 47 insertions, 4 deletions
diff --git a/src/com/android/settings/WallpaperTypeSettings.java b/src/com/android/settings/WallpaperTypeSettings.java
index fa5f0ac..f46315a 100644
--- a/src/com/android/settings/WallpaperTypeSettings.java
+++ b/src/com/android/settings/WallpaperTypeSettings.java
@@ -16,18 +16,23 @@
package com.android.settings;
-import android.app.Activity;
import android.content.ComponentName;
+import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceScreen;
+import com.android.settings.indexer.Indexable;
+import com.android.settings.indexer.IndexableData;
+import com.android.settings.indexer.IndexableRef;
+import java.util.ArrayList;
import java.util.List;
-public class WallpaperTypeSettings extends SettingsPreferenceFragment {
+public class WallpaperTypeSettings extends SettingsPreferenceFragment implements Indexable {
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -38,9 +43,9 @@ public class WallpaperTypeSettings extends SettingsPreferenceFragment {
private void populateWallpaperTypes() {
// Search for activities that satisfy the ACTION_SET_WALLPAPER action
- Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
+ final Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
final PackageManager pm = getPackageManager();
- List<ResolveInfo> rList = pm.queryIntentActivities(intent,
+ final List<ResolveInfo> rList = pm.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
final PreferenceScreen parent = getPreferenceScreen();
@@ -58,4 +63,42 @@ public class WallpaperTypeSettings extends SettingsPreferenceFragment {
parent.addPreference(pref);
}
}
+
+ public static final IndexDataProvider INDEX_DATA_PROVIDER =
+ new IndexDataProvider() {
+ @Override
+ public List<IndexableRef> getRefsToIndex(Context context) {
+ return null;
+ }
+
+ @Override
+ public List<IndexableData> getRawDataToIndex(Context context) {
+ final List<IndexableData> result = new ArrayList<IndexableData>();
+
+ final Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
+ final PackageManager pm = context.getPackageManager();
+ final List<ResolveInfo> rList = pm.queryIntentActivities(intent,
+ PackageManager.MATCH_DEFAULT_ONLY);
+
+ // Add indexable data for each of the matching activities
+ for (ResolveInfo info : rList) {
+ Intent prefIntent = new Intent(intent);
+ prefIntent.setComponent(new ComponentName(
+ info.activityInfo.packageName, info.activityInfo.name));
+ CharSequence label = info.loadLabel(pm);
+ if (label == null) label = info.activityInfo.packageName;
+
+ IndexableData data = new IndexableData();
+ data.title = label.toString();
+ data.fragmentTitle = context.getResources().getString(
+ R.string.wallpaper_settings_fragment_title);
+ data.intentAction = intent.getAction();
+ data.intentTargetPackage = info.activityInfo.packageName;
+ data.intentTargetClass = info.activityInfo.name;
+ result.add(data);
+ }
+
+ return result;
+ }
+ };
}