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

Commit db8e6303 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Screenshots - add edit action and remove delete."

parents 96e4f86c 134f2cc9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4821,4 +4821,7 @@
    <!-- Text describing a permission request for one app to show another app's
         slices [CHAR LIMIT=NONE] -->
    <string name="slices_permission_request"><xliff:g id="app" example="Example App">%1$s</xliff:g> wants to show <xliff:g id="app_2" example="Other Example App">%2$s</xliff:g> slices</string>

    <!-- Notification action for editing a screenshot (drawing on it, cropping it, etc) -->
    <string name="screenshot_edit">Edit</string>
</resources>
+3 −0
Original line number Diff line number Diff line
@@ -3227,5 +3227,8 @@
  <java-symbol type="string" name="config_defaultAssistantAccessPackage" />

  <java-symbol type="bool" name="config_supportBluetoothPersistedState" />

  <java-symbol type="string" name="slices_permission_request" />

  <java-symbol type="string" name="screenshot_edit" />
</resources>
+27 −0
Original line number Diff line number Diff line
<!--
Copyright (C) 2014 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24.0dp"
        android:height="24.0dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M3.0,17.25L3.0,21.0l3.75,0.0L17.81,9.94l-3.75,-3.75L3.0,17.25zM20.71,7.04c0.39,-0.3 0.39,-1.02 0.0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0.0l-1.83,1.83 3.75,3.75 1.83,-1.83z"/>
    <path
        android:pathData="M0 0h24v24H0z"
        android:fillColor="#00000000"/>
</vector>
+22 −17
Original line number Diff line number Diff line
@@ -293,12 +293,13 @@ class SaveImageInBackgroundTask extends AsyncTask<Void, Void, Void> {
            sharingIntent.putExtra(Intent.EXTRA_STREAM, uri);
            sharingIntent.putExtra(Intent.EXTRA_SUBJECT, subject);

            // Create a share action for the notification. Note, we proxy the call to ShareReceiver
            // because RemoteViews currently forces an activity options on the PendingIntent being
            // launched, and since we don't want to trigger the share sheet in this case, we will
            // start the chooser activitiy directly in ShareReceiver.
            // Create a share action for the notification. Note, we proxy the call to
            // ScreenshotActionReceiver because RemoteViews currently forces an activity options
            // on the PendingIntent being launched, and since we don't want to trigger the share
            // sheet in this case, we start the chooser activity directly in
            // ScreenshotActionReceiver.
            PendingIntent shareAction = PendingIntent.getBroadcast(context, 0,
                    new Intent(context, GlobalScreenshot.ShareReceiver.class)
                    new Intent(context, GlobalScreenshot.ScreenshotActionReceiver.class)
                            .putExtra(SHARING_INTENT, sharingIntent),
                    PendingIntent.FLAG_CANCEL_CURRENT);
            Notification.Action.Builder shareActionBuilder = new Notification.Action.Builder(
@@ -306,15 +307,19 @@ class SaveImageInBackgroundTask extends AsyncTask<Void, Void, Void> {
                    r.getString(com.android.internal.R.string.share), shareAction);
            mNotificationBuilder.addAction(shareActionBuilder.build());

            // Create a delete action for the notification
            PendingIntent deleteAction = PendingIntent.getBroadcast(context, 0,
                    new Intent(context, GlobalScreenshot.DeleteScreenshotReceiver.class)
                            .putExtra(GlobalScreenshot.SCREENSHOT_URI_ID, uri.toString()),
                    PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT);
            Notification.Action.Builder deleteActionBuilder = new Notification.Action.Builder(
                    R.drawable.ic_screenshot_delete,
                    r.getString(com.android.internal.R.string.delete), deleteAction);
            mNotificationBuilder.addAction(deleteActionBuilder.build());
            Intent editIntent = new Intent(Intent.ACTION_EDIT);
            editIntent.setType("image/png");
            editIntent.putExtra(Intent.EXTRA_STREAM, uri);

            // Create a edit action for the notification the same way.
            PendingIntent editAction = PendingIntent.getBroadcast(context, 1,
                    new Intent(context, GlobalScreenshot.ScreenshotActionReceiver.class)
                            .putExtra(SHARING_INTENT, editIntent),
                    PendingIntent.FLAG_CANCEL_CURRENT);
            Notification.Action.Builder editActionBuilder = new Notification.Action.Builder(
                    R.drawable.ic_screenshot_edit,
                    r.getString(com.android.internal.R.string.screenshot_edit), editAction);
            mNotificationBuilder.addAction(editActionBuilder.build());

            mParams.imageUri = uri;
            mParams.image = null;
@@ -879,9 +884,9 @@ class GlobalScreenshot {
    }

    /**
     * Receiver to proxy the share intent.
     * Receiver to proxy the share or edit intent.
     */
    public static class ShareReceiver extends BroadcastReceiver {
    public static class ScreenshotActionReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            try {
@@ -903,7 +908,7 @@ class GlobalScreenshot {
    }

    /**
     * Removes the notification for a screenshot after a share target is chosen.
     * Removes the notification for a screenshot after a share or edit target is chosen.
     */
    public static class TargetChosenReceiver extends BroadcastReceiver {
        @Override