summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherProvider.java
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2016-03-17 15:39:39 -0700
committerTony Wickham <twickham@google.com>2016-04-01 15:40:57 -0700
commit827cef203f386cb548b98a7fa9888b75478c8e20 (patch)
treef310b21ce3092156534cf94602a3ecf25283a44e /src/com/android/launcher3/LauncherProvider.java
parent855b1b5fff5f6f03a641b3b6973780a24fd9641e (diff)
downloadandroid_packages_apps_Trebuchet-827cef203f386cb548b98a7fa9888b75478c8e20.tar.gz
android_packages_apps_Trebuchet-827cef203f386cb548b98a7fa9888b75478c8e20.tar.bz2
android_packages_apps_Trebuchet-827cef203f386cb548b98a7fa9888b75478c8e20.zip
Added ColorExtractionService and ExtractedColors.
- Launcher has an instance of ExtractedColors, which is loaded from LauncherProvider in onCreate() and whenever the wallpaper changes. - When the wallpaper changes, the ColorExtractionService is started in the :wallpaper-chooser process. - ColorExtractionService builds an ExtractedColors instance and saves it as a String in LauncherProvider. - When the results are saved, Launcher gets a callback through LauncherProviderChangeListener and reloads the ExtractedColors. - Whenever Launcher loads Extractecolors, it also re-colors items (currently a no-op). Change-Id: I319e2cfe0a86abcbc6bb39ef6b9fbbcad54ad743
Diffstat (limited to 'src/com/android/launcher3/LauncherProvider.java')
-rw-r--r--src/com/android/launcher3/LauncherProvider.java42
1 files changed, 36 insertions, 6 deletions
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index 207121b27..f07609480 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -53,6 +53,7 @@ import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.compat.UserHandleCompat;
import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.config.ProviderConfig;
+import com.android.launcher3.dynamicui.ExtractionUtils;
import com.android.launcher3.util.ManagedProfileHeuristic;
import com.android.launcher3.util.NoLocaleSqliteContext;
import com.android.launcher3.util.Thunk;
@@ -257,7 +258,7 @@ public class LauncherProvider extends ContentProvider {
}
@Override
- public Bundle call(String method, String arg, Bundle extras) {
+ public Bundle call(String method, final String arg, final Bundle extras) {
if (Binder.getCallingUid() != Process.myUid()) {
return null;
}
@@ -277,13 +278,19 @@ public class LauncherProvider extends ContentProvider {
return result;
}
case LauncherSettings.Settings.METHOD_SET_BOOLEAN: {
- boolean value = extras.getBoolean(LauncherSettings.Settings.EXTRA_VALUE);
+ final boolean value = extras.getBoolean(LauncherSettings.Settings.EXTRA_VALUE);
Utilities.getPrefs(getContext()).edit().putBoolean(arg, value).apply();
- synchronized (LISTENER_LOCK) {
- if (mListener != null) {
- mListener.onSettingsChanged(arg, value);
+ new MainThreadExecutor().execute(new Runnable() {
+ @Override
+ public void run() {
+ synchronized (LISTENER_LOCK) {
+ if (mListener != null) {
+ mListener.onSettingsChanged(arg, value);
+ }
+ }
+
}
- }
+ });
if (extras.getBoolean(LauncherSettings.Settings.NOTIFY_BACKUP)) {
LauncherBackupAgentHelper.dataChanged(getContext());
}
@@ -291,6 +298,29 @@ public class LauncherProvider extends ContentProvider {
result.putBoolean(LauncherSettings.Settings.EXTRA_VALUE, value);
return result;
}
+ case LauncherSettings.Settings.METHOD_SET_EXTRACTED_COLORS_AND_WALLPAPER_ID: {
+ String extractedColors = extras.getString(
+ LauncherSettings.Settings.EXTRA_EXTRACTED_COLORS);
+ int wallpaperId = extras.getInt(LauncherSettings.Settings.EXTRA_WALLPAPER_ID);
+ Utilities.getPrefs(getContext()).edit()
+ .putString(ExtractionUtils.EXTRACTED_COLORS_PREFERENCE_KEY, extractedColors)
+ .putInt(ExtractionUtils.WALLPAPER_ID_PREFERENCE_KEY, wallpaperId)
+ .apply();
+ new MainThreadExecutor().execute(new Runnable() {
+ @Override
+ public void run() {
+ synchronized (LISTENER_LOCK) {
+ if (mListener != null) {
+ mListener.onExtractedColorsChanged();
+ }
+ }
+
+ }
+ });
+ Bundle result = new Bundle();
+ result.putString(LauncherSettings.Settings.EXTRA_VALUE, extractedColors);
+ return result;
+ }
case LauncherSettings.Settings.METHOD_CLEAR_EMPTY_DB_FLAG: {
clearFlagEmptyDbCreated();
return null;