Merge "Close screenshot UI on CLOSE_SYSTEM_DIALOGS intent" into rvc-dev am: 703aaba6c6

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11908617

Change-Id: I00125bc08fef4a5f1da08b8ce8d16157dd538cce
This commit is contained in:
Miranda Kephart
2020-06-19 18:25:26 +00:00
committed by Automerger Merge Worker
2 changed files with 22 additions and 1 deletions

View File

@@ -622,7 +622,7 @@ public class GlobalScreenshot implements ViewTreeObserver.OnComputeInternalInset
/** /**
* Clears current screenshot * Clears current screenshot
*/ */
private void dismissScreenshot(String reason, boolean immediate) { void dismissScreenshot(String reason, boolean immediate) {
Log.v(TAG, "clearing screenshot: " + reason); Log.v(TAG, "clearing screenshot: " + reason);
mScreenshotHandler.removeMessages(MESSAGE_CORNER_TIMEOUT); mScreenshotHandler.removeMessages(MESSAGE_CORNER_TIMEOUT);
mScreenshotLayout.getViewTreeObserver().removeOnComputeInternalInsetsListener(this); mScreenshotLayout.getViewTreeObserver().removeOnComputeInternalInsetsListener(this);

View File

@@ -16,12 +16,17 @@
package com.android.systemui.screenshot; package com.android.systemui.screenshot;
import static android.content.Intent.ACTION_CLOSE_SYSTEM_DIALOGS;
import static com.android.internal.util.ScreenshotHelper.SCREENSHOT_MSG_PROCESS_COMPLETE; import static com.android.internal.util.ScreenshotHelper.SCREENSHOT_MSG_PROCESS_COMPLETE;
import static com.android.internal.util.ScreenshotHelper.SCREENSHOT_MSG_URI; import static com.android.internal.util.ScreenshotHelper.SCREENSHOT_MSG_URI;
import android.app.Service; import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Insets; import android.graphics.Insets;
import android.graphics.Rect; import android.graphics.Rect;
@@ -51,6 +56,16 @@ public class TakeScreenshotService extends Service {
private final UserManager mUserManager; private final UserManager mUserManager;
private final UiEventLogger mUiEventLogger; private final UiEventLogger mUiEventLogger;
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction()) && mScreenshot != null) {
mScreenshot.dismissScreenshot("close system dialogs", true);
}
}
};
private Handler mHandler = new Handler(Looper.myLooper()) { private Handler mHandler = new Handler(Looper.myLooper()) {
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(Message msg) {
@@ -119,12 +134,18 @@ public class TakeScreenshotService extends Service {
@Override @Override
public IBinder onBind(Intent intent) { public IBinder onBind(Intent intent) {
// register broadcast receiver
IntentFilter filter = new IntentFilter(ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(mBroadcastReceiver, filter);
return new Messenger(mHandler).getBinder(); return new Messenger(mHandler).getBinder();
} }
@Override @Override
public boolean onUnbind(Intent intent) { public boolean onUnbind(Intent intent) {
if (mScreenshot != null) mScreenshot.stopScreenshot(); if (mScreenshot != null) mScreenshot.stopScreenshot();
unregisterReceiver(mBroadcastReceiver);
return true; return true;
} }
} }