Enable fast camera transition when launched from navbar
This reduces the camera transition timeout to 0 if launched from the navigation bar. The transition cannot be aborted once launched. Change-Id: I7c376fbb90fd51cd301ef49fbd3411370bc2e4b5
This commit is contained in:
@@ -68,6 +68,7 @@ public class CameraWidgetFrame extends KeyguardWidgetFrame implements View.OnCli
|
||||
private FixedSizeFrameLayout mPreview;
|
||||
private View mFullscreenPreview;
|
||||
private View mFakeNavBar;
|
||||
private boolean mUseFastTransition;
|
||||
|
||||
private final Runnable mTransitionToCameraRunnable = new Runnable() {
|
||||
@Override
|
||||
@@ -418,7 +419,8 @@ public class CameraWidgetFrame extends KeyguardWidgetFrame implements View.OnCli
|
||||
private void rescheduleTransitionToCamera() {
|
||||
if (DEBUG) Log.d(TAG, "rescheduleTransitionToCamera at " + SystemClock.uptimeMillis());
|
||||
mHandler.removeCallbacks(mTransitionToCameraRunnable);
|
||||
mHandler.postDelayed(mTransitionToCameraRunnable, WIDGET_WAIT_DURATION);
|
||||
final long duration = mUseFastTransition ? 0 : WIDGET_WAIT_DURATION;
|
||||
mHandler.postDelayed(mTransitionToCameraRunnable, duration);
|
||||
}
|
||||
|
||||
private void cancelTransitionToCamera() {
|
||||
@@ -513,4 +515,8 @@ public class CameraWidgetFrame extends KeyguardWidgetFrame implements View.OnCli
|
||||
if (DEBUG) Log.d(TAG, "setInsets: " + insets);
|
||||
mInsets.set(insets);
|
||||
}
|
||||
|
||||
public void setUseFastTransition(boolean useFastTransition) {
|
||||
mUseFastTransition = useFastTransition;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,6 +154,10 @@ public class KeyguardViewStateManager implements
|
||||
public void onPageSwitching(View newPage, int newPageIndex) {
|
||||
if (mKeyguardWidgetPager != null && mChallengeLayout instanceof SlidingChallengeLayout) {
|
||||
boolean isCameraPage = newPage instanceof CameraWidgetFrame;
|
||||
if (isCameraPage) {
|
||||
CameraWidgetFrame camera = (CameraWidgetFrame) newPage;
|
||||
camera.setUseFastTransition(mKeyguardWidgetPager.isWarping());
|
||||
}
|
||||
SlidingChallengeLayout scl = (SlidingChallengeLayout) mChallengeLayout;
|
||||
scl.setChallengeInteractive(!isCameraPage);
|
||||
final int currentFlags = mKeyguardWidgetPager.getSystemUiVisibility();
|
||||
|
||||
@@ -1938,10 +1938,12 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
|
||||
|
||||
if (isWarping()) {
|
||||
dispatchOnPageEndWarp();
|
||||
notifyPageSwitching(whichPage);
|
||||
resetPageWarp();
|
||||
} else {
|
||||
notifyPageSwitching(whichPage);
|
||||
}
|
||||
|
||||
notifyPageSwitching(whichPage);
|
||||
View focusedChild = getFocusedChild();
|
||||
if (focusedChild != null && whichPage != mCurrentPage &&
|
||||
focusedChild == getPageAt(mCurrentPage)) {
|
||||
|
||||
Reference in New Issue
Block a user