diff options
author | Tony Wickham <twickham@google.com> | 2016-03-17 15:39:39 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2016-04-01 15:40:57 -0700 |
commit | 827cef203f386cb548b98a7fa9888b75478c8e20 (patch) | |
tree | f310b21ce3092156534cf94602a3ecf25283a44e /src/com/android/launcher3/LauncherProvider.java | |
parent | 855b1b5fff5f6f03a641b3b6973780a24fd9641e (diff) | |
download | android_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.java | 42 |
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; |