From 4a60c8876e0960ce1c7dfa7cbcf5eb07f2f701aa Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 26 Jan 2016 17:21:04 -0500 Subject: [PATCH 1/2] Add DND Suggestion after 30 days Suggest users setup automatic rules if they haven't after 30 days Also fix the id labeling for the RV adapter, so that it can handle removing of suggestions properly. Change-Id: I0cce76f3db1d444011f7d8a31348714d102650cf --- AndroidManifest.xml | 17 ++++++ res/values/strings.xml | 3 + res/xml/suggestion_ordering.xml | 2 + src/com/android/settings/Settings.java | 1 + .../settings/dashboard/DashboardAdapter.java | 57 +++++++++++++------ .../settings/dashboard/SuggestionsChecks.java | 55 ++++++++++++++++++ 6 files changed, 118 insertions(+), 17 deletions(-) create mode 100644 src/com/android/settings/dashboard/SuggestionsChecks.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 90d87933c5e..8e58f489161 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -813,6 +813,23 @@ android:value="true" /> + + + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 9336feeb791..b510872eebd 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5768,6 +5768,9 @@ Automatic rules + + Set up Do Not Disturb Schedule + Priority only diff --git a/res/xml/suggestion_ordering.xml b/res/xml/suggestion_ordering.xml index 339b195bc1f..55f7803be44 100644 --- a/res/xml/suggestion_ordering.xml +++ b/res/xml/suggestion_ordering.xml @@ -22,4 +22,6 @@ multiple="true" /> + diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 1c636b8d807..99e69683548 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -103,6 +103,7 @@ public class Settings extends SettingsActivity { public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ } public static class ZenModePrioritySettingsActivity extends SettingsActivity { /* empty */ } public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ } + public static class ZenModeAutomationSuggestionActivity extends SettingsActivity { /* empty */ } public static class ZenModeScheduleRuleSettingsActivity extends SettingsActivity { /* empty */ } public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ } public static class ZenModeExternalRuleSettingsActivity extends SettingsActivity { /* empty */ } diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java index 0d92c620d49..f40fa9cecd6 100644 --- a/src/com/android/settings/dashboard/DashboardAdapter.java +++ b/src/com/android/settings/dashboard/DashboardAdapter.java @@ -43,6 +43,10 @@ import java.util.List; public class DashboardAdapter extends RecyclerView.Adapter implements View.OnClickListener { public static final String TAG = "DashboardAdapter"; + private static final int NS_SPACER = 0; + private static final int NS_SUGGESTION = 1000; + private static final int NS_ITEMS = 2000; + private static final int NS_CONDITION = 3000; private static int SUGGESTION_MODE_DEFAULT = 0; private static int SUGGESTION_MODE_COLLAPSED = 1; @@ -55,6 +59,7 @@ public class DashboardAdapter extends RecyclerView.Adapter mIds = new ArrayList<>(); private final Context mContext; + private final SuggestionsChecks mSuggestionsChecks; private List mCategories; private List mConditions; @@ -71,13 +76,20 @@ public class DashboardAdapter extends RecyclerView.Adapter zenRules = NotificationManager.from(mContext).getAutomaticZenRules(); + final int N = zenRules.size(); + for (int i = 0; i < N; i++) { + if (zenRules.get(i).isEnabled()) { + return true; + } + } + return false; + } + +} From b9e5d238b64abf3a45f148b43b8d8fcca912d976 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 26 Jan 2016 17:43:57 -0500 Subject: [PATCH 2/2] 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. + } + }; }