Merge "Let SuggestionFeatureProvider manage SuggestionService name"
This commit is contained in:
committed by
Android (Google) Code Review
commit
0660d19629
@@ -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);
|
||||||
|
@@ -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.
|
||||||
*/
|
*/
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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(
|
||||||
|
Reference in New Issue
Block a user