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

Commit 557189cf authored by Selim Cinek's avatar Selim Cinek Committed by Automerger Merge Worker
Browse files

Merge "Don't create one-handed-background-panel after rotation" into sc-dev am: ab89e910

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

Change-Id: I5f992e78160d4ba8e71264033efdb474d22e2f87
parents 5402c211 ab89e910
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.wm.shell.onehanded;

import static com.android.wm.shell.onehanded.OneHandedState.STATE_ACTIVE;

import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Color;
@@ -46,7 +48,7 @@ import java.util.concurrent.Executor;
 * the screen has entered one handed mode.
 */
public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
        implements OneHandedAnimationCallback {
        implements OneHandedAnimationCallback, OneHandedState.OnStateChangedListener {
    private static final String TAG = "OneHandedBackgroundPanelOrganizer";
    private static final int THEME_COLOR_OFFSET = 10;
    private static final int ALPHA_ANIMATION_DURATION = 200;
@@ -56,6 +58,7 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
    private final OneHandedSurfaceTransactionHelper.SurfaceControlTransactionFactory
            mTransactionFactory;

    private @OneHandedState.State int mCurrentState;
    private ValueAnimator mAlphaAnimator;

    private float mTranslationFraction;
@@ -180,6 +183,9 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
     * Called when transition finished.
     */
    public void onStopFinished() {
        if (mAlphaAnimator == null) {
            return;
        }
        mAlphaAnimator.start();
    }

@@ -224,6 +230,10 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
     */
    public void onConfigurationChanged() {
        updateThemeColors();

        if (mCurrentState != STATE_ACTIVE) {
            return;
        }
        showBackgroundPanelLayer();
    }

@@ -242,6 +252,11 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
        return Math.max(origColor - THEME_COLOR_OFFSET, 0) / 255.0f;
    }

    @Override
    public void onStateChanged(int newState) {
        mCurrentState = newState;
    }

    void dump(@NonNull PrintWriter pw) {
        final String innerPrefix = "  ";
        pw.println(TAG);
+1 −0
Original line number Diff line number Diff line
@@ -307,6 +307,7 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
        mAccessibilityManager.addAccessibilityStateChangeListener(
                mAccessibilityStateChangeListener);

        mState.addSListeners(mBackgroundPanelOrganizer);
        mState.addSListeners(mTutorialHandler);
    }

+19 −0
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@ package com.android.wm.shell.onehanded;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.window.DisplayAreaOrganizer.FEATURE_ONE_HANDED_BACKGROUND_PANEL;

import static com.android.wm.shell.onehanded.OneHandedState.STATE_ACTIVE;
import static com.android.wm.shell.onehanded.OneHandedState.STATE_NONE;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.anyInt;
@@ -109,4 +112,20 @@ public class OneHandedBackgroundPanelOrganizerTest extends OneHandedTestCase {

        assertThat(mSpiedBackgroundPanelOrganizer.mBackgroundSurface).isNull();
    }

    @Test
    public void testStateNone_onConfigurationChanged() {
        mSpiedBackgroundPanelOrganizer.onStateChanged(STATE_NONE);
        mSpiedBackgroundPanelOrganizer.onConfigurationChanged();

        verify(mSpiedBackgroundPanelOrganizer, never()).showBackgroundPanelLayer();
    }

    @Test
    public void testStateActivate_onConfigurationChanged() {
        mSpiedBackgroundPanelOrganizer.onStateChanged(STATE_ACTIVE);
        mSpiedBackgroundPanelOrganizer.onConfigurationChanged();

        verify(mSpiedBackgroundPanelOrganizer).showBackgroundPanelLayer();
    }
}