From baf3eb93ee4b81fcd2736e7642443799725989fe Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Thu, 15 Jan 2015 18:16:24 +0000 Subject: Add ro.product.locale This is a BCP-47 language tag representing the default locale for a given device. Support for the earlier mechanism of supplying a language and region via ro.product.locale.region/language has been removed. This change also removes support for supplying these properties via PRODUCT_ADDITIONAL_PROPERTY_OVERRIDES. Devices that need to override this should either rearrange their PRODUCT_LANGUAGES or supply a custom .prop file. bug: 17691569 Change-Id: I00c74098542b49b9c514a6ca39ea8d08179546c1 --- CleanSpec.mk | 4 ++++ core/Makefile | 32 +++++++------------------------- tools/buildinfo.sh | 7 ++----- 3 files changed, 13 insertions(+), 30 deletions(-) diff --git a/CleanSpec.mk b/CleanSpec.mk index 52a1b1f..4591fb7 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -315,6 +315,10 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop) # an ABI change since the names will mangle differently. $(call add-clean-step, rm -rf $(OUT_DIR)) +# Remove ro.product.locale.language/country and add ro.product.locale +# instead. +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/Makefile b/core/Makefile index 43be804..fda5796 100644 --- a/core/Makefile +++ b/core/Makefile @@ -156,29 +156,12 @@ else BUILD_DISPLAY_ID := $(build_desc) endif -# Whether there is default locale set in PRODUCT_PROPERTY_OVERRIDES -product_property_override_locale_language := $(strip \ - $(patsubst ro.product.locale.language=%,%,\ - $(filter ro.product.locale.language=%,$(PRODUCT_PROPERTY_OVERRIDES)))) -product_property_overrides_locale_region := $(strip \ - $(patsubst ro.product.locale.region=%,%,\ - $(filter ro.product.locale.region=%,$(PRODUCT_PROPERTY_OVERRIDES)))) - -# Selects the first locale in the list given as the argument, -# and splits it into language and region, which each may be -# empty. -define default-locale -$(subst _, , $(firstword $(1))) -endef - -# Selects the first locale in the list given as the argument -# and returns the language (or the region), if it's not set in PRODUCT_PROPERTY_OVERRIDES; -# Return empty string if it's already set in PRODUCT_PROPERTY_OVERRIDES. -define default-locale-language -$(if $(product_property_override_locale_language),,$(word 1, $(call default-locale, $(1)))) -endef -define default-locale-region -$(if $(product_property_overrides_locale_region),,$(word 2, $(call default-locale, $(1)))) +# Accepts a whitespace separated list of product locales such as +# (en_US en_AU en_GB...) and returns the first locale in the list with +# underscores replaced with hyphens. In the example above, this will +# return "en-US". +define get-default-product-locale +$(strip $(subst _,-, $(firstword $(1)))) endef BUILDINFO_SH := build/tools/buildinfo.sh @@ -203,8 +186,7 @@ endif TARGET_DEVICE="$(TARGET_DEVICE)" \ PRODUCT_NAME="$(TARGET_PRODUCT)" \ PRODUCT_BRAND="$(PRODUCT_BRAND)" \ - PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \ - PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))" \ + PRODUCT_DEFAULT_LOCALE="$(call get-default-product-locale,$(PRODUCT_LOCALES))" \ PRODUCT_DEFAULT_WIFI_CHANNELS="$(PRODUCT_DEFAULT_WIFI_CHANNELS)" \ PRODUCT_MODEL="$(PRODUCT_MODEL)" \ PRODUCT_MANUFACTURER="$(PRODUCT_MANUFACTURER)" \ diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh index ed6bd87..b191b2c 100755 --- a/tools/buildinfo.sh +++ b/tools/buildinfo.sh @@ -35,11 +35,8 @@ echo "ro.product.cpu.abilist32=$TARGET_CPU_ABI_LIST_32_BIT" echo "ro.product.cpu.abilist64=$TARGET_CPU_ABI_LIST_64_BIT" echo "ro.product.manufacturer=$PRODUCT_MANUFACTURER" -if [ -n "$PRODUCT_DEFAULT_LANGUAGE" ] ; then - echo "ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE" -fi -if [ -n "$PRODUCT_DEFAULT_REGION" ] ; then - echo "ro.product.locale.region=$PRODUCT_DEFAULT_REGION" +if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then + echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE" fi echo "ro.wifi.channels=$PRODUCT_DEFAULT_WIFI_CHANNELS" echo "ro.board.platform=$TARGET_BOARD_PLATFORM" -- cgit v1.1