summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk2
-rw-r--r--AndroidManifest-common.xml6
-rw-r--r--build.gradle9
-rw-r--r--res/values/dimens.xml4
-rw-r--r--src/com/android/launcher3/Hotseat.java66
-rw-r--r--src/com/android/launcher3/Launcher.java19
-rw-r--r--src/com/android/launcher3/LauncherAppState.java8
-rw-r--r--src/com/android/launcher3/LauncherModel.java3
-rw-r--r--src/com/android/launcher3/LauncherProvider.java20
-rw-r--r--src/com/android/launcher3/LauncherProviderChangeListener.java2
-rw-r--r--src/com/android/launcher3/LauncherSettings.java5
-rw-r--r--src/com/android/launcher3/allapps/AllAppsTransitionController.java38
-rw-r--r--src/com/android/launcher3/compat/WallpaperManagerCompatVL.java34
-rw-r--r--src/com/android/launcher3/config/BaseFlags.java6
-rw-r--r--src/com/android/launcher3/dynamicui/ColorExtractionService.java204
-rw-r--r--src/com/android/launcher3/dynamicui/ExtractedColors.java184
-rw-r--r--src/com/android/launcher3/dynamicui/ExtractionUtils.java125
-rw-r--r--src/com/android/launcher3/pageindicators/PageIndicator.java4
-rw-r--r--src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java33
19 files changed, 13 insertions, 759 deletions
diff --git a/Android.mk b/Android.mk
index d41e184f0..4cc5e4239 100644
--- a/Android.mk
+++ b/Android.mk
@@ -26,7 +26,6 @@ LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v4 \
android-support-v7-recyclerview \
- android-support-v7-palette \
android-support-dynamic-animation
LOCAL_SRC_FILES := \
@@ -72,7 +71,6 @@ LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v4 \
android-support-v7-recyclerview \
- android-support-v7-palette \
android-support-dynamic-animation
LOCAL_SRC_FILES := \
diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml
index 94098e16e..bb03f5076 100644
--- a/AndroidManifest-common.xml
+++ b/AndroidManifest-common.xml
@@ -81,12 +81,6 @@
</intent-filter>
</receiver>
- <service android:name="com.android.launcher3.dynamicui.ColorExtractionService"
- android:exported="false"
- android:process=":wallpaper_chooser"
- android:permission="android.permission.BIND_JOB_SERVICE">
- </service>
-
<service
android:name="com.android.launcher3.compat.WallpaperManagerCompatVL$ColorExtractionService"
android:exported="false"
diff --git a/build.gradle b/build.gradle
index 886ccace6..2376146fd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -13,12 +13,12 @@ apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
android {
- compileSdkVersion 26
- buildToolsVersion '26.0.0'
+ compileSdkVersion 27
+ buildToolsVersion '27.0.0'
defaultConfig {
minSdkVersion 21
- targetSdkVersion 26
+ targetSdkVersion 27
versionCode 1
versionName "1.0"
@@ -86,12 +86,11 @@ repositories {
jcenter()
}
-final String SUPPORT_LIBS_VERSION = '26.0.0-SNAPSHOT'
+final String SUPPORT_LIBS_VERSION = '27.0.0-SNAPSHOT'
dependencies {
compile "com.android.support:support-v4:${SUPPORT_LIBS_VERSION}"
compile "com.android.support:support-dynamic-animation:${SUPPORT_LIBS_VERSION}"
compile "com.android.support:recyclerview-v7:${SUPPORT_LIBS_VERSION}"
- compile "com.android.support:palette-v7:${SUPPORT_LIBS_VERSION}"
compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7'
testCompile 'junit:junit:4.12'
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index b403fbdc2..481199e73 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -232,8 +232,4 @@
<dimen name="horizontal_ellipsis_offset">19dp</dimen>
<dimen name="popup_item_divider_height">0.5dp</dimen>
<dimen name="swipe_helper_falsing_threshold">70dp</dimen>
-
-<!-- Other -->
- <!-- Approximates the system status bar height. Not guaranteed to be always be correct. -->
- <dimen name="status_bar_height">24dp</dimen>
</resources>
diff --git a/src/com/android/launcher3/Hotseat.java b/src/com/android/launcher3/Hotseat.java
index a6d80e336..09f9e827c 100644
--- a/src/com/android/launcher3/Hotseat.java
+++ b/src/com/android/launcher3/Hotseat.java
@@ -16,16 +16,9 @@
package com.android.launcher3;
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ArgbEvaluator;
-import android.animation.ValueAnimator;
import android.content.Context;
-import android.graphics.Color;
import android.graphics.Rect;
-import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
-import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -35,11 +28,9 @@ import android.widget.FrameLayout;
import android.widget.TextView;
import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.dynamicui.ExtractedColors;
import com.android.launcher3.logging.UserEventDispatcher;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
-import com.android.launcher3.util.Themes;
public class Hotseat extends FrameLayout
implements UserEventDispatcher.LogContainerProvider {
@@ -51,12 +42,6 @@ public class Hotseat extends FrameLayout
@ViewDebug.ExportedProperty(category = "launcher")
private final boolean mHasVerticalHotseat;
- @ViewDebug.ExportedProperty(category = "launcher")
- private int mBackgroundColor;
- @ViewDebug.ExportedProperty(category = "launcher")
- private ColorDrawable mBackground;
- private ValueAnimator mBackgroundColorAnimator;
-
public Hotseat(Context context) {
this(context, null);
}
@@ -69,12 +54,6 @@ public class Hotseat extends FrameLayout
super(context, attrs, defStyle);
mLauncher = Launcher.getLauncher(context);
mHasVerticalHotseat = mLauncher.getDeviceProfile().isVerticalBarLayout();
- mBackgroundColor = ColorUtils.setAlphaComponent(
- Themes.getAttrColor(context, android.R.attr.colorPrimary), 0);
- mBackground = new ColorDrawable(mBackgroundColor);
- if (!FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- setBackground(mBackground);
- }
}
public CellLayout getLayout() {
@@ -177,49 +156,4 @@ public class Hotseat extends FrameLayout
target.gridY = info.cellY;
targetParent.containerType = ContainerType.HOTSEAT;
}
-
- public void updateColor(ExtractedColors extractedColors, boolean animate) {
- if (FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- // not hotseat visible
- return;
- }
- if (!mHasVerticalHotseat) {
- int color = extractedColors.getColor(ExtractedColors.HOTSEAT_INDEX);
- if (mBackgroundColorAnimator != null) {
- mBackgroundColorAnimator.cancel();
- }
- if (!animate) {
- setBackgroundColor(color);
- } else {
- mBackgroundColorAnimator = ValueAnimator.ofInt(mBackgroundColor, color);
- mBackgroundColorAnimator.setEvaluator(new ArgbEvaluator());
- mBackgroundColorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- mBackground.setColor((Integer) animation.getAnimatedValue());
- }
- });
- mBackgroundColorAnimator.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mBackgroundColorAnimator = null;
- }
- });
- mBackgroundColorAnimator.start();
- }
- mBackgroundColor = color;
- }
- }
-
- public void setBackgroundTransparent(boolean enable) {
- if (enable) {
- mBackground.setAlpha(0);
- } else {
- mBackground.setAlpha(255);
- }
- }
-
- public int getBackgroundDrawableColor() {
- return mBackgroundColor;
- }
}
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 4388eb4a0..4cc6f89a4 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -99,7 +99,6 @@ import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.dragndrop.DragOptions;
import com.android.launcher3.dragndrop.DragView;
import com.android.launcher3.dragndrop.PinItemDragListener;
-import com.android.launcher3.dynamicui.ExtractedColors;
import com.android.launcher3.dynamicui.WallpaperColorInfo;
import com.android.launcher3.folder.Folder;
import com.android.launcher3.folder.FolderIcon;
@@ -221,8 +220,6 @@ public class Launcher extends BaseActivity
private static final int NEW_APPS_ANIMATION_INACTIVE_TIMEOUT_SECONDS = 5;
@Thunk static final int NEW_APPS_ANIMATION_DELAY = 500;
- private final ExtractedColors mExtractedColors = new ExtractedColors();
-
@Thunk Workspace mWorkspace;
private View mLauncherView;
@Thunk DragLayer mDragLayer;
@@ -403,7 +400,6 @@ public class Launcher extends BaseActivity
setupViews();
mDeviceProfile.layout(this, false /* notifyListeners */);
- loadExtractedColorsAndColorItems();
mPopupDataProvider = new PopupDataProvider(this);
@@ -489,27 +485,12 @@ public class Launcher extends BaseActivity
}
@Override
- public void onExtractedColorsChanged() {
- loadExtractedColorsAndColorItems();
- mExtractedColors.notifyChange();
- }
-
- @Override
public void onAppWidgetHostReset() {
if (mAppWidgetHost != null) {
mAppWidgetHost.startListening();
}
}
- private void loadExtractedColorsAndColorItems() {
- // TODO: do this in pre-N as well, once the extraction part is complete.
- if (Utilities.ATLEAST_NOUGAT) {
- mExtractedColors.load(this);
- mHotseat.updateColor(mExtractedColors, !mPaused);
- mWorkspace.getPageIndicator().updateColor(mExtractedColors);
- }
- }
-
private LauncherCallbacks mLauncherCallbacks;
public void onPostCreate(Bundle savedInstanceState) {
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java
index 7bebf445b..dfb30fd35 100644
--- a/src/com/android/launcher3/LauncherAppState.java
+++ b/src/com/android/launcher3/LauncherAppState.java
@@ -28,7 +28,6 @@ import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.compat.PackageInstallerCompat;
import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.dynamicui.ExtractionUtils;
import com.android.launcher3.notification.NotificationListener;
import com.android.launcher3.util.ConfigMonitor;
import com.android.launcher3.util.Preconditions;
@@ -109,18 +108,11 @@ public class LauncherAppState {
filter.addAction(Intent.ACTION_MANAGED_PROFILE_AVAILABLE);
filter.addAction(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE);
filter.addAction(Intent.ACTION_MANAGED_PROFILE_UNLOCKED);
- // For extracting colors from the wallpaper
- if (Utilities.ATLEAST_NOUGAT) {
- // TODO: add a broadcast entry to the manifest for pre-N.
- filter.addAction(Intent.ACTION_WALLPAPER_CHANGED);
- }
mContext.registerReceiver(mModel, filter);
UserManagerCompat.getInstance(mContext).enableAndResetCache();
new ConfigMonitor(mContext).register();
- ExtractionUtils.startColorExtractionServiceIfNecessary(mContext);
-
if (!mContext.getResources().getBoolean(R.bool.notification_badging_enabled)) {
mNotificationBadgingObserver = null;
} else {
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index a906b00f1..74a5bac99 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -37,7 +37,6 @@ import android.util.Pair;
import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.compat.PackageInstallerCompat.PackageInstallInfo;
import com.android.launcher3.compat.UserManagerCompat;
-import com.android.launcher3.dynamicui.ExtractionUtils;
import com.android.launcher3.graphics.LauncherIcons;
import com.android.launcher3.model.AddWorkspaceItemsTask;
import com.android.launcher3.model.BgDataModel;
@@ -406,8 +405,6 @@ public class LauncherModel extends BroadcastReceiver
enqueueModelUpdateTask(new UserLockStateChangedTask(user));
}
}
- } else if (Intent.ACTION_WALLPAPER_CHANGED.equals(action)) {
- ExtractionUtils.startColorExtractionServiceIfNecessary(context);
}
}
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index f222a97bb..25a698b15 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -55,7 +55,6 @@ import com.android.launcher3.LauncherSettings.Favorites;
import com.android.launcher3.LauncherSettings.WorkspaceScreens;
import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.dynamicui.ExtractionUtils;
import com.android.launcher3.graphics.IconShapeOverride;
import com.android.launcher3.logging.FileLog;
import com.android.launcher3.model.DbDowngradeHelper;
@@ -365,19 +364,6 @@ public class LauncherProvider extends ContentProvider {
createDbIfNotExists();
switch (method) {
- 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();
- mListenerHandler.sendEmptyMessage(ChangeListenerWrapper.MSG_EXTRACTED_COLORS_CHANGED);
- Bundle result = new Bundle();
- result.putString(LauncherSettings.Settings.EXTRA_VALUE, extractedColors);
- return result;
- }
case LauncherSettings.Settings.METHOD_CLEAR_EMPTY_DB_FLAG: {
clearFlagEmptyDbCreated();
return null;
@@ -1153,8 +1139,7 @@ public class LauncherProvider extends ContentProvider {
private static class ChangeListenerWrapper implements Handler.Callback {
private static final int MSG_LAUNCHER_PROVIDER_CHANGED = 1;
- private static final int MSG_EXTRACTED_COLORS_CHANGED = 2;
- private static final int MSG_APP_WIDGET_HOST_RESET = 3;
+ private static final int MSG_APP_WIDGET_HOST_RESET = 2;
private LauncherProviderChangeListener mListener;
@@ -1165,9 +1150,6 @@ public class LauncherProvider extends ContentProvider {
case MSG_LAUNCHER_PROVIDER_CHANGED:
mListener.onLauncherProviderChanged();
break;
- case MSG_EXTRACTED_COLORS_CHANGED:
- mListener.onExtractedColorsChanged();
- break;
case MSG_APP_WIDGET_HOST_RESET:
mListener.onAppWidgetHostReset();
break;
diff --git a/src/com/android/launcher3/LauncherProviderChangeListener.java b/src/com/android/launcher3/LauncherProviderChangeListener.java
index 704481232..024308863 100644
--- a/src/com/android/launcher3/LauncherProviderChangeListener.java
+++ b/src/com/android/launcher3/LauncherProviderChangeListener.java
@@ -9,7 +9,5 @@ public interface LauncherProviderChangeListener {
void onLauncherProviderChanged();
- void onExtractedColorsChanged();
-
void onAppWidgetHostReset();
}
diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java
index 87f62eb01..3b337ef18 100644
--- a/src/com/android/launcher3/LauncherSettings.java
+++ b/src/com/android/launcher3/LauncherSettings.java
@@ -304,11 +304,6 @@ public class LauncherSettings {
public static final String METHOD_LOAD_DEFAULT_FAVORITES = "load_default_favorites";
- public static final String METHOD_SET_EXTRACTED_COLORS_AND_WALLPAPER_ID =
- "set_extracted_colors_and_wallpaper_id_setting";
- public static final String EXTRA_EXTRACTED_COLORS = "extra_extractedColors";
- public static final String EXTRA_WALLPAPER_ID = "extra_wallpaperId";
-
public static final String METHOD_REMOVE_GHOST_WIDGETS = "remove_ghost_widgets";
public static final String EXTRA_VALUE = "value";
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
index 3364c61ee..f249c90c9 100644
--- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java
+++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java
@@ -6,14 +6,11 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ArgbEvaluator;
import android.animation.ObjectAnimator;
-import android.graphics.Color;
import android.support.animation.SpringAnimation;
-import android.support.v4.graphics.ColorUtils;
import android.support.v4.view.animation.FastOutSlowInInterpolator;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
-import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import com.android.launcher3.AbstractFloatingView;
@@ -46,12 +43,8 @@ import com.android.launcher3.util.TouchController;
public class AllAppsTransitionController implements TouchController, SwipeDetector.Listener,
SearchUiManager.OnScrollRangeChangeListener {
- private static final String TAG = "AllAppsTrans";
- private static final boolean DBG = false;
-
private final Interpolator mWorkspaceAccelnterpolator = new AccelerateInterpolator(2f);
private final Interpolator mHotseatAccelInterpolator = new AccelerateInterpolator(1.5f);
- private final Interpolator mDecelInterpolator = new DecelerateInterpolator(3f);
private final Interpolator mFastOutSlowInInterpolator = new FastOutSlowInInterpolator();
private final SwipeDetector.ScrollInterpolator mScrollInterpolator
= new SwipeDetector.ScrollInterpolator();
@@ -60,10 +53,8 @@ public class AllAppsTransitionController implements TouchController, SwipeDetect
private static final int SINGLE_FRAME_MS = 16;
private AllAppsContainerView mAppsView;
- private int mAllAppsBackgroundColor;
private Workspace mWorkspace;
private Hotseat mHotseat;
- private int mHotseatBackgroundColor;
private AllAppsCaretController mCaretController;
@@ -112,7 +103,6 @@ public class AllAppsTransitionController implements TouchController, SwipeDetect
mProgress = 1f;
mEvaluator = new ArgbEvaluator();
- mAllAppsBackgroundColor = Themes.getAttrColor(l, android.R.attr.colorPrimary);
mIsDarkTheme = Themes.getAttrBoolean(mLauncher, R.attr.isMainColorDark);
}
@@ -266,29 +256,16 @@ public class AllAppsTransitionController implements TouchController, SwipeDetect
// Initialize values that should not change until #onDragEnd
mStatusBarHeight = mLauncher.getDragLayer().getInsets().top;
mHotseat.setVisibility(View.VISIBLE);
- mHotseatBackgroundColor = mHotseat.getBackgroundDrawableColor();
- mHotseat.setBackgroundTransparent(true /* transparent */);
if (!mLauncher.isAllAppsVisible()) {
mLauncher.tryAndUpdatePredictedApps();
mAppsView.setVisibility(View.VISIBLE);
- if (!FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- mAppsView.setRevealDrawableColor(mHotseatBackgroundColor);
- }
}
}
}
private void updateLightStatusBar(float shift) {
- // Do not modify status bar on landscape as all apps is not full bleed.
- if (!FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS
- && mLauncher.getDeviceProfile().isVerticalBarLayout()) {
- return;
- }
-
// Use a light system UI (dark icons) if all apps is behind at least half of the status bar.
- boolean forceChange = FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS ?
- shift <= mShiftRange / 4 :
- shift <= mStatusBarHeight / 2;
+ boolean forceChange = shift <= mShiftRange / 4;
if (forceChange) {
mLauncher.getSystemUiController().updateUiState(
SystemUiController.UI_STATE_ALL_APPS, !mIsDarkTheme);
@@ -320,17 +297,7 @@ public class AllAppsTransitionController implements TouchController, SwipeDetect
float workspaceAlpha = mWorkspaceAccelnterpolator.getInterpolation(workspaceHotseatAlpha);
float hotseatAlpha = mHotseatAccelInterpolator.getInterpolation(workspaceHotseatAlpha);
- int color = (Integer) mEvaluator.evaluate(mDecelInterpolator.getInterpolation(alpha),
- mHotseatBackgroundColor, mAllAppsBackgroundColor);
- int bgAlpha = Color.alpha((int) mEvaluator.evaluate(alpha,
- mHotseatBackgroundColor, mAllAppsBackgroundColor));
-
- if (FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- updateAllAppsBg(alpha);
- } else {
- mAppsView.setRevealDrawableColor(ColorUtils.setAlphaComponent(color, bgAlpha));
- }
-
+ updateAllAppsBg(alpha);
mAppsView.getContentView().setAlpha(alpha);
mAppsView.setTranslationY(shiftCurrent);
@@ -530,7 +497,6 @@ public class AllAppsTransitionController implements TouchController, SwipeDetect
public void finishPullDown() {
mAppsView.setVisibility(View.INVISIBLE);
- mHotseat.setBackgroundTransparent(false /* transparent */);
mHotseat.setVisibility(View.VISIBLE);
mAppsView.reset();
if (hasSpringAnimationHandler()) {
diff --git a/src/com/android/launcher3/compat/WallpaperManagerCompatVL.java b/src/com/android/launcher3/compat/WallpaperManagerCompatVL.java
index 8e572ee1a..4cc70d367 100644
--- a/src/com/android/launcher3/compat/WallpaperManagerCompatVL.java
+++ b/src/com/android/launcher3/compat/WallpaperManagerCompatVL.java
@@ -15,6 +15,10 @@
*/
package com.android.launcher3.compat;
+import static android.app.WallpaperManager.FLAG_SYSTEM;
+
+import static com.android.launcher3.Utilities.getDevicePrefs;
+
import android.app.WallpaperInfo;
import android.app.WallpaperManager;
import android.app.job.JobInfo;
@@ -38,7 +42,6 @@ import android.os.Handler;
import android.os.HandlerThread;
import android.os.ParcelFileDescriptor;
import android.support.annotation.Nullable;
-import android.support.v7.graphics.Palette;
import android.util.Log;
import android.util.Pair;
@@ -46,12 +49,6 @@ import com.android.launcher3.Utilities;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import static android.app.WallpaperManager.FLAG_SYSTEM;
-import static com.android.launcher3.Utilities.getDevicePrefs;
public class WallpaperManagerCompatVL extends WallpaperManagerCompat {
@@ -260,27 +257,8 @@ public class WallpaperManagerCompatVL extends WallpaperManagerCompat {
String value = VERSION_PREFIX + wallpaperId;
if (bitmap != null) {
- Palette palette = Palette.from(bitmap).generate();
- bitmap.recycle();
-
- StringBuilder builder = new StringBuilder(value);
- List<Pair<Integer,Integer>> colorsToOccurrences = new ArrayList<>();
- for (Palette.Swatch swatch : palette.getSwatches()) {
- colorsToOccurrences.add(new Pair(swatch.getRgb(), swatch.getPopulation()));
- }
-
- Collections.sort(colorsToOccurrences, new Comparator<Pair<Integer, Integer>>() {
- @Override
- public int compare(Pair<Integer, Integer> a, Pair<Integer, Integer> b) {
- return b.second - a.second;
- }
- });
-
- for (int i=0; i < Math.min(3, colorsToOccurrences.size()); i++) {
- builder.append(',').append(colorsToOccurrences.get(i).first);
- }
-
- value = builder.toString();
+ int color = Utilities.findDominantColorByHue(bitmap, MAX_WALLPAPER_EXTRACTION_AREA);
+ value += "," + color;
}
// Send the result
diff --git a/src/com/android/launcher3/config/BaseFlags.java b/src/com/android/launcher3/config/BaseFlags.java
index 5f6909c70..8a1bc6388 100644
--- a/src/com/android/launcher3/config/BaseFlags.java
+++ b/src/com/android/launcher3/config/BaseFlags.java
@@ -39,8 +39,6 @@ abstract class BaseFlags {
public static final boolean LAUNCHER3_UPDATE_SOFT_INPUT_MODE = false;
// When enabled the promise icon is visible in all apps while installation an app.
public static final boolean LAUNCHER3_PROMISE_APPS_IN_ALL_APPS = false;
- // When enabled uses the AllAppsRadialGradientAndScrimDrawable for all apps
- public static final boolean LAUNCHER3_GRADIENT_ALL_APPS = true;
// When enabled allows use of physics based motions in the Launcher.
public static final boolean LAUNCHER3_PHYSICS = true;
// When enabled allows use of spring motions on the icons.
@@ -50,16 +48,12 @@ abstract class BaseFlags {
public static final boolean QSB_ON_FIRST_SCREEN = true;
// When enabled the all-apps icon is not added to the hotseat.
public static final boolean NO_ALL_APPS_ICON = true;
- // When enabled the status bar may show dark icons based on the top of the wallpaper.
- public static final boolean LIGHT_STATUS_BAR = false;
// When enabled, icons not supporting {@link AdaptiveIconDrawable} will be wrapped in {@link FixedScaleDrawable}.
public static final boolean LEGACY_ICON_TREATMENT = true;
// When enabled, adaptive icons would have shadows baked when being stored to icon cache.
public static final boolean ADAPTIVE_ICON_SHADOW = true;
// When enabled, app discovery will be enabled if service is implemented
public static final boolean DISCOVERY_ENABLED = false;
- // When enabled, the qsb will be moved to the hotseat.
- public static final boolean QSB_IN_HOTSEAT = true;
// When true, custom widgets are loaded using CustomWidgetParser.
public static final boolean ENABLE_CUSTOM_WIDGETS = false;
diff --git a/src/com/android/launcher3/dynamicui/ColorExtractionService.java b/src/com/android/launcher3/dynamicui/ColorExtractionService.java
deleted file mode 100644
index b9dd3b588..000000000
--- a/src/com/android/launcher3/dynamicui/ColorExtractionService.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.launcher3.dynamicui;
-
-import android.annotation.TargetApi;
-import android.app.WallpaperManager;
-import android.app.job.JobParameters;
-import android.app.job.JobService;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.BitmapRegionDecoder;
-import android.graphics.Rect;
-import android.graphics.drawable.BitmapDrawable;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.ParcelFileDescriptor;
-import android.support.v7.graphics.Palette;
-import android.util.Log;
-
-import com.android.launcher3.LauncherProvider;
-import com.android.launcher3.LauncherSettings;
-import com.android.launcher3.R;
-import com.android.launcher3.Utilities;
-import com.android.launcher3.config.FeatureFlags;
-
-import java.io.IOException;
-
-/**
- * Extracts colors from the wallpaper, and saves results to {@link LauncherProvider}.
- */
-public class ColorExtractionService extends JobService {
-
- private static final String TAG = "ColorExtractionService";
- private static final boolean DEBUG = false;
-
- /** The fraction of the wallpaper to extract colors for use on the hotseat. */
- private static final float HOTSEAT_FRACTION = 1f / 4;
-
- private HandlerThread mWorkerThread;
- private Handler mWorkerHandler;
-
- @Override
- public void onCreate() {
- super.onCreate();
- mWorkerThread = new HandlerThread("ColorExtractionService");
- mWorkerThread.start();
- mWorkerHandler = new Handler(mWorkerThread.getLooper());
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- mWorkerThread.quit();
- }
-
- @Override
- public boolean onStartJob(final JobParameters jobParameters) {
- if (DEBUG) Log.d(TAG, "onStartJob");
- mWorkerHandler.post(new Runnable() {
- @Override
- public void run() {
- WallpaperManager wallpaperManager = WallpaperManager.getInstance(
- ColorExtractionService.this);
- int wallpaperId = ExtractionUtils.getWallpaperId(wallpaperManager);
-
- ExtractedColors extractedColors = new ExtractedColors();
- if (wallpaperManager.getWallpaperInfo() != null) {
- // We can't extract colors from live wallpapers; always use the default color.
- extractedColors.updateHotseatPalette(null);
-
- if (FeatureFlags.QSB_IN_HOTSEAT || FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- extractedColors.updateWallpaperThemePalette(null);
- }
- } else {
- // We extract colors for the hotseat and status bar separately,
- // since they only consider part of the wallpaper.
- extractedColors.updateHotseatPalette(getHotseatPalette());
-
- if (FeatureFlags.LIGHT_STATUS_BAR) {
- extractedColors.updateStatusBarPalette(getStatusBarPalette());
- }
-
- if (FeatureFlags.QSB_IN_HOTSEAT || FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- extractedColors.updateWallpaperThemePalette(getWallpaperPalette());
- }
- }
-
- // Save the extracted colors and wallpaper id to LauncherProvider.
- String colorsString = extractedColors.encodeAsString();
- Bundle extras = new Bundle();
- extras.putInt(LauncherSettings.Settings.EXTRA_WALLPAPER_ID, wallpaperId);
- extras.putString(LauncherSettings.Settings.EXTRA_EXTRACTED_COLORS, colorsString);
- getContentResolver().call(
- LauncherSettings.Settings.CONTENT_URI,
- LauncherSettings.Settings.METHOD_SET_EXTRACTED_COLORS_AND_WALLPAPER_ID,
- null, extras);
- jobFinished(jobParameters, false /* needsReschedule */);
- if (DEBUG) Log.d(TAG, "job finished!");
- }
- });
- return true;
- }
-
- @Override
- public boolean onStopJob(JobParameters jobParameters) {
- if (DEBUG) Log.d(TAG, "onStopJob");
- mWorkerHandler.removeCallbacksAndMessages(null);
- return true;
- }
-
- @TargetApi(Build.VERSION_CODES.N)
- private Palette getHotseatPalette() {
- WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
- if (Utilities.ATLEAST_NOUGAT) {
- try (ParcelFileDescriptor fd = wallpaperManager
- .getWallpaperFile(WallpaperManager.FLAG_SYSTEM)) {
- BitmapRegionDecoder decoder = BitmapRegionDecoder
- .newInstance(fd.getFileDescriptor(), false);
- int height = decoder.getHeight();
- Rect decodeRegion = new Rect(0, (int) (height * (1f - HOTSEAT_FRACTION)),
- decoder.getWidth(), height);
- Bitmap bitmap = decoder.decodeRegion(decodeRegion, null);
- decoder.recycle();
- if (bitmap != null) {
- return Palette.from(bitmap).clearFilters().generate();
- }
- } catch (IOException | NullPointerException e) {
- Log.e(TAG, "Fetching partial bitmap failed, trying old method", e);
- }
- }
-
- Bitmap wallpaper = ((BitmapDrawable) wallpaperManager.getDrawable()).getBitmap();
- return Palette.from(wallpaper)
- .setRegion(0, (int) (wallpaper.getHeight() * (1f - HOTSEAT_FRACTION)),
- wallpaper.getWidth(), wallpaper.getHeight())
- .clearFilters()
- .generate();
- }
-
- @TargetApi(Build.VERSION_CODES.N)
- private Palette getStatusBarPalette() {
- WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
- int statusBarHeight = getResources()
- .getDimensionPixelSize(R.dimen.status_bar_height);
-
- if (Utilities.ATLEAST_NOUGAT) {
- try (ParcelFileDescriptor fd = wallpaperManager
- .getWallpaperFile(WallpaperManager.FLAG_SYSTEM)) {
- BitmapRegionDecoder decoder = BitmapRegionDecoder
- .newInstance(fd.getFileDescriptor(), false);
- Rect decodeRegion = new Rect(0, 0,
- decoder.getWidth(), statusBarHeight);
- Bitmap bitmap = decoder.decodeRegion(decodeRegion, null);
- decoder.recycle();
- if (bitmap != null) {
- return Palette.from(bitmap).clearFilters().generate();
- }
- } catch (IOException | NullPointerException e) {
- Log.e(TAG, "Fetching partial bitmap failed, trying old method", e);
- }
- }
-
- Bitmap wallpaper = ((BitmapDrawable) wallpaperManager.getDrawable()).getBitmap();
- return Palette.from(wallpaper)
- .setRegion(0, 0, wallpaper.getWidth(), statusBarHeight)
- .clearFilters()
- .generate();
- }
-
- @TargetApi(Build.VERSION_CODES.N)
- private Palette getWallpaperPalette() {
- WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
- if (Utilities.ATLEAST_NOUGAT) {
- try (ParcelFileDescriptor fd = wallpaperManager
- .getWallpaperFile(WallpaperManager.FLAG_SYSTEM)) {
- Bitmap bitmap = BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor());
- if (bitmap != null) {
- return Palette.from(bitmap).clearFilters().generate();
- }
- } catch (IOException | NullPointerException e) {
- Log.e(TAG, "Fetching partial bitmap failed, trying old method", e);
- }
- }
-
- Bitmap wallpaper = ((BitmapDrawable) wallpaperManager.getDrawable()).getBitmap();
- return Palette.from(wallpaper).clearFilters().generate();
- }
-}
diff --git a/src/com/android/launcher3/dynamicui/ExtractedColors.java b/src/com/android/launcher3/dynamicui/ExtractedColors.java
deleted file mode 100644
index 2d8bb869f..000000000
--- a/src/com/android/launcher3/dynamicui/ExtractedColors.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.launcher3.dynamicui;
-
-import android.app.WallpaperManager;
-import android.content.Context;
-import android.graphics.Color;
-import android.support.annotation.Nullable;
-import android.support.v4.graphics.ColorUtils;
-import android.support.v7.graphics.Palette;
-import android.util.Log;
-
-import com.android.launcher3.Utilities;
-import com.android.launcher3.config.FeatureFlags;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-/**
- * Saves and loads colors extracted from the wallpaper, as well as the associated wallpaper id.
- */
-public class ExtractedColors {
- private static final String TAG = "ExtractedColors";
-
- public static final int DEFAULT_LIGHT = Color.WHITE;
- public static final int DEFAULT_DARK = Color.BLACK;
-
- // These color profile indices should NOT be changed, since they are used when saving and
- // loading extracted colors. New colors should always be added at the end.
- public static final int VERSION_INDEX = 0;
- public static final int HOTSEAT_INDEX = 1;
- public static final int STATUS_BAR_INDEX = 2;
- public static final int WALLPAPER_VIBRANT_INDEX = 3;
- public static final int ALLAPPS_GRADIENT_MAIN_INDEX = 4;
- public static final int ALLAPPS_GRADIENT_SECONDARY_INDEX = 5;
-
- private static final int VERSION;
- private static final int[] DEFAULT_VALUES;
-
- static {
- if (FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- VERSION = 3;
- DEFAULT_VALUES = new int[] {
- VERSION, // VERSION_INDEX
- 0x40FFFFFF, // HOTSEAT_INDEX: White with 25% alpha
- DEFAULT_DARK, // STATUS_BAR_INDEX
- 0xFFCCCCCC, // WALLPAPER_VIBRANT_INDEX
- 0xFF000000, // ALLAPPS_GRADIENT_MAIN_INDEX
- 0xFF000000 // ALLAPPS_GRADIENT_SECONDARY_INDEX
- };
- } else if (FeatureFlags.QSB_IN_HOTSEAT) {
- VERSION = 2;
- DEFAULT_VALUES = new int[] {
- VERSION, // VERSION_INDEX
- 0x40FFFFFF, // HOTSEAT_INDEX: White with 25% alpha
- DEFAULT_DARK, // STATUS_BAR_INDEX
- 0xFFCCCCCC, // WALLPAPER_VIBRANT_INDEX
- };
- } else {
- VERSION = 1;
- DEFAULT_VALUES = new int[] {
- VERSION, // VERSION_INDEX
- 0x40FFFFFF, // HOTSEAT_INDEX: White with 25% alpha
- DEFAULT_DARK, // STATUS_BAR_INDEX
- };
- }
- }
-
- private static final String COLOR_SEPARATOR = ",";
-
- private final ArrayList<OnChangeListener> mListeners = new ArrayList<>();
- private final int[] mColors;
-
- public ExtractedColors() {
- // The first entry is reserved for the version number.
- mColors = Arrays.copyOf(DEFAULT_VALUES, DEFAULT_VALUES.length);
- }
-
- public void setColorAtIndex(int index, int color) {
- if (index > VERSION_INDEX && index < mColors.length) {
- mColors[index] = color;
- } else {
- Log.e(TAG, "Attempted to set a color at an invalid index " + index);
- }
- }
-
- /**
- * Encodes {@link #mColors} as a comma-separated String.
- */
- String encodeAsString() {
- StringBuilder colorsStringBuilder = new StringBuilder();
- for (int color : mColors) {
- colorsStringBuilder.append(color).append(COLOR_SEPARATOR);
- }
- return colorsStringBuilder.toString();
- }
-
- /**
- * Loads colors and wallpaper id from {@link Utilities#getPrefs(Context)}.
- * These were saved there in {@link ColorExtractionService}.
- */
- public void load(Context context) {
- String encodedString = Utilities.getPrefs(context).getString(
- ExtractionUtils.EXTRACTED_COLORS_PREFERENCE_KEY, VERSION + "");
-
- String[] splitColorsString = encodedString.split(COLOR_SEPARATOR);
- if (splitColorsString.length == DEFAULT_VALUES.length &&
- Integer.parseInt(splitColorsString[VERSION_INDEX]) == VERSION) {
- // Parse and apply the saved values.
- for (int i = 0; i < mColors.length; i++) {
- mColors[i] = Integer.parseInt(splitColorsString[i]);
- }
- } else {
- // Leave the values as default values as the saved values may not be compatible.
- ExtractionUtils.startColorExtractionService(context);
- }
- }
-
- /** @param index must be one of the index values defined at the top of this class. */
- public int getColor(int index) {
- return mColors[index];
- }
-
- /**
- * The hotseat's color is defined as follows:
- * - 12% black for super light wallpaper
- * - 18% white for super dark
- * - 25% white otherwise
- */
- public void updateHotseatPalette(Palette hotseatPalette) {
- int hotseatColor;
- if (hotseatPalette != null && ExtractionUtils.isSuperLight(hotseatPalette)) {
- hotseatColor = ColorUtils.setAlphaComponent(Color.BLACK, (int) (0.12f * 255));
- } else if (hotseatPalette != null && ExtractionUtils.isSuperDark(hotseatPalette)) {
- hotseatColor = ColorUtils.setAlphaComponent(Color.WHITE, (int) (0.18f * 255));
- } else {
- hotseatColor = DEFAULT_VALUES[HOTSEAT_INDEX];
- }
- setColorAtIndex(HOTSEAT_INDEX, hotseatColor);
- }
-
- public void updateStatusBarPalette(Palette statusBarPalette) {
- setColorAtIndex(STATUS_BAR_INDEX, ExtractionUtils.isSuperLight(statusBarPalette) ?
- DEFAULT_LIGHT : DEFAULT_DARK);
- }
-
- public void updateWallpaperThemePalette(@Nullable Palette wallpaperPalette) {
- int defaultColor = DEFAULT_VALUES[WALLPAPER_VIBRANT_INDEX];
- setColorAtIndex(WALLPAPER_VIBRANT_INDEX, wallpaperPalette == null
- ? defaultColor : wallpaperPalette.getVibrantColor(defaultColor));
- }
-
- public void addOnChangeListener(OnChangeListener listener) {
- mListeners.add(listener);
- }
-
- public void notifyChange() {
- for (OnChangeListener listener : mListeners) {
- listener.onExtractedColorsChanged();
- }
- }
-
- /**
- * Interface for listening for extracted color changes
- */
- public interface OnChangeListener {
-
- void onExtractedColorsChanged();
- }
-}
diff --git a/src/com/android/launcher3/dynamicui/ExtractionUtils.java b/src/com/android/launcher3/dynamicui/ExtractionUtils.java
deleted file mode 100644
index cc0e0bed1..000000000
--- a/src/com/android/launcher3/dynamicui/ExtractionUtils.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.launcher3.dynamicui;
-
-import android.annotation.TargetApi;
-import android.app.WallpaperManager;
-import android.app.job.JobInfo;
-import android.app.job.JobScheduler;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.graphics.Color;
-import android.os.Build;
-import android.support.v4.graphics.ColorUtils;
-import android.support.v7.graphics.Palette;
-
-import com.android.launcher3.Utilities;
-import com.android.launcher3.config.FeatureFlags;
-
-import java.util.List;
-
-/**
- * Contains helper fields and methods related to extracting colors from the wallpaper.
- */
-public class ExtractionUtils {
- public static final String EXTRACTED_COLORS_PREFERENCE_KEY = "pref_extractedColors";
- public static final String WALLPAPER_ID_PREFERENCE_KEY = "pref_wallpaperId";
-
- private static final float MIN_CONTRAST_RATIO = 2f;
-
- /**
- * Extract colors in the :wallpaper-chooser process, if the wallpaper id has changed.
- * When the new colors are saved in the LauncherProvider,
- * Launcher will be notified in Launcher#onSettingsChanged(String, String).
- */
- public static void startColorExtractionServiceIfNecessary(final Context context) {
- if (FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- return;
- }
- // Run on a background thread, since the service is asynchronous anyway.
- Utilities.THREAD_POOL_EXECUTOR.execute(new Runnable() {
- @Override
- public void run() {
- if (hasWallpaperIdChanged(context)) {
- startColorExtractionService(context);
- }
- }
- });
- }
-
- /** Starts the {@link ColorExtractionService} without checking the wallpaper id */
- public static void startColorExtractionService(Context context) {
- if (FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- return;
- }
- JobScheduler jobScheduler = (JobScheduler) context.getSystemService(
- Context.JOB_SCHEDULER_SERVICE);
- jobScheduler.schedule(new JobInfo.Builder(Utilities.COLOR_EXTRACTION_JOB_ID,
- new ComponentName(context, ColorExtractionService.class))
- .setMinimumLatency(0).build());
- }
-
- private static boolean hasWallpaperIdChanged(Context context) {
- if (!Utilities.ATLEAST_NOUGAT) {
- // TODO: update an id in sharedprefs in onWallpaperChanged broadcast, and read it here.
- return false;
- }
- final SharedPreferences sharedPrefs = Utilities.getPrefs(context);
- int wallpaperId = getWallpaperId(WallpaperManager.getInstance(context));
- int savedWallpaperId = sharedPrefs.getInt(ExtractionUtils.WALLPAPER_ID_PREFERENCE_KEY, -1);
- return wallpaperId != savedWallpaperId;
- }
-
- @TargetApi(Build.VERSION_CODES.N)
- public static int getWallpaperId(WallpaperManager wallpaperManager) {
- return Utilities.ATLEAST_NOUGAT ?
- wallpaperManager.getWallpaperId(WallpaperManager.FLAG_SYSTEM) : -1;
- }
-
- public static boolean isSuperLight(Palette p) {
- return !isLegibleOnWallpaper(Color.WHITE, p.getSwatches());
- }
-
- public static boolean isSuperDark(Palette p) {
- return !isLegibleOnWallpaper(Color.BLACK, p.getSwatches());
- }
-
- /**
- * Given a color, returns true if that color is legible on
- * the given wallpaper color swatches, else returns false.
- */
- private static boolean isLegibleOnWallpaper(int color, List<Palette.Swatch> wallpaperSwatches) {
- int legiblePopulation = 0;
- int illegiblePopulation = 0;
- for (Palette.Swatch swatch : wallpaperSwatches) {
- if (isLegible(color, swatch.getRgb())) {
- legiblePopulation += swatch.getPopulation();
- } else {
- illegiblePopulation += swatch.getPopulation();
- }
- }
- return legiblePopulation > illegiblePopulation;
- }
-
- /** @return Whether the foreground color is legible on the background color. */
- private static boolean isLegible(int foreground, int background) {
- background = ColorUtils.setAlphaComponent(background, 255);
- return ColorUtils.calculateContrast(foreground, background) >= MIN_CONTRAST_RATIO;
- }
-
-}
diff --git a/src/com/android/launcher3/pageindicators/PageIndicator.java b/src/com/android/launcher3/pageindicators/PageIndicator.java
index 47c2ffb38..d6ef5b4c8 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicator.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicator.java
@@ -20,8 +20,6 @@ import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.FrameLayout;
-import com.android.launcher3.dynamicui.ExtractedColors;
-
/**
* Base class for a page indicator.
*/
@@ -74,8 +72,6 @@ public abstract class PageIndicator extends FrameLayout {
public void setShouldAutoHide(boolean shouldAutoHide) {}
- public void updateColor(ExtractedColors extractedColors) {}
-
@Override
protected boolean verifyDrawable(Drawable who) {
return super.verifyDrawable(who) || who == getCaretDrawable();
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java b/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java
index 6281fec03..5eedd92fd 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java
@@ -11,9 +11,7 @@ import android.graphics.Color;
import android.graphics.Paint;
import android.os.Handler;
import android.os.Looper;
-import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet;
-import android.util.Log;
import android.util.Property;
import android.view.ViewConfiguration;
import android.widget.ImageView;
@@ -21,8 +19,6 @@ import android.widget.ImageView;
import com.android.launcher3.Launcher;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
-import com.android.launcher3.config.FeatureFlags;
-import com.android.launcher3.dynamicui.ExtractedColors;
import com.android.launcher3.dynamicui.WallpaperColorInfo;
/**
@@ -31,9 +27,6 @@ import com.android.launcher3.dynamicui.WallpaperColorInfo;
* The fraction is 1 / number of pages and the position is based on the progress of the page scroll.
*/
public class PageIndicatorLineCaret extends PageIndicator {
- private static final String TAG = "PageIndicatorLine";
-
- private static final int[] sTempCoords = new int[2];
private static final int LINE_ANIMATE_DURATION = ViewConfiguration.getScrollBarFadeDuration();
private static final int LINE_FADE_DELAY = ViewConfiguration.getScrollDefaultDelay();
@@ -218,32 +211,6 @@ public class PageIndicatorLineCaret extends PageIndicator {
}
}
- /**
- * The line's color will be:
- * - mostly opaque white if the hotseat is white (ignoring alpha)
- * - mostly opaque black if the hotseat is black (ignoring alpha)
- */
- public void updateColor(ExtractedColors extractedColors) {
- if (FeatureFlags.LAUNCHER3_GRADIENT_ALL_APPS) {
- return;
- }
- int originalLineAlpha = mLinePaint.getAlpha();
- int color = extractedColors.getColor(ExtractedColors.HOTSEAT_INDEX);
- if (color != Color.TRANSPARENT) {
- color = ColorUtils.setAlphaComponent(color, 255);
- if (color == Color.BLACK) {
- mActiveAlpha = BLACK_ALPHA;
- } else if (color == Color.WHITE) {
- mActiveAlpha = WHITE_ALPHA;
- } else {
- Log.e(TAG, "Setting workspace page indicators to an unsupported color: #"
- + Integer.toHexString(color));
- }
- mLinePaint.setColor(color);
- mLinePaint.setAlpha(originalLineAlpha);
- }
- }
-
private void animateLineToAlpha(int alpha) {
if (alpha == mToAlpha) {
// Ignore the new animation if it is going to the same alpha as the current animation.