From 350993591974a8c7a2eca665f96304d296104789 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Wed, 12 Dec 2012 11:52:03 -0800 Subject: Fix bug #7724071 ImageView drawable is not loaded correctly when changing Locale aapt is not generating the correct CONFIG_LAYOUTDIR bit when a Drawable has a LTR and RTL version. It was generating instead the wrong CONFIG_SCREEN_LAYOUT bit. This was linked to the fact that the layout direction bits are contained into the screen layout bit. So now make sure that we are generating the correct CONFIG_LAYOUTDIR bit. Change-Id: If17c84d31e6c128721ed97ee6711660b131bf941 --- libs/androidfw/ResourceTypes.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libs') diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 0107da4..dfef47e 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -1526,7 +1526,8 @@ int ResTable_config::diff(const ResTable_config& o) const { if (navigation != o.navigation) diffs |= CONFIG_NAVIGATION; if (screenSize != o.screenSize) diffs |= CONFIG_SCREEN_SIZE; if (version != o.version) diffs |= CONFIG_VERSION; - if (screenLayout != o.screenLayout) diffs |= CONFIG_SCREEN_LAYOUT; + if ((screenLayout & MASK_LAYOUTDIR) != (o.screenLayout & MASK_LAYOUTDIR)) diffs |= CONFIG_LAYOUTDIR; + if ((screenLayout & ~MASK_LAYOUTDIR) != (o.screenLayout & ~MASK_LAYOUTDIR)) diffs |= CONFIG_SCREEN_LAYOUT; if (uiMode != o.uiMode) diffs |= CONFIG_UI_MODE; if (smallestScreenWidthDp != o.smallestScreenWidthDp) diffs |= CONFIG_SMALLEST_SCREEN_SIZE; if (screenSizeDp != o.screenSizeDp) diffs |= CONFIG_SCREEN_SIZE; -- cgit v1.1