From b9e5d238b64abf3a45f148b43b8d8fcca912d976 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 26 Jan 2016 17:43:57 -0500 Subject: [PATCH] Add wallpaper suggestion if one isn't set. Change-Id: I81380323f0d4f5af842a81028a763219958833bc --- AndroidManifest.xml | 14 +++++++++ res/values/strings.xml | 2 ++ src/com/android/settings/Settings.java | 2 ++ .../android/settings/SettingsActivity.java | 1 + .../settings/dashboard/SuggestionsChecks.java | 30 +++++++++++++++++-- 5 files changed, 47 insertions(+), 2 deletions(-) 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. + } + }; }