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

Commit 5e00c986 authored by Rhed Jao's avatar Rhed Jao
Browse files

Update pip menu to use a11y api for ui timeout value.

Remove never timeout in pip menu when a11y enabled. Using
api introduced by A11yManager to get recommended ui timeout
value instead.

Bug: 119893870
Test: Launch PiP activity, ensure menu timeout respect to
Settings->A11y->Time to take action.

Change-Id: I10f765acf3c70cfcec476ac3056f8663598721d9
parent 1c32bcc7
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.systemui.pip.phone;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.provider.Settings.ACTION_PICTURE_IN_PICTURE_SETTINGS;
import static android.view.accessibility.AccessibilityManager.FLAG_CONTENT_CONTROLS;
import static android.view.accessibility.AccessibilityManager.FLAG_CONTENT_ICONS;

import static com.android.systemui.pip.phone.PipMenuActivityController.EXTRA_ACTIONS;
import static com.android.systemui.pip.phone.PipMenuActivityController.EXTRA_ALLOW_TIMEOUT;
@@ -65,6 +67,7 @@ import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.WindowManager.LayoutParams;
import android.view.accessibility.AccessibilityManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -90,8 +93,8 @@ public class PipMenuActivity extends Activity {
    public static final int MESSAGE_UPDATE_DISMISS_FRACTION = 5;
    public static final int MESSAGE_ANIMATION_ENDED = 6;

    private static final long INITIAL_DISMISS_DELAY = 3500;
    private static final long POST_INTERACTION_DISMISS_DELAY = 2000;
    private static final int INITIAL_DISMISS_DELAY = 3500;
    private static final int POST_INTERACTION_DISMISS_DELAY = 2000;
    private static final long MENU_FADE_DURATION = 125;

    private static final float MENU_BACKGROUND_ALPHA = 0.3f;
@@ -105,6 +108,7 @@ public class PipMenuActivity extends Activity {

    private final List<RemoteAction> mActions = new ArrayList<>();

    private AccessibilityManager mAccessibilityManager;
    private View mViewRoot;
    private Drawable mBackgroundDrawable;
    private View mMenuContainer;
@@ -194,6 +198,7 @@ public class PipMenuActivity extends Activity {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pip_menu_activity);

        mAccessibilityManager = getSystemService(AccessibilityManager.class);
        mBackgroundDrawable = new ColorDrawable(Color.BLACK);
        mBackgroundDrawable.setAlpha(0);
        mViewRoot = findViewById(R.id.background);
@@ -639,8 +644,10 @@ public class PipMenuActivity extends Activity {
        mHandler.removeCallbacks(mFinishRunnable);
    }

    private void repostDelayedFinish(long delay) {
    private void repostDelayedFinish(int delay) {
        int recommendedTimeout = mAccessibilityManager.getRecommendedTimeoutMillis(delay,
                FLAG_CONTENT_ICONS | FLAG_CONTENT_CONTROLS);
        mHandler.removeCallbacks(mFinishRunnable);
        mHandler.postDelayed(mFinishRunnable, delay);
        mHandler.postDelayed(mFinishRunnable, recommendedTimeout);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -368,7 +368,7 @@ public class PipTouchHandler {

    private void onAccessibilityShowMenu() {
        mMenuController.showMenu(MENU_STATE_FULL, mMotionHelper.getBounds(),
                mMovementBounds, false /* allowMenuTimeout */, willResizeMenu());
                mMovementBounds, true /* allowMenuTimeout */, willResizeMenu());
    }

    private boolean handleTouchEvent(MotionEvent ev) {