diff --git a/res/values/strings.xml b/res/values/strings.xml index 0ee0a3073d9..50bac5a218c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8889,6 +8889,9 @@ Choose spell checker + + Use spell checker + Not selected diff --git a/src/com/android/settings/inputmethod/SpellCheckersSettings.java b/src/com/android/settings/inputmethod/SpellCheckersSettings.java index 3a3f4437e3b..5231021a857 100644 --- a/src/com/android/settings/inputmethod/SpellCheckersSettings.java +++ b/src/com/android/settings/inputmethod/SpellCheckersSettings.java @@ -92,7 +92,10 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment @Override public void onResume() { super.onResume(); - mSwitchBar = ((SettingsActivity)getActivity()).getSwitchBar(); + mSwitchBar = ((SettingsActivity) getActivity()).getSwitchBar(); + mSwitchBar.setSwitchBarText( + R.string.spell_checker_master_switch_title, + R.string.spell_checker_master_switch_title); mSwitchBar.show(); mSwitchBar.addOnSwitchChangeListener(this); updatePreferenceScreen(); @@ -131,7 +134,7 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment final Preference preference = screen.getPreference(index); preference.setEnabled(isSpellCheckerEnabled); if (preference instanceof SpellCheckerPreference) { - final SpellCheckerPreference pref = (SpellCheckerPreference)preference; + final SpellCheckerPreference pref = (SpellCheckerPreference) preference; pref.setSelected(mCurrentSci); } } @@ -173,8 +176,13 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment } } - private static int convertSubtypeIndexToDialogItemId(final int index) { return index + 1; } - private static int convertDialogItemIdToSubtypeIndex(final int item) { return item - 1; } + private static int convertSubtypeIndexToDialogItemId(final int index) { + return index + 1; + } + + private static int convertDialogItemIdToSubtypeIndex(final int item) { + return item - 1; + } private void showChooseLanguageDialog() { if (mDialog != null && mDialog.isShowing()) { @@ -191,7 +199,7 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.phone_language); final int subtypeCount = currentSci.getSubtypeCount(); - final CharSequence[] items = new CharSequence[subtypeCount + 1 /* default */ ]; + final CharSequence[] items = new CharSequence[subtypeCount + 1 /* default */]; items[ITEM_ID_USE_SYSTEM_LANGUAGE] = getSpellCheckerSubtypeLabel(currentSci, null); int checkedItemId = ITEM_ID_USE_SYSTEM_LANGUAGE; for (int index = 0; index < subtypeCount; ++index) { diff --git a/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsUITest.java b/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsUITest.java new file mode 100644 index 00000000000..78c6f8c0407 --- /dev/null +++ b/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsUITest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.ui.inputmethods; + +import static com.android.settings.ui.testutils.SettingsTestUtils.TIMEOUT; +import static com.google.common.truth.Truth.assertThat; + +import android.app.Instrumentation; +import android.content.Intent; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; +import android.support.test.uiautomator.By; +import android.support.test.uiautomator.UiDevice; +import android.support.test.uiautomator.UiObject2; +import android.support.test.uiautomator.Until; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +public class SpellCheckerSettingsUITest { + + private Instrumentation mInstrumentation; + private Intent mIntent; + private UiDevice mUiDevice; + + @Before + public void setUp() { + mInstrumentation = InstrumentationRegistry.getInstrumentation(); + mUiDevice = UiDevice.getInstance(mInstrumentation); + mIntent = new Intent().setClassName("com.android.settings", + "com.android.settings.Settings$SpellCheckersSettingsActivity") + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + } + + @Test + public void launchSettings_hasSwitchBar() { + mInstrumentation.getContext().startActivity(mIntent); + final UiObject2 switchBar = + mUiDevice.wait(Until.findObject(By.text("Use spell checker")), TIMEOUT); + + assertThat(switchBar).isNotNull(); + } +}