Java Code Examples for com.handmark.pulltorefresh.library.PullToRefreshBase.State

The following examples show how to use com.handmark.pulltorefresh.library.PullToRefreshBase.State. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: Social   Source File: SoundPullEventListener.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 2
Source Project: sctalk   Source File: SoundPullEventListener.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 3
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 4
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 5
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 6
Source Project: GifAssistant   Source File: SoundPullEventListener.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 7
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 8
Source Project: SweetMusicPlayer   Source File: SoundPullEventListener.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 9
Source Project: ONE-Unofficial   Source File: SoundPullEventListener.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 10
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 11
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 12
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 13
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 14
Source Project: zen4android   Source File: SoundPullEventListener.java    License: MIT License 5 votes vote down vote up
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 15
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 16
@Override
public final void onPullEvent(PullToRefreshBase<V> refreshView, State event, Mode direction) {
	Integer soundResIdObj = mSoundMap.get(event);
	if (null != soundResIdObj) {
		playSound(soundResIdObj.intValue());
	}
}
 
Example 17
Source Project: Social   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 18
Source Project: sctalk   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 19
Source Project: BigApp_Discuz_Android   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 20
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 21
Source Project: LbaizxfPulltoRefresh   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 22
Source Project: GifAssistant   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 23
Source Project: PullToRefreshLibrary   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 24
Source Project: SweetMusicPlayer   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 25
Source Project: ONE-Unofficial   Source File: OverscrollHelper.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 26
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 27
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 28
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 29
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}
 
Example 30
Source Project: zen4android   Source File: OverscrollHelper.java    License: MIT License 4 votes vote down vote up
/**
 * Helper method for Overscrolling that encapsulates all of the necessary
 * function. This is the advanced version of the call.
 * 
 * @param view - PullToRefreshView that is calling this.
 * @param deltaX - Change in X in pixels, passed through from from
 *            overScrollBy call
 * @param scrollX - Current X scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param deltaY - Change in Y in pixels, passed through from from
 *            overScrollBy call
 * @param scrollY - Current Y scroll value in pixels before applying deltaY,
 *            passed through from from overScrollBy call
 * @param scrollRange - Scroll Range of the View, specifically needed for
 *            ScrollView
 * @param fuzzyThreshold - Threshold for which the values how fuzzy we
 *            should treat the other values. Needed for WebView as it
 *            doesn't always scroll back to it's edge. 0 = no fuzziness.
 * @param scaleFactor - Scale Factor for overscroll amount
 * @param isTouchEvent - true if this scroll operation is the result of a
 *            touch event, passed through from from overScrollBy call
 */
public static void overScrollBy(final PullToRefreshBase<?> view, final int deltaX, final int scrollX,
		final int deltaY, final int scrollY, final int scrollRange, final int fuzzyThreshold,
		final float scaleFactor, final boolean isTouchEvent) {

	final int deltaValue, currentScrollValue, scrollValue;
	switch (view.getPullToRefreshScrollDirection()) {
		case HORIZONTAL:
			deltaValue = deltaX;
			scrollValue = scrollX;
			currentScrollValue = view.getScrollX();
			break;
		case VERTICAL:
		default:
			deltaValue = deltaY;
			scrollValue = scrollY;
			currentScrollValue = view.getScrollY();
			break;
	}

	// Check that OverScroll is enabled and that we're not currently
	// refreshing.
	if (view.isPullToRefreshOverScrollEnabled() && !view.isRefreshing()) {
		final Mode mode = view.getMode();

		// Check that Pull-to-Refresh is enabled, and the event isn't from
		// touch
		if (mode.permitsPullToRefresh() && !isTouchEvent && deltaValue != 0) {
			final int newScrollValue = (deltaValue + scrollValue);

			if (PullToRefreshBase.DEBUG) {
				Log.d(LOG_TAG, "OverScroll. DeltaX: " + deltaX + ", ScrollX: " + scrollX + ", DeltaY: " + deltaY
						+ ", ScrollY: " + scrollY + ", NewY: " + newScrollValue + ", ScrollRange: " + scrollRange
						+ ", CurrentScroll: " + currentScrollValue);
			}

			if (newScrollValue < (0 - fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showHeaderLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue)));
				}
			} else if (newScrollValue > (scrollRange + fuzzyThreshold)) {
				// Check the mode supports the overscroll direction, and
				// then move scroll
				if (mode.showFooterLoadingLayout()) {
					// If we're currently at zero, we're about to start
					// overscrolling, so change the state
					if (currentScrollValue == 0) {
						view.setState(State.OVERSCROLLING);
					}

					view.setHeaderScroll((int) (scaleFactor * (currentScrollValue + newScrollValue - scrollRange)));
				}
			} else if (Math.abs(newScrollValue) <= fuzzyThreshold
					|| Math.abs(newScrollValue - scrollRange) <= fuzzyThreshold) {
				// Means we've stopped overscrolling, so scroll back to 0
				view.setState(State.RESET);
			}
		} else if (isTouchEvent && State.OVERSCROLLING == view.getState()) {
			// This condition means that we were overscrolling from a fling,
			// but the user has touched the View and is now overscrolling
			// from touch instead. We need to just reset.
			view.setState(State.RESET);
		}
	}
}