From 6ec9e89fffe676f70f7e6b4f1d72c82f3898361e Mon Sep 17 00:00:00 2001 From: Stefanot Date: Fri, 13 Jan 2017 14:58:41 +0000 Subject: [PATCH] Add SuggestionFeatureProvider interface. The interface is added so that a vendor can add new suggestions to the settings app, and customize details for these suggestions. Test: make RunSettingsRoboTests BUG: 34219298 Change-Id: I373c63709b1aaf68360aa2561a2ecfc3194e0e2b --- .../settings/dashboard/SuggestionFeatureProvider.java | 6 ++++++ .../dashboard/SuggestionFeatureProviderImpl.java | 10 ++++++++++ .../android/settings/dashboard/SuggestionsChecks.java | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/src/com/android/settings/dashboard/SuggestionFeatureProvider.java b/src/com/android/settings/dashboard/SuggestionFeatureProvider.java index 834e63d5cf9..769c6e8c08d 100644 --- a/src/com/android/settings/dashboard/SuggestionFeatureProvider.java +++ b/src/com/android/settings/dashboard/SuggestionFeatureProvider.java @@ -26,4 +26,10 @@ public interface SuggestionFeatureProvider { */ boolean isSmartSuggestionEnabled(Context context); + /** Return true if className is the name of a class of one of your newly added suggestion. */ + boolean isPresent(String className); + + /** Return true if the suggestion has already been completed and does not need to be shown */ + boolean isSuggestionCompleted(Context context); + } \ No newline at end of file diff --git a/src/com/android/settings/dashboard/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/SuggestionFeatureProviderImpl.java index 189dfa5bb80..afaf36e73d8 100644 --- a/src/com/android/settings/dashboard/SuggestionFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/SuggestionFeatureProviderImpl.java @@ -25,4 +25,14 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider return false; } + @Override + public boolean isPresent(String className) { + return false; + } + + @Override + public boolean isSuggestionCompleted(Context context) { + return false; + } + } diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java index 78f21ea0cf0..f355f83b79e 100644 --- a/src/com/android/settings/dashboard/SuggestionsChecks.java +++ b/src/com/android/settings/dashboard/SuggestionsChecks.java @@ -37,6 +37,7 @@ import com.android.settings.Settings.WifiCallingSuggestionActivity; import com.android.settings.Settings.ZenModeAutomationSuggestionActivity; import com.android.settings.Utils; import com.android.settings.WallpaperSuggestionActivity; +import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.drawer.Tile; import java.util.Collection; @@ -67,6 +68,13 @@ public class SuggestionsChecks { } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) { return isDeviceSecured() || !isFingerprintEnabled(); } + + SuggestionFeatureProvider provider = + FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider(); + if (provider != null && provider.isPresent(className)) { + return provider.isSuggestionCompleted(mContext); + } + return false; }