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

This commit is contained in:
Selim Cinek
2021-08-16 11:40:26 +00:00
committed by Android (Google) Code Review
3 changed files with 36 additions and 1 deletions

View File

@@ -16,6 +16,8 @@
package com.android.wm.shell.onehanded; package com.android.wm.shell.onehanded;
import static com.android.wm.shell.onehanded.OneHandedState.STATE_ACTIVE;
import android.animation.ValueAnimator; import android.animation.ValueAnimator;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
@@ -46,7 +48,7 @@ import java.util.concurrent.Executor;
* the screen has entered one handed mode. * the screen has entered one handed mode.
*/ */
public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
implements OneHandedAnimationCallback { implements OneHandedAnimationCallback, OneHandedState.OnStateChangedListener {
private static final String TAG = "OneHandedBackgroundPanelOrganizer"; private static final String TAG = "OneHandedBackgroundPanelOrganizer";
private static final int THEME_COLOR_OFFSET = 10; private static final int THEME_COLOR_OFFSET = 10;
private static final int ALPHA_ANIMATION_DURATION = 200; private static final int ALPHA_ANIMATION_DURATION = 200;
@@ -56,6 +58,7 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
private final OneHandedSurfaceTransactionHelper.SurfaceControlTransactionFactory private final OneHandedSurfaceTransactionHelper.SurfaceControlTransactionFactory
mTransactionFactory; mTransactionFactory;
private @OneHandedState.State int mCurrentState;
private ValueAnimator mAlphaAnimator; private ValueAnimator mAlphaAnimator;
private float mTranslationFraction; private float mTranslationFraction;
@@ -180,6 +183,9 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
* Called when transition finished. * Called when transition finished.
*/ */
public void onStopFinished() { public void onStopFinished() {
if (mAlphaAnimator == null) {
return;
}
mAlphaAnimator.start(); mAlphaAnimator.start();
} }
@@ -224,6 +230,10 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
*/ */
public void onConfigurationChanged() { public void onConfigurationChanged() {
updateThemeColors(); updateThemeColors();
if (mCurrentState != STATE_ACTIVE) {
return;
}
showBackgroundPanelLayer(); showBackgroundPanelLayer();
} }
@@ -242,6 +252,11 @@ public class OneHandedBackgroundPanelOrganizer extends DisplayAreaOrganizer
return Math.max(origColor - THEME_COLOR_OFFSET, 0) / 255.0f; return Math.max(origColor - THEME_COLOR_OFFSET, 0) / 255.0f;
} }
@Override
public void onStateChanged(int newState) {
mCurrentState = newState;
}
void dump(@NonNull PrintWriter pw) { void dump(@NonNull PrintWriter pw) {
final String innerPrefix = " "; final String innerPrefix = " ";
pw.println(TAG); pw.println(TAG);

View File

@@ -307,6 +307,7 @@ public class OneHandedController implements RemoteCallable<OneHandedController>
mAccessibilityManager.addAccessibilityStateChangeListener( mAccessibilityManager.addAccessibilityStateChangeListener(
mAccessibilityStateChangeListener); mAccessibilityStateChangeListener);
mState.addSListeners(mBackgroundPanelOrganizer);
mState.addSListeners(mTutorialHandler); mState.addSListeners(mTutorialHandler);
} }

View File

@@ -19,6 +19,9 @@ package com.android.wm.shell.onehanded;
import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.DEFAULT_DISPLAY;
import static android.window.DisplayAreaOrganizer.FEATURE_ONE_HANDED_BACKGROUND_PANEL; 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 com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
@@ -109,4 +112,20 @@ public class OneHandedBackgroundPanelOrganizerTest extends OneHandedTestCase {
assertThat(mSpiedBackgroundPanelOrganizer.mBackgroundSurface).isNull(); 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();
}
} }