diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9f6cdb50487..c83c14d4ceb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -795,7 +795,8 @@ + android:icon="@drawable/ic_wallpaper" + android:exported="true"> diff --git a/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java b/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java index 14564b1d575..07138725d98 100644 --- a/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java +++ b/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java @@ -28,10 +28,18 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.SubSettingLauncher; +import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settings.search.Indexable; +import com.android.settings.search.SearchIndexableRaw; +import com.android.settingslib.search.SearchIndexable; import com.google.android.setupcompat.util.WizardManagerHelper; -public class WallpaperSuggestionActivity extends Activity { +import java.util.ArrayList; +import java.util.List; + +@SearchIndexable +public class WallpaperSuggestionActivity extends Activity implements Indexable { @Override protected void onCreate(Bundle savedInstanceState) { @@ -79,4 +87,30 @@ public class WallpaperSuggestionActivity extends Activity { return context.getResources().getBoolean( com.android.internal.R.bool.config_enableWallpaperService); } + + public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = + new BaseSearchIndexProvider() { + private static final String SUPPORT_SEARCH_INDEX_KEY = "wallpaper_type"; + + @Override + public List getRawDataToIndex(Context context, + boolean enabled) { + + final List result = new ArrayList<>(); + + SearchIndexableRaw data = new SearchIndexableRaw(context); + data.title = context.getString(R.string.wallpaper_settings_fragment_title); + data.screenTitle = context.getString( + R.string.wallpaper_settings_fragment_title); + data.intentTargetPackage = context.getString( + R.string.config_wallpaper_picker_package); + data.intentTargetClass = context.getString( + R.string.config_wallpaper_picker_class); + data.intentAction = Intent.ACTION_MAIN; + data.key = SUPPORT_SEARCH_INDEX_KEY; + result.add(data); + + return result; + } + }; } diff --git a/src/com/android/settings/wallpaper/WallpaperTypeSettings.java b/src/com/android/settings/wallpaper/WallpaperTypeSettings.java index 0e0f8df4448..2d4a16f2bd9 100644 --- a/src/com/android/settings/wallpaper/WallpaperTypeSettings.java +++ b/src/com/android/settings/wallpaper/WallpaperTypeSettings.java @@ -17,21 +17,11 @@ package com.android.settings.wallpaper; import android.app.settings.SettingsEnums; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.search.SearchIndexableRaw; -import com.android.settingslib.search.SearchIndexable; -import java.util.ArrayList; -import java.util.List; -@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) public class WallpaperTypeSettings extends DashboardFragment { private static final String TAG = "WallpaperTypeSettings"; @@ -54,42 +44,4 @@ public class WallpaperTypeSettings extends DashboardFragment { protected int getPreferenceScreenResId() { return R.xml.wallpaper_settings; } - - public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider() { - @Override - public List getRawDataToIndex(Context context, boolean enabled) { - final List result = new ArrayList<>(); - - final Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER); - final PackageManager pm = context.getPackageManager(); - final List rList = pm.queryIntentActivities(intent, - PackageManager.MATCH_DEFAULT_ONLY); - - // Add indexable data for package that is in config_wallpaper_picker_package - final String wallpaperPickerPackage = - context.getString(R.string.config_wallpaper_picker_package); - for (ResolveInfo info : rList) { - if (!wallpaperPickerPackage.equals(info.activityInfo.packageName)) { - continue; - } - CharSequence label = info.loadLabel(pm); - if (label == null) { - label = info.activityInfo.packageName; - } - final SearchIndexableRaw data = new SearchIndexableRaw(context); - data.title = label.toString(); - data.key = "wallpaper_type_settings"; - data.screenTitle = context.getResources().getString( - R.string.wallpaper_settings_fragment_title); - data.intentAction = Intent.ACTION_SET_WALLPAPER; - data.intentTargetPackage = info.activityInfo.packageName; - data.intentTargetClass = info.activityInfo.name; - data.keywords = context.getString(R.string.keywords_wallpaper); - result.add(data); - } - - return result; - } - }; } diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider index 8ca65ffb084..d7e558558d7 100644 --- a/tests/robotests/assets/grandfather_not_implementing_index_provider +++ b/tests/robotests/assets/grandfather_not_implementing_index_provider @@ -75,6 +75,7 @@ com.android.settings.users.RestrictedProfileSettings com.android.settings.users.UserDetailsSettings com.android.settings.vpn2.AppManagementFragment com.android.settings.vpn2.VpnSettings +com.android.settings.wallpaper.WallpaperTypeSettings com.android.settings.wifi.calling.WifiCallingSettingsForSub com.android.settings.wifi.ChangeWifiStateDetails com.android.settings.wifi.details.WifiNetworkDetailsFragment