diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2015-06-11 16:18:39 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2015-06-12 11:16:20 -0700 |
commit | 7779d62308b87ca26e3be47df836893f6f7693ec (patch) | |
tree | 15927028a921ac04a931ecf3edb119a39054cef5 /src/com/android/launcher3/LauncherProvider.java | |
parent | 2d0fc8dccd49a630a1e4a18e6b6b773d7c7bde71 (diff) | |
download | android_packages_apps_Trebuchet-7779d62308b87ca26e3be47df836893f6f7693ec.tar.gz android_packages_apps_Trebuchet-7779d62308b87ca26e3be47df836893f6f7693ec.tar.bz2 android_packages_apps_Trebuchet-7779d62308b87ca26e3be47df836893f6f7693ec.zip |
Using content provider to update launcher settings
> Removing cross process preference file
> Removed broadcast listener management for settings changes
> Defining content provider method to get/set laucnehr preferences
Change-Id: Ida36eac0ab17c1d48fedc9404817a53a89b36c4f
Diffstat (limited to 'src/com/android/launcher3/LauncherProvider.java')
-rw-r--r-- | src/com/android/launcher3/LauncherProvider.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index b5901265c..cb808c22b 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -39,8 +39,10 @@ import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteQueryBuilder; import android.database.sqlite.SQLiteStatement; import android.net.Uri; +import android.os.Binder; import android.os.Build; import android.os.Bundle; +import android.os.Process; import android.os.StrictMode; import android.os.UserManager; import android.text.TextUtils; @@ -237,6 +239,38 @@ public class LauncherProvider extends ContentProvider { return count; } + @Override + public Bundle call(String method, String arg, Bundle extras) { + if (Binder.getCallingUid() != Process.myUid()) { + return null; + } + + switch (method) { + case LauncherSettings.Settings.METHOD_GET_BOOLEAN: { + Bundle result = new Bundle(); + result.putBoolean(LauncherSettings.Settings.EXTRA_VALUE, + getContext().getSharedPreferences( + LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE) + .getBoolean(arg, extras.getBoolean( + LauncherSettings.Settings.EXTRA_DEFAULT_VALUE))); + return result; + } + case LauncherSettings.Settings.METHOD_SET_BOOLEAN: { + boolean value = extras.getBoolean(LauncherSettings.Settings.EXTRA_VALUE); + getContext().getSharedPreferences( + LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE) + .edit().putBoolean(arg, value).apply(); + if (mListener != null) { + mListener.onSettingsChanged(arg, value); + } + Bundle result = new Bundle(); + result.putBoolean(LauncherSettings.Settings.EXTRA_VALUE, value); + return result; + } + } + return null; + } + private void notifyListeners() { // always notify the backup agent LauncherBackupAgentHelper.dataChanged(getContext()); |