summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Craig Mautner <cmautner@google.com> 2013-08-13 12:44:05 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2013-08-13 12:44:05 -0700
commit71e672c918d8ceeb84db28a76d7950bdd1cf36f1 (patch)
tree43d079508842f7432487a5988d8c08b2d6ce8db9
parente74d0d0bf248bdfcd60089543838475d200b59dc (diff)
parent92b0673b60f54640f7cd72352b00df6c65884ad4 (diff)
am 92b0673b: am 1beff478: Merge "Fix Configuration layout direction comparison." into klp-dev
* commit '92b0673b60f54640f7cd72352b00df6c65884ad4': Fix Configuration layout direction comparison.
-rw-r--r--core/java/android/content/res/Configuration.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index 1c281387fce8..0402eeb94764 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -786,9 +786,11 @@ public final class Configuration implements Parcelable, Comparable<Configuration
// 2 most significant bits in screenLayout).
setLayoutDirection(locale);
}
- if (delta.screenLayout != 0 && screenLayout != delta.screenLayout) {
+ final int deltaScreenLayoutDir = delta.screenLayout & SCREENLAYOUT_LAYOUTDIR_MASK;
+ if (deltaScreenLayoutDir != SCREENLAYOUT_LAYOUTDIR_UNDEFINED &&
+ deltaScreenLayoutDir != (screenLayout & SCREENLAYOUT_LAYOUTDIR_MASK)) {
+ screenLayout = (screenLayout & ~SCREENLAYOUT_LAYOUTDIR_MASK) | deltaScreenLayoutDir;
changed |= ActivityInfo.CONFIG_LAYOUT_DIRECTION;
- setLayoutDirection(locale);
}
if (delta.userSetLocale && (!userSetLocale || ((changed & ActivityInfo.CONFIG_LOCALE) != 0)))
{
@@ -937,7 +939,9 @@ public final class Configuration implements Parcelable, Comparable<Configuration
changed |= ActivityInfo.CONFIG_LOCALE;
changed |= ActivityInfo.CONFIG_LAYOUT_DIRECTION;
}
- if (delta.screenLayout != 0 && screenLayout != delta.screenLayout) {
+ final int deltaScreenLayoutDir = delta.screenLayout & SCREENLAYOUT_LAYOUTDIR_MASK;
+ if (deltaScreenLayoutDir != SCREENLAYOUT_LAYOUTDIR_UNDEFINED &&
+ deltaScreenLayoutDir != (screenLayout & SCREENLAYOUT_LAYOUTDIR_MASK)) {
changed |= ActivityInfo.CONFIG_LAYOUT_DIRECTION;
}
if (delta.touchscreen != TOUCHSCREEN_UNDEFINED