Merge "Disable dragging the challenge area when there are no widgets" into klp-dev

This commit is contained in:
Jim Miller
2013-10-08 18:38:26 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 3 deletions

View File

@@ -405,6 +405,12 @@ public class KeyguardHostView extends KeyguardViewBase {
mAppWidgetContainer.setAddWidgetEnabled(false);
}
checkAppWidgetConsistency();
// Don't let the user drag the challenge down if widgets are disabled.
if (mSlidingChallengeLayout != null) {
mSlidingChallengeLayout.setEnableChallengeDragging(!widgetsDisabled());
}
mSwitchPageRunnable.run();
// This needs to be called after the pages are all added.
mViewStateManager.showUsabilityHints();

View File

@@ -48,7 +48,7 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
private static final boolean DEBUG = false;
// The drag handle is measured in dp above & below the top edge of the
// challenge view; these parameters change based on whether the challenge
// challenge view; these parameters change based on whether the challenge
// is open or closed.
private static final int DRAG_HANDLE_CLOSED_ABOVE = 8; // dp
private static final int DRAG_HANDLE_CLOSED_BELOW = 0; // dp
@@ -81,6 +81,7 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
private int mScrollState;
private OnChallengeScrolledListener mScrollListener;
private OnBouncerStateChangedListener mBouncerListener;
private boolean mEnableChallengeDragging;
public static final int SCROLL_STATE_IDLE = 0;
public static final int SCROLL_STATE_DRAGGING = 1;
@@ -263,6 +264,10 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_STABLE | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
public void setEnableChallengeDragging(boolean enabled) {
mEnableChallengeDragging = enabled;
}
public void setInsets(Rect insets) {
mInsets.set(insets);
}
@@ -573,7 +578,8 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
final float y = ev.getY(i);
if (!mIsBouncing && mActivePointerId == INVALID_POINTER
&& (crossedDragHandle(x, y, mGestureStartY)
|| (isInChallengeView(x, y) &&
&& shouldEnableChallengeDragging()
|| (isInChallengeView(x, y) &&
mScrollState == SCROLL_STATE_SETTLING))) {
mActivePointerId = ev.getPointerId(i);
mGestureStartX = x;
@@ -581,7 +587,8 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
mGestureStartChallengeBottom = getChallengeBottom();
mDragging = true;
enableHardwareLayerForChallengeView();
} else if (mChallengeShowing && isInChallengeView(x, y)) {
} else if (mChallengeShowing && isInChallengeView(x, y)
&& shouldEnableChallengeDragging()) {
mBlockDrag = true;
}
}
@@ -596,6 +603,10 @@ public class SlidingChallengeLayout extends ViewGroup implements ChallengeLayout
return mDragging;
}
private boolean shouldEnableChallengeDragging() {
return mEnableChallengeDragging || !mChallengeShowing;
}
private boolean isChallengeInteractionBlocked() {
return !mChallengeInteractiveExternal || !mChallengeInteractiveInternal;
}