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

Commit 2bc10d37 authored by Jiaming Liu's avatar Jiaming Liu Committed by Automerger Merge Worker
Browse files

Merge "Support ContextWrapper by replacing instanceof checks with token...

Merge "Support ContextWrapper by replacing instanceof checks with token checks" into tm-qpr-dev am: 18964627

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



Change-Id: I66859896b15892dea2bf5dea2a76b7ce4fb8b94d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a7087608 18964627
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import android.graphics.Rect;
import android.os.Bundle;
import android.os.IBinder;
import android.util.ArrayMap;
import android.window.WindowProvider;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -129,9 +128,10 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
        });
        mWindowLayoutChangeListeners.put(context, consumer);

        // TODO(b/258065175) Further extend this to ContextWrappers.
        if (context instanceof WindowProvider) {
        final IBinder windowContextToken = context.getWindowContextToken();
        if (windowContextToken != null) {
            // We register component callbacks for window contexts. For activity contexts, they will
            // receive callbacks from NotifyOnConfigurationChanged instead.
            final ConfigurationChangeListener listener =
                    new ConfigurationChangeListener(windowContextToken);
            context.registerComponentCallbacks(listener);
@@ -150,8 +150,8 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
            if (!mWindowLayoutChangeListeners.get(context).equals(consumer)) {
                continue;
            }
            if (context instanceof WindowProvider) {
            final IBinder token = context.getWindowContextToken();
            if (token != null) {
                context.unregisterComponentCallbacks(mConfigurationChangeListeners.get(token));
                mConfigurationChangeListeners.remove(token);
            }
@@ -308,9 +308,10 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
            return false;
        }
        final int windowingMode;
        if (context instanceof Activity) {
        IBinder activityToken = context.getActivityToken();
        if (activityToken != null) {
            final Configuration taskConfig = ActivityClient.getInstance().getTaskConfiguration(
                    context.getActivityToken());
                    activityToken);
            if (taskConfig == null) {
                // If we cannot determine the task configuration for any reason, it is likely that
                // we won't be able to determine its position correctly as well. DisplayFeatures'