Loading src/com/android/settings/inputmethod/VirtualKeyboardPreferenceController.java +6 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.pm.PackageManager; import android.support.v7.preference.Preference; import android.text.BidiFormatter; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; Loading Loading @@ -76,12 +77,15 @@ public class VirtualKeyboardPreferenceController extends PreferenceController { return; } final BidiFormatter bidiFormatter = BidiFormatter.getInstance(); String summary = null; for (String label : labels) { if (summary == null) { summary = label; summary = bidiFormatter.unicodeWrap(label); } else { summary = mContext.getString(R.string.join_many_items_middle, summary, label); summary = mContext.getString(R.string.join_many_items_middle, summary, bidiFormatter.unicodeWrap(label)); } } preference.setSummary(summary); Loading tests/robotests/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceControllerTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.settings.inputmethod; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -26,6 +28,7 @@ import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.support.v4.text.BidiFormatter; import android.support.v7.preference.Preference; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; Loading @@ -39,6 +42,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.ArrayList; Loading Loading @@ -96,4 +100,35 @@ public class VirtualKeyboardPreferenceControllerTest { verify(mPreference).setSummary("label"); } @Test public void updateState_multiImeWithMixedLocale_setImeLabelToSummary() { final BidiFormatter formatter = BidiFormatter.getInstance(); final ComponentName componentName = new ComponentName("pkg", "cls"); final List<InputMethodInfo> imis = new ArrayList<>(); final String label1 = "label"; final String label2 = "Keyboard מִקְלֶדֶת"; imis.add(mock(InputMethodInfo.class)); imis.add(mock(InputMethodInfo.class)); when(mDpm.getPermittedInputMethodsForCurrentUser()).thenReturn(null); when(mImm.getEnabledInputMethodList()).thenReturn(imis); when(imis.get(0).getPackageName()).thenReturn(componentName.getPackageName()); when(imis.get(0).loadLabel(mPm)).thenReturn(label1); when(imis.get(1).getPackageName()).thenReturn(componentName.getPackageName()); when(imis.get(1).loadLabel(mPm)).thenReturn(label2); when(mContext.getString(eq(R.string.join_many_items_middle), anyString(), anyString())) .thenAnswer(invocation -> { final Object[] args = invocation.getArguments(); final String str1 = (String) args[1]; final String str2 = (String) args[2]; return RuntimeEnvironment.application.getString(R.string.join_many_items_middle, str1, str2); }); mController.updateState(mPreference); verify(mPreference).setSummary( formatter.unicodeWrap(label1) + ", " + formatter.unicodeWrap(label2)); } } Loading
src/com/android/settings/inputmethod/VirtualKeyboardPreferenceController.java +6 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.pm.PackageManager; import android.support.v7.preference.Preference; import android.text.BidiFormatter; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; Loading Loading @@ -76,12 +77,15 @@ public class VirtualKeyboardPreferenceController extends PreferenceController { return; } final BidiFormatter bidiFormatter = BidiFormatter.getInstance(); String summary = null; for (String label : labels) { if (summary == null) { summary = label; summary = bidiFormatter.unicodeWrap(label); } else { summary = mContext.getString(R.string.join_many_items_middle, summary, label); summary = mContext.getString(R.string.join_many_items_middle, summary, bidiFormatter.unicodeWrap(label)); } } preference.setSummary(summary); Loading
tests/robotests/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceControllerTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.settings.inputmethod; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -26,6 +28,7 @@ import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.support.v4.text.BidiFormatter; import android.support.v7.preference.Preference; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; Loading @@ -39,6 +42,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.ArrayList; Loading Loading @@ -96,4 +100,35 @@ public class VirtualKeyboardPreferenceControllerTest { verify(mPreference).setSummary("label"); } @Test public void updateState_multiImeWithMixedLocale_setImeLabelToSummary() { final BidiFormatter formatter = BidiFormatter.getInstance(); final ComponentName componentName = new ComponentName("pkg", "cls"); final List<InputMethodInfo> imis = new ArrayList<>(); final String label1 = "label"; final String label2 = "Keyboard מִקְלֶדֶת"; imis.add(mock(InputMethodInfo.class)); imis.add(mock(InputMethodInfo.class)); when(mDpm.getPermittedInputMethodsForCurrentUser()).thenReturn(null); when(mImm.getEnabledInputMethodList()).thenReturn(imis); when(imis.get(0).getPackageName()).thenReturn(componentName.getPackageName()); when(imis.get(0).loadLabel(mPm)).thenReturn(label1); when(imis.get(1).getPackageName()).thenReturn(componentName.getPackageName()); when(imis.get(1).loadLabel(mPm)).thenReturn(label2); when(mContext.getString(eq(R.string.join_many_items_middle), anyString(), anyString())) .thenAnswer(invocation -> { final Object[] args = invocation.getArguments(); final String str1 = (String) args[1]; final String str2 = (String) args[2]; return RuntimeEnvironment.application.getString(R.string.join_many_items_middle, str1, str2); }); mController.updateState(mPreference); verify(mPreference).setSummary( formatter.unicodeWrap(label1) + ", " + formatter.unicodeWrap(label2)); } }