OSDN Git Service

Read rotation setting correctly from the wallpaper picker.
authorRahul Chaturvedi <rkc@google.com>
Mon, 15 Jun 2015 18:09:42 +0000 (14:09 -0400)
committerRahul Chaturvedi <rkc@google.com>
Mon, 15 Jun 2015 18:09:42 +0000 (14:09 -0400)
If reading the rotation setting without the multi-process flag, the
WallpaperPickerActivity usually picks up a cached value. Specifying the
multi-process flag during the read fixes this and the wallpaper picker
always has the correct rotation setting.

Change-Id: Ic3639f8cd694674e92c8940b753c6bc30486076d

WallpaperPicker/src/com/android/launcher3/WallpaperPickerActivity.java
src/com/android/launcher3/Launcher.java
src/com/android/launcher3/Utilities.java

index 9415941..d9bfc30 100644 (file)
@@ -1147,6 +1147,6 @@ public class WallpaperPickerActivity extends WallpaperCropActivity {
             return true;
 
         // Check if the user has specifically enabled rotation via preferences.
-        return Utilities.isAllowRotationPrefEnabled(getApplicationContext());
+        return Utilities.isAllowRotationPrefEnabled(getApplicationContext(), true);
     }
 }
index d52191b..191fdf4 100644 (file)
@@ -515,7 +515,7 @@ public class Launcher extends Activity
         // In case we are on a device with locked rotation, we should look at preferences to check
         // if the user has specifically allowed rotation.
         if (!mRotationEnabled) {
-            mRotationEnabled = Utilities.isAllowRotationPrefEnabled(getApplicationContext());
+            mRotationEnabled = Utilities.isAllowRotationPrefEnabled(getApplicationContext(), false);
         }
 
         // On large interfaces, or on devices that a user has specifically enabled screen rotation,
index 0f52cba..2d8a1b1 100644 (file)
@@ -97,9 +97,10 @@ public final class Utilities {
         return Log.isLoggable(propertyName, Log.VERBOSE);
     }
 
-    public static boolean isAllowRotationPrefEnabled(Context context) {
+    public static boolean isAllowRotationPrefEnabled(Context context, boolean multiProcess) {
         SharedPreferences sharedPrefs = context.getSharedPreferences(
-                LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE);
+                LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE | (multiProcess ?
+                        Context.MODE_MULTI_PROCESS : 0));
         boolean allowRotationPref = sharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, false);
         return sForceEnableRotation || allowRotationPref;
     }