mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 15:26:58 +00:00
Add OverviewScreenshotActions plugin interface and use it in TaskView.
Bug: 139828243 Change-Id: Idbefc11ef32619dd5eaaa5552088859eb2304e1e
This commit is contained in:
@@ -39,23 +39,27 @@ import android.util.AttributeSet;
|
||||
import android.util.FloatProperty;
|
||||
import android.util.Property;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.android.launcher3.BaseActivity;
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper;
|
||||
import com.android.launcher3.util.SystemUiController;
|
||||
import com.android.launcher3.util.Themes;
|
||||
import com.android.quickstep.TaskOverlayFactory;
|
||||
import com.android.quickstep.TaskOverlayFactory.TaskOverlay;
|
||||
import com.android.quickstep.util.TaskCornerRadius;
|
||||
import com.android.systemui.plugins.OverviewScreenshotActions;
|
||||
import com.android.systemui.plugins.PluginListener;
|
||||
import com.android.systemui.shared.recents.model.Task;
|
||||
import com.android.systemui.shared.recents.model.ThumbnailData;
|
||||
|
||||
/**
|
||||
* A task in the Recents view.
|
||||
*/
|
||||
public class TaskThumbnailView extends View {
|
||||
public class TaskThumbnailView extends View implements PluginListener<OverviewScreenshotActions> {
|
||||
|
||||
private final static ColorMatrix COLOR_MATRIX = new ColorMatrix();
|
||||
private final static ColorMatrix SATURATION_COLOR_MATRIX = new ColorMatrix();
|
||||
@@ -99,6 +103,7 @@ public class TaskThumbnailView extends View {
|
||||
|
||||
private boolean mOverlayEnabled;
|
||||
private boolean mRotated;
|
||||
private OverviewScreenshotActions mOverviewScreenshotActionsPlugin;
|
||||
|
||||
public TaskThumbnailView(Context context) {
|
||||
this(context, null);
|
||||
@@ -146,6 +151,10 @@ public class TaskThumbnailView extends View {
|
||||
mPaint.setShader(null);
|
||||
mOverlay.reset();
|
||||
}
|
||||
if (mOverviewScreenshotActionsPlugin != null) {
|
||||
mOverviewScreenshotActionsPlugin
|
||||
.setupActions((ViewGroup) getTaskView(), getThumbnail(), mActivity);
|
||||
}
|
||||
updateThumbnailPaintFilter();
|
||||
}
|
||||
|
||||
@@ -210,6 +219,33 @@ public class TaskThumbnailView extends View {
|
||||
canvas.restore();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPluginConnected(OverviewScreenshotActions overviewScreenshotActions,
|
||||
Context context) {
|
||||
mOverviewScreenshotActionsPlugin = overviewScreenshotActions;
|
||||
mOverviewScreenshotActionsPlugin.setupActions(getTaskView(), getThumbnail(), mActivity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPluginDisconnected(OverviewScreenshotActions plugin) {
|
||||
if (mOverviewScreenshotActionsPlugin != null) {
|
||||
mOverviewScreenshotActionsPlugin = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttachedToWindow() {
|
||||
super.onAttachedToWindow();
|
||||
PluginManagerWrapper.INSTANCE.get(getContext())
|
||||
.addPluginListener(this, OverviewScreenshotActions.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
PluginManagerWrapper.INSTANCE.get(getContext()).removePluginListener(this);
|
||||
}
|
||||
|
||||
public RectF getInsetsToDrawInFullscreen(boolean isMultiWindowMode) {
|
||||
// Don't show insets in multi window mode.
|
||||
return isMultiWindowMode ? EMPTY_RECT_F : mClippedInsets;
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.systemui.plugins;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.Bitmap;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.android.systemui.plugins.annotations.ProvidesInterface;
|
||||
|
||||
/**
|
||||
* Implement this interface to add action buttons for overview screenshots, e.g. share, edit etc.
|
||||
*/
|
||||
@ProvidesInterface(
|
||||
action = OverviewScreenshotActions.ACTION, version = OverviewScreenshotActions.VERSION)
|
||||
public interface OverviewScreenshotActions extends Plugin {
|
||||
String ACTION = "com.android.systemui.action.PLUGIN_OVERVIEW_SCREENSHOT_ACTIONS";
|
||||
int VERSION = 1;
|
||||
|
||||
/**
|
||||
* Setup the actions for the screenshot, including edit, save, etc.
|
||||
* @param parent The parent view to add buttons on.
|
||||
* @param screenshot The screenshot we will do actions on.
|
||||
* @param activity THe host activity.
|
||||
*/
|
||||
void setupActions(ViewGroup parent, Bitmap screenshot, Activity activity);
|
||||
}
|
||||
Reference in New Issue
Block a user