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
This commit is contained in:
Stefanot
2017-01-13 14:58:41 +00:00
parent 0d3d5e4a8e
commit 6ec9e89fff
3 changed files with 24 additions and 0 deletions

View File

@@ -26,4 +26,10 @@ public interface SuggestionFeatureProvider {
*/ */
boolean isSmartSuggestionEnabled(Context context); 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);
} }

View File

@@ -25,4 +25,14 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
return false; return false;
} }
@Override
public boolean isPresent(String className) {
return false;
}
@Override
public boolean isSuggestionCompleted(Context context) {
return false;
}
} }

View File

@@ -37,6 +37,7 @@ import com.android.settings.Settings.WifiCallingSuggestionActivity;
import com.android.settings.Settings.ZenModeAutomationSuggestionActivity; import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.WallpaperSuggestionActivity; import com.android.settings.WallpaperSuggestionActivity;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
import java.util.Collection; import java.util.Collection;
@@ -67,6 +68,13 @@ public class SuggestionsChecks {
} else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) { } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) {
return isDeviceSecured() || !isFingerprintEnabled(); return isDeviceSecured() || !isFingerprintEnabled();
} }
SuggestionFeatureProvider provider =
FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider();
if (provider != null && provider.isPresent(className)) {
return provider.isSuggestionCompleted(mContext);
}
return false; return false;
} }