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;
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);

View File

@@ -32,6 +32,7 @@ public interface SuggestionFeatureProvider {
/**
* Whether or not the whole suggestion feature is enabled.
*
* @deprecated in favor of {@link #isSuggestionV2Enabled(Context)}
*/
@Deprecated
@@ -42,6 +43,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.
*/

View File

@@ -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);
}

View File

@@ -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);
}

View File

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