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

Commit c533272a authored by Jacqueline Bronger's avatar Jacqueline Bronger Committed by Android (Google) Code Review
Browse files

Merge "TV PIP: don't close menu after 10s if A11y enabled" into main

parents c1965ff4 1a2e1015
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.view.View;
import android.view.ViewRootImpl;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.view.accessibility.AccessibilityManager;
import android.window.SurfaceSyncGroup;

import androidx.annotation.Nullable;
@@ -63,6 +64,8 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis
    private TvPipMenuView mPipMenuView;
    private TvPipBackgroundView mPipBackgroundView;

    private final AccessibilityManager mA11yManager;

    private boolean mIsReloading;
    private static final int PIP_MENU_FORCE_CLOSE_DELAY_MS = 10_000;
    private final Runnable mClosePipMenuRunnable = this::closeMenu;
@@ -107,6 +110,8 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis
        mSystemWindows = systemWindows;
        mMainHandler = mainHandler;

        mA11yManager = context.getSystemService(AccessibilityManager.class);

        // We need to "close" the menu the platform call for all the system dialogs to close (for
        // example, on the Home button press).
        final BroadcastReceiver closeSystemDialogsBroadcastReceiver = new BroadcastReceiver() {
@@ -499,7 +504,9 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis
            switchToMenuMode(menuMode);
        } else {
            if (isMenuOpen(menuMode)) {
                if (!mA11yManager.isEnabled()) {
                    mMainHandler.postDelayed(mClosePipMenuRunnable, PIP_MENU_FORCE_CLOSE_DELAY_MS);
                }
                mMenuModeOnFocus = menuMode;
            }
            // Send a request to gain window focus if the menu is open, or lose window focus
@@ -594,8 +601,10 @@ public class TvPipMenuController implements PipMenuController, TvPipMenuView.Lis
    public void onUserInteracting() {
        ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
                "%s: onUserInteracting - mCurrentMenuMode=%s", TAG, getMenuModeString());
        if (mMainHandler.hasCallbacks(mClosePipMenuRunnable)) {
            mMainHandler.removeCallbacks(mClosePipMenuRunnable);
            mMainHandler.postDelayed(mClosePipMenuRunnable, PIP_MENU_FORCE_CLOSE_DELAY_MS);
        }

    }
    @Override