mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 18:58:19 +00:00
Merging Motorola's patch to disable apps when is safe mode.
issue: 16044192 Change-Id: I10069dcdf459ecc71361271e883eabb743d77822
This commit is contained in:
@@ -19,15 +19,24 @@ package com.android.launcher3;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.ColorMatrix;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
class FastBitmapDrawable extends Drawable {
|
||||
|
||||
private static final ColorMatrix sTempSaturationMatrix = new ColorMatrix();
|
||||
private static final ColorMatrix sTempBrightnessMatrix = new ColorMatrix();
|
||||
|
||||
private final Paint mPaint = new Paint(Paint.FILTER_BITMAP_FLAG);
|
||||
private Bitmap mBitmap;
|
||||
private int mAlpha;
|
||||
private final Paint mPaint = new Paint(Paint.FILTER_BITMAP_FLAG);
|
||||
|
||||
private float mSatutation = 1;
|
||||
private int mBrightness = 0;
|
||||
|
||||
FastBitmapDrawable(Bitmap b) {
|
||||
mAlpha = 255;
|
||||
@@ -44,7 +53,7 @@ class FastBitmapDrawable extends Drawable {
|
||||
|
||||
@Override
|
||||
public void setColorFilter(ColorFilter cf) {
|
||||
mPaint.setColorFilter(cf);
|
||||
// No op
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -58,6 +67,7 @@ class FastBitmapDrawable extends Drawable {
|
||||
mPaint.setAlpha(alpha);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFilterBitmap(boolean filterBitmap) {
|
||||
mPaint.setFilterBitmap(filterBitmap);
|
||||
mPaint.setAntiAlias(filterBitmap);
|
||||
@@ -90,4 +100,51 @@ class FastBitmapDrawable extends Drawable {
|
||||
public Bitmap getBitmap() {
|
||||
return mBitmap;
|
||||
}
|
||||
|
||||
public float getSaturation() {
|
||||
return mSatutation;
|
||||
}
|
||||
|
||||
public void setSaturation(float saturation) {
|
||||
mSatutation = saturation;
|
||||
updateFilter();
|
||||
}
|
||||
|
||||
public int getBrightness() {
|
||||
return mBrightness;
|
||||
}
|
||||
|
||||
public void addBrightness(int amount) {
|
||||
mBrightness += amount;
|
||||
updateFilter();
|
||||
}
|
||||
|
||||
public void setBrightness(int brightness) {
|
||||
mBrightness = brightness;
|
||||
updateFilter();
|
||||
}
|
||||
|
||||
private void updateFilter() {
|
||||
if (mSatutation != 1 || mBrightness != 0) {
|
||||
sTempSaturationMatrix.setSaturation(mSatutation);
|
||||
|
||||
if (mBrightness != 0) {
|
||||
// Brightness: C-new = C-old*(1-amount) + amount
|
||||
float scale = 1 - mBrightness / 255.0f;
|
||||
sTempBrightnessMatrix.setScale(scale, scale, scale, 1);
|
||||
float[] array = sTempBrightnessMatrix.getArray();
|
||||
|
||||
// Add the amount to RGB components of the matrix, as per the above formula.
|
||||
// Fifth elements in the array correspond to the constant being added to
|
||||
// red, blue, green, and alpha channel respectively.
|
||||
array[4] = mBrightness;
|
||||
array[9] = mBrightness;
|
||||
array[14] = mBrightness;
|
||||
sTempSaturationMatrix.preConcat(sTempBrightnessMatrix);
|
||||
}
|
||||
mPaint.setColorFilter(new ColorMatrixColorFilter(sTempSaturationMatrix));
|
||||
} else {
|
||||
mPaint.setColorFilter(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user