diff options
| -rw-r--r-- | core/res/res/values/strings.xml | 3 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 3 | ||||
| -rw-r--r-- | packages/SystemUI/res/drawable/ic_screenshot_edit.xml | 27 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java | 39 |
4 files changed, 55 insertions, 17 deletions
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 0c844c9deb9d..170ba4264e04 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -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> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 03a800d8bd6f..955065706006 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -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> diff --git a/packages/SystemUI/res/drawable/ic_screenshot_edit.xml b/packages/SystemUI/res/drawable/ic_screenshot_edit.xml new file mode 100644 index 000000000000..d90129260fcc --- /dev/null +++ b/packages/SystemUI/res/drawable/ic_screenshot_edit.xml @@ -0,0 +1,27 @@ +<!-- +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> diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java index 6db46b5917b6..675aa8f73a09 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java @@ -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 |