From 6598a7b4cd785477795da1d075352329c615e639 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Thu, 21 Sep 2017 18:21:44 -0700 Subject: [PATCH] Let SuggestionFeatureProvider manage SuggestionService name Bug: 65065268 Test: robotests Change-Id: I82315a7b1565dc34b516bf685ad8e831a1e28591 --- .../settings/dashboard/suggestions/SuggestionControllerMixin.java | 8 ++++---- .../settings/dashboard/suggestions/SuggestionFeatureProvider.java | 6 ++++++ .../dashboard/suggestions/SuggestionFeatureProviderImpl.java | 7 +++++++ .../dashboard/suggestions/SuggestionControllerMixinTest.java | 6 +++++- .../dashboard/suggestions/SuggestionFeatureProviderImplTest.java | 6 ++++++ 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java b/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java index 21ae435dd6..44744ecebf 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java @@ -17,13 +17,13 @@ package com.android.settings.dashboard.suggestions; import android.app.LoaderManager; -import android.content.ComponentName; import android.content.Context; import android.content.Loader; import android.os.Bundle; import android.service.settings.suggestions.Suggestion; import android.util.Log; +import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; @@ -61,9 +61,9 @@ public class SuggestionControllerMixin implements SuggestionController.ServiceCo mContext = context.getApplicationContext(); mHost = host; mSuggestionController = new SuggestionController(mContext, - new ComponentName( - "com.android.settings.intelligence", - "com.android.settings.intelligence.suggestions.SuggestionService"), + FeatureFactory.getFactory(mContext) + .getSuggestionFeatureProvider(mContext) + .getSuggestionServiceComponent(), this /* serviceConnectionListener */); if (lifecycle != null) { lifecycle.addObserver(this); diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java index b6495724e7..1465408269 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java @@ -32,6 +32,7 @@ public interface SuggestionFeatureProvider { /** * Whether or not the whole suggestion feature is enabled. + * * @deprecated in favor of {@link #isSuggestionV2Enabled(Context)} */ @Deprecated @@ -43,6 +44,11 @@ public interface SuggestionFeatureProvider { boolean isSuggestionV2Enabled(Context context); /** + * Returns the component name for SuggestionService. + */ + ComponentName getSuggestionServiceComponent(); + + /** * Returns true if smart suggestion should be used instead of xml based SuggestionParser. */ boolean isSmartSuggestionEnabled(Context context); diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java index 1c61d8eae6..715964bc63 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java @@ -79,6 +79,13 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider return !isLowRamDevice && isV2Enabled(); } + @Override + public ComponentName getSuggestionServiceComponent() { + return new ComponentName( + "com.android.settings.intelligence", + "com.android.settings.intelligence.suggestions.SuggestionService"); + } + private static boolean isV2Enabled() { return FeatureFlagUtils.isEnabled(FEATURE_FLAG_SUGGESTIONS_V2); } diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java index e42466cba2..6dfd67dd55 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java @@ -23,8 +23,10 @@ import static org.mockito.Mockito.when; import android.app.LoaderManager; import android.content.Context; +import android.database.MatrixCursor; import com.android.settings.TestConfig; +import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -32,6 +34,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; @@ -43,7 +46,7 @@ import org.robolectric.annotation.Config; }) public class SuggestionControllerMixinTest { - @Mock + @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Context mContext; @Mock private SuggestionControllerMixin.SuggestionControllerHost mHost; @@ -53,6 +56,7 @@ public class SuggestionControllerMixinTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); + FakeFeatureFactory.setupForTest(mContext); mLifecycle = new Lifecycle(); when(mContext.getApplicationContext()).thenReturn(mContext); } diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java index 0650d5b0a2..59822109de 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java @@ -135,6 +135,12 @@ public class SuggestionFeatureProviderImplTest { } @Test + public void getSuggestionServiceComponentName_shouldReturnAndroidPackage() { + assertThat(mProvider.getSuggestionServiceComponent().getPackageName()) + .isEqualTo("com.android.settings.intelligence"); + } + + @Test public void isSuggestionCompleted_doubleTapPower_trueWhenNotAvailable() { SettingsShadowResources.overrideResource( com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled, false); -- 2.11.0