diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9b5339a0a72..cd505d63ecb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -543,7 +543,7 @@ @@ -619,7 +619,7 @@ diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml index d88cd110024..5ea88368830 100644 --- a/res/xml/language_and_input.xml +++ b/res/xml/language_and_input.xml @@ -18,7 +18,7 @@ + android:title="@string/language_input_gesture_title" > imis = imm.getInputMethodList(); - for (InputMethodInfo imi : imis) { - if (TextUtils.equals(imi.getPackageName(), pkg)) { - mSummaryLoader.setSummary(this, imi.loadLabel(packageManage)); - return; + final InputMethodManager imm = (InputMethodManager) + mContext.getSystemService(Context.INPUT_METHOD_SERVICE); + final List imis = imm.getInputMethodList(); + for (InputMethodInfo imi : imis) { + if (TextUtils.equals(imi.getPackageName(), pkg)) { + mSummaryLoader.setSummary(this, imi.loadLabel(packageManage)); + return; + } } } + mSummaryLoader.setSummary(this, ""); } - mSummaryLoader.setSummary(this, ""); } } } diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java index 873b408a6b6..598917df095 100644 --- a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java +++ b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java @@ -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 controllers = mFragment.getPreferenceControllers(mContext); + final List 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 controllers = mFragment.getPreferenceControllers(mContext); + final List 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);