Merge "Revert "Use language tags to store Configuration's locale list."" into qt-dev
This commit is contained in:
@@ -23,7 +23,6 @@ import static android.content.ConfigurationProto.HARD_KEYBOARD_HIDDEN;
|
||||
import static android.content.ConfigurationProto.KEYBOARD;
|
||||
import static android.content.ConfigurationProto.KEYBOARD_HIDDEN;
|
||||
import static android.content.ConfigurationProto.LOCALES;
|
||||
import static android.content.ConfigurationProto.LOCALE_LIST;
|
||||
import static android.content.ConfigurationProto.MCC;
|
||||
import static android.content.ConfigurationProto.MNC;
|
||||
import static android.content.ConfigurationProto.NAVIGATION;
|
||||
@@ -1112,7 +1111,7 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
protoOutputStream.write(MCC, mcc);
|
||||
protoOutputStream.write(MNC, mnc);
|
||||
if (mLocaleList != null) {
|
||||
protoOutputStream.write(LOCALE_LIST, mLocaleList.toLanguageTags());
|
||||
mLocaleList.writeToProto(protoOutputStream, LOCALES);
|
||||
}
|
||||
protoOutputStream.write(SCREEN_LAYOUT, screenLayout);
|
||||
protoOutputStream.write(COLOR_MODE, colorMode);
|
||||
@@ -1284,14 +1283,6 @@ public final class Configuration implements Parcelable, Comparable<Configuration
|
||||
case (int) WINDOW_CONFIGURATION:
|
||||
windowConfiguration.readFromProto(protoInputStream, WINDOW_CONFIGURATION);
|
||||
break;
|
||||
case (int) LOCALE_LIST:
|
||||
try {
|
||||
setLocales(LocaleList.forLanguageTags(protoInputStream.readString(
|
||||
LOCALE_LIST)));
|
||||
} catch (Exception e) {
|
||||
Slog.e(TAG, "error parsing locale list in configuration.", e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
|
||||
@@ -21,7 +21,9 @@ import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.Size;
|
||||
import android.annotation.UnsupportedAppUsage;
|
||||
import android.content.LocaleProto;
|
||||
import android.icu.util.ULocale;
|
||||
import android.util.proto.ProtoOutputStream;
|
||||
|
||||
import com.android.internal.annotations.GuardedBy;
|
||||
|
||||
@@ -140,6 +142,26 @@ public final class LocaleList implements Parcelable {
|
||||
dest.writeString(mStringRepresentation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to write LocaleList to a protocol buffer output stream. Assumes the parent
|
||||
* protobuf has declared the locale as repeated.
|
||||
*
|
||||
* @param protoOutputStream Stream to write the locale to.
|
||||
* @param fieldId Field Id of the Locale as defined in the parent message.
|
||||
* @hide
|
||||
*/
|
||||
public void writeToProto(ProtoOutputStream protoOutputStream, long fieldId) {
|
||||
for (int i = 0; i < mList.length; i++) {
|
||||
final Locale locale = mList[i];
|
||||
final long token = protoOutputStream.start(fieldId);
|
||||
protoOutputStream.write(LocaleProto.LANGUAGE, locale.getLanguage());
|
||||
protoOutputStream.write(LocaleProto.COUNTRY, locale.getCountry());
|
||||
protoOutputStream.write(LocaleProto.VARIANT, locale.getVariant());
|
||||
protoOutputStream.write(LocaleProto.SCRIPT, locale.getScript());
|
||||
protoOutputStream.end(token);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a String representation of the language tags in this list.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user