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. + } + }; }