diff options
4 files changed, 25 insertions, 27 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotViewProxy.kt b/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotViewProxy.kt index 1d9b755cbb6a..1f6d2122ebfc 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotViewProxy.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/LegacyScreenshotViewProxy.kt @@ -22,7 +22,6 @@ import android.content.Context import android.graphics.Bitmap import android.graphics.Rect import android.util.Log -import android.view.Display import android.view.KeyEvent import android.view.LayoutInflater import android.view.ScrollCaptureResponse @@ -37,30 +36,33 @@ import com.android.systemui.flags.FeatureFlags import com.android.systemui.res.R import com.android.systemui.screenshot.LogConfig.DEBUG_DISMISS import com.android.systemui.screenshot.ScreenshotEvent.SCREENSHOT_DISMISSED_OTHER +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject /** * Legacy implementation of screenshot view methods. Just proxies the calls down into the original * ScreenshotView. */ -class LegacyScreenshotViewProxy(private val context: Context, private val logger: UiEventLogger) : - ScreenshotViewProxy { +class LegacyScreenshotViewProxy +@AssistedInject +constructor( + private val logger: UiEventLogger, + flags: FeatureFlags, + @Assisted private val context: Context, + @Assisted private val displayId: Int +) : ScreenshotViewProxy { override val view: ScreenshotView = LayoutInflater.from(context).inflate(R.layout.screenshot, null) as ScreenshotView override val screenshotPreview: View - override var defaultDisplay: Int = Display.DEFAULT_DISPLAY - set(value) { - view.setDefaultDisplay(value) - } - override var flags: FeatureFlags? = null - set(value) { - view.setFlags(value) - } override var packageName: String = "" set(value) { + field = value view.setPackageName(value) } override var callbacks: ScreenshotView.ScreenshotViewCallback? = null set(value) { + field = value view.setCallbacks(value) } override var screenshot: ScreenshotData? = null @@ -86,6 +88,8 @@ class LegacyScreenshotViewProxy(private val context: Context, private val logger init { view.setUiEventLogger(logger) + view.setDefaultDisplay(displayId) + view.setFlags(flags) addPredictiveBackListener { requestDismissal(SCREENSHOT_DISMISSED_OTHER) } setOnKeyListener { requestDismissal(SCREENSHOT_DISMISSED_OTHER) } if (LogConfig.DEBUG_WINDOW) { @@ -180,7 +184,7 @@ class LegacyScreenshotViewProxy(private val context: Context, private val logger if (LogConfig.DEBUG_INPUT) { Log.d(TAG, "Predictive Back callback dispatched") } - onDismissRequested.invoke(ScreenshotEvent.SCREENSHOT_DISMISSED_OTHER) + onDismissRequested.invoke(SCREENSHOT_DISMISSED_OTHER) } view.addOnAttachStateChangeListener( object : View.OnAttachStateChangeListener { @@ -215,7 +219,7 @@ class LegacyScreenshotViewProxy(private val context: Context, private val logger if (LogConfig.DEBUG_INPUT) { Log.d(TAG, "onKeyEvent: $keyCode") } - onDismissRequested.invoke(ScreenshotEvent.SCREENSHOT_DISMISSED_OTHER) + onDismissRequested.invoke(SCREENSHOT_DISMISSED_OTHER) return true } return false @@ -224,10 +228,9 @@ class LegacyScreenshotViewProxy(private val context: Context, private val logger ) } - class Factory : ScreenshotViewProxy.Factory { - override fun getProxy(context: Context, logger: UiEventLogger): ScreenshotViewProxy { - return LegacyScreenshotViewProxy(context, logger) - } + @AssistedFactory + interface Factory : ScreenshotViewProxy.Factory { + override fun getProxy(context: Context, displayId: Int): LegacyScreenshotViewProxy } companion object { diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java index 9aaed9eba5d4..198a29c4ed5b 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java @@ -344,7 +344,7 @@ public class ScreenshotController { mMessageContainerController = messageContainerController; mAssistContentRequester = assistContentRequester; - mViewProxy = viewProxyFactory.getProxy(mContext, mUiEventLogger); + mViewProxy = viewProxyFactory.getProxy(mContext, mDisplayId); mScreenshotHandler.setOnTimeoutRunnable(() -> { if (DEBUG_UI) { @@ -595,8 +595,6 @@ public class ScreenshotController { setWindowFocusable(false); } }); - mViewProxy.setFlags(mFlags); - mViewProxy.setDefaultDisplay(mDisplayId); if (DEBUG_WINDOW) { Log.d(TAG, "setContentView: " + mViewProxy.getView()); diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotViewProxy.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotViewProxy.kt index d01966000af8..182b8894677a 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotViewProxy.kt +++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotViewProxy.kt @@ -25,16 +25,12 @@ import android.view.ScrollCaptureResponse import android.view.View import android.view.ViewGroup import android.view.WindowInsets -import com.android.internal.logging.UiEventLogger -import com.android.systemui.flags.FeatureFlags /** Abstraction of the surface between ScreenshotController and ScreenshotView */ interface ScreenshotViewProxy { val view: ViewGroup val screenshotPreview: View - var defaultDisplay: Int - var flags: FeatureFlags? var packageName: String var callbacks: ScreenshotView.ScreenshotViewCallback? var screenshot: ScreenshotData? @@ -73,6 +69,6 @@ interface ScreenshotViewProxy { fun prepareEntranceAnimation(runnable: Runnable) interface Factory { - fun getProxy(context: Context, logger: UiEventLogger): ScreenshotViewProxy + fun getProxy(context: Context, displayId: Int): ScreenshotViewProxy } } diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java b/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java index a00c81d43b9e..cdb9abb15e84 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/dagger/ScreenshotModule.java @@ -86,7 +86,8 @@ public abstract class ScreenshotModule { ScreenshotSoundControllerImpl screenshotSoundProviderImpl); @Provides - static ScreenshotViewProxy.Factory providesScreenshotViewProxyFactory() { - return new LegacyScreenshotViewProxy.Factory(); + static ScreenshotViewProxy.Factory providesScreenshotViewProxyFactory( + LegacyScreenshotViewProxy.Factory legacyScreenshotViewProxyFactory) { + return legacyScreenshotViewProxyFactory; } } |