Merge "Fix Configuration layout direction comparison." into klp-dev

This commit is contained in:
Craig Mautner
2013-08-13 19:38:01 +00:00
committed by Android (Google) Code Review

View File

@@ -786,9 +786,11 @@ public final class Configuration implements Parcelable, Comparable<Configuration
// 2 most significant bits in screenLayout). // 2 most significant bits in screenLayout).
setLayoutDirection(locale); 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; changed |= ActivityInfo.CONFIG_LAYOUT_DIRECTION;
setLayoutDirection(locale);
} }
if (delta.userSetLocale && (!userSetLocale || ((changed & ActivityInfo.CONFIG_LOCALE) != 0))) 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_LOCALE;
changed |= ActivityInfo.CONFIG_LAYOUT_DIRECTION; 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; changed |= ActivityInfo.CONFIG_LAYOUT_DIRECTION;
} }
if (delta.touchscreen != TOUCHSCREEN_UNDEFINED if (delta.touchscreen != TOUCHSCREEN_UNDEFINED