Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit b966ea25 authored by someone5678's avatar someone5678 Committed by Michael Bestas
Browse files

fixup! Screenshot: Add delete action chip intent

* Restore and adapt code for delete action

Test: Build, boot, take screenshot, check delete action chip works.

Change-Id: I3157169963065720d6b3ce9b5ad98a9d6bb74e82
parent b9990547
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.content.ClipDescription;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -39,6 +40,7 @@ import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.res.R;

import com.google.common.util.concurrent.ListenableFuture;

@@ -161,6 +163,7 @@ class SaveImageInBackgroundTask extends AsyncTask<String, Void, Void> {
            mImageData.uri = uri;
            mImageData.owner = mParams.owner;
            mImageData.smartActions = smartActions;
            mImageData.deleteAction = createDeleteAction(mContext, uri, smartActionsEnabled);
            mImageData.quickShareAction = createQuickShareAction(
                    mQuickShareData.quickShareAction, mScreenshotId, uri, mImageTime, image,
                    mParams.owner);
@@ -213,6 +216,31 @@ class SaveImageInBackgroundTask extends AsyncTask<String, Void, Void> {
        mParams.clearImage();
    }

    Notification.Action createDeleteAction(Context context, Uri uri,
            boolean smartActionsEnabled) {
        // Make sure pending intents for the system user are still unique across users
        // by setting the (otherwise unused) request code to the current user id.
        int requestCode = mContext.getUserId();

        // Create a delete action for the notification
        PendingIntent deleteAction = PendingIntent.getBroadcast(context, requestCode,
                new Intent(context, DeleteScreenshotReceiver.class)
                        .putExtra(ScreenshotController.SCREENSHOT_URI_ID, uri.toString())
                        .putExtra(ScreenshotController.EXTRA_ID, mScreenshotId)
                        .putExtra(ScreenshotController.EXTRA_SMART_ACTIONS_ENABLED,
                                smartActionsEnabled)
                        .addFlags(Intent.FLAG_RECEIVER_FOREGROUND),
                PendingIntent.FLAG_CANCEL_CURRENT
                        | PendingIntent.FLAG_ONE_SHOT
                        | PendingIntent.FLAG_IMMUTABLE);
        Notification.Action.Builder deleteActionBuilder = new Notification.Action.Builder(
                Icon.createWithResource(mContext.getResources(), R.drawable.ic_screenshot_delete),
                mContext.getResources().getString(com.android.internal.R.string.delete),
                deleteAction);

        return deleteActionBuilder.build();
    }

    private List<Notification.Action> buildSmartActions(
            List<Notification.Action> actions, Context context) {
        List<Notification.Action> broadcastActions = new ArrayList<>();
+2 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ public class ScreenshotController {
     */
    static class SavedImageData {
        public Uri uri;
        public Notification.Action deleteAction;
        public List<Notification.Action> smartActions;
        public Notification.Action quickShareAction;
        public UserHandle owner;
@@ -183,6 +184,7 @@ public class ScreenshotController {
         */
        public void reset() {
            uri = null;
            deleteAction = null;
            smartActions = null;
            quickShareAction = null;
            subject = null;