Allow custom content to lock the workspace

Change-Id: Ic337df1b2cd54b99d4ef02dcfaca955c90297df0
This commit is contained in:
Jan-Willem Maarse
2014-07-10 15:58:12 -07:00
parent e639d6b67c
commit 2ff91c46fa
2 changed files with 13 additions and 2 deletions
+3
View File
@@ -1089,6 +1089,9 @@ public class Launcher extends Activity
// Custom content scroll progress changed. From 0 (not showing) to 1 (fully showing).
public void onScrollProgressChanged(float progress);
// Indicates whether the user is allowed to scroll away from the custom content.
boolean isScrollingAllowed();
}
protected boolean hasSettings() {
+10 -2
View File
@@ -1159,12 +1159,20 @@ public class Workspace extends SmoothPagedView
(mTouchDownTime - mCustomContentShowTime) > CUSTOM_CONTENT_GESTURE_DELAY;
boolean swipeInIgnoreDirection = isLayoutRtl() ? deltaX < 0 : deltaX > 0;
if (swipeInIgnoreDirection && getScreenIdForPageIndex(getCurrentPage()) ==
CUSTOM_CONTENT_SCREEN_ID && passRightSwipesToCustomContent) {
boolean onCustomContentScreen =
getScreenIdForPageIndex(getCurrentPage()) == CUSTOM_CONTENT_SCREEN_ID;
if (swipeInIgnoreDirection && onCustomContentScreen && passRightSwipesToCustomContent) {
// Pass swipes to the right to the custom content page.
return;
}
if (onCustomContentScreen && (mCustomContentCallbacks != null)
&& !mCustomContentCallbacks.isScrollingAllowed()) {
// Don't allow workspace scrolling if the current custom content screen doesn't allow
// scrolling.
return;
}
if (theta > MAX_SWIPE_ANGLE) {
// Above MAX_SWIPE_ANGLE, we don't want to ever start scrolling the workspace
return;