summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/dynamicui/colorextraction/WallpaperColorsCompat.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/dynamicui/colorextraction/WallpaperColorsCompat.java')
-rw-r--r--src/com/android/launcher3/dynamicui/colorextraction/WallpaperColorsCompat.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/com/android/launcher3/dynamicui/colorextraction/WallpaperColorsCompat.java b/src/com/android/launcher3/dynamicui/colorextraction/WallpaperColorsCompat.java
new file mode 100644
index 000000000..f80a675cb
--- /dev/null
+++ b/src/com/android/launcher3/dynamicui/colorextraction/WallpaperColorsCompat.java
@@ -0,0 +1,69 @@
+package com.android.launcher3.dynamicui.colorextraction;
+
+import android.graphics.Color;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.Pair;
+
+import java.util.List;
+
+/**
+ * A wrapper around platform implementation of WallpaperColors until the
+ * updated SDK is available.
+ *
+ * TODO remove this class if available by platform
+ */
+public class WallpaperColorsCompat implements Parcelable {
+
+ private final Parcelable mObject;
+
+ public WallpaperColorsCompat(Parcelable object) {
+ mObject = object;
+ }
+
+ private Object invokeMethod(String methodName) {
+ try {
+ return mObject.getClass().getDeclaredMethod(methodName).invoke(mObject);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel parcel, int i) {
+ parcel.writeParcelable(mObject, i);
+ }
+
+ public static final Parcelable.Creator<WallpaperColorsCompat> CREATOR =
+ new Parcelable.Creator<WallpaperColorsCompat>() {
+ public WallpaperColorsCompat createFromParcel(Parcel source) {
+ Parcelable object = source.readParcelable(null);
+ return new WallpaperColorsCompat(object);
+ }
+
+ public WallpaperColorsCompat[] newArray(int size) {
+ return new WallpaperColorsCompat[size];
+ }
+ };
+
+ public List<Pair<Color, Integer>> getColors() {
+ try {
+ return (List<Pair<Color, Integer>>) invokeMethod("getColors");
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ public boolean supportsDarkText() {
+ try {
+ return (Boolean) invokeMethod("supportsDarkText");
+ } catch (Exception e) {
+ return false;
+ }
+ }
+}