Pass component name into SuggestionFeatureProvider

So that the provider can be used for more than one suggestion.

Test: Robolectric test for implementation of the provider
Bug: 62039057
Change-Id: Ibea41ea6d98e67c55ec157556675e854f3ea31c4
This commit is contained in:
Maurice Lam
2017-05-24 17:51:06 -07:00
parent ee991f4956
commit 7551c80bc8
3 changed files with 14 additions and 8 deletions

View File

@@ -16,7 +16,9 @@
package com.android.settings.dashboard.suggestions; package com.android.settings.dashboard.suggestions;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.support.annotation.NonNull;
import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.Tile;
import com.android.settingslib.suggestions.SuggestionParser; import com.android.settingslib.suggestions.SuggestionParser;
@@ -31,11 +33,11 @@ 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. */ /** Return true if {@code suggestion} is managed by this provider. */
boolean isPresent(String className); boolean isPresent(@NonNull ComponentName suggestion);
/** Return true if the suggestion has already been completed and does not need to be shown */ /** Return true if the suggestion has already been completed and does not need to be shown */
boolean isSuggestionCompleted(Context context); boolean isSuggestionCompleted(Context context, @NonNull ComponentName suggestion);
/** /**
* Ranks the list of suggestions in place. * Ranks the list of suggestions in place.

View File

@@ -16,8 +16,10 @@
package com.android.settings.dashboard.suggestions; package com.android.settings.dashboard.suggestions;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.support.annotation.NonNull;
import android.util.Log; import android.util.Log;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
@@ -42,12 +44,12 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
} }
@Override @Override
public boolean isPresent(String className) { public boolean isPresent(@NonNull ComponentName component) {
return false; return false;
} }
@Override @Override
public boolean isSuggestionCompleted(Context context) { public boolean isSuggestionCompleted(Context context, @NonNull ComponentName component) {
return false; return false;
} }

View File

@@ -21,6 +21,7 @@ import android.app.KeyguardManager;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.app.WallpaperManager; import android.app.WallpaperManager;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintManager;
import android.provider.Settings; import android.provider.Settings;
@@ -56,7 +57,8 @@ public class SuggestionsChecks {
} }
public boolean isSuggestionComplete(Tile suggestion) { public boolean isSuggestionComplete(Tile suggestion) {
String className = suggestion.intent.getComponent().getClassName(); ComponentName component = suggestion.intent.getComponent();
String className = component.getClassName();
if (className.equals(ZenModeAutomationSuggestionActivity.class.getName())) { if (className.equals(ZenModeAutomationSuggestionActivity.class.getName())) {
return hasEnabledZenAutoRules(); return hasEnabledZenAutoRules();
} else if (className.equals(WallpaperSuggestionActivity.class.getName())) { } else if (className.equals(WallpaperSuggestionActivity.class.getName())) {
@@ -79,8 +81,8 @@ public class SuggestionsChecks {
SuggestionFeatureProvider provider = SuggestionFeatureProvider provider =
FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider(mContext); FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider(mContext);
if (provider != null && provider.isPresent(className)) { if (provider != null && provider.isPresent(component)) {
return provider.isSuggestionCompleted(mContext); return provider.isSuggestionCompleted(mContext, component);
} }
return false; return false;