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

Commit 14f76fe1 authored by Ats Jenk's avatar Ats Jenk
Browse files

Move bubble bar stashed handle to the left for RTL

When system language is set to an RTL language, we move the bubble bar
to the left.
Move the stashed bubble bar handle to the left in this case.
Tweak the bubble bar expand animation so that the bubbles expand from
the left edge.

Flag: LEGACY persist.wm.debug.bubble_bar DEVELOPMENT
Bug: 273310265
Test: repeat following steps with LTR and RTL system languages
  - add couple of bubbles to bubble bar, open an app, observe stashed
    handle on the left
  - swipe up from system navbar to show taskbar and bubble bar
  - swipe up from bubble bar handle to show bubble bar and expand it
  - drag bubble bar to dismiss target and back out and release
Change-Id: Ia3b7892bba732a5278168d63db0594087f55fad4
parent e0b2ef48
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -199,8 +199,10 @@ public class BubbleBarView extends FrameLayout {

    @Override
    public void onRtlPropertiesChanged(int layoutDirection) {
        // TODO(b/273310265): set this based on bubble bar position and not LTR or RTL
        mBubbleBarBackground.setAnchorLeft(layoutDirection == LAYOUT_DIRECTION_RTL);
        // TODO(b/313661121): set this based on bubble bar position and not LTR or RTL
        boolean onLeft = layoutDirection == LAYOUT_DIRECTION_RTL;
        mBubbleBarBackground.setAnchorLeft(onLeft);
        mRelativePivotX = onLeft ? 0f : 1f;
    }

    private boolean isOnLeft() {
+24 −10
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
package com.android.launcher3.taskbar.bubbles;

import static android.view.View.INVISIBLE;
import static android.view.View.LAYOUT_DIRECTION_RTL;
import static android.view.View.VISIBLE;

import android.animation.Animator;
@@ -124,22 +125,35 @@ public class BubbleStashedHandleViewController {
    private void updateBounds() {
        // As more bubbles get added, the icon bounds become larger. To ensure a consistent
        // handle bar position, we pin it to the edge of the screen.
        final int stashedCenterY = mStashedHandleView.getHeight() - mStashedTaskbarHeight / 2;
        if (isOnLeft()) {
            final int left = mBarViewController.getHorizontalMargin();
            mStashedHandleBounds.set(
                    left,
                    stashedCenterY - mStashedHandleHeight / 2,
                    left + mStashedHandleWidth,
                    stashedCenterY + mStashedHandleHeight / 2);
            mStashedHandleView.setPivotX(0);
        } else {
            final int right =
                    mActivity.getDeviceProfile().widthPx - mBarViewController.getHorizontalMargin();

        final int stashedCenterY = mStashedHandleView.getHeight() - mStashedTaskbarHeight / 2;

            mStashedHandleBounds.set(
                    right - mStashedHandleWidth,
                    stashedCenterY - mStashedHandleHeight / 2,
                    right,
                    stashedCenterY + mStashedHandleHeight / 2);
        mStashedHandleView.updateSampledRegion(mStashedHandleBounds);

            mStashedHandleView.setPivotX(mStashedHandleView.getWidth());
        }

        mStashedHandleView.updateSampledRegion(mStashedHandleBounds);
        mStashedHandleView.setPivotY(mStashedHandleView.getHeight() - mStashedTaskbarHeight / 2f);
    }

    private boolean isOnLeft() {
        // TODO(b/313661121): set this based on bubble bar position and not LTR or RTL
        return mStashedHandleView.getLayoutDirection() == LAYOUT_DIRECTION_RTL;
    }

    public void onDestroy() {
        mRegionSamplingHelper.stopAndDestroy();
        mRegionSamplingHelper = null;