diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8e58f489161..a0b2b77200e 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -830,6 +830,20 @@
android:resource="@string/zen_mode_automation_suggestion_title" />
+
+
+
+
+
+
+
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b510872eebd..086797b7266 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2064,6 +2064,8 @@
After %1$s of inactivity
Wallpaper
+
+ Set up wallpaper
Choose wallpaper from
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 99e69683548..41412747b40 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -125,6 +125,8 @@ public class Settings extends SettingsActivity {
public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ }
public static class ManageDefaultAppsActivity extends SettingsActivity { /* empty */ }
+ public static class WallpaperSuggestionActivity extends SettingsActivity { /* empty */ }
+
// Categories.
public static class WirelessSettings extends SettingsActivity { /* empty */ }
public static class DeviceSettings extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index a375cb15040..32888601856 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -314,6 +314,7 @@ public class SettingsActivity extends SettingsDrawerActivity
DrawOverlayDetails.class.getName(),
WriteSettingsDetails.class.getName(),
ManageDefaultApps.class.getName(),
+ WallpaperTypeSettings.class.getName(),
};
diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java
index b8a03c4eead..b483ac7ed04 100644
--- a/src/com/android/settings/dashboard/SuggestionsChecks.java
+++ b/src/com/android/settings/dashboard/SuggestionsChecks.java
@@ -15,8 +15,16 @@
package com.android.settings.dashboard;
import android.app.AutomaticZenRule;
+import android.app.IWallpaperManager;
+import android.app.IWallpaperManager.Stub;
+import android.app.IWallpaperManagerCallback;
import android.app.NotificationManager;
import android.content.Context;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import com.android.settings.Settings.WallpaperSuggestionActivity;
import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
import com.android.settingslib.drawer.Tile;
@@ -34,9 +42,11 @@ public class SuggestionsChecks {
}
public boolean isSuggestionComplete(Tile suggestion) {
- if (suggestion.intent.getComponent().getClassName().equals(
- ZenModeAutomationSuggestionActivity.class.getName())) {
+ String className = suggestion.intent.getComponent().getClassName();
+ if (className.equals(ZenModeAutomationSuggestionActivity.class.getName())) {
return hasEnabledZenAutoRules();
+ } else if (className.equals(WallpaperSuggestionActivity.class.getName())) {
+ return hasWallpaperSet();
}
return false;
}
@@ -52,4 +62,20 @@ public class SuggestionsChecks {
return false;
}
+ private boolean hasWallpaperSet() {
+ IBinder b = ServiceManager.getService(Context.WALLPAPER_SERVICE);
+ IWallpaperManager service = Stub.asInterface(b);
+ try {
+ return service.getWallpaper(mCallback, new Bundle()) != null;
+ } catch (RemoteException e) {
+ }
+ return false;
+ }
+
+ private final IWallpaperManagerCallback mCallback = new IWallpaperManagerCallback.Stub() {
+ @Override
+ public void onWallpaperChanged() throws RemoteException {
+ // Don't care.
+ }
+ };
}