Merge "Use Window Context for SurfaceControlViewHost." into tm-dev am: c85e97a7a1

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

Change-Id: I1cddafcef6a97b795ee0de64bdf2abf0ff02c80b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Tyler Lacey
2022-04-27 18:03:24 +00:00
committed by Automerger Merge Worker

View File

@@ -21,6 +21,7 @@ import android.annotation.Nullable;
import android.annotation.SdkConstant; import android.annotation.SdkConstant;
import android.annotation.SystemApi; import android.annotation.SystemApi;
import android.app.Service; import android.app.Service;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.hardware.display.DisplayManager; import android.hardware.display.DisplayManager;
import android.os.Binder; import android.os.Binder;
@@ -28,6 +29,7 @@ import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.view.Display; import android.view.Display;
import android.view.SurfaceControlViewHost; import android.view.SurfaceControlViewHost;
import android.view.WindowManager;
import com.android.internal.infra.AndroidFuture; import com.android.internal.infra.AndroidFuture;
import com.android.internal.util.function.pooled.PooledLambda; import com.android.internal.util.function.pooled.PooledLambda;
@@ -117,13 +119,18 @@ public abstract class GameSessionService extends Service {
} }
IBinder hostToken = new Binder(); IBinder hostToken = new Binder();
// Use a WindowContext so that views attached to the SurfaceControlViewHost will receive
// configuration changes (rather than always perceiving the global configuration).
final Context windowContext = createWindowContext(display,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, /*options=*/ null);
SurfaceControlViewHost surfaceControlViewHost = SurfaceControlViewHost surfaceControlViewHost =
new SurfaceControlViewHost(this, display, hostToken); new SurfaceControlViewHost(windowContext, display, hostToken);
gameSession.attach( gameSession.attach(
gameSessionController, gameSessionController,
createGameSessionRequest.getTaskId(), createGameSessionRequest.getTaskId(),
this, windowContext,
surfaceControlViewHost, surfaceControlViewHost,
gameSessionViewHostConfiguration.mWidthPx, gameSessionViewHostConfiguration.mWidthPx,
gameSessionViewHostConfiguration.mHeightPx); gameSessionViewHostConfiguration.mHeightPx);