mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-02 17:06:49 +00:00
Using public APIs for hardware bitmaps
Bug: 35428783 Change-Id: I4e7eeaa94e0cdfb1c76dce507a6f855e4eebbd6c
This commit is contained in:
@@ -24,19 +24,17 @@ import android.graphics.Paint;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffXfermode;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.Region.Op;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Handler;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.launcher3.BubbleTextView;
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.folder.FolderIcon;
|
||||
import com.android.launcher3.uioverrides.UiFactory;
|
||||
import com.android.launcher3.util.UiThreadHelper;
|
||||
import com.android.launcher3.widget.LauncherAppWidgetHostView;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
@@ -119,28 +117,26 @@ public class DragPreviewProvider {
|
||||
* Responsibility for the bitmap is transferred to the caller.
|
||||
*/
|
||||
public Bitmap createDragBitmap() {
|
||||
float scale = 1f;
|
||||
int width = mView.getWidth();
|
||||
int height = mView.getHeight();
|
||||
|
||||
boolean forceSoftwareRenderer = false;
|
||||
if (mView instanceof BubbleTextView) {
|
||||
Drawable d = ((BubbleTextView) mView).getIcon();
|
||||
Rect bounds = getDrawableBounds(d);
|
||||
width = bounds.width();
|
||||
height = bounds.height();
|
||||
} else if (mView instanceof LauncherAppWidgetHostView) {
|
||||
scale = ((LauncherAppWidgetHostView) mView).getScaleToFit();
|
||||
float scale = ((LauncherAppWidgetHostView) mView).getScaleToFit();
|
||||
width = (int) (mView.getWidth() * scale);
|
||||
height = (int) (mView.getHeight() * scale);
|
||||
|
||||
// Use software renderer for widgets as we know that they already work
|
||||
forceSoftwareRenderer = true;
|
||||
return BitmapRenderer.createSoftwareBitmap(width + blurSizeOutline,
|
||||
height + blurSizeOutline, (c) -> drawDragView(c, scale));
|
||||
}
|
||||
|
||||
final float scaleFinal = scale;
|
||||
return UiFactory.createFromRenderer(width + blurSizeOutline, height + blurSizeOutline,
|
||||
forceSoftwareRenderer, (c) -> drawDragView(c, scaleFinal));
|
||||
return BitmapRenderer.createHardwareBitmap(width + blurSizeOutline,
|
||||
height + blurSizeOutline, (c) -> drawDragView(c, 1));
|
||||
}
|
||||
|
||||
public final void generateDragOutline(Bitmap preview) {
|
||||
|
||||
Reference in New Issue
Block a user