diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java | 12 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java index a60c24146d9f..7d5779949074 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java @@ -38,6 +38,7 @@ import android.app.ActivityOptions; import android.app.ExitTransitionCoordinator; import android.app.ExitTransitionCoordinator.ExitTransitionCallbacks; import android.app.Notification; +import android.app.WindowContext; import android.content.ComponentName; import android.content.Context; import android.content.pm.ActivityInfo; @@ -165,7 +166,7 @@ public class ScreenshotController { // From WizardManagerHelper.java private static final String SETTINGS_SECURE_USER_SETUP_COMPLETE = "user_setup_complete"; - private final Context mContext; + private final WindowContext mContext; private final ScreenshotNotificationsController mNotificationsController; private final ScreenshotSmartActions mScreenshotSmartActions; private final UiEventLogger mUiEventLogger; @@ -240,7 +241,7 @@ public class ScreenshotController { final DisplayManager dm = requireNonNull(context.getSystemService(DisplayManager.class)); final Display display = dm.getDisplay(DEFAULT_DISPLAY); final Context displayContext = context.createDisplayContext(display); - mContext = displayContext.createWindowContext(TYPE_SCREENSHOT, null); + mContext = (WindowContext) displayContext.createWindowContext(TYPE_SCREENSHOT, null); mWindowManager = mContext.getSystemService(WindowManager.class); mAccessibilityManager = AccessibilityManager.getInstance(mContext); @@ -352,6 +353,13 @@ public class ScreenshotController { } /** + * Release the constructed window context. + */ + void releaseContext() { + mContext.release(); + } + + /** * Update resources on configuration change. Reinflate for theme/color changes. */ private void reloadAssets() { diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java index c2b20d37f3f3..c33bbc51ed5b 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java @@ -123,6 +123,9 @@ public class TakeScreenshotService extends Service { @Override public void onDestroy() { super.onDestroy(); + if (mScreenshot != null) { + mScreenshot.releaseContext(); + } if (DEBUG_SERVICE) { Log.d(TAG, "onDestroy"); } |