Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f1f7c60 authored by Tyler Lacey's avatar Tyler Lacey
Browse files

Use Window Context for SurfaceControlViewHost.

This change is needed so that views will receive configuration
changes via link View#onConfigurationChanged.

Bug: 228343237
Test: Manual testing

Change-Id: Iccc09babb910867e0cd8b21ed750d67e87b944f9
parent b45b8bdc
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.annotation.Nullable;
import android.annotation.SdkConstant;
import android.annotation.SystemApi;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.hardware.display.DisplayManager;
import android.os.Binder;
@@ -28,6 +29,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.view.Display;
import android.view.SurfaceControlViewHost;
import android.view.WindowManager;

import com.android.internal.infra.AndroidFuture;
import com.android.internal.util.function.pooled.PooledLambda;
@@ -117,13 +119,18 @@ public abstract class GameSessionService extends Service {
        }

        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 =
                new SurfaceControlViewHost(this, display, hostToken);
                new SurfaceControlViewHost(windowContext, display, hostToken);

        gameSession.attach(
                gameSessionController,
                createGameSessionRequest.getTaskId(),
                this,
                windowContext,
                surfaceControlViewHost,
                gameSessionViewHostConfiguration.mWidthPx,
                gameSessionViewHostConfiguration.mHeightPx);