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:
@@ -18,6 +18,9 @@ package com.android.settings.inputmethod;
|
||||
|
||||
import android.content.Context;
|
||||
import android.hardware.input.InputManager;
|
||||
import android.icu.text.ListFormatter;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
@@ -28,9 +31,9 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
public class PhysicalKeyboardPreferenceController extends AbstractPreferenceController
|
||||
implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause,
|
||||
@@ -100,15 +103,10 @@ public class PhysicalKeyboardPreferenceController extends AbstractPreferenceCont
|
||||
mPreference.setSummary(R.string.keyboard_disconnected);
|
||||
return;
|
||||
}
|
||||
String summary = null;
|
||||
final List<String> summaries = new ArrayList<>();
|
||||
for (HardKeyboardDeviceInfo info : keyboards) {
|
||||
if (summary == null) {
|
||||
summary = info.mDeviceName;
|
||||
} else {
|
||||
summary = mContext.getString(R.string.join_many_items_middle, summary,
|
||||
info.mDeviceName);
|
||||
}
|
||||
summaries.add(info.mDeviceName);
|
||||
}
|
||||
mPreference.setSummary(summary);
|
||||
mPreference.setSummary(ListFormatter.getInstance().format(summaries));
|
||||
}
|
||||
}
|
||||
|
@@ -19,11 +19,13 @@ package com.android.settings.inputmethod;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import androidx.preference.Preference;
|
||||
import android.icu.text.ListFormatter;
|
||||
import android.text.BidiFormatter;
|
||||
import android.view.inputmethod.InputMethodInfo;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
@@ -81,15 +83,10 @@ public class VirtualKeyboardPreferenceController extends AbstractPreferenceContr
|
||||
|
||||
final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
|
||||
|
||||
String summary = null;
|
||||
final List<String> summaries = new ArrayList<>();
|
||||
for (String label : labels) {
|
||||
if (summary == null) {
|
||||
summary = bidiFormatter.unicodeWrap(label);
|
||||
} else {
|
||||
summary = mContext.getString(R.string.join_many_items_middle, summary,
|
||||
bidiFormatter.unicodeWrap(label));
|
||||
}
|
||||
summaries.add(bidiFormatter.unicodeWrap(label));
|
||||
}
|
||||
preference.setSummary(summary);
|
||||
preference.setSummary(ListFormatter.getInstance().format(summaries));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user