Loading core/java/com/android/internal/util/ScreenshotHelper.java +30 −11 Original line number Diff line number Diff line package com.android.internal.util; import static android.content.Intent.ACTION_USER_SWITCHED; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_OTHER; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.graphics.Insets; import android.graphics.Rect; Loading Loading @@ -161,8 +164,21 @@ public class ScreenshotHelper { private ServiceConnection mScreenshotConnection = null; private final Context mContext; private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { synchronized (mScreenshotLock) { if (ACTION_USER_SWITCHED.equals(intent.getAction())) { resetConnection(); } } } }; public ScreenshotHelper(Context context) { mContext = context; IntentFilter filter = new IntentFilter(ACTION_USER_SWITCHED); mContext.registerReceiver(mBroadcastReceiver, filter); } /** Loading Loading @@ -280,9 +296,7 @@ public class ScreenshotHelper { synchronized (mScreenshotLock) { if (mScreenshotConnection != null) { Log.e(TAG, "Timed out before getting screenshot capture response"); mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; resetConnection(); notifyScreenshotError(); } } Loading @@ -305,11 +319,7 @@ public class ScreenshotHelper { break; case SCREENSHOT_MSG_PROCESS_COMPLETE: synchronized (mScreenshotLock) { if (mScreenshotConnection != null) { mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; } resetConnection(); } break; } Loading Loading @@ -349,9 +359,7 @@ public class ScreenshotHelper { public void onServiceDisconnected(ComponentName name) { synchronized (mScreenshotLock) { if (mScreenshotConnection != null) { mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; resetConnection(); // only log an error if we're still within the timeout period if (handler.hasCallbacks(mScreenshotTimeout)) { Log.e(TAG, "Screenshot service disconnected"); Loading Loading @@ -384,6 +392,17 @@ public class ScreenshotHelper { } } /** * Unbinds the current screenshot connection (if any). */ private void resetConnection() { if (mScreenshotConnection != null) { mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; } } /** * Notifies the screenshot service to show an error. */ Loading packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java +2 −2 Original line number Diff line number Diff line Loading @@ -125,9 +125,9 @@ public class TakeScreenshotService extends Service { }; @Inject public TakeScreenshotService(ScreenshotController globalScreenshot, UserManager userManager, public TakeScreenshotService(ScreenshotController screenshotController, UserManager userManager, UiEventLogger uiEventLogger) { mScreenshot = globalScreenshot; mScreenshot = screenshotController; mUserManager = userManager; mUiEventLogger = uiEventLogger; } Loading Loading
core/java/com/android/internal/util/ScreenshotHelper.java +30 −11 Original line number Diff line number Diff line package com.android.internal.util; import static android.content.Intent.ACTION_USER_SWITCHED; import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_OTHER; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.graphics.Insets; import android.graphics.Rect; Loading Loading @@ -161,8 +164,21 @@ public class ScreenshotHelper { private ServiceConnection mScreenshotConnection = null; private final Context mContext; private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { synchronized (mScreenshotLock) { if (ACTION_USER_SWITCHED.equals(intent.getAction())) { resetConnection(); } } } }; public ScreenshotHelper(Context context) { mContext = context; IntentFilter filter = new IntentFilter(ACTION_USER_SWITCHED); mContext.registerReceiver(mBroadcastReceiver, filter); } /** Loading Loading @@ -280,9 +296,7 @@ public class ScreenshotHelper { synchronized (mScreenshotLock) { if (mScreenshotConnection != null) { Log.e(TAG, "Timed out before getting screenshot capture response"); mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; resetConnection(); notifyScreenshotError(); } } Loading @@ -305,11 +319,7 @@ public class ScreenshotHelper { break; case SCREENSHOT_MSG_PROCESS_COMPLETE: synchronized (mScreenshotLock) { if (mScreenshotConnection != null) { mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; } resetConnection(); } break; } Loading Loading @@ -349,9 +359,7 @@ public class ScreenshotHelper { public void onServiceDisconnected(ComponentName name) { synchronized (mScreenshotLock) { if (mScreenshotConnection != null) { mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; resetConnection(); // only log an error if we're still within the timeout period if (handler.hasCallbacks(mScreenshotTimeout)) { Log.e(TAG, "Screenshot service disconnected"); Loading Loading @@ -384,6 +392,17 @@ public class ScreenshotHelper { } } /** * Unbinds the current screenshot connection (if any). */ private void resetConnection() { if (mScreenshotConnection != null) { mContext.unbindService(mScreenshotConnection); mScreenshotConnection = null; mScreenshotService = null; } } /** * Notifies the screenshot service to show an error. */ Loading
packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java +2 −2 Original line number Diff line number Diff line Loading @@ -125,9 +125,9 @@ public class TakeScreenshotService extends Service { }; @Inject public TakeScreenshotService(ScreenshotController globalScreenshot, UserManager userManager, public TakeScreenshotService(ScreenshotController screenshotController, UserManager userManager, UiEventLogger uiEventLogger) { mScreenshot = globalScreenshot; mScreenshot = screenshotController; mUserManager = userManager; mUiEventLogger = uiEventLogger; } Loading