Use ListFormatter to join strings

Currently in Settings we are using R.string.join_many_items_first, R.string.join_many_items_middle and R.string.join_many_items_last to manually join strings. The join code is messy and the joined string is incorrect in some languages, so we migrate all string join to just use ListFormatter.getInstance().format().

Bug: b/78248791
Test: robotests
Change-Id: I898339978e6e2027587e28994b0280fa46821fd6
This commit is contained in:
jyhshiangwang
2018-04-24 16:05:57 +08:00
parent 7c45f59478
commit 4d015b17b3
12 changed files with 210 additions and 212 deletions

View File

@@ -17,8 +17,7 @@
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.spy;
import static org.mockito.Mockito.verify;
@@ -28,11 +27,12 @@ import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import androidx.core.text.BidiFormatter;
import androidx.preference.Preference;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
import androidx.core.text.BidiFormatter;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -125,18 +125,9 @@ public class VirtualKeyboardPreferenceControllerTest {
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));
verify(mPreference).setSummary(formatter.unicodeWrap(label1) + " and " + formatter.unicodeWrap(label2));
}
}