diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index e47c7a0cb2210..cc8e46bafed80 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -225,6 +225,12 @@
+
+
+
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_menu_share.png b/packages/SystemUI/res/drawable-hdpi/ic_menu_share.png
deleted file mode 100644
index 11ab4807acc9c..0000000000000
Binary files a/packages/SystemUI/res/drawable-hdpi/ic_menu_share.png and /dev/null differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_menu_share.png b/packages/SystemUI/res/drawable-mdpi/ic_menu_share.png
deleted file mode 100644
index 30e69bba99a32..0000000000000
Binary files a/packages/SystemUI/res/drawable-mdpi/ic_menu_share.png and /dev/null differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_menu_share.png b/packages/SystemUI/res/drawable-xhdpi/ic_menu_share.png
deleted file mode 100644
index af3e112fbf0cd..0000000000000
Binary files a/packages/SystemUI/res/drawable-xhdpi/ic_menu_share.png and /dev/null differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_menu_share.png b/packages/SystemUI/res/drawable-xxhdpi/ic_menu_share.png
deleted file mode 100644
index d4505319b999c..0000000000000
Binary files a/packages/SystemUI/res/drawable-xxhdpi/ic_menu_share.png and /dev/null differ
diff --git a/packages/SystemUI/res/drawable/ic_screenshot_delete.xml b/packages/SystemUI/res/drawable/ic_screenshot_delete.xml
new file mode 100644
index 0000000000000..e35c73dad7603
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_screenshot_delete.xml
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/packages/SystemUI/res/drawable/ic_screenshot_share.xml b/packages/SystemUI/res/drawable/ic_screenshot_share.xml
new file mode 100644
index 0000000000000..62733ec37576d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_screenshot_share.xml
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
index f16f6bd76d33c..7e32c3a5a9f60 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java
@@ -253,6 +253,17 @@ class SaveImageInBackgroundTask extends AsyncTask {
+ private static final String TAG = "DeleteImageInBackgroundTask";
+
+ private Context mContext;
+
+ DeleteImageInBackgroundTask(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ protected Void doInBackground(Uri... params) {
+ if (params.length != 1) return null;
+
+ Uri screenshotUri = params[0];
+ ContentResolver resolver = mContext.getContentResolver();
+ resolver.delete(screenshotUri, null, null);
+ return null;
+ }
+}
+
/**
* TODO:
* - Performance when over gl surfaces? Ie. Gallery
@@ -358,6 +390,7 @@ class GlobalScreenshot {
private static final String TAG = "GlobalScreenshot";
static final String CANCEL_ID = "android:cancel_id";
+ static final String SCREENSHOT_URI_ID = "android:screenshot_uri_id";
private static final int SCREENSHOT_FLASH_TO_PEAK_DURATION = 130;
private static final int SCREENSHOT_DROP_IN_DURATION = 430;
@@ -761,11 +794,33 @@ class GlobalScreenshot {
return;
}
+ // Clear the notification
final NotificationManager nm =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-
final int id = intent.getIntExtra(CANCEL_ID, 0);
nm.cancel(id);
}
}
+
+ /**
+ * Removes the last screenshot.
+ */
+ public static class DeleteScreenshotReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (!intent.hasExtra(CANCEL_ID) || !intent.hasExtra(SCREENSHOT_URI_ID)) {
+ return;
+ }
+
+ // Clear the notification
+ final NotificationManager nm =
+ (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ final int id = intent.getIntExtra(CANCEL_ID, 0);
+ final Uri uri = Uri.parse(intent.getStringExtra(SCREENSHOT_URI_ID));
+ nm.cancel(id);
+
+ // And delete the image from the media store
+ new DeleteImageInBackgroundTask(context).execute(uri);
+ }
+ }
}