Loading packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java +9 −1 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac private boolean mHandlesShowing = false; private long mHandlesLastHiddenAt; private long mShowAndGoEndsAt; /** * This should always be initialized as {@link AssistHandleBehavior#OFF} to ensure proper * behavior lifecycle. Loading Loading @@ -144,7 +145,9 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac private void showAndGoInternal() { maybeShowHandles(/* ignoreThreshold = */ false); mHandler.postDelayed(mHideHandles, getShowAndGoDuration()); long showAndGoDuration = getShowAndGoDuration(); mShowAndGoEndsAt = SystemClock.elapsedRealtime() + showAndGoDuration; mHandler.postDelayed(mHideHandles, showAndGoDuration); } @Override // AssistHandleCallbacks Loading @@ -162,6 +165,10 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac mHandler.post(() -> maybeShowHandles(/* ignoreThreshold = */ true)); } public long getShowAndGoRemainingTimeMs() { return Long.max(mShowAndGoEndsAt - SystemClock.elapsedRealtime(), 0); } boolean areHandlesShowing() { return mHandlesShowing; } Loading Loading @@ -271,6 +278,7 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac private void clearPendingCommands() { mHandler.removeCallbacks(mHideHandles); mHandler.removeCallbacks(mShowAndGo); mShowAndGoEndsAt = 0; } @VisibleForTesting Loading packages/SystemUI/src/com/android/systemui/assist/AssistManager.java +4 −0 Original line number Diff line number Diff line Loading @@ -440,6 +440,10 @@ public class AssistManager implements ConfigurationChangedReceiver { mAssistUtils.onLockscreenShown(); } public long getAssistHandleShowAndGoRemainingDurationMs() { return mHandleController.getShowAndGoRemainingTimeMs(); } /** Returns the logging flags for the given Assistant invocation type. */ public int toLoggingSubType(int invocationType) { return toLoggingSubType(invocationType, mPhoneStateMonitor.getPhoneState()); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java +28 −9 Original line number Diff line number Diff line Loading @@ -14,8 +14,6 @@ package com.android.systemui.statusbar.phone; import static com.android.systemui.Interpolators.ALPHA_IN; import static com.android.systemui.Interpolators.ALPHA_OUT; import static com.android.systemui.Interpolators.LINEAR; import android.animation.Animator; Loading @@ -24,6 +22,8 @@ import android.animation.ValueAnimator; import android.view.View; import android.view.View.AccessibilityDelegate; import com.android.systemui.Dependency; import com.android.systemui.assist.AssistManager; import com.android.systemui.statusbar.policy.KeyButtonDrawable; import java.util.ArrayList; Loading @@ -33,12 +33,13 @@ import java.util.ArrayList; * multiples of the same nav bar icon appearing. */ public class ButtonDispatcher { private final static int FADE_DURATION_IN = 150; private final static int FADE_DURATION_OUT = 1000; private static final int FADE_DURATION_IN = 150; private static final int FADE_DURATION_OUT = 250; private final ArrayList<View> mViews = new ArrayList<>(); private final int mId; private final AssistManager mAssistManager; private View.OnClickListener mClickListener; private View.OnTouchListener mTouchListener; Loading @@ -56,7 +57,10 @@ public class ButtonDispatcher { private AccessibilityDelegate mAccessibilityDelegate; private final ValueAnimator.AnimatorUpdateListener mAlphaListener = animation -> setAlpha((float) animation.getAnimatedValue()); setAlpha( (float) animation.getAnimatedValue(), false /* animate */, false /* cancelAnimator */); private final AnimatorListenerAdapter mFadeListener = new AnimatorListenerAdapter() { @Override Loading @@ -68,6 +72,7 @@ public class ButtonDispatcher { public ButtonDispatcher(int id) { mId = id; mAssistManager = Dependency.get(AssistManager.class); } void clear() { Loading Loading @@ -168,16 +173,30 @@ public class ButtonDispatcher { } public void setAlpha(float alpha, boolean animate) { setAlpha(alpha, animate, (getAlpha() < alpha) ? FADE_DURATION_IN : FADE_DURATION_OUT); setAlpha(alpha, animate, true /* cancelAnimator */); } public void setAlpha(float alpha, boolean animate, long duration) { if (animate) { if (mFadeAnimator != null) { setAlpha(alpha, animate, duration, true /* cancelAnimator */); } public void setAlpha(float alpha, boolean animate, boolean cancelAnimator) { setAlpha( alpha, animate, (getAlpha() < alpha) ? FADE_DURATION_IN : FADE_DURATION_OUT, cancelAnimator); } public void setAlpha(float alpha, boolean animate, long duration, boolean cancelAnimator) { if (mFadeAnimator != null && (cancelAnimator || animate)) { mFadeAnimator.cancel(); } if (animate) { setVisibility(View.VISIBLE); mFadeAnimator = ValueAnimator.ofFloat(getAlpha(), alpha); mFadeAnimator.setStartDelay( mAssistManager.getAssistHandleShowAndGoRemainingDurationMs()); mFadeAnimator.setDuration(duration); mFadeAnimator.setInterpolator(LINEAR); mFadeAnimator.addListener(mFadeListener); Loading Loading
packages/SystemUI/src/com/android/systemui/assist/AssistHandleBehaviorController.java +9 −1 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac private boolean mHandlesShowing = false; private long mHandlesLastHiddenAt; private long mShowAndGoEndsAt; /** * This should always be initialized as {@link AssistHandleBehavior#OFF} to ensure proper * behavior lifecycle. Loading Loading @@ -144,7 +145,9 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac private void showAndGoInternal() { maybeShowHandles(/* ignoreThreshold = */ false); mHandler.postDelayed(mHideHandles, getShowAndGoDuration()); long showAndGoDuration = getShowAndGoDuration(); mShowAndGoEndsAt = SystemClock.elapsedRealtime() + showAndGoDuration; mHandler.postDelayed(mHideHandles, showAndGoDuration); } @Override // AssistHandleCallbacks Loading @@ -162,6 +165,10 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac mHandler.post(() -> maybeShowHandles(/* ignoreThreshold = */ true)); } public long getShowAndGoRemainingTimeMs() { return Long.max(mShowAndGoEndsAt - SystemClock.elapsedRealtime(), 0); } boolean areHandlesShowing() { return mHandlesShowing; } Loading Loading @@ -271,6 +278,7 @@ public final class AssistHandleBehaviorController implements AssistHandleCallbac private void clearPendingCommands() { mHandler.removeCallbacks(mHideHandles); mHandler.removeCallbacks(mShowAndGo); mShowAndGoEndsAt = 0; } @VisibleForTesting Loading
packages/SystemUI/src/com/android/systemui/assist/AssistManager.java +4 −0 Original line number Diff line number Diff line Loading @@ -440,6 +440,10 @@ public class AssistManager implements ConfigurationChangedReceiver { mAssistUtils.onLockscreenShown(); } public long getAssistHandleShowAndGoRemainingDurationMs() { return mHandleController.getShowAndGoRemainingTimeMs(); } /** Returns the logging flags for the given Assistant invocation type. */ public int toLoggingSubType(int invocationType) { return toLoggingSubType(invocationType, mPhoneStateMonitor.getPhoneState()); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java +28 −9 Original line number Diff line number Diff line Loading @@ -14,8 +14,6 @@ package com.android.systemui.statusbar.phone; import static com.android.systemui.Interpolators.ALPHA_IN; import static com.android.systemui.Interpolators.ALPHA_OUT; import static com.android.systemui.Interpolators.LINEAR; import android.animation.Animator; Loading @@ -24,6 +22,8 @@ import android.animation.ValueAnimator; import android.view.View; import android.view.View.AccessibilityDelegate; import com.android.systemui.Dependency; import com.android.systemui.assist.AssistManager; import com.android.systemui.statusbar.policy.KeyButtonDrawable; import java.util.ArrayList; Loading @@ -33,12 +33,13 @@ import java.util.ArrayList; * multiples of the same nav bar icon appearing. */ public class ButtonDispatcher { private final static int FADE_DURATION_IN = 150; private final static int FADE_DURATION_OUT = 1000; private static final int FADE_DURATION_IN = 150; private static final int FADE_DURATION_OUT = 250; private final ArrayList<View> mViews = new ArrayList<>(); private final int mId; private final AssistManager mAssistManager; private View.OnClickListener mClickListener; private View.OnTouchListener mTouchListener; Loading @@ -56,7 +57,10 @@ public class ButtonDispatcher { private AccessibilityDelegate mAccessibilityDelegate; private final ValueAnimator.AnimatorUpdateListener mAlphaListener = animation -> setAlpha((float) animation.getAnimatedValue()); setAlpha( (float) animation.getAnimatedValue(), false /* animate */, false /* cancelAnimator */); private final AnimatorListenerAdapter mFadeListener = new AnimatorListenerAdapter() { @Override Loading @@ -68,6 +72,7 @@ public class ButtonDispatcher { public ButtonDispatcher(int id) { mId = id; mAssistManager = Dependency.get(AssistManager.class); } void clear() { Loading Loading @@ -168,16 +173,30 @@ public class ButtonDispatcher { } public void setAlpha(float alpha, boolean animate) { setAlpha(alpha, animate, (getAlpha() < alpha) ? FADE_DURATION_IN : FADE_DURATION_OUT); setAlpha(alpha, animate, true /* cancelAnimator */); } public void setAlpha(float alpha, boolean animate, long duration) { if (animate) { if (mFadeAnimator != null) { setAlpha(alpha, animate, duration, true /* cancelAnimator */); } public void setAlpha(float alpha, boolean animate, boolean cancelAnimator) { setAlpha( alpha, animate, (getAlpha() < alpha) ? FADE_DURATION_IN : FADE_DURATION_OUT, cancelAnimator); } public void setAlpha(float alpha, boolean animate, long duration, boolean cancelAnimator) { if (mFadeAnimator != null && (cancelAnimator || animate)) { mFadeAnimator.cancel(); } if (animate) { setVisibility(View.VISIBLE); mFadeAnimator = ValueAnimator.ofFloat(getAlpha(), alpha); mFadeAnimator.setStartDelay( mAssistManager.getAssistHandleShowAndGoRemainingDurationMs()); mFadeAnimator.setDuration(duration); mFadeAnimator.setInterpolator(LINEAR); mFadeAnimator.addListener(mFadeListener); Loading