Merge "Don't create one-handed-background-panel after rotation" into sc-dev
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user