diff options
author | Rahul Chaturvedi <rkc@google.com> | 2015-06-01 21:26:41 -0400 |
---|---|---|
committer | Rahul Chaturvedi <rkc@google.com> | 2015-06-04 19:17:23 -0400 |
commit | 799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56 (patch) | |
tree | 5e78c957b9071a53a70e4a4a3f7dd02da8287674 /src/com/android/launcher3/SettingsActivity.java | |
parent | 091f0ffd929f7a0a9a6af7d202eae13c48c07daa (diff) | |
download | android_packages_apps_Trebuchet-799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56.tar.gz android_packages_apps_Trebuchet-799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56.tar.bz2 android_packages_apps_Trebuchet-799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56.zip |
Use a broadcast receiver instead of a settings observer.
Settings observer doesn't work if a setting is modified in another
process, hence we instead register a receiver which listens for a signal
from the settings process that the rotation preference has changed.
Change-Id: I570e3c67bb64a32347e84ca00a8ac31d9010eac3
Diffstat (limited to 'src/com/android/launcher3/SettingsActivity.java')
-rw-r--r-- | src/com/android/launcher3/SettingsActivity.java | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/com/android/launcher3/SettingsActivity.java b/src/com/android/launcher3/SettingsActivity.java index a1da1b6fd..27763f545 100644 --- a/src/com/android/launcher3/SettingsActivity.java +++ b/src/com/android/launcher3/SettingsActivity.java @@ -18,12 +18,14 @@ package com.android.launcher3; import android.app.Activity; import android.content.Context; +import android.content.Intent; import android.os.Bundle; +import android.preference.Preference; import android.preference.PreferenceFragment; +import android.preference.PreferenceScreen; /** - * Settings activity for Launcher. Currently implements the following setting: - * LockToPortrait + * Settings activity for Launcher. Currently implements the following setting: Allow rotation */ public class SettingsActivity extends Activity { @Override @@ -41,13 +43,25 @@ public class SettingsActivity extends Activity { */ @SuppressWarnings("WeakerAccess") public static class LauncherSettingsFragment extends PreferenceFragment { - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getPreferenceManager().setSharedPreferencesMode(Context.MODE_PRIVATE); + getPreferenceManager().setSharedPreferencesMode(Context.MODE_MULTI_PROCESS); getPreferenceManager().setSharedPreferencesName(LauncherFiles.ROTATION_PREF_FILE); addPreferencesFromResource(R.xml.launcher_preferences); } + + @Override + public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, + Preference preference) { + boolean allowRotation = getPreferenceManager().getSharedPreferences().getBoolean( + Utilities.ALLOW_ROTATION_PREFERENCE_KEY, false); + Intent rotationSetting = new Intent(Utilities.SCREEN_ROTATION_SETTING_INTENT); + String launchBroadcastPermission = getResources().getString( + R.string.receive_update_orientation_broadcasts_permission); + rotationSetting.putExtra(Utilities.SCREEN_ROTATION_SETTING_EXTRA, allowRotation); + getActivity().sendBroadcast(rotationSetting, launchBroadcastPermission); + return true; + } } } |