Merge "Let SuggestionFeatureProvider manage SuggestionService name"

This commit is contained in:
TreeHugger Robot
2017-09-22 16:55:08 +00:00
committed by Android (Google) Code Review
5 changed files with 28 additions and 5 deletions

View File

@@ -17,13 +17,13 @@
package com.android.settings.dashboard.suggestions; package com.android.settings.dashboard.suggestions;
import android.app.LoaderManager; import android.app.LoaderManager;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Loader; import android.content.Loader;
import android.os.Bundle; import android.os.Bundle;
import android.service.settings.suggestions.Suggestion; import android.service.settings.suggestions.Suggestion;
import android.util.Log; import android.util.Log;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -61,9 +61,9 @@ public class SuggestionControllerMixin implements SuggestionController.ServiceCo
mContext = context.getApplicationContext(); mContext = context.getApplicationContext();
mHost = host; mHost = host;
mSuggestionController = new SuggestionController(mContext, mSuggestionController = new SuggestionController(mContext,
new ComponentName( FeatureFactory.getFactory(mContext)
"com.android.settings.intelligence", .getSuggestionFeatureProvider(mContext)
"com.android.settings.intelligence.suggestions.SuggestionService"), .getSuggestionServiceComponent(),
this /* serviceConnectionListener */); this /* serviceConnectionListener */);
if (lifecycle != null) { if (lifecycle != null) {
lifecycle.addObserver(this); lifecycle.addObserver(this);

View File

@@ -32,6 +32,7 @@ public interface SuggestionFeatureProvider {
/** /**
* Whether or not the whole suggestion feature is enabled. * Whether or not the whole suggestion feature is enabled.
*
* @deprecated in favor of {@link #isSuggestionV2Enabled(Context)} * @deprecated in favor of {@link #isSuggestionV2Enabled(Context)}
*/ */
@Deprecated @Deprecated
@@ -42,6 +43,11 @@ public interface SuggestionFeatureProvider {
*/ */
boolean isSuggestionV2Enabled(Context context); 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. * Returns true if smart suggestion should be used instead of xml based SuggestionParser.
*/ */

View File

@@ -79,6 +79,13 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
return !isLowRamDevice && isV2Enabled(); return !isLowRamDevice && isV2Enabled();
} }
@Override
public ComponentName getSuggestionServiceComponent() {
return new ComponentName(
"com.android.settings.intelligence",
"com.android.settings.intelligence.suggestions.SuggestionService");
}
private static boolean isV2Enabled() { private static boolean isV2Enabled() {
return FeatureFlagUtils.isEnabled(FEATURE_FLAG_SUGGESTIONS_V2); return FeatureFlagUtils.isEnabled(FEATURE_FLAG_SUGGESTIONS_V2);
} }

View File

@@ -23,8 +23,10 @@ import static org.mockito.Mockito.when;
import android.app.LoaderManager; import android.app.LoaderManager;
import android.content.Context; import android.content.Context;
import android.database.MatrixCursor;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -32,6 +34,7 @@ import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@@ -43,7 +46,7 @@ import org.robolectric.annotation.Config;
}) })
public class SuggestionControllerMixinTest { public class SuggestionControllerMixinTest {
@Mock @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext; private Context mContext;
@Mock @Mock
private SuggestionControllerMixin.SuggestionControllerHost mHost; private SuggestionControllerMixin.SuggestionControllerHost mHost;
@@ -53,6 +56,7 @@ public class SuggestionControllerMixinTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
FakeFeatureFactory.setupForTest(mContext);
mLifecycle = new Lifecycle(); mLifecycle = new Lifecycle();
when(mContext.getApplicationContext()).thenReturn(mContext); when(mContext.getApplicationContext()).thenReturn(mContext);
} }

View File

@@ -134,6 +134,12 @@ public class SuggestionFeatureProviderImplTest {
SettingsShadowSystemProperties.clear(); SettingsShadowSystemProperties.clear();
} }
@Test
public void getSuggestionServiceComponentName_shouldReturnAndroidPackage() {
assertThat(mProvider.getSuggestionServiceComponent().getPackageName())
.isEqualTo("com.android.settings.intelligence");
}
@Test @Test
public void isSuggestionCompleted_doubleTapPower_trueWhenNotAvailable() { public void isSuggestionCompleted_doubleTapPower_trueWhenNotAvailable() {
SettingsShadowResources.overrideResource( SettingsShadowResources.overrideResource(