diff --git a/res/xml/system_dashboard_fragment.xml b/res/xml/system_dashboard_fragment.xml
index a2cb8fac541..628eab94e4c 100644
--- a/res/xml/system_dashboard_fragment.xml
+++ b/res/xml/system_dashboard_fragment.xml
@@ -20,14 +20,6 @@
android:key="system_dashboard_screen"
android:title="@string/header_category_system">
-
-
newHardKeyboards = getHardKeyboardList();
- if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI)
- && !newHardKeyboards.isEmpty()) {
+ if (!newHardKeyboards.isEmpty()) {
for (HardKeyboardDeviceInfo hardKeyboardDeviceInfo : newHardKeyboards) {
if (mCachedDevice.getAddress() != null
&& hardKeyboardDeviceInfo.mBluetoothAddress != null
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index e102241f63a..5ba1c848b89 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -110,7 +110,6 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
private Intent mIntentWaitingForResult;
- private boolean mIsNewKeyboardSettings;
private boolean mSupportsFirmwareUpdate;
static final String EXTRA_BT_ADDRESS = "extra_bt_address";
@@ -152,8 +151,6 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
if (mSupportsFirmwareUpdate) {
mFeatureProvider.addFirmwareUpdateCategory(getContext(), getPreferenceScreen());
}
- mIsNewKeyboardSettings = FeatureFlagUtils.isEnabled(
- getContext(), FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI);
boolean isModifierKeySettingsEnabled = FeatureFlagUtils
.isEnabled(getContext(), FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_MODIFIER_KEY);
if (!isModifierKeySettingsEnabled) {
@@ -287,27 +284,19 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
// TODO(yukawa): Consider using com.android.settings.widget.GearPreference
final Preference pref = new Preference(getPrefContext());
pref.setTitle(hardKeyboardDeviceInfo.mDeviceName);
- if (mIsNewKeyboardSettings) {
- String currentLayout =
- NewKeyboardSettingsUtils.getSelectedKeyboardLayoutLabelForUser(getContext(),
- UserHandle.myUserId(), hardKeyboardDeviceInfo.mDeviceIdentifier);
- if (currentLayout != null) {
- pref.setSummary(currentLayout);
- }
- pref.setOnPreferenceClickListener(
- preference -> {
- showEnabledLocalesKeyboardLayoutList(
- hardKeyboardDeviceInfo.mDeviceIdentifier);
- return true;
- });
- } else {
- pref.setSummary(hardKeyboardDeviceInfo.mLayoutLabel);
- pref.setOnPreferenceClickListener(
- preference -> {
- showKeyboardLayoutDialog(hardKeyboardDeviceInfo.mDeviceIdentifier);
- return true;
- });
+ String currentLayout =
+ NewKeyboardSettingsUtils.getSelectedKeyboardLayoutLabelForUser(getContext(),
+ UserHandle.myUserId(), hardKeyboardDeviceInfo.mDeviceIdentifier);
+ if (currentLayout != null) {
+ pref.setSummary(currentLayout);
}
+ pref.setOnPreferenceClickListener(
+ preference -> {
+ showEnabledLocalesKeyboardLayoutList(
+ hardKeyboardDeviceInfo.mDeviceIdentifier);
+ return true;
+ });
+
category.addPreference(pref);
StringBuilder vendorAndProductId = new StringBuilder();
String vendorId = String.valueOf(hardKeyboardDeviceInfo.mVendorId);
diff --git a/src/com/android/settings/language/LanguageAndInputPreferenceController.java b/src/com/android/settings/language/LanguageAndInputPreferenceController.java
deleted file mode 100644
index 691d9076ae4..00000000000
--- a/src/com/android/settings/language/LanguageAndInputPreferenceController.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2019 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.language;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.view.inputmethod.InputMethodInfo;
-import android.view.inputmethod.InputMethodManager;
-
-import com.android.settings.core.BasePreferenceController;
-
-import java.util.List;
-
-public class LanguageAndInputPreferenceController extends BasePreferenceController {
-
- private PackageManager mPackageManager;
- private InputMethodManager mInputMethodManager;
-
- public LanguageAndInputPreferenceController(Context context, String key) {
- super(context, key);
- mPackageManager = mContext.getPackageManager();
- mInputMethodManager = mContext.getSystemService(InputMethodManager.class);
- }
-
- @Override
- public int getAvailabilityStatus() {
- boolean isFeatureOn = FeatureFlagUtils
- .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI);
- return isFeatureOn ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
- }
-
- @Override
- public CharSequence getSummary() {
- final String flattenComponent = Settings.Secure.getString(
- mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
- if (!TextUtils.isEmpty(flattenComponent)) {
- final String pkg = ComponentName.unflattenFromString(flattenComponent)
- .getPackageName();
- final List imis = mInputMethodManager.getInputMethodList();
- for (InputMethodInfo imi : imis) {
- if (TextUtils.equals(imi.getPackageName(), pkg)) {
- return imi.loadLabel(mPackageManager);
- }
- }
- }
- return "";
- }
-}
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
deleted file mode 100644
index f40473c9565..00000000000
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2016 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.language;
-
-import static android.app.admin.DevicePolicyResources.Strings.Settings.PERSONAL_DICTIONARY_FOR_WORK;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.SPELL_CHECKER_FOR_WORK;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_KEYBOARDS_AND_TOOLS;
-
-import android.app.Activity;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.Bundle;
-import android.util.FeatureFlagUtils;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.inputmethod.PhysicalKeyboardPreferenceController;
-import com.android.settings.inputmethod.SpellCheckerPreferenceController;
-import com.android.settings.inputmethod.VirtualKeyboardPreferenceController;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.widget.PreferenceCategoryController;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-@SearchIndexable
-public class LanguageAndInputSettings extends DashboardFragment {
-
- private static final String TAG = "LangAndInputSettings";
-
- private static final String KEY_KEYBOARDS_CATEGORY = "keyboards_category";
- private static final String KEY_SPEECH_CATEGORY = "speech_category";
- private static final String KEY_ON_DEVICE_RECOGNITION = "odsr_settings";
- private static final String KEY_TEXT_TO_SPEECH = "tts_settings_summary";
- private static final String KEY_POINTER_CATEGORY = "pointer_category";
-
- @Override
- public int getMetricsCategory() {
- return SettingsEnums.SETTINGS_LANGUAGE_CATEGORY;
- }
-
- @Override
- protected String getLogTag() {
- return TAG;
- }
-
- @Override
- public void onResume() {
- super.onResume();
- // Hack to update action bar title. It's necessary to refresh title because this page user
- // can change locale from here and fragment won't relaunch. Once language changes, title
- // must display in the new language.
- final Activity activity = getActivity();
- if (activity == null) {
- return;
- }
- activity.setTitle(R.string.language_settings);
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- replaceEnterpriseStringTitle("language_and_input_for_work_category",
- WORK_PROFILE_KEYBOARDS_AND_TOOLS,
- R.string.language_and_input_for_work_category_title);
- replaceEnterpriseStringTitle("spellcheckers_settings_for_work_pref",
- SPELL_CHECKER_FOR_WORK,
- R.string.spellcheckers_settings_for_work_title);
- replaceEnterpriseStringTitle("user_dictionary_settings_for_work_pref",
- PERSONAL_DICTIONARY_FOR_WORK,
- R.string.user_dict_settings_for_work_title);
- }
-
- @Override
- protected int getPreferenceScreenResId() {
- return R.xml.language_and_input;
- }
-
- @Override
- protected List createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getSettingsLifecycle());
- }
-
- private static List buildPreferenceControllers(
- @NonNull Context context, @Nullable Lifecycle lifecycle) {
- final List controllers = new ArrayList<>();
-
- // Input
- final VirtualKeyboardPreferenceController virtualKeyboardPreferenceController =
- new VirtualKeyboardPreferenceController(context);
- final PhysicalKeyboardPreferenceController physicalKeyboardPreferenceController =
- new PhysicalKeyboardPreferenceController(context, lifecycle);
- controllers.add(virtualKeyboardPreferenceController);
- controllers.add(physicalKeyboardPreferenceController);
- controllers.add(new PreferenceCategoryController(context,
- KEY_KEYBOARDS_CATEGORY).setChildren(
- Arrays.asList(virtualKeyboardPreferenceController,
- physicalKeyboardPreferenceController)));
-
- // Speech
- final DefaultVoiceInputPreferenceController defaultVoiceInputPreferenceController =
- new DefaultVoiceInputPreferenceController(context, lifecycle);
- final TtsPreferenceController ttsPreferenceController =
- new TtsPreferenceController(context, KEY_TEXT_TO_SPEECH);
- final OnDeviceRecognitionPreferenceController onDeviceRecognitionPreferenceController =
- new OnDeviceRecognitionPreferenceController(context, KEY_ON_DEVICE_RECOGNITION);
-
- controllers.add(defaultVoiceInputPreferenceController);
- controllers.add(ttsPreferenceController);
- List speechCategoryChildren = new ArrayList<>(
- List.of(defaultVoiceInputPreferenceController, ttsPreferenceController));
-
- if (onDeviceRecognitionPreferenceController.isAvailable()) {
- controllers.add(onDeviceRecognitionPreferenceController);
- speechCategoryChildren.add(onDeviceRecognitionPreferenceController);
- }
-
- controllers.add(new PreferenceCategoryController(context, KEY_SPEECH_CATEGORY)
- .setChildren(speechCategoryChildren));
-
- // Pointer
- final PointerSpeedController pointerController = new PointerSpeedController(context);
- controllers.add(pointerController);
- controllers.add(new PreferenceCategoryController(context,
- KEY_POINTER_CATEGORY).setChildren(Arrays.asList(pointerController)));
-
- // Input Assistance
- controllers.add(new SpellCheckerPreferenceController(context));
-
- return controllers;
- }
-
- public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider(R.xml.language_and_input) {
- @Override
- public List createPreferenceControllers(
- Context context) {
- return buildPreferenceControllers(context, null);
- }
-
- @Override
- protected boolean isPageSearchEnabled(Context context) {
- return !FeatureFlagUtils
- .isEnabled(context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI);
- }
- };
-}
diff --git a/src/com/android/settings/language/LanguagePreferenceController.java b/src/com/android/settings/language/LanguagePreferenceController.java
index cbccb0004bd..84624a2bf30 100644
--- a/src/com/android/settings/language/LanguagePreferenceController.java
+++ b/src/com/android/settings/language/LanguagePreferenceController.java
@@ -19,7 +19,6 @@ package com.android.settings.language;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.util.FeatureFlagUtils;
import com.android.settings.Settings;
import com.android.settings.core.BasePreferenceController;
@@ -29,28 +28,14 @@ import com.android.settings.core.BasePreferenceController;
* TODO(b/273642892): When new layout is on board, this class shall be removed.
*/
public class LanguagePreferenceController extends BasePreferenceController {
- private static final String TAG = LanguagePreferenceController.class.getSimpleName();
-
- private boolean mCacheIsFeatureOn = false;
-
public LanguagePreferenceController(Context context, String key) {
super(context, key);
}
@Override
public int getAvailabilityStatus() {
- boolean isFeatureOn = FeatureFlagUtils
- .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI);
-
- // LanguageSettingsActivity is a new entry page for new language layout.
- // LanguageAndInputSettingsActivity is existed entry page for current language layout.
- if (mCacheIsFeatureOn != isFeatureOn) {
- setActivityEnabled(
- mContext, Settings.LanguageAndInputSettingsActivity.class, !isFeatureOn);
- setActivityEnabled(mContext, Settings.LanguageSettingsActivity.class, isFeatureOn);
- mCacheIsFeatureOn = isFeatureOn;
- }
- return isFeatureOn ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ setActivityEnabled(mContext, Settings.LanguageSettingsActivity.class, true);
+ return AVAILABLE;
}
private static void setActivityEnabled(Context context, Class klass, final boolean isEnabled) {
diff --git a/src/com/android/settings/language/LanguageSettings.java b/src/com/android/settings/language/LanguageSettings.java
index 82533115052..a5adb02b5b9 100644
--- a/src/com/android/settings/language/LanguageSettings.java
+++ b/src/com/android/settings/language/LanguageSettings.java
@@ -19,7 +19,6 @@ package com.android.settings.language;
import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.util.FeatureFlagUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -112,8 +111,7 @@ public class LanguageSettings extends DashboardFragment {
}
@Override
protected boolean isPageSearchEnabled(Context context) {
- return FeatureFlagUtils
- .isEnabled(context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI);
+ return true;
}
};
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputPreferenceControllerTest.java
deleted file mode 100644
index 3f27fddc895..00000000000
--- a/tests/robotests/src/com/android/settings/language/LanguageAndInputPreferenceControllerTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2019 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.language;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.ComponentName;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.provider.Settings;
-import android.view.inputmethod.InputMethodInfo;
-
-import com.android.settings.testutils.shadow.ShadowInputMethodManagerWithMethodList;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowInputMethodManagerWithMethodList.class)
-public class LanguageAndInputPreferenceControllerTest {
- private Context mContext;
-
- @Before
- public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
- }
-
- @Test
- public void getSummary_shouldSetToCurrentImeName() {
- final ComponentName componentName = new ComponentName("name1", "cls");
- final ContentResolver cr = mContext.getContentResolver();
- Settings.Secure.putString(cr, Settings.Secure.DEFAULT_INPUT_METHOD,
- componentName.flattenToString());
- final List imis = new ArrayList<>();
- imis.add(mock(InputMethodInfo.class));
- when(imis.get(0).getPackageName()).thenReturn("name1");
- when(imis.get(0).loadLabel(any())).thenReturn("label");
- ShadowInputMethodManagerWithMethodList.getShadow().setInputMethodList(imis);
-
- final LanguageAndInputPreferenceController controller =
- new LanguageAndInputPreferenceController(mContext, "key");
-
- assertThat(controller.getSummary().toString()).contains("label");
- }
-}
diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
deleted file mode 100644
index 4429dd764df..00000000000
--- a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2016 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.language;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Activity;
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.input.InputManager;
-import android.os.UserManager;
-import android.util.FeatureFlagUtils;
-import android.view.autofill.AutofillManager;
-import android.view.inputmethod.InputMethodManager;
-import android.view.textservice.TextServicesManager;
-
-import androidx.lifecycle.LifecycleObserver;
-
-import com.android.settings.R;
-import com.android.settings.testutils.XmlTestUtils;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-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.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class LanguageAndInputSettingsTest {
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Activity mActivity;
- @Mock
- private InputManager mIm;
- @Mock
- private InputMethodManager mImm;
- @Mock
- private DevicePolicyManager mDpm;
- @Mock
- private AutofillManager mAutofillManager;
- private TestFragment mFragment;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- 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(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(mActivity);
- }
-
- @Test
- public void testGetPreferenceScreenResId() {
- assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(R.xml.language_and_input);
- }
-
- @Test
- public void testGetPreferenceControllers_shouldRegisterLifecycleObservers() {
- final List controllers =
- mFragment.createPreferenceControllers(mActivity);
- int lifecycleObserverCount = 0;
- for (AbstractPreferenceController controller : controllers) {
- if (controller instanceof LifecycleObserver) {
- lifecycleObserverCount++;
- }
- }
- verify(mFragment.getSettingsLifecycle(), times(lifecycleObserverCount))
- .addObserver(any(LifecycleObserver.class));
- }
-
- @Test
- public void testGetPreferenceControllers_shouldAllBeCreated() {
- final List controllers =
- mFragment.createPreferenceControllers(mActivity);
-
- assertThat(controllers.isEmpty()).isFalse();
- }
-
- @Test
- public void testNonIndexableKeys_existInXmlLayout() {
- final Context context = spy(RuntimeEnvironment.application);
- final Resources res = spy(RuntimeEnvironment.application.getResources());
- final InputManager inputManager = mock(InputManager.class);
- final TextServicesManager textServicesManager = mock(TextServicesManager.class);
- FeatureFlagUtils.setEnabled(context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI, false);
- when(inputManager.getInputDeviceIds()).thenReturn(new int[0]);
- doReturn(inputManager).when(context).getSystemService(Context.INPUT_SERVICE);
- doReturn(textServicesManager).when(context)
- .getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE);
- doReturn(res).when(context).getResources();
- doReturn(false).when(res)
- .getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys);
- final List niks =
- LanguageAndInputSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(context);
- LanguageAndInputSettings settings = new LanguageAndInputSettings();
- final int xmlId = settings.getPreferenceScreenResId();
-
- final List keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
-
- assertThat(keys).containsAtLeastElementsIn(niks);
- }
-
- @Test
- public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
- final Context context = spy(RuntimeEnvironment.application);
- final TextServicesManager textServicesManager = mock(TextServicesManager.class);
- doReturn(textServicesManager).when(context)
- .getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE);
- final LanguageAndInputSettings fragment = new LanguageAndInputSettings();
- final List preferenceScreenKeys =
- XmlTestUtils.getKeysFromPreferenceXml(context, fragment.getPreferenceScreenResId());
- final List preferenceKeys = new ArrayList<>();
-
- for (AbstractPreferenceController controller : fragment.createPreferenceControllers(context)) {
- preferenceKeys.add(controller.getPreferenceKey());
- }
-
- assertThat(preferenceScreenKeys).containsAtLeastElementsIn(preferenceKeys);
- }
-
- /**
- * Test fragment to expose lifecycle and context so we can verify behavior for observables.
- */
- public static class TestFragment extends LanguageAndInputSettings {
-
- private Lifecycle mLifecycle;
- private Context mContext;
-
- public TestFragment(Context context) {
- mContext = context;
- mLifecycle = mock(Lifecycle.class);
- }
-
- @Override
- public Context getContext() {
- return mContext;
- }
-
- @Override
- public Lifecycle getSettingsLifecycle() {
- if (mLifecycle == null) {
- return super.getSettingsLifecycle();
- }
- return mLifecycle;
- }
- }
-}
diff --git a/tests/unit/src/com/android/settings/language/LanguagePreferenceControllerTest.java b/tests/unit/src/com/android/settings/language/LanguagePreferenceControllerTest.java
index 6622753e1d7..f8e790f55e7 100644
--- a/tests/unit/src/com/android/settings/language/LanguagePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/language/LanguagePreferenceControllerTest.java
@@ -16,71 +16,32 @@
package com.android.settings.language;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.util.FeatureFlagUtils;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.Settings;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class LanguagePreferenceControllerTest {
- private boolean mCacheFeatureFlagSwitch = false;
private Context mContext;
private LanguagePreferenceController mController;
@Before
public void setup() {
mContext = ApplicationProvider.getApplicationContext();
- mCacheFeatureFlagSwitch =
- FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI);
mController = new LanguagePreferenceController(mContext, "key");
-
- }
-
- @After
- public void tearDown() {
- FeatureFlagUtils.setEnabled(
- mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI, mCacheFeatureFlagSwitch);
- }
-
- @Test
- public void getAvailabilityStatus_featureFlagOff_returnUnavailable() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI,
- false);
-
- int result = mController.getAvailabilityStatus();
-
- assertEquals(CONDITIONALLY_UNAVAILABLE, result);
- }
-
- @Test
- public void getAvailabilityStatus_featureFlagOff_LanguageAndInputSettingsActivityEnabled() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI,
- false);
-
- mController.getAvailabilityStatus();
-
- assertTrue(isActivityEnable(mContext, Settings.LanguageAndInputSettingsActivity.class));
- assertFalse(isActivityEnable(mContext, Settings.LanguageSettingsActivity.class));
}
@Test
public void getAvailabilityStatus_featureFlagOff_LanguageAndInputSettingsActivitydisabled() {
- FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI,
- true);
-
mController.getAvailabilityStatus();
assertFalse(isActivityEnable(mContext, Settings.LanguageAndInputSettingsActivity.class));