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

Commit 73e03e6c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update text for Languages & Input." into oc-dr1-dev

parents f9283247 7e06ed21
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -543,7 +543,7 @@
        </activity>

        <activity android:name=".Settings$LanguageAndInputSettingsActivity"
            android:label="@string/language_keyboard_settings_title"
            android:label="@string/language_input_gesture_title"
            android:icon="@drawable/ic_settings_language"
            android:taskAffinity="com.android.settings"
            android:parentActivityName="Settings$SystemDashboardActivity">
@@ -619,7 +619,7 @@

        <!-- Keep compatibility with old shortcuts. -->
        <activity-alias android:name="LanguageSettings"
                android:label="@string/language_keyboard_settings_title"
                android:label="@string/language_input_gesture_title"
                android:clearTaskOnLaunch="true"
                android:exported="true"
                android:targetActivity="Settings$LanguageAndInputSettingsActivity">
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
    android:title="@string/language_keyboard_settings_title" >
    android:title="@string/language_input_gesture_title" >

    <Preference
        android:key="phone_language"
+25 −13
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import com.android.settings.applications.defaultapps.DefaultAutofillPreferenceCo
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.gestures.AssistGestureFeatureProvider;
import com.android.settings.gestures.AssistGesturePreferenceController;
import com.android.settings.gestures.CameraLiftTriggerPreferenceController;
import com.android.settings.gestures.DoubleTapPowerPreferenceController;
@@ -49,6 +50,7 @@ import com.android.settings.inputmethod.GameControllerPreferenceController;
import com.android.settings.inputmethod.PhysicalKeyboardPreferenceController;
import com.android.settings.inputmethod.SpellCheckerPreferenceController;
import com.android.settings.inputmethod.VirtualKeyboardPreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.lifecycle.Lifecycle;

@@ -98,7 +100,7 @@ public class LanguageAndInputSettings extends DashboardFragment {
        if (activity == null) {
            return;
        }
        activity.setTitle(R.string.language_keyboard_settings_title);
        activity.setTitle(R.string.language_input_gesture_title);
    }

    @Override
@@ -160,23 +162,32 @@ public class LanguageAndInputSettings extends DashboardFragment {

        private final Context mContext;
        private final SummaryLoader mSummaryLoader;
        private final AssistGestureFeatureProvider mFeatureProvider;

        public SummaryProvider(Context context, SummaryLoader summaryLoader) {
            mContext = context;
            mSummaryLoader = summaryLoader;
            mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
        }

        @Override
        public void setListening(boolean listening) {
            if (listening) {
                if (mFeatureProvider.isSupported(mContext)) {
                    final int assistGestureEnabled = Settings.Secure.getInt(
                        mContext.getContentResolver(), Settings.Secure.ASSIST_GESTURE_ENABLED, 1);
                    mSummaryLoader.setSummary(this, mContext.getString(assistGestureEnabled == 0
                        ? R.string.language_input_gesture_summary_off
                        : R.string.language_input_gesture_summary_on_with_assist));
                } else {
                    final String flattenComponent = Settings.Secure.getString(
                        mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
                    if (!TextUtils.isEmpty(flattenComponent)) {
                        final PackageManager packageManage = mContext.getPackageManager();
                        final String pkg = ComponentName.unflattenFromString(flattenComponent)
                            .getPackageName();
                    final InputMethodManager imm = (InputMethodManager) mContext.getSystemService(
                            Context.INPUT_METHOD_SERVICE);
                        final InputMethodManager imm = (InputMethodManager)
                            mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
                        final List<InputMethodInfo> imis = imm.getInputMethodList();
                        for (InputMethodInfo imi : imis) {
                            if (TextUtils.equals(imi.getPackageName(), pkg)) {
@@ -189,6 +200,7 @@ public class LanguageAndInputSettings extends DashboardFragment {
                }
            }
        }
    }

    public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
            = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
+38 −13
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -68,7 +67,7 @@ import static org.mockito.Mockito.when;
public class LanguageAndInputSettingsTest {

    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
    private Context mContext;
    private Activity mActivity;
    @Mock
    private PackageManager mPackageManager;
    @Mock
@@ -86,17 +85,18 @@ public class LanguageAndInputSettingsTest {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        FakeFeatureFactory.setupForTest(mContext);
        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mock(UserManager.class));
        when(mContext.getSystemService(Context.INPUT_SERVICE)).thenReturn(mock(InputManager.class));
        when(mContext.getSystemService(Context.INPUT_SERVICE)).thenReturn(mIm);
        when(mContext.getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE))
        FakeFeatureFactory.setupForTest(mActivity);
        when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mock(UserManager.class));
        when(mActivity.getSystemService(Context.INPUT_SERVICE))
                .thenReturn(mock(InputManager.class));
        when(mActivity.getSystemService(Context.INPUT_SERVICE)).thenReturn(mIm);
        when(mActivity.getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE))
                .thenReturn(mock(TextServicesManager.class));
        when(mContext.getSystemService(Context.DEVICE_POLICY_SERVICE)).thenReturn(mDpm);
        when(mContext.getSystemService(Context.INPUT_METHOD_SERVICE)).thenReturn(mImm);
        when((Object) mContext.getSystemService(AutofillManager.class))
        when(mActivity.getSystemService(Context.DEVICE_POLICY_SERVICE)).thenReturn(mDpm);
        when(mActivity.getSystemService(Context.INPUT_METHOD_SERVICE)).thenReturn(mImm);
        when((Object) mActivity.getSystemService(AutofillManager.class))
                .thenReturn(mAutofillManager);
        mFragment = new TestFragment(mContext);
        mFragment = new TestFragment(mActivity);
    }

    @Test
@@ -106,7 +106,8 @@ public class LanguageAndInputSettingsTest {

    @Test
    public void testGetPreferenceControllers_shouldRegisterLifecycleObservers() {
        final List<PreferenceController> controllers = mFragment.getPreferenceControllers(mContext);
        final List<PreferenceController> controllers =
                mFragment.getPreferenceControllers(mActivity);
        int lifecycleObserverCount = 0;
        for (PreferenceController controller : controllers) {
            if (controller instanceof LifecycleObserver) {
@@ -120,7 +121,8 @@ public class LanguageAndInputSettingsTest {
    @Test

    public void testGetPreferenceControllers_shouldAllBeCreated() {
        final List<PreferenceController> controllers = mFragment.getPreferenceControllers(mContext);
        final List<PreferenceController> controllers =
                mFragment.getPreferenceControllers(mActivity);

        assertThat(controllers.isEmpty()).isFalse();
    }
@@ -152,6 +154,29 @@ public class LanguageAndInputSettingsTest {
        verify(loader).setSummary(provider, null);
    }

    @Test
    @Config(shadows = {
            ShadowSecureSettings.class,
    })
    public void testSummary_assistSupported_shouldSetToAssistGestureStatus() {
        final FakeFeatureFactory featureFactory =
            (FakeFeatureFactory) FakeFeatureFactory.getFactory(mActivity);
        when(featureFactory.assistGestureFeatureProvider.isSupported(any(Context.class)))
            .thenReturn(true);

        final SummaryLoader loader = mock(SummaryLoader.class);
        SummaryLoader.SummaryProvider provider = mFragment.SUMMARY_PROVIDER_FACTORY
                .createSummaryProvider(mActivity, loader);

        ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_ENABLED, 0);
        provider.setListening(true);
        verify(mActivity).getString(R.string.language_input_gesture_summary_off);

        ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_ENABLED, 1);
        provider.setListening(true);
        verify(mActivity).getString(R.string.language_input_gesture_summary_on_with_assist);
    }

    @Test
    public void testNonIndexableKeys_existInXmlLayout() {
        final Context context = spy(RuntimeEnvironment.application);