Merge "Bidi wrap keyboard names before displaying them." into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b8d6222e23
@@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
import android.text.BidiFormatter;
|
||||||
import android.view.inputmethod.InputMethodInfo;
|
import android.view.inputmethod.InputMethodInfo;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
|
||||||
@@ -76,12 +77,15 @@ public class VirtualKeyboardPreferenceController extends PreferenceController {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
|
||||||
|
|
||||||
String summary = null;
|
String summary = null;
|
||||||
for (String label : labels) {
|
for (String label : labels) {
|
||||||
if (summary == null) {
|
if (summary == null) {
|
||||||
summary = label;
|
summary = bidiFormatter.unicodeWrap(label);
|
||||||
} else {
|
} 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);
|
preference.setSummary(summary);
|
||||||
|
@@ -18,6 +18,8 @@ package com.android.settings.inputmethod;
|
|||||||
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
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.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -26,6 +28,7 @@ import android.app.admin.DevicePolicyManager;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.support.v4.text.BidiFormatter;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.view.inputmethod.InputMethodInfo;
|
import android.view.inputmethod.InputMethodInfo;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
@@ -39,6 +42,7 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
|
import org.robolectric.RuntimeEnvironment;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -96,4 +100,35 @@ public class VirtualKeyboardPreferenceControllerTest {
|
|||||||
|
|
||||||
verify(mPreference).setSummary("label");
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user