Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6598a7b4 authored by Fan Zhang's avatar Fan Zhang
Browse files

Let SuggestionFeatureProvider manage SuggestionService name

Bug: 65065268
Test: robotests
Change-Id: I82315a7b1565dc34b516bf685ad8e831a1e28591
parent ab74ca14
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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);
+6 −0
Original line number Diff line number Diff line
@@ -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.
     */
+7 −0
Original line number Diff line number Diff line
@@ -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);
    }
+5 −1
Original line number Diff line number Diff line
@@ -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);
    }
+6 −0
Original line number Diff line number Diff line
@@ -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(