summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherProvider.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2015-06-11 16:18:39 -0700
committerSunny Goyal <sunnygoyal@google.com>2015-06-12 11:16:20 -0700
commit7779d62308b87ca26e3be47df836893f6f7693ec (patch)
tree15927028a921ac04a931ecf3edb119a39054cef5 /src/com/android/launcher3/LauncherProvider.java
parent2d0fc8dccd49a630a1e4a18e6b6b773d7c7bde71 (diff)
downloadandroid_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.java34
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());