From b237a55ca9d38a167db71baeee767386e51e3bf9 Mon Sep 17 00:00:00 2001
From: wangcongtao
Date: Mon, 6 Jan 2020 01:12:04 +0800
Subject: [PATCH] dev
---
.idea/gradle.xml | 1 +
.../res/layout/module_apps_fragment_apps.xml | 2 +-
.../module/extensions/ExtensionsFragment.java | 6 +
.../extensions/ExtensionsPresenter.java | 2 +-
.../layout/module_ext_layout_extensions.xml | 2 +
.../src/main/res/values/strings.xml | 2 +-
.../com/mogo/module/main/MainActivity.java | 3 +-
.../module/main/cards/OrientedViewPager.java | 2194 +++++++++--------
.../main/cards/VerticalBaseTransformer.java | 44 +-
.../main/cards/VerticalStackTransformer.java | 8 +-
.../res/layout/module_main_activity_main.xml | 14 +-
.../service/analytics/IMogoAnalytics.java | 1 +
12 files changed, 1149 insertions(+), 1130 deletions(-)
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 2ea0384cfd..c2b971f1ea 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -20,6 +20,7 @@
+
diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml
index 416758e038..d2d41058b9 100644
--- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml
+++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml
@@ -9,6 +9,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
app:behavior_hideable="false"
- app:behavior_peekHeight="92dp"
+ app:behavior_peekHeight="76dp"
app:layout_behavior="@string/bottom_sheet_behavior" />
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
index 52a46be5f0..1d2e44a9b8 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java
@@ -1,6 +1,7 @@
package com.mogo.module.extensions;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@@ -87,13 +88,18 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP
@Override
public void renderWeatherInfo( String temp, String desc, int iconId ) {
+ boolean hidden = false;
if ( iconId != 0 ) {
mWeatherIcon.setImageResource( iconId );
mWeatherIcon.setVisibility( View.VISIBLE );
} else {
mWeatherIcon.setVisibility( View.GONE );
+ hidden |= true;
}
+ hidden |= TextUtils.isEmpty( temp );
+ hidden |= TextUtils.isEmpty( desc );
mWeatherTemp.setText( temp );
mWeatherDesc.setText( desc );
+ mWeatherContainer.setVisibility( hidden ? View.GONE : View.VISIBLE );
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
index 000dce6d4b..f4e33bdca7 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java
@@ -83,7 +83,7 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
int day = calendar.get( Calendar.DAY_OF_MONTH );
int week = calendar.get( Calendar.DAY_OF_WEEK );
- String timeStr = getContext().getResources().getString( R.string.module_ext_str_time_format, hour, minute );
+ String timeStr = getContext().getResources().getString( R.string.module_ext_str_time_format, hour, minute > 9 ? String.valueOf( minute ) : "0" + minute );
String dateStr = getContext().getResources().getString( R.string.module_ext_str_date_format, month + 1, day, mWeeks[week - 1] );
mView.renderTime( dateStr, timeStr );
}
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
index 23c4e909d9..e8e613ecd4 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml
@@ -59,6 +59,7 @@
android:layout_height="wrap_content"
android:layout_marginRight="13dp"
android:gravity="center"
+ android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/module_ext_id_date"
app:layout_constraintTop_toTopOf="parent">
@@ -117,6 +118,7 @@
android:background="@drawable/module_ext_drawable_msg_bkg"
android:gravity="center"
android:textColor="#FFFFFF"
+ android:visibility="invisible"
android:textSize="10dp"
tools:text="···" />
diff --git a/modules/mogo-module-extensions/src/main/res/values/strings.xml b/modules/mogo-module-extensions/src/main/res/values/strings.xml
index 688f2501a4..a74b263891 100644
--- a/modules/mogo-module-extensions/src/main/res/values/strings.xml
+++ b/modules/mogo-module-extensions/src/main/res/values/strings.xml
@@ -2,7 +2,7 @@
mogo-module-extensions
你好,蘑菇2.0开启智慧互联新世界
%1$d月%2$d日 %3$s
- %1$d:%2$d
+ %1$d:%2$s
%s°
- 周日
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
index 323b07f26b..5d96764978 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
@@ -26,7 +26,6 @@ import com.mogo.service.MogoServicePaths;
import com.mogo.service.connection.IMogoSocketManager;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleProvider;
-import com.mogo.service.module.ModuleType;
import com.mogo.utils.logger.Logger;
import java.util.List;
@@ -128,7 +127,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
mMogoModuleHandler.loadMap( R.id.module_main_id_map_fragment_container );
mMogoModuleHandler.loadAppsList( R.id.module_main_id_fragment_container );
- mMogoModuleHandler.loadExtensions( R.id.module_main_id_ai_fragment_container );
+ mMogoModuleHandler.loadExtensions( R.id.module_main_id_header_fragment_container );
mLocationClient = mMogoMapService.getSingletonLocationClient( getApplicationContext() );
mLocationClient.addLocationListener( this );
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java
index 5b0410d476..348e2b1842 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/OrientedViewPager.java
@@ -45,6 +45,12 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
+/**
+ * Created by Bartosz Lipinski
+ * Based on castorflex's VerticalViewPager (https://github.com/castorflex/VerticalViewPager)
+ *
+ * 03.05.15
+ */
public class OrientedViewPager extends ViewGroup {
public enum Orientation {
@@ -64,7 +70,7 @@ public class OrientedViewPager extends ViewGroup {
private static final int MIN_FLING_VELOCITY = 400; // dips
- private static final int[] LAYOUT_ATTRS = new int[]{
+ private static final int[] LAYOUT_ATTRS = new int[] {
android.R.attr.layout_gravity
};
@@ -82,21 +88,21 @@ public class OrientedViewPager extends ViewGroup {
float offset;
}
- private static final Comparator< ItemInfo > COMPARATOR = new Comparator< ItemInfo >() {
+ private static final Comparator COMPARATOR = new Comparator() {
@Override
- public int compare( ItemInfo lhs, ItemInfo rhs ) {
+ public int compare(ItemInfo lhs, ItemInfo rhs) {
return lhs.position - rhs.position;
}
};
private static final Interpolator sInterpolator = new Interpolator() {
- public float getInterpolation( float t ) {
+ public float getInterpolation(float t) {
t -= 1.0f;
return t * t * t * t * t + 1.0f;
}
};
- private final ArrayList< ItemInfo > mItems = new ArrayList< ItemInfo >();
+ private final ArrayList mItems = new ArrayList();
private final ItemInfo mTempItem = new ItemInfo();
private final Rect mTempRect = new Rect();
@@ -190,7 +196,7 @@ public class OrientedViewPager extends ViewGroup {
private static final int DRAW_ORDER_FORWARD = 1;
private static final int DRAW_ORDER_REVERSE = 2;
private int mDrawingOrder;
- private ArrayList< View > mDrawingOrderedChildren;
+ private ArrayList mDrawingOrderedChildren;
private static final ViewPositionComparator sPositionComparator = new ViewPositionComparator();
/**
@@ -211,7 +217,7 @@ public class OrientedViewPager extends ViewGroup {
private final Runnable mEndScrollRunnable = new Runnable() {
public void run() {
- setScrollState( SCROLL_STATE_IDLE );
+ setScrollState(SCROLL_STATE_IDLE);
populate();
}
};
@@ -222,7 +228,7 @@ public class OrientedViewPager extends ViewGroup {
* Used internally to monitor when adapters are switched.
*/
interface OnAdapterChangeListener {
- public void onAdapterChanged( PagerAdapter oldAdapter, PagerAdapter newAdapter );
+ public void onAdapterChanged(PagerAdapter oldAdapter, PagerAdapter newAdapter);
}
/**
@@ -232,66 +238,66 @@ public class OrientedViewPager extends ViewGroup {
interface Decor {
}
- public OrientedViewPager( Context context ) {
- super( context );
+ public OrientedViewPager(Context context) {
+ super(context);
initViewPager();
}
- public OrientedViewPager( Context context, AttributeSet attrs ) {
- super( context, attrs );
+ public OrientedViewPager(Context context, AttributeSet attrs) {
+ super(context, attrs);
initViewPager();
}
void initViewPager() {
- setWillNotDraw( false );
- setDescendantFocusability( FOCUS_AFTER_DESCENDANTS );
- setFocusable( true );
+ setWillNotDraw(false);
+ setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);
+ setFocusable(true);
final Context context = getContext();
- mScroller = new Scroller( context, sInterpolator );
- final ViewConfiguration configuration = ViewConfiguration.get( context );
+ mScroller = new Scroller(context, sInterpolator);
+ final ViewConfiguration configuration = ViewConfiguration.get(context);
final float density = context.getResources().getDisplayMetrics().density;
- mTouchSlop = ViewConfigurationCompat.getScaledPagingTouchSlop( configuration );
- mMinimumVelocity = ( int ) ( MIN_FLING_VELOCITY * density );
+ mTouchSlop = ViewConfigurationCompat.getScaledPagingTouchSlop(configuration);
+ mMinimumVelocity = (int) (MIN_FLING_VELOCITY * density);
mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
- mTopLeftEdge = new EdgeEffectCompat( context );
- mRightBottomEdge = new EdgeEffectCompat( context );
+ mTopLeftEdge = new EdgeEffectCompat(context);
+ mRightBottomEdge = new EdgeEffectCompat(context);
- mFlingDistance = ( int ) ( MIN_DISTANCE_FOR_FLING * density );
- mCloseEnough = ( int ) ( CLOSE_ENOUGH * density );
- mDefaultGutterSize = ( int ) ( DEFAULT_GUTTER_SIZE * density );
+ mFlingDistance = (int) (MIN_DISTANCE_FOR_FLING * density);
+ mCloseEnough = (int) (CLOSE_ENOUGH * density);
+ mDefaultGutterSize = (int) (DEFAULT_GUTTER_SIZE * density);
- ViewCompat.setAccessibilityDelegate( this, new MyAccessibilityDelegate() );
+ ViewCompat.setAccessibilityDelegate(this, new MyAccessibilityDelegate());
- if ( ViewCompat.getImportantForAccessibility( this )
- == ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO ) {
- ViewCompat.setImportantForAccessibility( this,
- ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES );
+ if (ViewCompat.getImportantForAccessibility(this)
+ == ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
+ ViewCompat.setImportantForAccessibility(this,
+ ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES);
}
}
- public void setOrientation( Orientation orientation ) {
+ public void setOrientation(Orientation orientation) {
mOrientation = orientation;
}
@Override
protected void onDetachedFromWindow() {
- removeCallbacks( mEndScrollRunnable );
+ removeCallbacks(mEndScrollRunnable);
super.onDetachedFromWindow();
}
- private void setScrollState( int newState ) {
- if ( mScrollState == newState ) {
+ private void setScrollState(int newState) {
+ if (mScrollState == newState) {
return;
}
mScrollState = newState;
- if ( mPageTransformer != null ) {
+ if (mPageTransformer != null) {
// PageTransformers can do complex things that benefit from hardware layers.
- enableLayers( newState != SCROLL_STATE_IDLE );
+ enableLayers(newState != SCROLL_STATE_IDLE);
}
- if ( mOnPageChangeListener != null ) {
- mOnPageChangeListener.onPageScrollStateChanged( newState );
+ if (mOnPageChangeListener != null) {
+ mOnPageChangeListener.onPageScrollStateChanged(newState);
}
}
@@ -300,58 +306,58 @@ public class OrientedViewPager extends ViewGroup {
*
* @param adapter Adapter to use
*/
- public void setAdapter( PagerAdapter adapter ) {
- if ( mAdapter != null ) {
- mAdapter.unregisterDataSetObserver( mObserver );
- mAdapter.startUpdate( this );
- for ( int i = 0; i < mItems.size(); i++ ) {
- final ItemInfo ii = mItems.get( i );
- mAdapter.destroyItem( this, ii.position, ii.object );
+ public void setAdapter(PagerAdapter adapter) {
+ if (mAdapter != null) {
+ mAdapter.unregisterDataSetObserver(mObserver);
+ mAdapter.startUpdate(this);
+ for (int i = 0; i < mItems.size(); i++) {
+ final ItemInfo ii = mItems.get(i);
+ mAdapter.destroyItem(this, ii.position, ii.object);
}
- mAdapter.finishUpdate( this );
+ mAdapter.finishUpdate(this);
mItems.clear();
removeNonDecorViews();
mCurItem = 0;
- scrollTo( 0, 0 );
+ scrollTo(0, 0);
}
final PagerAdapter oldAdapter = mAdapter;
mAdapter = adapter;
mExpectedAdapterCount = 0;
- if ( mAdapter != null ) {
- if ( mObserver == null ) {
+ if (mAdapter != null) {
+ if (mObserver == null) {
mObserver = new PagerObserver();
}
- mAdapter.registerDataSetObserver( mObserver );
+ mAdapter.registerDataSetObserver(mObserver);
mPopulatePending = false;
final boolean wasFirstLayout = mFirstLayout;
mFirstLayout = true;
mExpectedAdapterCount = mAdapter.getCount();
- if ( mRestoredCurItem >= 0 ) {
- mAdapter.restoreState( mRestoredAdapterState, mRestoredClassLoader );
- setCurrentItemInternal( mRestoredCurItem, false, true );
+ if (mRestoredCurItem >= 0) {
+ mAdapter.restoreState(mRestoredAdapterState, mRestoredClassLoader);
+ setCurrentItemInternal(mRestoredCurItem, false, true);
mRestoredCurItem = -1;
mRestoredAdapterState = null;
mRestoredClassLoader = null;
- } else if ( !wasFirstLayout ) {
+ } else if (!wasFirstLayout) {
populate();
} else {
requestLayout();
}
}
- if ( mAdapterChangeListener != null && oldAdapter != adapter ) {
- mAdapterChangeListener.onAdapterChanged( oldAdapter, adapter );
+ if (mAdapterChangeListener != null && oldAdapter != adapter) {
+ mAdapterChangeListener.onAdapterChanged(oldAdapter, adapter);
}
}
private void removeNonDecorViews() {
- for ( int i = 0; i < getChildCount(); i++ ) {
- final View child = getChildAt( i );
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
- if ( !lp.isDecor ) {
- removeViewAt( i );
+ for (int i = 0; i < getChildCount(); i++) {
+ final View child = getChildAt(i);
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ if (!lp.isDecor) {
+ removeViewAt(i);
i--;
}
}
@@ -366,12 +372,12 @@ public class OrientedViewPager extends ViewGroup {
return mAdapter;
}
- void setOnAdapterChangeListener( OnAdapterChangeListener listener ) {
+ void setOnAdapterChangeListener(OnAdapterChangeListener listener) {
mAdapterChangeListener = listener;
}
private int getClientSize() {
- return ( mOrientation == Orientation.VERTICAL ) ?
+ return (mOrientation == Orientation.VERTICAL) ?
getMeasuredHeight() - getPaddingTop() - getPaddingBottom() :
getMeasuredWidth() - getPaddingLeft() - getPaddingRight();
}
@@ -383,108 +389,108 @@ public class OrientedViewPager extends ViewGroup {
*
* @param item Item index to select
*/
- public void setCurrentItem( int item ) {
+ public void setCurrentItem(int item) {
mPopulatePending = false;
- setCurrentItemInternal( item, !mFirstLayout, false );
+ setCurrentItemInternal(item, !mFirstLayout, false);
}
/**
* Set the currently selected page.
*
- * @param item Item index to select
+ * @param item Item index to select
* @param smoothScroll True to smoothly scroll to the new item, false to transition immediately
*/
- public void setCurrentItem( int item, boolean smoothScroll ) {
+ public void setCurrentItem(int item, boolean smoothScroll) {
mPopulatePending = false;
- setCurrentItemInternal( item, smoothScroll, false );
+ setCurrentItemInternal(item, smoothScroll, false);
}
public int getCurrentItem() {
return mCurItem;
}
- void setCurrentItemInternal( int item, boolean smoothScroll, boolean always ) {
- setCurrentItemInternal( item, smoothScroll, always, 0 );
+ void setCurrentItemInternal(int item, boolean smoothScroll, boolean always) {
+ setCurrentItemInternal(item, smoothScroll, always, 0);
}
- void setCurrentItemInternal( int item, boolean smoothScroll, boolean always, int velocity ) {
- if ( mAdapter == null || mAdapter.getCount() <= 0 ) {
- setScrollingCacheEnabled( false );
+ void setCurrentItemInternal(int item, boolean smoothScroll, boolean always, int velocity) {
+ if (mAdapter == null || mAdapter.getCount() <= 0) {
+ setScrollingCacheEnabled(false);
return;
}
- if ( !always && mCurItem == item && mItems.size() != 0 ) {
- setScrollingCacheEnabled( false );
+ if (!always && mCurItem == item && mItems.size() != 0) {
+ setScrollingCacheEnabled(false);
return;
}
- if ( item < 0 ) {
+ if (item < 0) {
item = 0;
- } else if ( item >= mAdapter.getCount() ) {
+ } else if (item >= mAdapter.getCount()) {
item = mAdapter.getCount() - 1;
}
final int pageLimit = mOffscreenPageLimit;
- if ( item > ( mCurItem + pageLimit ) || item < ( mCurItem - pageLimit ) ) {
+ if (item > (mCurItem + pageLimit) || item < (mCurItem - pageLimit)) {
// We are doing a jump by more than one page. To avoid
// glitches, we want to keep all current pages in the view
// until the scroll ends.
- for ( int i = 0; i < mItems.size(); i++ ) {
- mItems.get( i ).scrolling = true;
+ for (int i = 0; i < mItems.size(); i++) {
+ mItems.get(i).scrolling = true;
}
}
final boolean dispatchSelected = mCurItem != item;
- if ( mFirstLayout ) {
+ if (mFirstLayout) {
// We don't have any idea how big we are yet and shouldn't have any pages either.
// Just set things up and let the pending layout handle things.
mCurItem = item;
- if ( dispatchSelected && mOnPageChangeListener != null ) {
- mOnPageChangeListener.onPageSelected( item );
+ if (dispatchSelected && mOnPageChangeListener != null) {
+ mOnPageChangeListener.onPageSelected(item);
}
- if ( dispatchSelected && mInternalPageChangeListener != null ) {
- mInternalPageChangeListener.onPageSelected( item );
+ if (dispatchSelected && mInternalPageChangeListener != null) {
+ mInternalPageChangeListener.onPageSelected(item);
}
requestLayout();
} else {
- populate( item );
- scrollToItem( item, smoothScroll, velocity, dispatchSelected );
+ populate(item);
+ scrollToItem(item, smoothScroll, velocity, dispatchSelected);
}
}
- private void scrollToItem( int item, boolean smoothScroll, int velocity,
- boolean dispatchSelected ) {
- final ItemInfo curInfo = infoForPosition( item );
+ private void scrollToItem(int item, boolean smoothScroll, int velocity,
+ boolean dispatchSelected) {
+ final ItemInfo curInfo = infoForPosition(item);
int dest = 0;
- if ( curInfo != null ) {
+ if (curInfo != null) {
final int size = getClientSize();
- dest = ( int ) ( size * Math.max( mFirstOffset,
- Math.min( curInfo.offset, mLastOffset ) ) );
+ dest = (int) (size * Math.max(mFirstOffset,
+ Math.min(curInfo.offset, mLastOffset)));
}
- if ( smoothScroll ) {
- if ( mOrientation == Orientation.VERTICAL ) {
- smoothScrollTo( 0, dest, velocity );
+ if (smoothScroll) {
+ if (mOrientation == Orientation.VERTICAL) {
+ smoothScrollTo(0, dest, velocity);
} else {
- smoothScrollTo( dest, 0, velocity );
+ smoothScrollTo(dest, 0, velocity);
}
- if ( dispatchSelected && mOnPageChangeListener != null ) {
- mOnPageChangeListener.onPageSelected( item );
+ if (dispatchSelected && mOnPageChangeListener != null) {
+ mOnPageChangeListener.onPageSelected(item);
}
- if ( dispatchSelected && mInternalPageChangeListener != null ) {
- mInternalPageChangeListener.onPageSelected( item );
+ if (dispatchSelected && mInternalPageChangeListener != null) {
+ mInternalPageChangeListener.onPageSelected(item);
}
} else {
- if ( dispatchSelected && mOnPageChangeListener != null ) {
- mOnPageChangeListener.onPageSelected( item );
+ if (dispatchSelected && mOnPageChangeListener != null) {
+ mOnPageChangeListener.onPageSelected(item);
}
- if ( dispatchSelected && mInternalPageChangeListener != null ) {
- mInternalPageChangeListener.onPageSelected( item );
+ if (dispatchSelected && mInternalPageChangeListener != null) {
+ mInternalPageChangeListener.onPageSelected(item);
}
- completeScroll( false );
- if ( mOrientation == Orientation.VERTICAL ) {
- scrollTo( 0, dest );
+ completeScroll(false);
+ if (mOrientation == Orientation.VERTICAL) {
+ scrollTo(0, dest);
} else {
- scrollTo( dest, 0 );
+ scrollTo(dest, 0);
}
- pageScrolled( dest );
+ pageScrolled(dest);
}
}
@@ -494,7 +500,7 @@ public class OrientedViewPager extends ViewGroup {
*
* @param listener Listener to set
*/
- public void setOnPageChangeListener( ViewPager.OnPageChangeListener listener ) {
+ public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) {
mOnPageChangeListener = listener;
}
@@ -508,48 +514,48 @@ public class OrientedViewPager extends ViewGroup {
* As a result, setting a PageTransformer prior to Android 3.0 (API 11) will have no effect.
*
* @param reverseDrawingOrder true if the supplied PageTransformer requires page views
- * to be drawn from last to first instead of first to last.
- * @param transformer PageTransformer that will modify each page's animation properties
+ * to be drawn from last to first instead of first to last.
+ * @param transformer PageTransformer that will modify each page's animation properties
*/
- public void setPageTransformer( boolean reverseDrawingOrder,
- ViewPager.PageTransformer transformer ) {
- if ( Build.VERSION.SDK_INT >= 11 ) {
+ public void setPageTransformer(boolean reverseDrawingOrder,
+ ViewPager.PageTransformer transformer) {
+ if (Build.VERSION.SDK_INT >= 11) {
final boolean hasTransformer = transformer != null;
- final boolean needsPopulate = hasTransformer != ( mPageTransformer != null );
+ final boolean needsPopulate = hasTransformer != (mPageTransformer != null);
mPageTransformer = transformer;
- setChildrenDrawingOrderEnabledCompat( hasTransformer );
- if ( hasTransformer ) {
+ setChildrenDrawingOrderEnabledCompat(hasTransformer);
+ if (hasTransformer) {
mDrawingOrder = reverseDrawingOrder ? DRAW_ORDER_REVERSE : DRAW_ORDER_FORWARD;
} else {
mDrawingOrder = DRAW_ORDER_DEFAULT;
}
- if ( needsPopulate ) populate();
+ if (needsPopulate) populate();
}
}
- void setChildrenDrawingOrderEnabledCompat( boolean enable ) {
- if ( Build.VERSION.SDK_INT >= 7 ) {
- if ( mSetChildrenDrawingOrderEnabled == null ) {
+ void setChildrenDrawingOrderEnabledCompat(boolean enable) {
+ if (Build.VERSION.SDK_INT >= 7) {
+ if (mSetChildrenDrawingOrderEnabled == null) {
try {
mSetChildrenDrawingOrderEnabled = ViewGroup.class.getDeclaredMethod(
- "setChildrenDrawingOrderEnabled", new Class[]{Boolean.TYPE} );
- } catch ( NoSuchMethodException e ) {
- Log.e( TAG, "Can't find setChildrenDrawingOrderEnabled", e );
+ "setChildrenDrawingOrderEnabled", new Class[] { Boolean.TYPE });
+ } catch (NoSuchMethodException e) {
+ Log.e(TAG, "Can't find setChildrenDrawingOrderEnabled", e);
}
}
try {
- mSetChildrenDrawingOrderEnabled.invoke( this, enable );
- } catch ( Exception e ) {
- Log.e( TAG, "Error changing children drawing order", e );
+ mSetChildrenDrawingOrderEnabled.invoke(this, enable);
+ } catch (Exception e) {
+ Log.e(TAG, "Error changing children drawing order", e);
}
}
}
@Override
- protected int getChildDrawingOrder( int childCount, int i ) {
+ protected int getChildDrawingOrder(int childCount, int i) {
final int index = mDrawingOrder == DRAW_ORDER_REVERSE ? childCount - 1 - i : i;
final int result =
- ( ( LayoutParams ) mDrawingOrderedChildren.get( index ).getLayoutParams() ).childIndex;
+ ((LayoutParams) mDrawingOrderedChildren.get(index).getLayoutParams()).childIndex;
return result;
}
@@ -560,7 +566,7 @@ public class OrientedViewPager extends ViewGroup {
* @return The old listener that was set, if any.
*/
ViewPager.OnPageChangeListener setInternalPageChangeListener(
- ViewPager.OnPageChangeListener listener ) {
+ ViewPager.OnPageChangeListener listener) {
ViewPager.OnPageChangeListener oldListener = mInternalPageChangeListener;
mInternalPageChangeListener = listener;
return oldListener;
@@ -594,13 +600,13 @@ public class OrientedViewPager extends ViewGroup {
*
* @param limit How many pages will be kept offscreen in an idle state.
*/
- public void setOffscreenPageLimit( int limit ) {
- if ( limit < DEFAULT_OFFSCREEN_PAGES ) {
- Log.w( TAG, "Requested offscreen page limit " + limit + " too small; defaulting to " +
- DEFAULT_OFFSCREEN_PAGES );
+ public void setOffscreenPageLimit(int limit) {
+ if (limit < DEFAULT_OFFSCREEN_PAGES) {
+ Log.w(TAG, "Requested offscreen page limit " + limit + " too small; defaulting to " +
+ DEFAULT_OFFSCREEN_PAGES);
limit = DEFAULT_OFFSCREEN_PAGES;
}
- if ( limit != mOffscreenPageLimit ) {
+ if (limit != mOffscreenPageLimit) {
mOffscreenPageLimit = limit;
populate();
}
@@ -614,12 +620,12 @@ public class OrientedViewPager extends ViewGroup {
* @see #setPageMarginDrawable(Drawable)
* @see #setPageMarginDrawable(int)
*/
- public void setPageMargin( int marginPixels ) {
+ public void setPageMargin(int marginPixels) {
final int oldMargin = mPageMargin;
mPageMargin = marginPixels;
- final int size = ( mOrientation == Orientation.VERTICAL ) ? getHeight() : getWidth();
- recomputeScrollPosition( size, size, marginPixels, oldMargin );
+ final int size = (mOrientation == Orientation.VERTICAL) ? getHeight() : getWidth();
+ recomputeScrollPosition(size, size, marginPixels, oldMargin);
requestLayout();
}
@@ -638,10 +644,10 @@ public class OrientedViewPager extends ViewGroup {
*
* @param d Drawable to display between pages
*/
- public void setPageMarginDrawable( Drawable d ) {
+ public void setPageMarginDrawable(Drawable d) {
mMarginDrawable = d;
- if ( d != null ) refreshDrawableState();
- setWillNotDraw( d == null );
+ if (d != null) refreshDrawableState();
+ setWillNotDraw(d == null);
invalidate();
}
@@ -650,21 +656,21 @@ public class OrientedViewPager extends ViewGroup {
*
* @param resId Resource ID of a drawable to display between pages
*/
- public void setPageMarginDrawable( int resId ) {
- setPageMarginDrawable( getContext().getResources().getDrawable( resId ) );
+ public void setPageMarginDrawable(int resId) {
+ setPageMarginDrawable(getContext().getResources().getDrawable(resId));
}
@Override
- protected boolean verifyDrawable( Drawable who ) {
- return super.verifyDrawable( who ) || who == mMarginDrawable;
+ protected boolean verifyDrawable(Drawable who) {
+ return super.verifyDrawable(who) || who == mMarginDrawable;
}
@Override
protected void drawableStateChanged() {
super.drawableStateChanged();
final Drawable d = mMarginDrawable;
- if ( d != null && d.isStateful() ) {
- d.setState( getDrawableState() );
+ if (d != null && d.isStateful()) {
+ d.setState(getDrawableState());
}
}
@@ -672,10 +678,10 @@ public class OrientedViewPager extends ViewGroup {
// the screen has to travel, however, we don't want this duration to be effected in a
// purely linear fashion. Instead, we use this method to moderate the effect that the distance
// of travel has on the overall snap duration.
- float distanceInfluenceForSnapDuration( float f ) {
+ float distanceInfluenceForSnapDuration(float f) {
f -= 0.5f; // center the values about 0.
f *= 0.3f * Math.PI / 2.0f;
- return ( float ) Math.sin( f );
+ return (float) Math.sin(f);
}
/**
@@ -684,67 +690,67 @@ public class OrientedViewPager extends ViewGroup {
* @param x the number of pixels to scroll by on the X axis
* @param y the number of pixels to scroll by on the Y axis
*/
- void smoothScrollTo( int x, int y ) {
- smoothScrollTo( x, y, 0 );
+ void smoothScrollTo(int x, int y) {
+ smoothScrollTo(x, y, 0);
}
/**
* Like {@link View#scrollBy}, but scroll smoothly instead of immediately.
*
- * @param x the number of pixels to scroll by on the X axis
- * @param y the number of pixels to scroll by on the Y axis
+ * @param x the number of pixels to scroll by on the X axis
+ * @param y the number of pixels to scroll by on the Y axis
* @param velocity the velocity associated with a fling, if applicable. (0 otherwise)
*/
- void smoothScrollTo( int x, int y, int velocity ) {
- if ( getChildCount() == 0 ) {
+ void smoothScrollTo(int x, int y, int velocity) {
+ if (getChildCount() == 0) {
// Nothing to do.
- setScrollingCacheEnabled( false );
+ setScrollingCacheEnabled(false);
return;
}
int sx = getScrollX();
int sy = getScrollY();
int dx = x - sx;
int dy = y - sy;
- if ( dx == 0 && dy == 0 ) {
- completeScroll( false );
+ if (dx == 0 && dy == 0) {
+ completeScroll(false);
populate();
- setScrollState( SCROLL_STATE_IDLE );
+ setScrollState(SCROLL_STATE_IDLE);
return;
}
- setScrollingCacheEnabled( true );
- setScrollState( SCROLL_STATE_SETTLING );
+ setScrollingCacheEnabled(true);
+ setScrollState(SCROLL_STATE_SETTLING);
final int size = getClientSize();
final int halfSize = size / 2;
- final float distanceRatio = Math.min( 1f, 1.0f * Math.abs( dx ) / size );
+ final float distanceRatio = Math.min(1f, 1.0f * Math.abs(dx) / size);
final float distance = halfSize + halfSize *
- distanceInfluenceForSnapDuration( distanceRatio );
+ distanceInfluenceForSnapDuration(distanceRatio);
int duration = 0;
- velocity = Math.abs( velocity );
- if ( velocity > 0 ) {
- duration = 4 * Math.round( 1000 * Math.abs( distance / velocity ) );
+ velocity = Math.abs(velocity);
+ if (velocity > 0) {
+ duration = 4 * Math.round(1000 * Math.abs(distance / velocity));
} else {
- final float pageSize = size * mAdapter.getPageWidth( mCurItem );
- final float pageDelta = ( float ) Math.abs( dx ) / ( pageSize + mPageMargin );
- duration = ( int ) ( ( pageDelta + 1 ) * 100 );
+ final float pageSize = size * mAdapter.getPageWidth(mCurItem);
+ final float pageDelta = (float) Math.abs(dx) / (pageSize + mPageMargin);
+ duration = (int) ((pageDelta + 1) * 100);
}
- duration = Math.min( duration, MAX_SETTLE_DURATION );
+ duration = Math.min(duration, MAX_SETTLE_DURATION);
- mScroller.startScroll( sx, sy, dx, dy, duration );
- ViewCompat.postInvalidateOnAnimation( this );
+ mScroller.startScroll(sx, sy, dx, dy, duration);
+ ViewCompat.postInvalidateOnAnimation(this);
}
- ItemInfo addNewItem( int position, int index ) {
+ ItemInfo addNewItem(int position, int index) {
ItemInfo ii = new ItemInfo();
ii.position = position;
- ii.object = mAdapter.instantiateItem( this, position );
- ii.sizeFactor = mAdapter.getPageWidth( position );
- if ( index < 0 || index >= mItems.size() ) {
- mItems.add( ii );
+ ii.object = mAdapter.instantiateItem(this, position);
+ ii.sizeFactor = mAdapter.getPageWidth(position);
+ if (index < 0 || index >= mItems.size()) {
+ mItems.add(ii);
} else {
- mItems.add( index, ii );
+ mItems.add(index, ii);
}
return ii;
}
@@ -759,36 +765,36 @@ public class OrientedViewPager extends ViewGroup {
int newCurrItem = mCurItem;
boolean isUpdating = false;
- for ( int i = 0; i < mItems.size(); i++ ) {
- final ItemInfo ii = mItems.get( i );
- final int newPos = mAdapter.getItemPosition( ii.object );
+ for (int i = 0; i < mItems.size(); i++) {
+ final ItemInfo ii = mItems.get(i);
+ final int newPos = mAdapter.getItemPosition(ii.object);
- if ( newPos == PagerAdapter.POSITION_UNCHANGED ) {
+ if (newPos == PagerAdapter.POSITION_UNCHANGED) {
continue;
}
- if ( newPos == PagerAdapter.POSITION_NONE ) {
- mItems.remove( i );
+ if (newPos == PagerAdapter.POSITION_NONE) {
+ mItems.remove(i);
i--;
- if ( !isUpdating ) {
- mAdapter.startUpdate( this );
+ if (!isUpdating) {
+ mAdapter.startUpdate(this);
isUpdating = true;
}
- mAdapter.destroyItem( this, ii.position, ii.object );
+ mAdapter.destroyItem(this, ii.position, ii.object);
needPopulate = true;
- if ( mCurItem == ii.position ) {
+ if (mCurItem == ii.position) {
// Keep the current item in the valid range
- newCurrItem = Math.max( 0, Math.min( mCurItem, adapterCount - 1 ) );
+ newCurrItem = Math.max(0, Math.min(mCurItem, adapterCount - 1));
needPopulate = true;
}
continue;
}
- if ( ii.position != newPos ) {
- if ( ii.position == mCurItem ) {
+ if (ii.position != newPos) {
+ if (ii.position == mCurItem) {
// Our current item changed position. Follow it.
newCurrItem = newPos;
}
@@ -798,42 +804,42 @@ public class OrientedViewPager extends ViewGroup {
}
}
- if ( isUpdating ) {
- mAdapter.finishUpdate( this );
+ if (isUpdating) {
+ mAdapter.finishUpdate(this);
}
- Collections.sort( mItems, COMPARATOR );
+ Collections.sort(mItems, COMPARATOR);
- if ( needPopulate ) {
+ if (needPopulate) {
// Reset our known page widths; populate will recompute them.
final int childCount = getChildCount();
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
- if ( !lp.isDecor ) {
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ if (!lp.isDecor) {
lp.heightFactor = 0.f;
}
}
- setCurrentItemInternal( newCurrItem, false, true );
+ setCurrentItemInternal(newCurrItem, false, true);
requestLayout();
}
}
void populate() {
- populate( mCurItem );
+ populate(mCurItem);
}
- void populate( int newCurrentItem ) {
+ void populate(int newCurrentItem) {
ItemInfo oldCurInfo = null;
int focusDirection = View.FOCUS_FORWARD;
- if ( mCurItem != newCurrentItem ) {
+ if (mCurItem != newCurrentItem) {
focusDirection = mCurItem < newCurrentItem ? View.FOCUS_DOWN : View.FOCUS_UP;
- oldCurInfo = infoForPosition( mCurItem );
+ oldCurInfo = infoForPosition(mCurItem);
mCurItem = newCurrentItem;
}
- if ( mAdapter == null ) {
+ if (mAdapter == null) {
sortChildDrawingOrder();
return;
}
@@ -842,8 +848,8 @@ public class OrientedViewPager extends ViewGroup {
// on creating views from the time the user releases their finger to
// fling to a new position until we have finished the scroll to
// that position, avoiding glitches from happening at that point.
- if ( mPopulatePending ) {
- if ( DEBUG ) Log.i( TAG, "populate is pending, skipping for now..." );
+ if (mPopulatePending) {
+ if (DEBUG) Log.i(TAG, "populate is pending, skipping for now...");
sortChildDrawingOrder();
return;
}
@@ -851,159 +857,159 @@ public class OrientedViewPager extends ViewGroup {
// Also, don't populate until we are attached to a window. This is to
// avoid trying to populate before we have restored our view hierarchy
// state and conflicting with what is restored.
- if ( getWindowToken() == null ) {
+ if (getWindowToken() == null) {
return;
}
- mAdapter.startUpdate( this );
+ mAdapter.startUpdate(this);
final int pageLimit = mOffscreenPageLimit;
- final int startPos = Math.max( 0, mCurItem - pageLimit );
+ final int startPos = Math.max(0, mCurItem - pageLimit);
final int N = mAdapter.getCount();
- final int endPos = Math.min( N - 1, mCurItem + pageLimit );
+ final int endPos = Math.min(N - 1, mCurItem + pageLimit);
- if ( N != mExpectedAdapterCount ) {
+ if (N != mExpectedAdapterCount) {
String resName;
try {
- resName = getResources().getResourceName( getId() );
- } catch ( Resources.NotFoundException e ) {
- resName = Integer.toHexString( getId() );
+ resName = getResources().getResourceName(getId());
+ } catch (Resources.NotFoundException e) {
+ resName = Integer.toHexString(getId());
}
- throw new IllegalStateException( "The application's PagerAdapter changed the adapter's" +
+ throw new IllegalStateException("The application's PagerAdapter changed the adapter's" +
" contents without calling PagerAdapter#notifyDataSetChanged!" +
" Expected adapter item count: " + mExpectedAdapterCount + ", found: " + N +
" Pager id: " + resName +
" Pager class: " + getClass() +
- " Problematic adapter: " + mAdapter.getClass() );
+ " Problematic adapter: " + mAdapter.getClass());
}
// Locate the currently focused item or add it if needed.
int curIndex = -1;
ItemInfo curItem = null;
- for ( curIndex = 0; curIndex < mItems.size(); curIndex++ ) {
- final ItemInfo ii = mItems.get( curIndex );
- if ( ii.position >= mCurItem ) {
- if ( ii.position == mCurItem ) curItem = ii;
+ for (curIndex = 0; curIndex < mItems.size(); curIndex++) {
+ final ItemInfo ii = mItems.get(curIndex);
+ if (ii.position >= mCurItem) {
+ if (ii.position == mCurItem) curItem = ii;
break;
}
}
- if ( curItem == null && N > 0 ) {
- curItem = addNewItem( mCurItem, curIndex );
+ if (curItem == null && N > 0) {
+ curItem = addNewItem(mCurItem, curIndex);
}
// Fill 3x the available width or up to the number of offscreen
// pages requested to either side, whichever is larger.
// If we have no current item we have no work to do.
- if ( curItem != null ) {
+ if (curItem != null) {
float extraSizeTopLeft = 0.f;
int itemIndex = curIndex - 1;
- ItemInfo ii = itemIndex >= 0 ? mItems.get( itemIndex ) : null;
+ ItemInfo ii = itemIndex >= 0 ? mItems.get(itemIndex) : null;
final int clientSize = getClientSize();
final float topLeftSizeNeeded = clientSize <= 0 ? 0 :
- 2.f - curItem.sizeFactor + ( float ) getPaddingLeft() / ( float ) clientSize;
- for ( int pos = mCurItem - 1; pos >= 0; pos-- ) {
- if ( extraSizeTopLeft >= topLeftSizeNeeded && pos < startPos ) {
- if ( ii == null ) {
+ 2.f - curItem.sizeFactor + (float) getPaddingLeft() / (float) clientSize;
+ for (int pos = mCurItem - 1; pos >= 0; pos--) {
+ if (extraSizeTopLeft >= topLeftSizeNeeded && pos < startPos) {
+ if (ii == null) {
break;
}
- if ( pos == ii.position && !ii.scrolling ) {
- mItems.remove( itemIndex );
- mAdapter.destroyItem( this, pos, ii.object );
- if ( DEBUG ) {
- Log.i( TAG, "populate() - destroyItem() with pos: " + pos +
- " view: " + ( ( View ) ii.object ) );
+ if (pos == ii.position && !ii.scrolling) {
+ mItems.remove(itemIndex);
+ mAdapter.destroyItem(this, pos, ii.object);
+ if (DEBUG) {
+ Log.i(TAG, "populate() - destroyItem() with pos: " + pos +
+ " view: " + ((View) ii.object));
}
itemIndex--;
curIndex--;
- ii = itemIndex >= 0 ? mItems.get( itemIndex ) : null;
+ ii = itemIndex >= 0 ? mItems.get(itemIndex) : null;
}
- } else if ( ii != null && pos == ii.position ) {
+ } else if (ii != null && pos == ii.position) {
extraSizeTopLeft += ii.sizeFactor;
itemIndex--;
- ii = itemIndex >= 0 ? mItems.get( itemIndex ) : null;
+ ii = itemIndex >= 0 ? mItems.get(itemIndex) : null;
} else {
- ii = addNewItem( pos, itemIndex + 1 );
+ ii = addNewItem(pos, itemIndex + 1);
extraSizeTopLeft += ii.sizeFactor;
curIndex++;
- ii = itemIndex >= 0 ? mItems.get( itemIndex ) : null;
+ ii = itemIndex >= 0 ? mItems.get(itemIndex) : null;
}
}
float extraSizeBottomRight = curItem.sizeFactor;
itemIndex = curIndex + 1;
- if ( extraSizeBottomRight < 2.f ) {
- ii = itemIndex < mItems.size() ? mItems.get( itemIndex ) : null;
+ if (extraSizeBottomRight < 2.f) {
+ ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null;
final float bottomRightSizeNeeded = clientSize <= 0 ? 0 :
- ( float ) getPaddingRight() / ( float ) clientSize + 2.f;
- for ( int pos = mCurItem + 1; pos < N; pos++ ) {
- if ( extraSizeBottomRight >= bottomRightSizeNeeded && pos > endPos ) {
- if ( ii == null ) {
+ (float) getPaddingRight() / (float) clientSize + 2.f;
+ for (int pos = mCurItem + 1; pos < N; pos++) {
+ if (extraSizeBottomRight >= bottomRightSizeNeeded && pos > endPos) {
+ if (ii == null) {
break;
}
- if ( pos == ii.position && !ii.scrolling ) {
- mItems.remove( itemIndex );
- mAdapter.destroyItem( this, pos, ii.object );
- if ( DEBUG ) {
- Log.i( TAG, "populate() - destroyItem() with pos: " + pos +
- " view: " + ( ( View ) ii.object ) );
+ if (pos == ii.position && !ii.scrolling) {
+ mItems.remove(itemIndex);
+ mAdapter.destroyItem(this, pos, ii.object);
+ if (DEBUG) {
+ Log.i(TAG, "populate() - destroyItem() with pos: " + pos +
+ " view: " + ((View) ii.object));
}
- ii = itemIndex < mItems.size() ? mItems.get( itemIndex ) : null;
+ ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null;
}
- } else if ( ii != null && pos == ii.position ) {
+ } else if (ii != null && pos == ii.position) {
extraSizeBottomRight += ii.sizeFactor;
itemIndex++;
- ii = itemIndex < mItems.size() ? mItems.get( itemIndex ) : null;
+ ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null;
} else {
- ii = addNewItem( pos, itemIndex );
+ ii = addNewItem(pos, itemIndex);
itemIndex++;
extraSizeBottomRight += ii.sizeFactor;
- ii = itemIndex < mItems.size() ? mItems.get( itemIndex ) : null;
+ ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null;
}
}
}
- calculatePageOffsets( curItem, curIndex, oldCurInfo );
+ calculatePageOffsets(curItem, curIndex, oldCurInfo);
}
- if ( DEBUG ) {
- Log.i( TAG, "Current page list:" );
- for ( int i = 0; i < mItems.size(); i++ ) {
- Log.i( TAG, "#" + i + ": page " + mItems.get( i ).position );
+ if (DEBUG) {
+ Log.i(TAG, "Current page list:");
+ for (int i = 0; i < mItems.size(); i++) {
+ Log.i(TAG, "#" + i + ": page " + mItems.get(i).position);
}
}
- mAdapter.setPrimaryItem( this, mCurItem, curItem != null ? curItem.object : null );
+ mAdapter.setPrimaryItem(this, mCurItem, curItem != null ? curItem.object : null);
- mAdapter.finishUpdate( this );
+ mAdapter.finishUpdate(this);
// Check width measurement of current pages and drawing sort order.
// Update LayoutParams as needed.
final int childCount = getChildCount();
- if ( mOrientation == Orientation.VERTICAL ) {
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
+ if (mOrientation == Orientation.VERTICAL) {
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
lp.childIndex = i;
- if ( !lp.isDecor && lp.heightFactor == 0.f ) {
+ if (!lp.isDecor && lp.heightFactor == 0.f) {
// 0 means requery the adapter for this, it doesn't have a valid width
// .
- final ItemInfo ii = infoForChild( child );
- if ( ii != null ) {
+ final ItemInfo ii = infoForChild(child);
+ if (ii != null) {
lp.heightFactor = ii.sizeFactor;
lp.position = ii.position;
}
}
}
} else {
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
lp.childIndex = i;
- if ( !lp.isDecor && lp.widthFactor == 0.f ) {
+ if (!lp.isDecor && lp.widthFactor == 0.f) {
// 0 means requery the adapter for this, it doesn't have a valid width.
- final ItemInfo ii = infoForChild( child );
- if ( ii != null ) {
+ final ItemInfo ii = infoForChild(child);
+ if (ii != null) {
lp.widthFactor = ii.sizeFactor;
lp.position = ii.position;
}
@@ -1012,15 +1018,15 @@ public class OrientedViewPager extends ViewGroup {
}
sortChildDrawingOrder();
- if ( hasFocus() ) {
+ if (hasFocus()) {
View currentFocused = findFocus();
- ItemInfo ii = currentFocused != null ? infoForAnyChild( currentFocused ) : null;
- if ( ii == null || ii.position != mCurItem ) {
- for ( int i = 0; i < getChildCount(); i++ ) {
- View child = getChildAt( i );
- ii = infoForChild( child );
- if ( ii != null && ii.position == mCurItem ) {
- if ( child.requestFocus( focusDirection ) ) {
+ ItemInfo ii = currentFocused != null ? infoForAnyChild(currentFocused) : null;
+ if (ii == null || ii.position != mCurItem) {
+ for (int i = 0; i < getChildCount(); i++) {
+ View child = getChildAt(i);
+ ii = infoForChild(child);
+ if (ii != null && ii.position == mCurItem) {
+ if (child.requestFocus(focusDirection)) {
break;
}
}
@@ -1030,64 +1036,64 @@ public class OrientedViewPager extends ViewGroup {
}
private void sortChildDrawingOrder() {
- if ( mDrawingOrder != DRAW_ORDER_DEFAULT ) {
- if ( mDrawingOrderedChildren == null ) {
- mDrawingOrderedChildren = new ArrayList< View >();
+ if (mDrawingOrder != DRAW_ORDER_DEFAULT) {
+ if (mDrawingOrderedChildren == null) {
+ mDrawingOrderedChildren = new ArrayList();
} else {
mDrawingOrderedChildren.clear();
}
final int childCount = getChildCount();
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- mDrawingOrderedChildren.add( child );
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ mDrawingOrderedChildren.add(child);
}
- Collections.sort( mDrawingOrderedChildren, sPositionComparator );
+ Collections.sort(mDrawingOrderedChildren, sPositionComparator);
}
}
- private void calculatePageOffsets( ItemInfo curItem, int curIndex, ItemInfo oldCurInfo ) {
+ private void calculatePageOffsets(ItemInfo curItem, int curIndex, ItemInfo oldCurInfo) {
final int N = mAdapter.getCount();
final int size = getClientSize();
- final float marginOffset = size > 0 ? ( float ) mPageMargin / size : 0;
+ final float marginOffset = size > 0 ? (float) mPageMargin / size : 0;
// Fix up offsets for later layout.
- if ( oldCurInfo != null ) {
+ if (oldCurInfo != null) {
final int oldCurPosition = oldCurInfo.position;
// Base offsets off of oldCurInfo.
- if ( oldCurPosition < curItem.position ) {
+ if (oldCurPosition < curItem.position) {
int itemIndex = 0;
ItemInfo ii = null;
float offset = oldCurInfo.offset + oldCurInfo.sizeFactor + marginOffset;
- for ( int pos = oldCurPosition + 1;
- pos <= curItem.position && itemIndex < mItems.size(); pos++ ) {
- ii = mItems.get( itemIndex );
- while ( pos > ii.position && itemIndex < mItems.size() - 1 ) {
+ for (int pos = oldCurPosition + 1;
+ pos <= curItem.position && itemIndex < mItems.size(); pos++) {
+ ii = mItems.get(itemIndex);
+ while (pos > ii.position && itemIndex < mItems.size() - 1) {
itemIndex++;
- ii = mItems.get( itemIndex );
+ ii = mItems.get(itemIndex);
}
- while ( pos < ii.position ) {
+ while (pos < ii.position) {
// We don't have an item populated for this,
// ask the adapter for an offset.
- offset += mAdapter.getPageWidth( pos ) + marginOffset;
+ offset += mAdapter.getPageWidth(pos) + marginOffset;
pos++;
}
ii.offset = offset;
offset += ii.sizeFactor + marginOffset;
}
- } else if ( oldCurPosition > curItem.position ) {
+ } else if (oldCurPosition > curItem.position) {
int itemIndex = mItems.size() - 1;
ItemInfo ii = null;
float offset = oldCurInfo.offset;
- for ( int pos = oldCurPosition - 1;
- pos >= curItem.position && itemIndex >= 0; pos-- ) {
- ii = mItems.get( itemIndex );
- while ( pos < ii.position && itemIndex > 0 ) {
+ for (int pos = oldCurPosition - 1;
+ pos >= curItem.position && itemIndex >= 0; pos--) {
+ ii = mItems.get(itemIndex);
+ while (pos < ii.position && itemIndex > 0) {
itemIndex--;
- ii = mItems.get( itemIndex );
+ ii = mItems.get(itemIndex);
}
- while ( pos > ii.position ) {
+ while (pos > ii.position) {
// We don't have an item populated for this,
// ask the adapter for an offset.
- offset -= mAdapter.getPageWidth( pos ) + marginOffset;
+ offset -= mAdapter.getPageWidth(pos) + marginOffset;
pos--;
}
offset -= ii.sizeFactor + marginOffset;
@@ -1104,24 +1110,24 @@ public class OrientedViewPager extends ViewGroup {
mLastOffset = curItem.position == N - 1 ?
curItem.offset + curItem.sizeFactor - 1 : Float.MAX_VALUE;
// Previous pages
- for ( int i = curIndex - 1; i >= 0; i--, pos-- ) {
- final ItemInfo ii = mItems.get( i );
- while ( pos > ii.position ) {
- offset -= mAdapter.getPageWidth( pos-- ) + marginOffset;
+ for (int i = curIndex - 1; i >= 0; i--, pos--) {
+ final ItemInfo ii = mItems.get(i);
+ while (pos > ii.position) {
+ offset -= mAdapter.getPageWidth(pos--) + marginOffset;
}
offset -= ii.sizeFactor + marginOffset;
ii.offset = offset;
- if ( ii.position == 0 ) mFirstOffset = offset;
+ if (ii.position == 0) mFirstOffset = offset;
}
offset = curItem.offset + curItem.sizeFactor + marginOffset;
pos = curItem.position + 1;
// Next pages
- for ( int i = curIndex + 1; i < itemCount; i++, pos++ ) {
- final ItemInfo ii = mItems.get( i );
- while ( pos < ii.position ) {
- offset += mAdapter.getPageWidth( pos++ ) + marginOffset;
+ for (int i = curIndex + 1; i < itemCount; i++, pos++) {
+ final ItemInfo ii = mItems.get(i);
+ while (pos < ii.position) {
+ offset += mAdapter.getPageWidth(pos++) + marginOffset;
}
- if ( ii.position == N - 1 ) {
+ if (ii.position == N - 1) {
mLastOffset = offset + ii.sizeFactor - 1;
}
ii.offset = offset;
@@ -1142,44 +1148,44 @@ public class OrientedViewPager extends ViewGroup {
Parcelable adapterState;
ClassLoader loader;
- public ViewPagerSavedState( Parcelable superState ) {
- super( superState );
+ public ViewPagerSavedState(Parcelable superState) {
+ super(superState);
}
@Override
- public void writeToParcel( Parcel out, int flags ) {
- super.writeToParcel( out, flags );
- out.writeInt( position );
- out.writeParcelable( adapterState, flags );
+ public void writeToParcel(Parcel out, int flags) {
+ super.writeToParcel(out, flags);
+ out.writeInt(position);
+ out.writeParcelable(adapterState, flags);
}
@Override
public String toString() {
return "FragmentPager.SavedState{"
- + Integer.toHexString( System.identityHashCode( this ) )
+ + Integer.toHexString(System.identityHashCode(this))
+ " position=" + position + "}";
}
- public static final Parcelable.Creator< ViewPagerSavedState > CREATOR
- = ParcelableCompat.newCreator( new ParcelableCompatCreatorCallbacks< ViewPagerSavedState >() {
+ public static final Parcelable.Creator CREATOR
+ = ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks() {
@Override
- public ViewPagerSavedState createFromParcel( Parcel in, ClassLoader loader ) {
- return new ViewPagerSavedState( in, loader );
+ public ViewPagerSavedState createFromParcel(Parcel in, ClassLoader loader) {
+ return new ViewPagerSavedState(in, loader);
}
@Override
- public ViewPagerSavedState[] newArray( int size ) {
+ public ViewPagerSavedState[] newArray(int size) {
return new ViewPagerSavedState[size];
}
- } );
+ });
- ViewPagerSavedState( Parcel in, ClassLoader loader ) {
- super( in );
- if ( loader == null ) {
+ ViewPagerSavedState(Parcel in, ClassLoader loader) {
+ super(in);
+ if (loader == null) {
loader = getClass().getClassLoader();
}
position = in.readInt();
- adapterState = in.readParcelable( loader );
+ adapterState = in.readParcelable(loader);
this.loader = loader;
}
}
@@ -1187,27 +1193,27 @@ public class OrientedViewPager extends ViewGroup {
@Override
public Parcelable onSaveInstanceState() {
Parcelable superState = super.onSaveInstanceState();
- ViewPagerSavedState ss = new ViewPagerSavedState( superState );
+ ViewPagerSavedState ss = new ViewPagerSavedState(superState);
ss.position = mCurItem;
- if ( mAdapter != null ) {
+ if (mAdapter != null) {
ss.adapterState = mAdapter.saveState();
}
return ss;
}
@Override
- public void onRestoreInstanceState( Parcelable state ) {
- if ( !( state instanceof ViewPagerSavedState ) ) {
- super.onRestoreInstanceState( state );
+ public void onRestoreInstanceState(Parcelable state) {
+ if (!(state instanceof ViewPagerSavedState)) {
+ super.onRestoreInstanceState(state);
return;
}
- ViewPagerSavedState ss = ( ViewPagerSavedState ) state;
- super.onRestoreInstanceState( ss.getSuperState() );
+ ViewPagerSavedState ss = (ViewPagerSavedState) state;
+ super.onRestoreInstanceState(ss.getSuperState());
- if ( mAdapter != null ) {
- mAdapter.restoreState( ss.adapterState, ss.loader );
- setCurrentItemInternal( ss.position, false, true );
+ if (mAdapter != null) {
+ mAdapter.restoreState(ss.adapterState, ss.loader);
+ setCurrentItemInternal(ss.position, false, true);
} else {
mRestoredCurItem = ss.position;
mRestoredAdapterState = ss.adapterState;
@@ -1216,65 +1222,65 @@ public class OrientedViewPager extends ViewGroup {
}
@Override
- public void addView( View child, int index, ViewGroup.LayoutParams params ) {
- if ( !checkLayoutParams( params ) ) {
- params = generateLayoutParams( params );
+ public void addView(View child, int index, ViewGroup.LayoutParams params) {
+ if (!checkLayoutParams(params)) {
+ params = generateLayoutParams(params);
}
- final LayoutParams lp = ( LayoutParams ) params;
+ final LayoutParams lp = (LayoutParams) params;
lp.isDecor |= child instanceof Decor;
- if ( mInLayout ) {
- if ( lp != null && lp.isDecor ) {
- throw new IllegalStateException( "Cannot add pager decor view during layout" );
+ if (mInLayout) {
+ if (lp != null && lp.isDecor) {
+ throw new IllegalStateException("Cannot add pager decor view during layout");
}
lp.needsMeasure = true;
- addViewInLayout( child, index, params );
+ addViewInLayout(child, index, params);
} else {
- super.addView( child, index, params );
+ super.addView(child, index, params);
}
- if ( USE_CACHE ) {
- if ( child.getVisibility() != GONE ) {
- child.setDrawingCacheEnabled( mScrollingCacheEnabled );
+ if (USE_CACHE) {
+ if (child.getVisibility() != GONE) {
+ child.setDrawingCacheEnabled(mScrollingCacheEnabled);
} else {
- child.setDrawingCacheEnabled( false );
+ child.setDrawingCacheEnabled(false);
}
}
}
@Override
- public void removeView( View view ) {
- if ( mInLayout ) {
- removeViewInLayout( view );
+ public void removeView(View view) {
+ if (mInLayout) {
+ removeViewInLayout(view);
} else {
- super.removeView( view );
+ super.removeView(view);
}
}
- ItemInfo infoForChild( View child ) {
- for ( int i = 0; i < mItems.size(); i++ ) {
- ItemInfo ii = mItems.get( i );
- if ( mAdapter.isViewFromObject( child, ii.object ) ) {
+ ItemInfo infoForChild(View child) {
+ for (int i = 0; i < mItems.size(); i++) {
+ ItemInfo ii = mItems.get(i);
+ if (mAdapter.isViewFromObject(child, ii.object)) {
return ii;
}
}
return null;
}
- ItemInfo infoForAnyChild( View child ) {
+ ItemInfo infoForAnyChild(View child) {
ViewParent parent;
- while ( ( parent = child.getParent() ) != this ) {
- if ( parent == null || !( parent instanceof View ) ) {
+ while ((parent = child.getParent()) != this) {
+ if (parent == null || !(parent instanceof View)) {
return null;
}
- child = ( View ) parent;
+ child = (View) parent;
}
- return infoForChild( child );
+ return infoForChild(child);
}
- ItemInfo infoForPosition( int position ) {
- for ( int i = 0; i < mItems.size(); i++ ) {
- ItemInfo ii = mItems.get( i );
- if ( ii.position == position ) {
+ ItemInfo infoForPosition(int position) {
+ for (int i = 0; i < mItems.size(); i++) {
+ ItemInfo ii = mItems.get(i);
+ if (ii.position == position) {
return ii;
}
}
@@ -1288,25 +1294,25 @@ public class OrientedViewPager extends ViewGroup {
}
@Override
- protected void onMeasure( int widthMeasureSpec, int heightMeasureSpec ) {
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// For simple implementation, our internal size is always 0.
// We depend on the container to specify the layout size of
// our view. We can't really know what it is since we will be
// adding and removing different arbitrary views and do not
// want the layout to change as this happens.
- setMeasuredDimension( getDefaultSize( 0, widthMeasureSpec ),
- getDefaultSize( 0, heightMeasureSpec ) );
+ setMeasuredDimension(getDefaultSize(0, widthMeasureSpec),
+ getDefaultSize(0, heightMeasureSpec));
final int measuredSize =
- ( mOrientation == Orientation.VERTICAL ) ? getMeasuredHeight() : getMeasuredWidth();
+ (mOrientation == Orientation.VERTICAL) ? getMeasuredHeight() : getMeasuredWidth();
final int maxGutterSize = measuredSize / 10;
- mGutterSize = Math.min( maxGutterSize, mDefaultGutterSize );
+ mGutterSize = Math.min(maxGutterSize, mDefaultGutterSize);
// Children are just made to fill our space.
int childWidthSize;
int childHeightSize;
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mOrientation == Orientation.VERTICAL) {
childWidthSize = getMeasuredWidth() - getPaddingLeft() - getPaddingRight();
childHeightSize = measuredSize - getPaddingTop() - getPaddingBottom();
} else {
@@ -1320,11 +1326,11 @@ public class OrientedViewPager extends ViewGroup {
* views won't intersect. We will pin to edges based on gravity.
*/
int size = getChildCount();
- for ( int i = 0; i < size; ++i ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() != GONE ) {
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
- if ( lp != null && lp.isDecor ) {
+ for (int i = 0; i < size; ++i) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() != GONE) {
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ if (lp != null && lp.isDecor) {
final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK;
final int vgrav = lp.gravity & Gravity.VERTICAL_GRAVITY_MASK;
int widthMode = MeasureSpec.AT_MOST;
@@ -1332,41 +1338,41 @@ public class OrientedViewPager extends ViewGroup {
boolean consumeVertical = vgrav == Gravity.TOP || vgrav == Gravity.BOTTOM;
boolean consumeHorizontal = hgrav == Gravity.LEFT || hgrav == Gravity.RIGHT;
- if ( consumeVertical ) {
+ if (consumeVertical) {
widthMode = MeasureSpec.EXACTLY;
- } else if ( consumeHorizontal ) {
+ } else if (consumeHorizontal) {
heightMode = MeasureSpec.EXACTLY;
}
int widthSize = childWidthSize;
int heightSize = childHeightSize;
- if ( lp.width != LayoutParams.WRAP_CONTENT ) {
+ if (lp.width != LayoutParams.WRAP_CONTENT) {
widthMode = MeasureSpec.EXACTLY;
- if ( lp.width != LayoutParams.FILL_PARENT ) {
+ if (lp.width != LayoutParams.FILL_PARENT) {
widthSize = lp.width;
}
}
- if ( lp.height != LayoutParams.WRAP_CONTENT ) {
+ if (lp.height != LayoutParams.WRAP_CONTENT) {
heightMode = MeasureSpec.EXACTLY;
- if ( lp.height != LayoutParams.FILL_PARENT ) {
+ if (lp.height != LayoutParams.FILL_PARENT) {
heightSize = lp.height;
}
}
- final int widthSpec = MeasureSpec.makeMeasureSpec( widthSize, widthMode );
- final int heightSpec = MeasureSpec.makeMeasureSpec( heightSize, heightMode );
- child.measure( widthSpec, heightSpec );
+ final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode);
+ final int heightSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode);
+ child.measure(widthSpec, heightSpec);
- if ( consumeVertical ) {
+ if (consumeVertical) {
childHeightSize -= child.getMeasuredHeight();
- } else if ( consumeHorizontal ) {
+ } else if (consumeHorizontal) {
childWidthSize -= child.getMeasuredWidth();
}
}
}
}
- mChildWidthMeasureSpec = MeasureSpec.makeMeasureSpec( childWidthSize, MeasureSpec.EXACTLY );
- mChildHeightMeasureSpec = MeasureSpec.makeMeasureSpec( childHeightSize, MeasureSpec.EXACTLY );
+ mChildWidthMeasureSpec = MeasureSpec.makeMeasureSpec(childWidthSize, MeasureSpec.EXACTLY);
+ mChildHeightMeasureSpec = MeasureSpec.makeMeasureSpec(childHeightSize, MeasureSpec.EXACTLY);
// Make sure we have created all fragments that we need to have shown.
mInLayout = true;
@@ -1375,25 +1381,25 @@ public class OrientedViewPager extends ViewGroup {
// Page views next.
size = getChildCount();
- for ( int i = 0; i < size; ++i ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() != GONE ) {
- if ( DEBUG ) {
- Log.v( TAG, "Measuring #" + i + " " + child
- + ": " + mChildWidthMeasureSpec );
+ for (int i = 0; i < size; ++i) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() != GONE) {
+ if (DEBUG) {
+ Log.v(TAG, "Measuring #" + i + " " + child
+ + ": " + mChildWidthMeasureSpec);
}
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
- if ( lp == null || !lp.isDecor ) {
- if ( mOrientation == Orientation.VERTICAL ) {
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ if (lp == null || !lp.isDecor) {
+ if (mOrientation == Orientation.VERTICAL) {
final int heightSpec = MeasureSpec.makeMeasureSpec(
- ( int ) ( childHeightSize * lp.heightFactor ), MeasureSpec.EXACTLY );
- child.measure( mChildWidthMeasureSpec, heightSpec );
+ (int) (childHeightSize * lp.heightFactor), MeasureSpec.EXACTLY);
+ child.measure(mChildWidthMeasureSpec, heightSpec);
} else {
final int widthSpec = MeasureSpec.makeMeasureSpec(
- ( int ) ( childWidthSize * lp.widthFactor ), MeasureSpec.EXACTLY );
- child.measure( widthSpec, mChildHeightMeasureSpec );
+ (int) (childWidthSize * lp.widthFactor), MeasureSpec.EXACTLY);
+ child.measure(widthSpec, mChildHeightMeasureSpec);
}
}
}
@@ -1401,81 +1407,81 @@ public class OrientedViewPager extends ViewGroup {
}
@Override
- protected void onSizeChanged( int w, int h, int oldw, int oldh ) {
- super.onSizeChanged( w, h, oldw, oldh );
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ super.onSizeChanged(w, h, oldw, oldh);
// Make sure scroll position is set correctly.
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( h != oldh ) {
- recomputeScrollPosition( h, oldh, mPageMargin, mPageMargin );
+ if (mOrientation == Orientation.VERTICAL) {
+ if (h != oldh) {
+ recomputeScrollPosition(h, oldh, mPageMargin, mPageMargin);
}
} else {
- if ( w != oldw ) {
- recomputeScrollPosition( w, oldw, mPageMargin, mPageMargin );
+ if (w != oldw) {
+ recomputeScrollPosition(w, oldw, mPageMargin, mPageMargin);
}
}
}
- private void recomputeScrollPosition( int size, int oldSize, int margin, int oldMargin ) {
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( oldSize > 0 && !mItems.isEmpty() ) {
+ private void recomputeScrollPosition(int size, int oldSize, int margin, int oldMargin) {
+ if (mOrientation == Orientation.VERTICAL) {
+ if (oldSize > 0 && !mItems.isEmpty()) {
final int heightWithMargin = size - getPaddingTop() - getPaddingBottom() + margin;
final int oldHeightWithMargin = oldSize - getPaddingTop() - getPaddingBottom()
+ oldMargin;
final int ypos = getScrollY();
- final float pageOffset = ( float ) ypos / oldHeightWithMargin;
- final int newOffsetPixels = ( int ) ( pageOffset * heightWithMargin );
+ final float pageOffset = (float) ypos / oldHeightWithMargin;
+ final int newOffsetPixels = (int) (pageOffset * heightWithMargin);
- scrollTo( getScrollX(), newOffsetPixels );
- if ( !mScroller.isFinished() ) {
+ scrollTo(getScrollX(), newOffsetPixels);
+ if (!mScroller.isFinished()) {
// We now return to your regularly scheduled scroll, already in progress.
final int newDuration = mScroller.getDuration() - mScroller.timePassed();
- ItemInfo targetInfo = infoForPosition( mCurItem );
- mScroller.startScroll( 0, newOffsetPixels,
- 0, ( int ) ( targetInfo.offset * size ), newDuration );
+ ItemInfo targetInfo = infoForPosition(mCurItem);
+ mScroller.startScroll(0, newOffsetPixels,
+ 0, (int) (targetInfo.offset * size), newDuration);
}
} else {
- final ItemInfo ii = infoForPosition( mCurItem );
- final float scrollOffset = ii != null ? Math.min( ii.offset, mLastOffset ) : 0;
- final int scrollPos = ( int ) ( scrollOffset *
- ( size - getPaddingTop() - getPaddingBottom() ) );
- if ( scrollPos != getScrollY() ) {
- completeScroll( false );
- scrollTo( getScrollX(), scrollPos );
+ final ItemInfo ii = infoForPosition(mCurItem);
+ final float scrollOffset = ii != null ? Math.min(ii.offset, mLastOffset) : 0;
+ final int scrollPos = (int) (scrollOffset *
+ (size - getPaddingTop() - getPaddingBottom()));
+ if (scrollPos != getScrollY()) {
+ completeScroll(false);
+ scrollTo(getScrollX(), scrollPos);
}
}
} else {
- if ( oldSize > 0 && !mItems.isEmpty() ) {
+ if (oldSize > 0 && !mItems.isEmpty()) {
final int widthWithMargin = size - getPaddingLeft() - getPaddingRight() + margin;
final int oldWidthWithMargin = oldSize - getPaddingLeft() - getPaddingRight()
+ oldMargin;
final int xpos = getScrollX();
- final float pageOffset = ( float ) xpos / oldWidthWithMargin;
- final int newOffsetPixels = ( int ) ( pageOffset * widthWithMargin );
+ final float pageOffset = (float) xpos / oldWidthWithMargin;
+ final int newOffsetPixels = (int) (pageOffset * widthWithMargin);
- scrollTo( newOffsetPixels, getScrollY() );
- if ( !mScroller.isFinished() ) {
+ scrollTo(newOffsetPixels, getScrollY());
+ if (!mScroller.isFinished()) {
// We now return to your regularly scheduled scroll, already in progress.
final int newDuration = mScroller.getDuration() - mScroller.timePassed();
- ItemInfo targetInfo = infoForPosition( mCurItem );
- mScroller.startScroll( newOffsetPixels, 0,
- ( int ) ( targetInfo.offset * size ), 0, newDuration );
+ ItemInfo targetInfo = infoForPosition(mCurItem);
+ mScroller.startScroll(newOffsetPixels, 0,
+ (int) (targetInfo.offset * size), 0, newDuration);
}
} else {
- final ItemInfo ii = infoForPosition( mCurItem );
- final float scrollOffset = ii != null ? Math.min( ii.offset, mLastOffset ) : 0;
- final int scrollPos = ( int ) ( scrollOffset *
- ( size - getPaddingLeft() - getPaddingRight() ) );
- if ( scrollPos != getScrollX() ) {
- completeScroll( false );
- scrollTo( scrollPos, getScrollY() );
+ final ItemInfo ii = infoForPosition(mCurItem);
+ final float scrollOffset = ii != null ? Math.min(ii.offset, mLastOffset) : 0;
+ final int scrollPos = (int) (scrollOffset *
+ (size - getPaddingLeft() - getPaddingRight()));
+ if (scrollPos != getScrollX()) {
+ completeScroll(false);
+ scrollTo(scrollPos, getScrollY());
}
}
}
}
@Override
- protected void onLayout( boolean changed, int l, int t, int r, int b ) {
+ protected void onLayout(boolean changed, int l, int t, int r, int b) {
final int count = getChildCount();
int width = r - l;
int height = b - t;
@@ -1483,22 +1489,22 @@ public class OrientedViewPager extends ViewGroup {
int paddingTop = getPaddingTop();
int paddingRight = getPaddingRight();
int paddingBottom = getPaddingBottom();
- final int scroll = ( mOrientation == Orientation.VERTICAL ) ? getScrollY() : getScrollX();
+ final int scroll = (mOrientation == Orientation.VERTICAL) ? getScrollY() : getScrollX();
int decorCount = 0;
// First pass - decor views. We need to do this in two passes so that
// we have the proper offsets for non-decor views later.
- for ( int i = 0; i < count; i++ ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() != GONE ) {
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() != GONE) {
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
int childLeft = 0;
int childTop = 0;
- if ( lp.isDecor ) {
+ if (lp.isDecor) {
final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK;
final int vgrav = lp.gravity & Gravity.VERTICAL_GRAVITY_MASK;
- switch ( hgrav ) {
+ switch (hgrav) {
default:
childLeft = paddingLeft;
break;
@@ -1507,15 +1513,15 @@ public class OrientedViewPager extends ViewGroup {
paddingLeft += child.getMeasuredWidth();
break;
case Gravity.CENTER_HORIZONTAL:
- childLeft = Math.max( ( width - child.getMeasuredWidth() ) / 2,
- paddingLeft );
+ childLeft = Math.max((width - child.getMeasuredWidth()) / 2,
+ paddingLeft);
break;
case Gravity.RIGHT:
childLeft = width - paddingRight - child.getMeasuredWidth();
paddingRight += child.getMeasuredWidth();
break;
}
- switch ( vgrav ) {
+ switch (vgrav) {
default:
childTop = paddingTop;
break;
@@ -1524,148 +1530,148 @@ public class OrientedViewPager extends ViewGroup {
paddingTop += child.getMeasuredHeight();
break;
case Gravity.CENTER_VERTICAL:
- childTop = Math.max( ( height - child.getMeasuredHeight() ) / 2,
- paddingTop );
+ childTop = Math.max((height - child.getMeasuredHeight()) / 2,
+ paddingTop);
break;
case Gravity.BOTTOM:
childTop = height - paddingBottom - child.getMeasuredHeight();
paddingBottom += child.getMeasuredHeight();
break;
}
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mOrientation == Orientation.VERTICAL) {
childTop += scroll;
} else {
childLeft += scroll;
}
- child.layout( childLeft, childTop,
+ child.layout(childLeft, childTop,
childLeft + child.getMeasuredWidth(),
- childTop + child.getMeasuredHeight() );
+ childTop + child.getMeasuredHeight());
decorCount++;
}
}
}
final int childSize =
- ( mOrientation == Orientation.VERTICAL ) ? height - paddingTop - paddingBottom
+ (mOrientation == Orientation.VERTICAL) ? height - paddingTop - paddingBottom
: width - paddingLeft - paddingRight;
// Page views. Do this once we have the right padding offsets from above.
- for ( int i = 0; i < count; i++ ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() != GONE ) {
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
+ for (int i = 0; i < count; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() != GONE) {
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
ItemInfo ii;
- if ( !lp.isDecor && ( ii = infoForChild( child ) ) != null ) {
- int topLeftoff = ( int ) ( childSize * ii.offset );
+ if (!lp.isDecor && (ii = infoForChild(child)) != null) {
+ int topLeftoff = (int) (childSize * ii.offset);
int childLeft;
int childTop;
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mOrientation == Orientation.VERTICAL) {
childLeft = paddingLeft;
childTop = paddingTop + topLeftoff;
- if ( lp.needsMeasure ) {
+ if (lp.needsMeasure) {
// This was added during layout and needs measurement.
// Do it now that we know what we're working with.
lp.needsMeasure = false;
final int widthSpec = MeasureSpec.makeMeasureSpec(
- ( int ) ( width - paddingLeft - paddingRight ),
- MeasureSpec.EXACTLY );
+ (int) (width - paddingLeft - paddingRight),
+ MeasureSpec.EXACTLY);
final int heightSpec = MeasureSpec.makeMeasureSpec(
- ( int ) ( childSize * lp.heightFactor ),
- MeasureSpec.EXACTLY );
- child.measure( widthSpec, heightSpec );
+ (int) (childSize * lp.heightFactor),
+ MeasureSpec.EXACTLY);
+ child.measure(widthSpec, heightSpec);
}
} else {
childLeft = paddingLeft + topLeftoff;
childTop = paddingTop;
- if ( lp.needsMeasure ) {
+ if (lp.needsMeasure) {
// This was added during layout and needs measurement.
// Do it now that we know what we're working with.
lp.needsMeasure = false;
final int widthSpec = MeasureSpec.makeMeasureSpec(
- ( int ) ( childSize * lp.widthFactor ),
- MeasureSpec.EXACTLY );
+ (int) (childSize * lp.widthFactor),
+ MeasureSpec.EXACTLY);
final int heightSpec = MeasureSpec.makeMeasureSpec(
- ( int ) ( height - paddingTop - paddingBottom ),
- MeasureSpec.EXACTLY );
- child.measure( widthSpec, heightSpec );
+ (int) (height - paddingTop - paddingBottom),
+ MeasureSpec.EXACTLY);
+ child.measure(widthSpec, heightSpec);
}
}
- if ( DEBUG ) {
- Log.v( TAG, "Positioning #" + i + " " + child + " f=" + ii.object
+ if (DEBUG) {
+ Log.v(TAG, "Positioning #" + i + " " + child + " f=" + ii.object
+ ":" + childLeft + "," + childTop + " " + child.getMeasuredWidth()
- + "x" + child.getMeasuredHeight() );
+ + "x" + child.getMeasuredHeight());
}
- child.layout( childLeft, childTop,
+ child.layout(childLeft, childTop,
childLeft + child.getMeasuredWidth(),
- childTop + child.getMeasuredHeight() );
+ childTop + child.getMeasuredHeight());
}
}
}
- mTopLeftPageBounds = ( mOrientation == Orientation.VERTICAL ) ? paddingLeft : paddingTop;
+ mTopLeftPageBounds = (mOrientation == Orientation.VERTICAL) ? paddingLeft : paddingTop;
mBottomRightPageBounds =
- ( mOrientation == Orientation.VERTICAL ) ? width - paddingRight : height - paddingBottom;
+ (mOrientation == Orientation.VERTICAL) ? width - paddingRight : height - paddingBottom;
mDecorChildCount = decorCount;
- if ( mFirstLayout ) {
- scrollToItem( mCurItem, false, 0, false );
+ if (mFirstLayout) {
+ scrollToItem(mCurItem, false, 0, false);
}
mFirstLayout = false;
}
@Override
public void computeScroll() {
- if ( !mScroller.isFinished() && mScroller.computeScrollOffset() ) {
+ if (!mScroller.isFinished() && mScroller.computeScrollOffset()) {
int oldX = getScrollX();
int oldY = getScrollY();
int x = mScroller.getCurrX();
int y = mScroller.getCurrY();
- if ( oldX != x || oldY != y ) {
- scrollTo( x, y );
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( !pageScrolled( y ) ) {
+ if (oldX != x || oldY != y) {
+ scrollTo(x, y);
+ if (mOrientation == Orientation.VERTICAL) {
+ if (!pageScrolled(y)) {
mScroller.abortAnimation();
- scrollTo( x, 0 );
+ scrollTo(x, 0);
}
} else {
- if ( !pageScrolled( x ) ) {
+ if (!pageScrolled(x)) {
mScroller.abortAnimation();
- scrollTo( 0, y );
+ scrollTo(0, y);
}
}
}
// Keep on drawing until the animation has finished.
- ViewCompat.postInvalidateOnAnimation( this );
+ ViewCompat.postInvalidateOnAnimation(this);
return;
}
// Done with scroll, clean up state.
- completeScroll( true );
+ completeScroll(true);
}
- private boolean pageScrolled( int pos ) {
- if ( mItems.size() == 0 ) {
+ private boolean pageScrolled(int pos) {
+ if (mItems.size() == 0) {
mCalledSuper = false;
- onPageScrolled( 0, 0, 0 );
- if ( !mCalledSuper ) {
+ onPageScrolled(0, 0, 0);
+ if (!mCalledSuper) {
throw new IllegalStateException(
- "onPageScrolled did not call superclass implementation" );
+ "onPageScrolled did not call superclass implementation");
}
return false;
}
final ItemInfo ii = infoForCurrentScrollPosition();
final int size = getClientSize();
final int sizeWithMargin = size + mPageMargin;
- final float marginOffset = ( float ) mPageMargin / size;
+ final float marginOffset = (float) mPageMargin / size;
final int currentPage = ii.position;
- final float pageOffset = ( ( ( float ) pos / size ) - ii.offset ) / ( ii.sizeFactor + marginOffset );
- final int offsetPixels = ( int ) ( pageOffset * sizeWithMargin );
+ final float pageOffset = (((float) pos / size) - ii.offset) / (ii.sizeFactor + marginOffset);
+ final int offsetPixels = (int) (pageOffset * sizeWithMargin);
mCalledSuper = false;
- onPageScrolled( currentPage, pageOffset, offsetPixels );
- if ( !mCalledSuper ) {
+ onPageScrolled(currentPage, pageOffset, offsetPixels);
+ if (!mCalledSuper) {
throw new IllegalStateException(
- "onPageScrolled did not call superclass implementation" );
+ "onPageScrolled did not call superclass implementation");
}
return true;
}
@@ -1677,28 +1683,28 @@ public class OrientedViewPager extends ViewGroup {
* (e.g. super.onPageScrolled(position, offset, offsetPixels)) before onPageScrolled
* returns.
*
- * @param position Position index of the first page currently being displayed.
- * Page position+1 will be visible if positionOffset is nonzero.
- * @param offset Value from [0, 1) indicating the offset from the page at position.
+ * @param position Position index of the first page currently being displayed.
+ * Page position+1 will be visible if positionOffset is nonzero.
+ * @param offset Value from [0, 1) indicating the offset from the page at position.
* @param offsetPixels Value in pixels indicating the offset from position.
*/
- protected void onPageScrolled( int position, float offset, int offsetPixels ) {
+ protected void onPageScrolled(int position, float offset, int offsetPixels) {
// Offset any decor views if needed - keep them on-screen at all times.
- if ( mDecorChildCount > 0 ) {
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mDecorChildCount > 0) {
+ if (mOrientation == Orientation.VERTICAL) {
final int scrollY = getScrollY();
int paddingTop = getPaddingTop();
int paddingBottom = getPaddingBottom();
final int height = getHeight();
final int childCount = getChildCount();
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
- if ( !lp.isDecor ) continue;
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ if (!lp.isDecor) continue;
final int vgrav = lp.gravity & Gravity.VERTICAL_GRAVITY_MASK;
int childTop = 0;
- switch ( vgrav ) {
+ switch (vgrav) {
default:
childTop = paddingTop;
break;
@@ -1707,8 +1713,8 @@ public class OrientedViewPager extends ViewGroup {
paddingTop += child.getHeight();
break;
case Gravity.CENTER_VERTICAL:
- childTop = Math.max( ( height - child.getMeasuredHeight() ) / 2,
- paddingTop );
+ childTop = Math.max((height - child.getMeasuredHeight()) / 2,
+ paddingTop);
break;
case Gravity.BOTTOM:
childTop = height - paddingBottom - child.getMeasuredHeight();
@@ -1718,8 +1724,8 @@ public class OrientedViewPager extends ViewGroup {
childTop += scrollY;
final int childOffset = childTop - child.getTop();
- if ( childOffset != 0 ) {
- child.offsetTopAndBottom( childOffset );
+ if (childOffset != 0) {
+ child.offsetTopAndBottom(childOffset);
}
}
} else {
@@ -1728,14 +1734,14 @@ public class OrientedViewPager extends ViewGroup {
int paddingRight = getPaddingRight();
final int width = getWidth();
final int childCount = getChildCount();
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
- if ( !lp.isDecor ) continue;
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
+ if (!lp.isDecor) continue;
final int hgrav = lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK;
int childLeft = 0;
- switch ( hgrav ) {
+ switch (hgrav) {
default:
childLeft = paddingLeft;
break;
@@ -1744,8 +1750,8 @@ public class OrientedViewPager extends ViewGroup {
paddingLeft += child.getWidth();
break;
case Gravity.CENTER_HORIZONTAL:
- childLeft = Math.max( ( width - child.getMeasuredWidth() ) / 2,
- paddingLeft );
+ childLeft = Math.max((width - child.getMeasuredWidth()) / 2,
+ paddingLeft);
break;
case Gravity.RIGHT:
childLeft = width - paddingRight - child.getMeasuredWidth();
@@ -1755,87 +1761,87 @@ public class OrientedViewPager extends ViewGroup {
childLeft += scrollX;
final int childOffset = childLeft - child.getLeft();
- if ( childOffset != 0 ) {
- child.offsetLeftAndRight( childOffset );
+ if (childOffset != 0) {
+ child.offsetLeftAndRight(childOffset);
}
}
}
}
- if ( mOnPageChangeListener != null ) {
- mOnPageChangeListener.onPageScrolled( position, offset, offsetPixels );
+ if (mOnPageChangeListener != null) {
+ mOnPageChangeListener.onPageScrolled(position, offset, offsetPixels);
}
- if ( mInternalPageChangeListener != null ) {
- mInternalPageChangeListener.onPageScrolled( position, offset, offsetPixels );
+ if (mInternalPageChangeListener != null) {
+ mInternalPageChangeListener.onPageScrolled(position, offset, offsetPixels);
}
- if ( mPageTransformer != null ) {
- final int scroll = ( mOrientation == Orientation.VERTICAL ) ? getScrollY() : getScrollX();
+ if (mPageTransformer != null) {
+ final int scroll = (mOrientation == Orientation.VERTICAL) ? getScrollY() : getScrollX();
final int childCount = getChildCount();
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- final LayoutParams lp = ( LayoutParams ) child.getLayoutParams();
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ final LayoutParams lp = (LayoutParams) child.getLayoutParams();
- if ( lp.isDecor ) continue;
+ if (lp.isDecor) continue;
final float transformPos =
- ( float ) ( ( ( mOrientation == Orientation.VERTICAL ) ? child.getTop() : child.getLeft() )
- - scroll ) / getClientSize();
- mPageTransformer.transformPage( child, transformPos );
+ (float) (((mOrientation == Orientation.VERTICAL) ? child.getTop() : child.getLeft())
+ - scroll) / getClientSize();
+ mPageTransformer.transformPage(child, transformPos);
}
}
mCalledSuper = true;
}
- private void completeScroll( boolean postEvents ) {
+ private void completeScroll(boolean postEvents) {
boolean needPopulate = mScrollState == SCROLL_STATE_SETTLING;
- if ( needPopulate ) {
+ if (needPopulate) {
// Done with scroll, no longer want to cache view drawing.
- setScrollingCacheEnabled( false );
+ setScrollingCacheEnabled(false);
mScroller.abortAnimation();
int oldX = getScrollX();
int oldY = getScrollY();
int x = mScroller.getCurrX();
int y = mScroller.getCurrY();
- if ( oldX != x || oldY != y ) {
- scrollTo( x, y );
+ if (oldX != x || oldY != y) {
+ scrollTo(x, y);
}
}
mPopulatePending = false;
- for ( int i = 0; i < mItems.size(); i++ ) {
- ItemInfo ii = mItems.get( i );
- if ( ii.scrolling ) {
+ for (int i = 0; i < mItems.size(); i++) {
+ ItemInfo ii = mItems.get(i);
+ if (ii.scrolling) {
needPopulate = true;
ii.scrolling = false;
}
}
- if ( needPopulate ) {
- if ( postEvents ) {
- ViewCompat.postOnAnimation( this, mEndScrollRunnable );
+ if (needPopulate) {
+ if (postEvents) {
+ ViewCompat.postOnAnimation(this, mEndScrollRunnable);
} else {
mEndScrollRunnable.run();
}
}
}
- private boolean isGutterDrag( float axis, float dAxis ) {
- return ( axis < mGutterSize && dAxis > 0 ) || ( axis
- > ( mOrientation == Orientation.VERTICAL ? getHeight() : getWidth() ) - mGutterSize
- && dAxis < 0 );
+ private boolean isGutterDrag(float axis, float dAxis) {
+ return (axis < mGutterSize && dAxis > 0) || (axis
+ > (mOrientation == Orientation.VERTICAL ? getHeight() : getWidth()) - mGutterSize
+ && dAxis < 0);
}
- private void enableLayers( boolean enable ) {
+ private void enableLayers(boolean enable) {
final int childCount = getChildCount();
- for ( int i = 0; i < childCount; i++ ) {
+ for (int i = 0; i < childCount; i++) {
final int layerType = enable ?
ViewCompat.LAYER_TYPE_HARDWARE : ViewCompat.LAYER_TYPE_NONE;
- ViewCompat.setLayerType( getChildAt( i ), layerType, null );
+ ViewCompat.setLayerType(getChildAt(i), layerType, null);
}
}
@Override
- public boolean onInterceptTouchEvent( MotionEvent ev ) {
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
/*
* This method JUST determines whether we want to intercept the motion.
* If we return true, onMotionEvent will be called and we do the actual
@@ -1845,13 +1851,13 @@ public class OrientedViewPager extends ViewGroup {
final int action = ev.getAction() & MotionEventCompat.ACTION_MASK;
// Always take care of the touch gesture being complete.
- if ( action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP ) {
+ if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
// Release the drag.
- if ( DEBUG ) Log.v( TAG, "Intercept done!" );
+ if (DEBUG) Log.v(TAG, "Intercept done!");
mIsBeingDragged = false;
mIsUnableToDrag = false;
mActivePointerId = INVALID_POINTER;
- if ( mVelocityTracker != null ) {
+ if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}
@@ -1860,18 +1866,18 @@ public class OrientedViewPager extends ViewGroup {
// Nothing more to do here if we have decided whether or not we
// are dragging.
- if ( action != MotionEvent.ACTION_DOWN ) {
- if ( mIsBeingDragged ) {
- if ( DEBUG ) Log.v( TAG, "Intercept returning true!" );
+ if (action != MotionEvent.ACTION_DOWN) {
+ if (mIsBeingDragged) {
+ if (DEBUG) Log.v(TAG, "Intercept returning true!");
return true;
}
- if ( mIsUnableToDrag ) {
- if ( DEBUG ) Log.v( TAG, "Intercept returning false!" );
+ if (mIsUnableToDrag) {
+ if (DEBUG) Log.v(TAG, "Intercept returning false!");
return false;
}
}
- switch ( action ) {
+ switch (action) {
case MotionEvent.ACTION_MOVE: {
/*
* mIsBeingDragged == false, otherwise the shortcut would have caught it. Check
@@ -1883,92 +1889,92 @@ public class OrientedViewPager extends ViewGroup {
* of the down event.
*/
final int activePointerId = mActivePointerId;
- if ( activePointerId == INVALID_POINTER ) {
+ if (activePointerId == INVALID_POINTER) {
// If we don't have a valid id, the touch down wasn't on content.
break;
}
- final int pointerIndex = MotionEventCompat.findPointerIndex( ev, activePointerId );
- if ( mOrientation == Orientation.VERTICAL ) {
- final float y = MotionEventCompat.getY( ev, pointerIndex );
+ final int pointerIndex = MotionEventCompat.findPointerIndex(ev, activePointerId);
+ if (mOrientation == Orientation.VERTICAL) {
+ final float y = MotionEventCompat.getY(ev, pointerIndex);
final float dy = y - mLastMotionY;
- final float yDiff = Math.abs( dy );
- final float x = MotionEventCompat.getX( ev, pointerIndex );
- final float xDiff = Math.abs( x - mInitialMotionX );
- if ( DEBUG ) {
- Log.v( TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff );
+ final float yDiff = Math.abs(dy);
+ final float x = MotionEventCompat.getX(ev, pointerIndex);
+ final float xDiff = Math.abs(x - mInitialMotionX);
+ if (DEBUG) {
+ Log.v(TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff);
}
- if ( dy != 0 && !isGutterDrag( mLastMotionY, dy ) &&
- canScroll( this, false, ( int ) dy, ( int ) x, ( int ) y ) ) {
+ if (dy != 0 && !isGutterDrag(mLastMotionY, dy) &&
+ canScroll(this, false, (int) dy, (int) x, (int) y)) {
// Nested view has scrollable area under this point. Let it be handled there.
mLastMotionX = x;
mLastMotionY = y;
mIsUnableToDrag = true;
return false;
}
- if ( yDiff > mTouchSlop && yDiff * 0.5f > xDiff ) {
- if ( DEBUG ) Log.v( TAG, "Starting drag!" );
+ if (yDiff > mTouchSlop && yDiff * 0.5f > xDiff) {
+ if (DEBUG) Log.v(TAG, "Starting drag!");
mIsBeingDragged = true;
- requestParentDisallowInterceptTouchEvent( true );
- setScrollState( SCROLL_STATE_DRAGGING );
+ requestParentDisallowInterceptTouchEvent(true);
+ setScrollState(SCROLL_STATE_DRAGGING);
mLastMotionY = dy > 0 ? mInitialMotionY + mTouchSlop :
mInitialMotionY - mTouchSlop;
mLastMotionX = x;
- setScrollingCacheEnabled( true );
- } else if ( xDiff > mTouchSlop ) {
+ setScrollingCacheEnabled(true);
+ } else if (xDiff > mTouchSlop) {
// The finger has moved enough in the vertical
// direction to be counted as a drag... abort
// any attempt to drag horizontally, to work correctly
// with children that have scrolling containers.
- if ( DEBUG ) Log.v( TAG, "Starting unable to drag!" );
+ if (DEBUG) Log.v(TAG, "Starting unable to drag!");
mIsUnableToDrag = true;
}
- if ( mIsBeingDragged ) {
+ if (mIsBeingDragged) {
// Scroll to follow the motion event
- if ( performDrag( y ) ) {
- ViewCompat.postInvalidateOnAnimation( this );
+ if (performDrag(y)) {
+ ViewCompat.postInvalidateOnAnimation(this);
}
}
} else {
- final float x = MotionEventCompat.getX( ev, pointerIndex );
+ final float x = MotionEventCompat.getX(ev, pointerIndex);
final float dx = x - mLastMotionX;
- final float xDiff = Math.abs( dx );
- final float y = MotionEventCompat.getY( ev, pointerIndex );
- final float yDiff = Math.abs( y - mInitialMotionY );
- if ( DEBUG ) {
- Log.v( TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff );
+ final float xDiff = Math.abs(dx);
+ final float y = MotionEventCompat.getY(ev, pointerIndex);
+ final float yDiff = Math.abs(y - mInitialMotionY);
+ if (DEBUG) {
+ Log.v(TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff);
}
- if ( dx != 0 && !isGutterDrag( mLastMotionX, dx ) &&
- canScroll( this, false, ( int ) dx, ( int ) x, ( int ) y ) ) {
+ if (dx != 0 && !isGutterDrag(mLastMotionX, dx) &&
+ canScroll(this, false, (int) dx, (int) x, (int) y)) {
// Nested view has scrollable area under this point. Let it be handled there.
mLastMotionX = x;
mLastMotionY = y;
mIsUnableToDrag = true;
return false;
}
- if ( xDiff > mTouchSlop && xDiff * 0.5f > yDiff ) {
- if ( DEBUG ) Log.v( TAG, "Starting drag!" );
+ if (xDiff > mTouchSlop && xDiff * 0.5f > yDiff) {
+ if (DEBUG) Log.v(TAG, "Starting drag!");
mIsBeingDragged = true;
- requestParentDisallowInterceptTouchEvent( true );
- setScrollState( SCROLL_STATE_DRAGGING );
+ requestParentDisallowInterceptTouchEvent(true);
+ setScrollState(SCROLL_STATE_DRAGGING);
mLastMotionX = dx > 0 ? mInitialMotionX + mTouchSlop :
mInitialMotionX - mTouchSlop;
mLastMotionY = y;
- setScrollingCacheEnabled( true );
- } else if ( yDiff > mTouchSlop ) {
+ setScrollingCacheEnabled(true);
+ } else if (yDiff > mTouchSlop) {
// The finger has moved enough in the vertical
// direction to be counted as a drag... abort
// any attempt to drag horizontally, to work correctly
// with children that have scrolling containers.
- if ( DEBUG ) Log.v( TAG, "Starting unable to drag!" );
+ if (DEBUG) Log.v(TAG, "Starting unable to drag!");
mIsUnableToDrag = true;
}
- if ( mIsBeingDragged ) {
+ if (mIsBeingDragged) {
// Scroll to follow the motion event
- if ( performDrag( x ) ) {
- ViewCompat.postInvalidateOnAnimation( this );
+ if (performDrag(x)) {
+ ViewCompat.postInvalidateOnAnimation(this);
}
}
}
@@ -1982,57 +1988,57 @@ public class OrientedViewPager extends ViewGroup {
*/
mLastMotionX = mInitialMotionX = ev.getX();
mLastMotionY = mInitialMotionY = ev.getY();
- mActivePointerId = MotionEventCompat.getPointerId( ev, 0 );
+ mActivePointerId = MotionEventCompat.getPointerId(ev, 0);
mIsUnableToDrag = false;
mScroller.computeScrollOffset();
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( mScrollState == SCROLL_STATE_SETTLING &&
- Math.abs( mScroller.getFinalY() - mScroller.getCurrY() ) > mCloseEnough ) {
+ if (mOrientation == Orientation.VERTICAL) {
+ if (mScrollState == SCROLL_STATE_SETTLING &&
+ Math.abs(mScroller.getFinalY() - mScroller.getCurrY()) > mCloseEnough) {
// Let the user 'catch' the pager as it animates.
mScroller.abortAnimation();
mPopulatePending = false;
populate();
mIsBeingDragged = true;
- requestParentDisallowInterceptTouchEvent( true );
- setScrollState( SCROLL_STATE_DRAGGING );
+ requestParentDisallowInterceptTouchEvent(true);
+ setScrollState(SCROLL_STATE_DRAGGING);
} else {
- completeScroll( false );
+ completeScroll(false);
mIsBeingDragged = false;
}
} else {
- if ( mScrollState == SCROLL_STATE_SETTLING &&
- Math.abs( mScroller.getFinalX() - mScroller.getCurrX() ) > mCloseEnough ) {
+ if (mScrollState == SCROLL_STATE_SETTLING &&
+ Math.abs(mScroller.getFinalX() - mScroller.getCurrX()) > mCloseEnough) {
// Let the user 'catch' the pager as it animates.
mScroller.abortAnimation();
mPopulatePending = false;
populate();
mIsBeingDragged = true;
- requestParentDisallowInterceptTouchEvent( true );
- setScrollState( SCROLL_STATE_DRAGGING );
+ requestParentDisallowInterceptTouchEvent(true);
+ setScrollState(SCROLL_STATE_DRAGGING);
} else {
- completeScroll( false );
+ completeScroll(false);
mIsBeingDragged = false;
}
}
- if ( DEBUG ) {
- Log.v( TAG, "Down at " + mLastMotionX + "," + mLastMotionY
+ if (DEBUG) {
+ Log.v(TAG, "Down at " + mLastMotionX + "," + mLastMotionY
+ " mIsBeingDragged=" + mIsBeingDragged
- + "mIsUnableToDrag=" + mIsUnableToDrag );
+ + "mIsUnableToDrag=" + mIsUnableToDrag);
}
break;
}
case MotionEventCompat.ACTION_POINTER_UP:
- onSecondaryPointerUp( ev );
+ onSecondaryPointerUp(ev);
break;
}
- if ( mVelocityTracker == null ) {
+ if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
}
- mVelocityTracker.addMovement( ev );
+ mVelocityTracker.addMovement(ev);
/*
* The only time we want to intercept motion events is if we are in the
@@ -2042,34 +2048,34 @@ public class OrientedViewPager extends ViewGroup {
}
@Override
- public boolean onTouchEvent( MotionEvent ev ) {
- if ( mFakeDragging ) {
+ public boolean onTouchEvent(MotionEvent ev) {
+ if (mFakeDragging) {
// A fake drag is in progress already, ignore this real one
// but still eat the touch events.
// (It is likely that the user is multi-touching the screen.)
return true;
}
- if ( ev.getAction() == MotionEvent.ACTION_DOWN && ev.getEdgeFlags() != 0 ) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN && ev.getEdgeFlags() != 0) {
// Don't handle edge touches immediately -- they may actually belong to one of our
// descendants.
return false;
}
- if ( mAdapter == null || mAdapter.getCount() == 0 ) {
+ if (mAdapter == null || mAdapter.getCount() == 0) {
// Nothing to present or scroll; nothing to touch.
return false;
}
- if ( mVelocityTracker == null ) {
+ if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
}
- mVelocityTracker.addMovement( ev );
+ mVelocityTracker.addMovement(ev);
final int action = ev.getAction();
boolean needsInvalidate = false;
- switch ( action & MotionEventCompat.ACTION_MASK ) {
+ switch (action & MotionEventCompat.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
mScroller.abortAnimation();
mPopulatePending = false;
@@ -2078,109 +2084,109 @@ public class OrientedViewPager extends ViewGroup {
// Remember where the motion event started
mLastMotionX = mInitialMotionX = ev.getX();
mLastMotionY = mInitialMotionY = ev.getY();
- mActivePointerId = MotionEventCompat.getPointerId( ev, 0 );
+ mActivePointerId = MotionEventCompat.getPointerId(ev, 0);
break;
}
case MotionEvent.ACTION_MOVE:
- if ( !mIsBeingDragged ) {
- final int pointerIndex = MotionEventCompat.findPointerIndex( ev, mActivePointerId );
- final float y = MotionEventCompat.getY( ev, pointerIndex );
- final float yDiff = Math.abs( y - mLastMotionY );
- final float x = MotionEventCompat.getX( ev, pointerIndex );
- final float xDiff = Math.abs( x - mLastMotionX );
- if ( DEBUG ) {
- Log.v( TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff );
+ if (!mIsBeingDragged) {
+ final int pointerIndex = MotionEventCompat.findPointerIndex(ev, mActivePointerId);
+ final float y = MotionEventCompat.getY(ev, pointerIndex);
+ final float yDiff = Math.abs(y - mLastMotionY);
+ final float x = MotionEventCompat.getX(ev, pointerIndex);
+ final float xDiff = Math.abs(x - mLastMotionX);
+ if (DEBUG) {
+ Log.v(TAG, "Moved x to " + x + "," + y + " diff=" + xDiff + "," + yDiff);
}
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( yDiff > mTouchSlop && yDiff > xDiff ) {
- if ( DEBUG ) Log.v( TAG, "Starting drag!" );
+ if (mOrientation == Orientation.VERTICAL) {
+ if (yDiff > mTouchSlop && yDiff > xDiff) {
+ if (DEBUG) Log.v(TAG, "Starting drag!");
mIsBeingDragged = true;
- requestParentDisallowInterceptTouchEvent( true );
+ requestParentDisallowInterceptTouchEvent(true);
mLastMotionY = y - mInitialMotionY > 0 ? mInitialMotionY + mTouchSlop :
mInitialMotionY - mTouchSlop;
mLastMotionX = x;
- setScrollState( SCROLL_STATE_DRAGGING );
- setScrollingCacheEnabled( true );
+ setScrollState(SCROLL_STATE_DRAGGING);
+ setScrollingCacheEnabled(true);
// Disallow Parent Intercept, just in case
ViewParent parent = getParent();
- if ( parent != null ) {
- parent.requestDisallowInterceptTouchEvent( true );
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(true);
}
}
} else {
- if ( xDiff > mTouchSlop && xDiff > yDiff ) {
- if ( DEBUG ) Log.v( TAG, "Starting drag!" );
+ if (xDiff > mTouchSlop && xDiff > yDiff) {
+ if (DEBUG) Log.v(TAG, "Starting drag!");
mIsBeingDragged = true;
- requestParentDisallowInterceptTouchEvent( true );
+ requestParentDisallowInterceptTouchEvent(true);
mLastMotionX = x - mInitialMotionX > 0 ? mInitialMotionX + mTouchSlop :
mInitialMotionX - mTouchSlop;
mLastMotionY = y;
- setScrollState( SCROLL_STATE_DRAGGING );
- setScrollingCacheEnabled( true );
+ setScrollState(SCROLL_STATE_DRAGGING);
+ setScrollingCacheEnabled(true);
// Disallow Parent Intercept, just in case
ViewParent parent = getParent();
- if ( parent != null ) {
- parent.requestDisallowInterceptTouchEvent( true );
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(true);
}
}
}
}
// Not else! Note that mIsBeingDragged can be set above.
- if ( mIsBeingDragged ) {
+ if (mIsBeingDragged) {
// Scroll to follow the motion event
final int activePointerIndex = MotionEventCompat.findPointerIndex(
- ev, mActivePointerId );
- if ( mOrientation == Orientation.VERTICAL ) {
- final float y = MotionEventCompat.getY( ev, activePointerIndex );
- needsInvalidate |= performDrag( y );
+ ev, mActivePointerId);
+ if (mOrientation == Orientation.VERTICAL) {
+ final float y = MotionEventCompat.getY(ev, activePointerIndex);
+ needsInvalidate |= performDrag(y);
} else {
- final float x = MotionEventCompat.getX( ev, activePointerIndex );
- needsInvalidate |= performDrag( x );
+ final float x = MotionEventCompat.getX(ev, activePointerIndex);
+ needsInvalidate |= performDrag(x);
}
}
break;
case MotionEvent.ACTION_UP:
- if ( mIsBeingDragged ) {
+ if (mIsBeingDragged) {
int currentPage;
int initialVelocity;
int totalDelta;
float pageOffset;
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mOrientation == Orientation.VERTICAL) {
final VelocityTracker velocityTracker = mVelocityTracker;
- velocityTracker.computeCurrentVelocity( 1000, mMaximumVelocity );
- initialVelocity = ( int ) VelocityTrackerCompat.getYVelocity(
- velocityTracker, mActivePointerId );
+ velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
+ initialVelocity = (int) VelocityTrackerCompat.getYVelocity(
+ velocityTracker, mActivePointerId);
mPopulatePending = true;
final int height = getClientSize();
final int scrollY = getScrollY();
final ItemInfo ii = infoForCurrentScrollPosition();
currentPage = ii.position;
- pageOffset = ( ( ( float ) scrollY / height ) - ii.offset ) / ii.sizeFactor;
+ pageOffset = (((float) scrollY / height) - ii.offset) / ii.sizeFactor;
final int activePointerIndex =
- MotionEventCompat.findPointerIndex( ev, mActivePointerId );
- final float y = MotionEventCompat.getY( ev, activePointerIndex );
- totalDelta = ( int ) ( y - mInitialMotionY );
+ MotionEventCompat.findPointerIndex(ev, mActivePointerId);
+ final float y = MotionEventCompat.getY(ev, activePointerIndex);
+ totalDelta = (int) (y - mInitialMotionY);
} else {
final VelocityTracker velocityTracker = mVelocityTracker;
- velocityTracker.computeCurrentVelocity( 1000, mMaximumVelocity );
- initialVelocity = ( int ) VelocityTrackerCompat.getXVelocity(
- velocityTracker, mActivePointerId );
+ velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
+ initialVelocity = (int) VelocityTrackerCompat.getXVelocity(
+ velocityTracker, mActivePointerId);
mPopulatePending = true;
final int width = getClientSize();
final int scrollX = getScrollX();
final ItemInfo ii = infoForCurrentScrollPosition();
currentPage = ii.position;
- pageOffset = ( ( ( float ) scrollX / width ) - ii.offset ) / ii.sizeFactor;
+ pageOffset = (((float) scrollX / width) - ii.offset) / ii.sizeFactor;
final int activePointerIndex =
- MotionEventCompat.findPointerIndex( ev, mActivePointerId );
- final float x = MotionEventCompat.getX( ev, activePointerIndex );
- totalDelta = ( int ) ( x - mInitialMotionX );
+ MotionEventCompat.findPointerIndex(ev, mActivePointerId);
+ final float x = MotionEventCompat.getX(ev, activePointerIndex);
+ totalDelta = (int) (x - mInitialMotionX);
}
- int nextPage = determineTargetPage( currentPage, pageOffset, initialVelocity,
- totalDelta );
- setCurrentItemInternal( nextPage, true, true, initialVelocity );
+ int nextPage = determineTargetPage(currentPage, pageOffset, initialVelocity,
+ totalDelta);
+ setCurrentItemInternal(nextPage, true, true, initialVelocity);
mActivePointerId = INVALID_POINTER;
endDrag();
@@ -2188,8 +2194,8 @@ public class OrientedViewPager extends ViewGroup {
}
break;
case MotionEvent.ACTION_CANCEL:
- if ( mIsBeingDragged ) {
- scrollToItem( mCurItem, true, 0, false );
+ if (mIsBeingDragged) {
+ scrollToItem(mCurItem, true, 0, false);
mActivePointerId = INVALID_POINTER;
endDrag();
needsInvalidate = mTopLeftEdge.onRelease() | mRightBottomEdge.onRelease();
@@ -2197,46 +2203,46 @@ public class OrientedViewPager extends ViewGroup {
break;
case MotionEventCompat.ACTION_POINTER_DOWN: {
int index;
- if ( mOrientation == Orientation.VERTICAL ) {
- index = MotionEventCompat.getActionIndex( ev );
- final float y = MotionEventCompat.getY( ev, index );
+ if (mOrientation == Orientation.VERTICAL) {
+ index = MotionEventCompat.getActionIndex(ev);
+ final float y = MotionEventCompat.getY(ev, index);
mLastMotionY = y;
} else {
- index = MotionEventCompat.getActionIndex( ev );
- final float x = MotionEventCompat.getX( ev, index );
+ index = MotionEventCompat.getActionIndex(ev);
+ final float x = MotionEventCompat.getX(ev, index);
mLastMotionX = x;
}
- mActivePointerId = MotionEventCompat.getPointerId( ev, index );
+ mActivePointerId = MotionEventCompat.getPointerId(ev, index);
break;
}
case MotionEventCompat.ACTION_POINTER_UP:
- onSecondaryPointerUp( ev );
- if ( mOrientation == Orientation.VERTICAL ) {
- mLastMotionY = MotionEventCompat.getY( ev,
- MotionEventCompat.findPointerIndex( ev, mActivePointerId ) );
+ onSecondaryPointerUp(ev);
+ if (mOrientation == Orientation.VERTICAL) {
+ mLastMotionY = MotionEventCompat.getY(ev,
+ MotionEventCompat.findPointerIndex(ev, mActivePointerId));
} else {
- mLastMotionX = MotionEventCompat.getX( ev,
- MotionEventCompat.findPointerIndex( ev, mActivePointerId ) );
+ mLastMotionX = MotionEventCompat.getX(ev,
+ MotionEventCompat.findPointerIndex(ev, mActivePointerId));
}
break;
}
- if ( needsInvalidate ) {
- ViewCompat.postInvalidateOnAnimation( this );
+ if (needsInvalidate) {
+ ViewCompat.postInvalidateOnAnimation(this);
}
return true;
}
- private void requestParentDisallowInterceptTouchEvent( boolean disallowIntercept ) {
+ private void requestParentDisallowInterceptTouchEvent(boolean disallowIntercept) {
final ViewParent parent = getParent();
- if ( parent != null ) {
- parent.requestDisallowInterceptTouchEvent( disallowIntercept );
+ if (parent != null) {
+ parent.requestDisallowInterceptTouchEvent(disallowIntercept);
}
}
- private boolean performDrag( float dimen ) {
+ private boolean performDrag(float dimen) {
boolean needsInvalidate = false;
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mOrientation == Orientation.VERTICAL) {
float y = dimen;
final float deltaY = mLastMotionY - y;
mLastMotionY = y;
@@ -2250,34 +2256,34 @@ public class OrientedViewPager extends ViewGroup {
boolean topAbsolute = true;
boolean bottomAbsolute = true;
- final ItemInfo firstItem = mItems.get( 0 );
- final ItemInfo lastItem = mItems.get( mItems.size() - 1 );
- if ( firstItem.position != 0 ) {
+ final ItemInfo firstItem = mItems.get(0);
+ final ItemInfo lastItem = mItems.get(mItems.size() - 1);
+ if (firstItem.position != 0) {
topAbsolute = false;
topBound = firstItem.offset * height;
}
- if ( lastItem.position != mAdapter.getCount() - 1 ) {
+ if (lastItem.position != mAdapter.getCount() - 1) {
bottomAbsolute = false;
bottomBound = lastItem.offset * height;
}
- if ( scrollY < topBound ) {
- if ( topAbsolute ) {
+ if (scrollY < topBound) {
+ if (topAbsolute) {
float over = topBound - scrollY;
- needsInvalidate = mTopLeftEdge.onPull( Math.abs( over ) / height );
+ needsInvalidate = mTopLeftEdge.onPull(Math.abs(over) / height);
}
scrollY = topBound;
- } else if ( scrollY > bottomBound ) {
- if ( bottomAbsolute ) {
+ } else if (scrollY > bottomBound) {
+ if (bottomAbsolute) {
float over = scrollY - bottomBound;
- needsInvalidate = mRightBottomEdge.onPull( Math.abs( over ) / height );
+ needsInvalidate = mRightBottomEdge.onPull(Math.abs(over) / height);
}
scrollY = bottomBound;
}
// Don't lose the rounded component
- mLastMotionX += scrollY - ( int ) scrollY;
- scrollTo( getScrollX(), ( int ) scrollY );
- pageScrolled( ( int ) scrollY );
+ mLastMotionX += scrollY - (int) scrollY;
+ scrollTo(getScrollX(), (int) scrollY);
+ pageScrolled((int) scrollY);
} else {
float x = dimen;
@@ -2293,34 +2299,34 @@ public class OrientedViewPager extends ViewGroup {
boolean leftAbsolute = true;
boolean rightAbsolute = true;
- final ItemInfo firstItem = mItems.get( 0 );
- final ItemInfo lastItem = mItems.get( mItems.size() - 1 );
- if ( firstItem.position != 0 ) {
+ final ItemInfo firstItem = mItems.get(0);
+ final ItemInfo lastItem = mItems.get(mItems.size() - 1);
+ if (firstItem.position != 0) {
leftAbsolute = false;
leftBound = firstItem.offset * width;
}
- if ( lastItem.position != mAdapter.getCount() - 1 ) {
+ if (lastItem.position != mAdapter.getCount() - 1) {
rightAbsolute = false;
rightBound = lastItem.offset * width;
}
- if ( scrollX < leftBound ) {
- if ( leftAbsolute ) {
+ if (scrollX < leftBound) {
+ if (leftAbsolute) {
float over = leftBound - scrollX;
- needsInvalidate = mTopLeftEdge.onPull( Math.abs( over ) / width );
+ needsInvalidate = mTopLeftEdge.onPull(Math.abs(over) / width);
}
scrollX = leftBound;
- } else if ( scrollX > rightBound ) {
- if ( rightAbsolute ) {
+ } else if (scrollX > rightBound) {
+ if (rightAbsolute) {
float over = scrollX - rightBound;
- needsInvalidate = mRightBottomEdge.onPull( Math.abs( over ) / width );
+ needsInvalidate = mRightBottomEdge.onPull(Math.abs(over) / width);
}
scrollX = rightBound;
}
// Don't lose the rounded component
- mLastMotionX += scrollX - ( int ) scrollX;
- scrollTo( ( int ) scrollX, getScrollY() );
- pageScrolled( ( int ) scrollX );
+ mLastMotionX += scrollX - (int) scrollX;
+ scrollTo((int) scrollX, getScrollY());
+ pageScrolled((int) scrollX);
}
return needsInvalidate;
@@ -2333,32 +2339,32 @@ public class OrientedViewPager extends ViewGroup {
private ItemInfo infoForCurrentScrollPosition() {
final int size = getClientSize();
final float scrollOffset =
- size > 0 ? ( float ) ( ( mOrientation == Orientation.VERTICAL ) ? getScrollY() : getScrollX() )
+ size > 0 ? (float) ((mOrientation == Orientation.VERTICAL) ? getScrollY() : getScrollX())
/ size : 0;
- final float marginOffset = size > 0 ? ( float ) mPageMargin / size : 0;
+ final float marginOffset = size > 0 ? (float) mPageMargin / size : 0;
int lastPos = -1;
float lastOffset = 0.f;
float lastSize = 0.f;
boolean first = true;
ItemInfo lastItem = null;
- for ( int i = 0; i < mItems.size(); i++ ) {
- ItemInfo ii = mItems.get( i );
+ for (int i = 0; i < mItems.size(); i++) {
+ ItemInfo ii = mItems.get(i);
float offset;
- if ( !first && ii.position != lastPos + 1 ) {
+ if (!first && ii.position != lastPos + 1) {
// Create a synthetic item for a missing page.
ii = mTempItem;
ii.offset = lastOffset + lastSize + marginOffset;
ii.position = lastPos + 1;
- ii.sizeFactor = mAdapter.getPageWidth( ii.position );
+ ii.sizeFactor = mAdapter.getPageWidth(ii.position);
i--;
}
offset = ii.offset;
final float topLeftBound = offset;
final float bottomRightBound = offset + ii.sizeFactor + marginOffset;
- if ( first || scrollOffset >= topLeftBound ) {
- if ( scrollOffset < bottomRightBound || i == mItems.size() - 1 ) {
+ if (first || scrollOffset >= topLeftBound) {
+ if (scrollOffset < bottomRightBound || i == mItems.size() - 1) {
return ii;
}
} else {
@@ -2374,79 +2380,79 @@ public class OrientedViewPager extends ViewGroup {
return lastItem;
}
- private int determineTargetPage( int currentPage, float pageOffset, int velocity, int deltaDimen ) {
+ private int determineTargetPage(int currentPage, float pageOffset, int velocity, int deltaDimen) {
int targetPage;
- if ( Math.abs( deltaDimen ) > mFlingDistance && Math.abs( velocity ) > mMinimumVelocity ) {
+ if (Math.abs(deltaDimen) > mFlingDistance && Math.abs(velocity) > mMinimumVelocity) {
targetPage = velocity > 0 ? currentPage : currentPage + 1;
} else {
final float truncator = currentPage >= mCurItem ? 0.4f : 0.6f;
- targetPage = ( int ) ( currentPage + pageOffset + truncator );
+ targetPage = (int) (currentPage + pageOffset + truncator);
}
- if ( mItems.size() > 0 ) {
- final ItemInfo firstItem = mItems.get( 0 );
- final ItemInfo lastItem = mItems.get( mItems.size() - 1 );
+ if (mItems.size() > 0) {
+ final ItemInfo firstItem = mItems.get(0);
+ final ItemInfo lastItem = mItems.get(mItems.size() - 1);
// Only let the user target pages we have items for
- targetPage = Math.max( firstItem.position, Math.min( targetPage, lastItem.position ) );
+ targetPage = Math.max(firstItem.position, Math.min(targetPage, lastItem.position));
}
return targetPage;
}
@Override
- public void draw( Canvas canvas ) {
- super.draw( canvas );
+ public void draw(Canvas canvas) {
+ super.draw(canvas);
boolean needsInvalidate = false;
- final int overScrollMode = ViewCompat.getOverScrollMode( this );
- if ( overScrollMode == ViewCompat.OVER_SCROLL_ALWAYS ||
- ( overScrollMode == ViewCompat.OVER_SCROLL_IF_CONTENT_SCROLLS &&
- mAdapter != null && mAdapter.getCount() > 1 ) ) {
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( !mTopLeftEdge.isFinished() ) {
+ final int overScrollMode = ViewCompat.getOverScrollMode(this);
+ if (overScrollMode == ViewCompat.OVER_SCROLL_ALWAYS ||
+ (overScrollMode == ViewCompat.OVER_SCROLL_IF_CONTENT_SCROLLS &&
+ mAdapter != null && mAdapter.getCount() > 1)) {
+ if (mOrientation == Orientation.VERTICAL) {
+ if (!mTopLeftEdge.isFinished()) {
final int restoreCount = canvas.save();
final int height = getHeight();
final int width = getWidth() - getPaddingLeft() - getPaddingRight();
- canvas.translate( getPaddingLeft(), mFirstOffset * height );
- mTopLeftEdge.setSize( width, height );
- needsInvalidate |= mTopLeftEdge.draw( canvas );
- canvas.restoreToCount( restoreCount );
+ canvas.translate(getPaddingLeft(), mFirstOffset * height);
+ mTopLeftEdge.setSize(width, height);
+ needsInvalidate |= mTopLeftEdge.draw(canvas);
+ canvas.restoreToCount(restoreCount);
}
- if ( !mRightBottomEdge.isFinished() ) {
+ if (!mRightBottomEdge.isFinished()) {
final int restoreCount = canvas.save();
final int height = getHeight();
final int width = getWidth() - getPaddingLeft() - getPaddingRight();
- canvas.rotate( 180 );
- canvas.translate( -width - getPaddingLeft(), -( mLastOffset + 1 ) * height );
- mRightBottomEdge.setSize( width, height );
- needsInvalidate |= mRightBottomEdge.draw( canvas );
- canvas.restoreToCount( restoreCount );
+ canvas.rotate(180);
+ canvas.translate(-width - getPaddingLeft(), -(mLastOffset + 1) * height);
+ mRightBottomEdge.setSize(width, height);
+ needsInvalidate |= mRightBottomEdge.draw(canvas);
+ canvas.restoreToCount(restoreCount);
}
} else {
- if ( !mTopLeftEdge.isFinished() ) {
+ if (!mTopLeftEdge.isFinished()) {
final int restoreCount = canvas.save();
final int height = getHeight() - getPaddingTop() - getPaddingBottom();
final int width = getWidth();
- canvas.rotate( 270 );
- canvas.translate( -height + getPaddingTop(), mFirstOffset * width );
- mTopLeftEdge.setSize( height, width );
- needsInvalidate |= mTopLeftEdge.draw( canvas );
- canvas.restoreToCount( restoreCount );
+ canvas.rotate(270);
+ canvas.translate(-height + getPaddingTop(), mFirstOffset * width);
+ mTopLeftEdge.setSize(height, width);
+ needsInvalidate |= mTopLeftEdge.draw(canvas);
+ canvas.restoreToCount(restoreCount);
}
- if ( !mRightBottomEdge.isFinished() ) {
+ if (!mRightBottomEdge.isFinished()) {
final int restoreCount = canvas.save();
final int width = getWidth();
final int height = getHeight() - getPaddingTop() - getPaddingBottom();
- canvas.rotate( 90 );
- canvas.translate( -getPaddingTop(), -( mLastOffset + 1 ) * width );
- mRightBottomEdge.setSize( height, width );
- needsInvalidate |= mRightBottomEdge.draw( canvas );
- canvas.restoreToCount( restoreCount );
+ canvas.rotate(90);
+ canvas.translate(-getPaddingTop(), -(mLastOffset + 1) * width);
+ mRightBottomEdge.setSize(height, width);
+ needsInvalidate |= mRightBottomEdge.draw(canvas);
+ canvas.restoreToCount(restoreCount);
}
}
} else {
@@ -2454,51 +2460,51 @@ public class OrientedViewPager extends ViewGroup {
mRightBottomEdge.finish();
}
- if ( needsInvalidate ) {
+ if (needsInvalidate) {
// Keep animating
- ViewCompat.postInvalidateOnAnimation( this );
+ ViewCompat.postInvalidateOnAnimation(this);
}
}
@Override
- protected void onDraw( Canvas canvas ) {
- super.onDraw( canvas );
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
// Draw the margin drawable between pages if needed.
- if ( mPageMargin > 0 && mMarginDrawable != null && mItems.size() > 0 && mAdapter != null ) {
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mPageMargin > 0 && mMarginDrawable != null && mItems.size() > 0 && mAdapter != null) {
+ if (mOrientation == Orientation.VERTICAL) {
final int scrollY = getScrollY();
final int height = getHeight();
- final float marginOffset = ( float ) mPageMargin / height;
+ final float marginOffset = (float) mPageMargin / height;
int itemIndex = 0;
- ItemInfo ii = mItems.get( 0 );
+ ItemInfo ii = mItems.get(0);
float offset = ii.offset;
final int itemCount = mItems.size();
final int firstPos = ii.position;
- final int lastPos = mItems.get( itemCount - 1 ).position;
- for ( int pos = firstPos; pos < lastPos; pos++ ) {
- while ( pos > ii.position && itemIndex < itemCount ) {
- ii = mItems.get( ++itemIndex );
+ final int lastPos = mItems.get(itemCount - 1).position;
+ for (int pos = firstPos; pos < lastPos; pos++) {
+ while (pos > ii.position && itemIndex < itemCount) {
+ ii = mItems.get(++itemIndex);
}
float drawAt;
- if ( pos == ii.position ) {
- drawAt = ( ii.offset + ii.sizeFactor ) * height;
+ if (pos == ii.position) {
+ drawAt = (ii.offset + ii.sizeFactor) * height;
offset = ii.offset + ii.sizeFactor + marginOffset;
} else {
- float heightFactor = mAdapter.getPageWidth( pos );
- drawAt = ( offset + heightFactor ) * height;
+ float heightFactor = mAdapter.getPageWidth(pos);
+ drawAt = (offset + heightFactor) * height;
offset += heightFactor + marginOffset;
}
- if ( drawAt + mPageMargin > scrollY ) {
- mMarginDrawable.setBounds( mTopLeftPageBounds, ( int ) drawAt,
- mBottomRightPageBounds, ( int ) ( drawAt + mPageMargin + 0.5f ) );
- mMarginDrawable.draw( canvas );
+ if (drawAt + mPageMargin > scrollY) {
+ mMarginDrawable.setBounds(mTopLeftPageBounds, (int) drawAt,
+ mBottomRightPageBounds, (int) (drawAt + mPageMargin + 0.5f));
+ mMarginDrawable.draw(canvas);
}
- if ( drawAt > scrollY + height ) {
+ if (drawAt > scrollY + height) {
break; // No more visible, no sense in continuing
}
}
@@ -2506,35 +2512,35 @@ public class OrientedViewPager extends ViewGroup {
final int scrollX = getScrollX();
final int width = getWidth();
- final float marginOffset = ( float ) mPageMargin / width;
+ final float marginOffset = (float) mPageMargin / width;
int itemIndex = 0;
- ItemInfo ii = mItems.get( 0 );
+ ItemInfo ii = mItems.get(0);
float offset = ii.offset;
final int itemCount = mItems.size();
final int firstPos = ii.position;
- final int lastPos = mItems.get( itemCount - 1 ).position;
- for ( int pos = firstPos; pos < lastPos; pos++ ) {
- while ( pos > ii.position && itemIndex < itemCount ) {
- ii = mItems.get( ++itemIndex );
+ final int lastPos = mItems.get(itemCount - 1).position;
+ for (int pos = firstPos; pos < lastPos; pos++) {
+ while (pos > ii.position && itemIndex < itemCount) {
+ ii = mItems.get(++itemIndex);
}
float drawAt;
- if ( pos == ii.position ) {
- drawAt = ( ii.offset + ii.sizeFactor ) * width;
+ if (pos == ii.position) {
+ drawAt = (ii.offset + ii.sizeFactor) * width;
offset = ii.offset + ii.sizeFactor + marginOffset;
} else {
- float widthFactor = mAdapter.getPageWidth( pos );
- drawAt = ( offset + widthFactor ) * width;
+ float widthFactor = mAdapter.getPageWidth(pos);
+ drawAt = (offset + widthFactor) * width;
offset += widthFactor + marginOffset;
}
- if ( drawAt + mPageMargin > scrollX ) {
- mMarginDrawable.setBounds( ( int ) drawAt, mTopLeftPageBounds,
- ( int ) ( drawAt + mPageMargin + 0.5f ), mBottomRightPageBounds );
- mMarginDrawable.draw( canvas );
+ if (drawAt + mPageMargin > scrollX) {
+ mMarginDrawable.setBounds((int) drawAt, mTopLeftPageBounds,
+ (int) (drawAt + mPageMargin + 0.5f), mBottomRightPageBounds);
+ mMarginDrawable.draw(canvas);
}
- if ( drawAt > scrollX + width ) {
+ if (drawAt > scrollX + width) {
break; // No more visible, no sense in continuing
}
}
@@ -2559,24 +2565,24 @@ public class OrientedViewPager extends ViewGroup {
* @see #endFakeDrag()
*/
public boolean beginFakeDrag() {
- if ( mIsBeingDragged ) {
+ if (mIsBeingDragged) {
return false;
}
mFakeDragging = true;
- setScrollState( SCROLL_STATE_DRAGGING );
- if ( mOrientation == Orientation.VERTICAL ) {
+ setScrollState(SCROLL_STATE_DRAGGING);
+ if (mOrientation == Orientation.VERTICAL) {
mInitialMotionY = mLastMotionY = 0;
} else {
mInitialMotionX = mLastMotionX = 0;
}
- if ( mVelocityTracker == null ) {
+ if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
} else {
mVelocityTracker.clear();
}
final long time = SystemClock.uptimeMillis();
- final MotionEvent ev = MotionEvent.obtain( time, time, MotionEvent.ACTION_DOWN, 0, 0, 0 );
- mVelocityTracker.addMovement( ev );
+ final MotionEvent ev = MotionEvent.obtain(time, time, MotionEvent.ACTION_DOWN, 0, 0, 0);
+ mVelocityTracker.addMovement(ev);
ev.recycle();
mFakeDragBeginTime = time;
return true;
@@ -2589,39 +2595,39 @@ public class OrientedViewPager extends ViewGroup {
* @see #fakeDragBy(float)
*/
public void endFakeDrag() {
- if ( !mFakeDragging ) {
- throw new IllegalStateException( "No fake drag in progress. Call beginFakeDrag first." );
+ if (!mFakeDragging) {
+ throw new IllegalStateException("No fake drag in progress. Call beginFakeDrag first.");
}
final VelocityTracker velocityTracker = mVelocityTracker;
- velocityTracker.computeCurrentVelocity( 1000, mMaximumVelocity );
- if ( mOrientation == Orientation.VERTICAL ) {
- int initialVelocity = ( int ) VelocityTrackerCompat.getYVelocity(
- velocityTracker, mActivePointerId );
+ velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
+ if (mOrientation == Orientation.VERTICAL) {
+ int initialVelocity = (int) VelocityTrackerCompat.getYVelocity(
+ velocityTracker, mActivePointerId);
mPopulatePending = true;
final int size = getClientSize();
final int scrollY = getScrollY();
final ItemInfo ii = infoForCurrentScrollPosition();
final int currentPage = ii.position;
- final float pageOffset = ( ( ( float ) scrollY / size ) - ii.offset ) / ii.sizeFactor;
- final int totalDelta = ( int ) ( mLastMotionY - mInitialMotionY );
+ final float pageOffset = (((float) scrollY / size) - ii.offset) / ii.sizeFactor;
+ final int totalDelta = (int) (mLastMotionY - mInitialMotionY);
- int nextPage = determineTargetPage( currentPage, pageOffset, initialVelocity,
- totalDelta );
- setCurrentItemInternal( nextPage, true, true, initialVelocity );
+ int nextPage = determineTargetPage(currentPage, pageOffset, initialVelocity,
+ totalDelta);
+ setCurrentItemInternal(nextPage, true, true, initialVelocity);
} else {
- int initialVelocity = ( int ) VelocityTrackerCompat.getXVelocity(
- velocityTracker, mActivePointerId );
+ int initialVelocity = (int) VelocityTrackerCompat.getXVelocity(
+ velocityTracker, mActivePointerId);
mPopulatePending = true;
final int size = getClientSize();
final int scrollX = getScrollX();
final ItemInfo ii = infoForCurrentScrollPosition();
final int currentPage = ii.position;
- final float pageOffset = ( ( ( float ) scrollX / size ) - ii.offset ) / ii.sizeFactor;
- final int totalDelta = ( int ) ( mLastMotionX - mInitialMotionX );
- int nextPage = determineTargetPage( currentPage, pageOffset, initialVelocity,
- totalDelta );
- setCurrentItemInternal( nextPage, true, true, initialVelocity );
+ final float pageOffset = (((float) scrollX / size) - ii.offset) / ii.sizeFactor;
+ final int totalDelta = (int) (mLastMotionX - mInitialMotionX);
+ int nextPage = determineTargetPage(currentPage, pageOffset, initialVelocity,
+ totalDelta);
+ setCurrentItemInternal(nextPage, true, true, initialVelocity);
}
endDrag();
@@ -2635,12 +2641,12 @@ public class OrientedViewPager extends ViewGroup {
* @see #beginFakeDrag()
* @see #endFakeDrag()
*/
- public void fakeDragBy( float offset ) {
- if ( !mFakeDragging ) {
- throw new IllegalStateException( "No fake drag in progress. Call beginFakeDrag first." );
+ public void fakeDragBy(float offset) {
+ if (!mFakeDragging) {
+ throw new IllegalStateException("No fake drag in progress. Call beginFakeDrag first.");
}
- if ( mOrientation == Orientation.VERTICAL ) {
+ if (mOrientation == Orientation.VERTICAL) {
mLastMotionY += offset;
float oldScrollY = getScrollY();
@@ -2650,30 +2656,30 @@ public class OrientedViewPager extends ViewGroup {
float topBound = height * mFirstOffset;
float bottomBound = height * mLastOffset;
- final ItemInfo firstItem = mItems.get( 0 );
- final ItemInfo lastItem = mItems.get( mItems.size() - 1 );
- if ( firstItem.position != 0 ) {
+ final ItemInfo firstItem = mItems.get(0);
+ final ItemInfo lastItem = mItems.get(mItems.size() - 1);
+ if (firstItem.position != 0) {
topBound = firstItem.offset * height;
}
- if ( lastItem.position != mAdapter.getCount() - 1 ) {
+ if (lastItem.position != mAdapter.getCount() - 1) {
bottomBound = lastItem.offset * height;
}
- if ( scrollY < topBound ) {
+ if (scrollY < topBound) {
scrollY = topBound;
- } else if ( scrollY > bottomBound ) {
+ } else if (scrollY > bottomBound) {
scrollY = bottomBound;
}
// Don't lose the rounded component
- mLastMotionY += scrollY - ( int ) scrollY;
- scrollTo( getScrollX(), ( int ) scrollY );
- pageScrolled( ( int ) scrollY );
+ mLastMotionY += scrollY - (int) scrollY;
+ scrollTo(getScrollX(), (int) scrollY);
+ pageScrolled((int) scrollY);
// Synthesize an event for the VelocityTracker.
final long time = SystemClock.uptimeMillis();
- final MotionEvent ev = MotionEvent.obtain( mFakeDragBeginTime, time, MotionEvent.ACTION_MOVE,
- 0, mLastMotionY, 0 );
- mVelocityTracker.addMovement( ev );
+ final MotionEvent ev = MotionEvent.obtain(mFakeDragBeginTime, time, MotionEvent.ACTION_MOVE,
+ 0, mLastMotionY, 0);
+ mVelocityTracker.addMovement(ev);
ev.recycle();
} else {
mLastMotionX += offset;
@@ -2685,30 +2691,30 @@ public class OrientedViewPager extends ViewGroup {
float leftBound = width * mFirstOffset;
float rightBound = width * mLastOffset;
- final ItemInfo firstItem = mItems.get( 0 );
- final ItemInfo lastItem = mItems.get( mItems.size() - 1 );
- if ( firstItem.position != 0 ) {
+ final ItemInfo firstItem = mItems.get(0);
+ final ItemInfo lastItem = mItems.get(mItems.size() - 1);
+ if (firstItem.position != 0) {
leftBound = firstItem.offset * width;
}
- if ( lastItem.position != mAdapter.getCount() - 1 ) {
+ if (lastItem.position != mAdapter.getCount() - 1) {
rightBound = lastItem.offset * width;
}
- if ( scrollX < leftBound ) {
+ if (scrollX < leftBound) {
scrollX = leftBound;
- } else if ( scrollX > rightBound ) {
+ } else if (scrollX > rightBound) {
scrollX = rightBound;
}
// Don't lose the rounded component
- mLastMotionX += scrollX - ( int ) scrollX;
- scrollTo( ( int ) scrollX, getScrollY() );
- pageScrolled( ( int ) scrollX );
+ mLastMotionX += scrollX - (int) scrollX;
+ scrollTo((int) scrollX, getScrollY());
+ pageScrolled((int) scrollX);
// Synthesize an event for the VelocityTracker.
final long time = SystemClock.uptimeMillis();
- final MotionEvent ev = MotionEvent.obtain( mFakeDragBeginTime, time, MotionEvent.ACTION_MOVE,
- mLastMotionX, 0, 0 );
- mVelocityTracker.addMovement( ev );
+ final MotionEvent ev = MotionEvent.obtain(mFakeDragBeginTime, time, MotionEvent.ACTION_MOVE,
+ mLastMotionX, 0, 0);
+ mVelocityTracker.addMovement(ev);
ev.recycle();
}
}
@@ -2725,20 +2731,20 @@ public class OrientedViewPager extends ViewGroup {
return mFakeDragging;
}
- private void onSecondaryPointerUp( MotionEvent ev ) {
- final int pointerIndex = MotionEventCompat.getActionIndex( ev );
- final int pointerId = MotionEventCompat.getPointerId( ev, pointerIndex );
- if ( pointerId == mActivePointerId ) {
+ private void onSecondaryPointerUp(MotionEvent ev) {
+ final int pointerIndex = MotionEventCompat.getActionIndex(ev);
+ final int pointerId = MotionEventCompat.getPointerId(ev, pointerIndex);
+ if (pointerId == mActivePointerId) {
// This was our active pointer going up. Choose a new
// active pointer and adjust accordingly.
final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
- if ( mOrientation == Orientation.VERTICAL ) {
- mLastMotionY = MotionEventCompat.getY( ev, newPointerIndex );
+ if (mOrientation == Orientation.VERTICAL) {
+ mLastMotionY = MotionEventCompat.getY(ev, newPointerIndex);
} else {
- mLastMotionX = MotionEventCompat.getX( ev, newPointerIndex );
+ mLastMotionX = MotionEventCompat.getX(ev, newPointerIndex);
}
- mActivePointerId = MotionEventCompat.getPointerId( ev, newPointerIndex );
- if ( mVelocityTracker != null ) {
+ mActivePointerId = MotionEventCompat.getPointerId(ev, newPointerIndex);
+ if (mVelocityTracker != null) {
mVelocityTracker.clear();
}
}
@@ -2748,38 +2754,38 @@ public class OrientedViewPager extends ViewGroup {
mIsBeingDragged = false;
mIsUnableToDrag = false;
- if ( mVelocityTracker != null ) {
+ if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}
}
- private void setScrollingCacheEnabled( boolean enabled ) {
- if ( mScrollingCacheEnabled != enabled ) {
+ private void setScrollingCacheEnabled(boolean enabled) {
+ if (mScrollingCacheEnabled != enabled) {
mScrollingCacheEnabled = enabled;
- if ( USE_CACHE ) {
+ if (USE_CACHE) {
final int size = getChildCount();
- for ( int i = 0; i < size; ++i ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() != GONE ) {
- child.setDrawingCacheEnabled( enabled );
+ for (int i = 0; i < size; ++i) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() != GONE) {
+ child.setDrawingCacheEnabled(enabled);
}
}
}
}
}
- public boolean internalCanScrollVertically( int direction ) {
- if ( mAdapter == null ) {
+ public boolean internalCanScrollVertically(int direction) {
+ if (mAdapter == null) {
return false;
}
final int size = getClientSize();
- final int scroll = ( mOrientation == Orientation.VERTICAL ) ? getScrollY() : getScrollX();
- if ( direction < 0 ) {
- return ( scroll > ( int ) ( size * mFirstOffset ) );
- } else if ( direction > 0 ) {
- return ( scroll < ( int ) ( size * mLastOffset ) );
+ final int scroll = (mOrientation == Orientation.VERTICAL) ? getScrollY() : getScrollX();
+ if (direction < 0) {
+ return (scroll > (int) (size * mFirstOffset));
+ } else if (direction > 0) {
+ return (scroll < (int) (size * mLastOffset));
} else {
return false;
}
@@ -2788,50 +2794,50 @@ public class OrientedViewPager extends ViewGroup {
/**
* Tests scrollability within child views of v given a delta of dx.
*
- * @param v View to test for horizontal scrollability
+ * @param v View to test for horizontal scrollability
* @param checkV Whether the view v passed should itself be checked for scrollability (true),
- * or just its children (false).
- * @param delta Delta scrolled in pixels
- * @param x X coordinate of the active touch point
- * @param y Y coordinate of the active touch point
+ * or just its children (false).
+ * @param delta Delta scrolled in pixels
+ * @param x X coordinate of the active touch point
+ * @param y Y coordinate of the active touch point
* @return true if child views of v can be scrolled by delta of dx.
*/
- protected boolean canScroll( View v, boolean checkV, int delta, int x, int y ) {
- if ( v instanceof ViewGroup ) {
- final ViewGroup group = ( ViewGroup ) v;
+ protected boolean canScroll(View v, boolean checkV, int delta, int x, int y) {
+ if (v instanceof ViewGroup) {
+ final ViewGroup group = (ViewGroup) v;
final int scrollX = v.getScrollX();
final int scrollY = v.getScrollY();
final int count = group.getChildCount();
// Count backwards - let topmost views consume scroll distance first.
- for ( int i = count - 1; i >= 0; i-- ) {
+ for (int i = count - 1; i >= 0; i--) {
// TODO: Add versioned support here for transformed views.
// This will not work for transformed views in Honeycomb+
- final View child = group.getChildAt( i );
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( y + scrollY >= child.getTop() && y + scrollY < child.getBottom() &&
+ final View child = group.getChildAt(i);
+ if (mOrientation == Orientation.VERTICAL) {
+ if (y + scrollY >= child.getTop() && y + scrollY < child.getBottom() &&
x + scrollX >= child.getLeft() && x + scrollX < child.getRight() &&
- canScroll( child, true, delta, x + scrollX - child.getLeft(),
- y + scrollY - child.getTop() ) ) {
+ canScroll(child, true, delta, x + scrollX - child.getLeft(),
+ y + scrollY - child.getTop())) {
return true;
}
} else {
- if ( x + scrollX >= child.getLeft() && x + scrollX < child.getRight() &&
+ if (x + scrollX >= child.getLeft() && x + scrollX < child.getRight() &&
y + scrollY >= child.getTop() && y + scrollY < child.getBottom() &&
- canScroll( child, true, delta, x + scrollX - child.getLeft(),
- y + scrollY - child.getTop() ) ) {
+ canScroll(child, true, delta, x + scrollX - child.getLeft(),
+ y + scrollY - child.getTop())) {
return true;
}
}
}
}
- return checkV && ViewCompat.canScrollVertically( v, -delta );
+ return checkV && ViewCompat.canScrollVertically(v, -delta);
}
@Override
- public boolean dispatchKeyEvent( KeyEvent event ) {
+ public boolean dispatchKeyEvent(KeyEvent event) {
// Let the focused view and/or our descendants get the key first
- return super.dispatchKeyEvent( event ) || executeKeyEvent( event );
+ return super.dispatchKeyEvent(event) || executeKeyEvent(event);
}
/**
@@ -2842,24 +2848,24 @@ public class OrientedViewPager extends ViewGroup {
* @param event The key event to execute.
* @return Return true if the event was handled, else false.
*/
- public boolean executeKeyEvent( KeyEvent event ) {
+ public boolean executeKeyEvent(KeyEvent event) {
boolean handled = false;
- if ( event.getAction() == KeyEvent.ACTION_DOWN ) {
- switch ( event.getKeyCode() ) {
+ if (event.getAction() == KeyEvent.ACTION_DOWN) {
+ switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_DPAD_LEFT:
- handled = arrowScroll( FOCUS_LEFT );
+ handled = arrowScroll(FOCUS_LEFT);
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
- handled = arrowScroll( FOCUS_RIGHT );
+ handled = arrowScroll(FOCUS_RIGHT);
break;
case KeyEvent.KEYCODE_TAB:
- if ( Build.VERSION.SDK_INT >= 11 ) {
+ if (Build.VERSION.SDK_INT >= 11) {
// The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD
// before Android 3.0. Ignore the tab key on those devices.
- if ( event.hasNoModifiers() ) {
- handled = arrowScroll( FOCUS_FORWARD );
- } else if ( event.hasModifiers( KeyEvent.META_SHIFT_ON ) ) {
- handled = arrowScroll( FOCUS_BACKWARD );
+ if (event.hasNoModifiers()) {
+ handled = arrowScroll(FOCUS_FORWARD);
+ } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) {
+ handled = arrowScroll(FOCUS_BACKWARD);
}
}
break;
@@ -2868,98 +2874,98 @@ public class OrientedViewPager extends ViewGroup {
return handled;
}
- public boolean arrowScroll( int direction ) {
+ public boolean arrowScroll(int direction) {
View currentFocused = findFocus();
- if ( currentFocused == this ) {
+ if (currentFocused == this) {
currentFocused = null;
- } else if ( currentFocused != null ) {
+ } else if (currentFocused != null) {
boolean isChild = false;
- for ( ViewParent parent = currentFocused.getParent(); parent instanceof ViewGroup;
- parent = parent.getParent() ) {
- if ( parent == this ) {
+ for (ViewParent parent = currentFocused.getParent(); parent instanceof ViewGroup;
+ parent = parent.getParent()) {
+ if (parent == this) {
isChild = true;
break;
}
}
- if ( !isChild ) {
+ if (!isChild) {
// This would cause the focus search down below to fail in fun ways.
final StringBuilder sb = new StringBuilder();
- sb.append( currentFocused.getClass().getSimpleName() );
- for ( ViewParent parent = currentFocused.getParent(); parent instanceof ViewGroup;
- parent = parent.getParent() ) {
- sb.append( " => " ).append( parent.getClass().getSimpleName() );
+ sb.append(currentFocused.getClass().getSimpleName());
+ for (ViewParent parent = currentFocused.getParent(); parent instanceof ViewGroup;
+ parent = parent.getParent()) {
+ sb.append(" => ").append(parent.getClass().getSimpleName());
}
- Log.e( TAG, "arrowScroll tried to find focus based on non-child " +
- "current focused view " + sb.toString() );
+ Log.e(TAG, "arrowScroll tried to find focus based on non-child " +
+ "current focused view " + sb.toString());
currentFocused = null;
}
}
boolean handled = false;
- View nextFocused = FocusFinder.getInstance().findNextFocus( this, currentFocused,
- direction );
- if ( nextFocused != null && nextFocused != currentFocused ) {
- if ( direction == View.FOCUS_UP ) {
+ View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused,
+ direction);
+ if (nextFocused != null && nextFocused != currentFocused) {
+ if (direction == View.FOCUS_UP) {
// If there is nothing to the left, or this is causing us to
// jump to the right, then what we really want to do is page left.
- if ( mOrientation == Orientation.VERTICAL ) {
- final int nextTop = getChildRectInPagerCoordinates( mTempRect, nextFocused ).top;
- final int currTop = getChildRectInPagerCoordinates( mTempRect, currentFocused ).top;
- if ( currentFocused != null && nextTop >= currTop ) {
+ if (mOrientation == Orientation.VERTICAL) {
+ final int nextTop = getChildRectInPagerCoordinates(mTempRect, nextFocused).top;
+ final int currTop = getChildRectInPagerCoordinates(mTempRect, currentFocused).top;
+ if (currentFocused != null && nextTop >= currTop) {
handled = pageBack();
} else {
handled = nextFocused.requestFocus();
}
} else {
- final int nextLeft = getChildRectInPagerCoordinates( mTempRect, nextFocused ).left;
- final int currLeft = getChildRectInPagerCoordinates( mTempRect, currentFocused ).left;
- if ( currentFocused != null && nextLeft >= currLeft ) {
+ final int nextLeft = getChildRectInPagerCoordinates(mTempRect, nextFocused).left;
+ final int currLeft = getChildRectInPagerCoordinates(mTempRect, currentFocused).left;
+ if (currentFocused != null && nextLeft >= currLeft) {
handled = pageBack();
} else {
handled = nextFocused.requestFocus();
}
}
- } else if ( direction == View.FOCUS_DOWN ) {
+ } else if (direction == View.FOCUS_DOWN) {
// If there is nothing to the right, or this is causing us to
// jump to the left, then what we really want to do is page right.
- if ( mOrientation == Orientation.VERTICAL ) {
- final int nextDown = getChildRectInPagerCoordinates( mTempRect, nextFocused ).bottom;
- final int currDown = getChildRectInPagerCoordinates( mTempRect, currentFocused ).bottom;
- if ( currentFocused != null && nextDown <= currDown ) {
+ if (mOrientation == Orientation.VERTICAL) {
+ final int nextDown = getChildRectInPagerCoordinates(mTempRect, nextFocused).bottom;
+ final int currDown = getChildRectInPagerCoordinates(mTempRect, currentFocused).bottom;
+ if (currentFocused != null && nextDown <= currDown) {
handled = pageForward();
} else {
handled = nextFocused.requestFocus();
}
} else {
- final int nextLeft = getChildRectInPagerCoordinates( mTempRect, nextFocused ).left;
- final int currLeft = getChildRectInPagerCoordinates( mTempRect, currentFocused ).left;
- if ( currentFocused != null && nextLeft <= currLeft ) {
+ final int nextLeft = getChildRectInPagerCoordinates(mTempRect, nextFocused).left;
+ final int currLeft = getChildRectInPagerCoordinates(mTempRect, currentFocused).left;
+ if (currentFocused != null && nextLeft <= currLeft) {
handled = pageForward();
} else {
handled = nextFocused.requestFocus();
}
}
}
- } else if ( direction == FOCUS_UP || direction == FOCUS_BACKWARD ) {
+ } else if (direction == FOCUS_UP || direction == FOCUS_BACKWARD) {
// Trying to move left and nothing there; try to page.
handled = pageBack();
- } else if ( direction == FOCUS_DOWN || direction == FOCUS_FORWARD ) {
+ } else if (direction == FOCUS_DOWN || direction == FOCUS_FORWARD) {
// Trying to move right and nothing there; try to page.
handled = pageForward();
}
- if ( handled ) {
- playSoundEffect( SoundEffectConstants.getContantForFocusDirection( direction ) );
+ if (handled) {
+ playSoundEffect(SoundEffectConstants.getContantForFocusDirection(direction));
}
return handled;
}
- private Rect getChildRectInPagerCoordinates( Rect outRect, View child ) {
- if ( outRect == null ) {
+ private Rect getChildRectInPagerCoordinates(Rect outRect, View child) {
+ if (outRect == null) {
outRect = new Rect();
}
- if ( child == null ) {
- outRect.set( 0, 0, 0, 0 );
+ if (child == null) {
+ outRect.set(0, 0, 0, 0);
return outRect;
}
outRect.left = child.getLeft();
@@ -2968,8 +2974,8 @@ public class OrientedViewPager extends ViewGroup {
outRect.bottom = child.getBottom();
ViewParent parent = child.getParent();
- while ( parent instanceof ViewGroup && parent != this ) {
- final ViewGroup group = ( ViewGroup ) parent;
+ while (parent instanceof ViewGroup && parent != this) {
+ final ViewGroup group = (ViewGroup) parent;
outRect.left += group.getLeft();
outRect.right += group.getRight();
outRect.top += group.getTop();
@@ -2981,16 +2987,16 @@ public class OrientedViewPager extends ViewGroup {
}
boolean pageBack() {
- if ( mCurItem > 0 ) {
- setCurrentItem( mCurItem - 1, true );
+ if (mCurItem > 0) {
+ setCurrentItem(mCurItem - 1, true);
return true;
}
return false;
}
boolean pageForward() {
- if ( mAdapter != null && mCurItem < ( mAdapter.getCount() - 1 ) ) {
- setCurrentItem( mCurItem + 1, true );
+ if (mAdapter != null && mCurItem < (mAdapter.getCount() - 1)) {
+ setCurrentItem(mCurItem + 1, true);
return true;
}
return false;
@@ -3000,18 +3006,18 @@ public class OrientedViewPager extends ViewGroup {
* We only want the current page that is being shown to be focusable.
*/
@Override
- public void addFocusables( ArrayList< View > views, int direction, int focusableMode ) {
+ public void addFocusables(ArrayList views, int direction, int focusableMode) {
final int focusableCount = views.size();
final int descendantFocusability = getDescendantFocusability();
- if ( descendantFocusability != FOCUS_BLOCK_DESCENDANTS ) {
- for ( int i = 0; i < getChildCount(); i++ ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() == VISIBLE ) {
- ItemInfo ii = infoForChild( child );
- if ( ii != null && ii.position == mCurItem ) {
- child.addFocusables( views, direction, focusableMode );
+ if (descendantFocusability != FOCUS_BLOCK_DESCENDANTS) {
+ for (int i = 0; i < getChildCount(); i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() == VISIBLE) {
+ ItemInfo ii = infoForChild(child);
+ if (ii != null && ii.position == mCurItem) {
+ child.addFocusables(views, direction, focusableMode);
}
}
}
@@ -3024,18 +3030,18 @@ public class OrientedViewPager extends ViewGroup {
if (
descendantFocusability != FOCUS_AFTER_DESCENDANTS ||
// No focusable descendants
- ( focusableCount == views.size() ) ) {
+ (focusableCount == views.size())) {
// Note that we can't call the superclass here, because it will
// add all views in. So we need to do the same thing View does.
- if ( !isFocusable() ) {
+ if (!isFocusable()) {
return;
}
- if ( ( focusableMode & FOCUSABLES_TOUCH_MODE ) == FOCUSABLES_TOUCH_MODE &&
- isInTouchMode() && !isFocusableInTouchMode() ) {
+ if ((focusableMode & FOCUSABLES_TOUCH_MODE) == FOCUSABLES_TOUCH_MODE &&
+ isInTouchMode() && !isFocusableInTouchMode()) {
return;
}
- if ( views != null ) {
- views.add( this );
+ if (views != null) {
+ views.add(this);
}
}
}
@@ -3044,16 +3050,16 @@ public class OrientedViewPager extends ViewGroup {
* We only want the current page that is being shown to be touchable.
*/
@Override
- public void addTouchables( ArrayList< View > views ) {
+ public void addTouchables(ArrayList views) {
// Note that we don't call super.addTouchables(), which means that
// we don't call View.addTouchables(). This is okay because a ViewPager
// is itself not touchable.
- for ( int i = 0; i < getChildCount(); i++ ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() == VISIBLE ) {
- ItemInfo ii = infoForChild( child );
- if ( ii != null && ii.position == mCurItem ) {
- child.addTouchables( views );
+ for (int i = 0; i < getChildCount(); i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() == VISIBLE) {
+ ItemInfo ii = infoForChild(child);
+ if (ii != null && ii.position == mCurItem) {
+ child.addTouchables(views);
}
}
}
@@ -3063,13 +3069,13 @@ public class OrientedViewPager extends ViewGroup {
* We only want the current page that is being shown to be focusable.
*/
@Override
- protected boolean onRequestFocusInDescendants( int direction,
- Rect previouslyFocusedRect ) {
+ protected boolean onRequestFocusInDescendants(int direction,
+ Rect previouslyFocusedRect) {
int index;
int increment;
int end;
int count = getChildCount();
- if ( ( direction & FOCUS_FORWARD ) != 0 ) {
+ if ((direction & FOCUS_FORWARD) != 0) {
index = 0;
increment = 1;
end = count;
@@ -3078,12 +3084,12 @@ public class OrientedViewPager extends ViewGroup {
increment = -1;
end = -1;
}
- for ( int i = index; i != end; i += increment ) {
- View child = getChildAt( i );
- if ( child.getVisibility() == VISIBLE ) {
- ItemInfo ii = infoForChild( child );
- if ( ii != null && ii.position == mCurItem ) {
- if ( child.requestFocus( direction, previouslyFocusedRect ) ) {
+ for (int i = index; i != end; i += increment) {
+ View child = getChildAt(i);
+ if (child.getVisibility() == VISIBLE) {
+ ItemInfo ii = infoForChild(child);
+ if (ii != null && ii.position == mCurItem) {
+ if (child.requestFocus(direction, previouslyFocusedRect)) {
return true;
}
}
@@ -3093,20 +3099,20 @@ public class OrientedViewPager extends ViewGroup {
}
@Override
- public boolean dispatchPopulateAccessibilityEvent( AccessibilityEvent event ) {
+ public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
// Dispatch scroll events from this ViewPager.
- if ( event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED ) {
- return super.dispatchPopulateAccessibilityEvent( event );
+ if (event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED) {
+ return super.dispatchPopulateAccessibilityEvent(event);
}
// Dispatch all other accessibility events from the current page.
final int childCount = getChildCount();
- for ( int i = 0; i < childCount; i++ ) {
- final View child = getChildAt( i );
- if ( child.getVisibility() == VISIBLE ) {
- final ItemInfo ii = infoForChild( child );
- if ( ii != null && ii.position == mCurItem &&
- child.dispatchPopulateAccessibilityEvent( event ) ) {
+ for (int i = 0; i < childCount; i++) {
+ final View child = getChildAt(i);
+ if (child.getVisibility() == VISIBLE) {
+ final ItemInfo ii = infoForChild(child);
+ if (ii != null && ii.position == mCurItem &&
+ child.dispatchPopulateAccessibilityEvent(event)) {
return true;
}
}
@@ -3121,76 +3127,76 @@ public class OrientedViewPager extends ViewGroup {
}
@Override
- protected ViewGroup.LayoutParams generateLayoutParams( ViewGroup.LayoutParams p ) {
+ protected ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
return generateDefaultLayoutParams();
}
@Override
- protected boolean checkLayoutParams( ViewGroup.LayoutParams p ) {
- return p instanceof LayoutParams && super.checkLayoutParams( p );
+ protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
+ return p instanceof LayoutParams && super.checkLayoutParams(p);
}
@Override
- public ViewGroup.LayoutParams generateLayoutParams( AttributeSet attrs ) {
- return new LayoutParams( getContext(), attrs );
+ public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {
+ return new LayoutParams(getContext(), attrs);
}
class MyAccessibilityDelegate extends AccessibilityDelegateCompat {
@Override
- public void onInitializeAccessibilityEvent( View host, AccessibilityEvent event ) {
- super.onInitializeAccessibilityEvent( host, event );
- event.setClassName( ViewPager.class.getName() );
+ public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
+ super.onInitializeAccessibilityEvent(host, event);
+ event.setClassName(ViewPager.class.getName());
final AccessibilityRecordCompat recordCompat = AccessibilityRecordCompat.obtain();
- recordCompat.setScrollable( canScroll() );
- if ( event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED
- && mAdapter != null ) {
- recordCompat.setItemCount( mAdapter.getCount() );
- recordCompat.setFromIndex( mCurItem );
- recordCompat.setToIndex( mCurItem );
+ recordCompat.setScrollable(canScroll());
+ if (event.getEventType() == AccessibilityEventCompat.TYPE_VIEW_SCROLLED
+ && mAdapter != null) {
+ recordCompat.setItemCount(mAdapter.getCount());
+ recordCompat.setFromIndex(mCurItem);
+ recordCompat.setToIndex(mCurItem);
}
}
@Override
- public void onInitializeAccessibilityNodeInfo( View host, AccessibilityNodeInfoCompat info ) {
- super.onInitializeAccessibilityNodeInfo( host, info );
- info.setClassName( ViewPager.class.getName() );
- info.setScrollable( canScroll() );
- if ( mOrientation == Orientation.VERTICAL ) {
- if ( internalCanScrollVertically( 1 ) ) {
- info.addAction( AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD );
+ public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
+ super.onInitializeAccessibilityNodeInfo(host, info);
+ info.setClassName(ViewPager.class.getName());
+ info.setScrollable(canScroll());
+ if (mOrientation == Orientation.VERTICAL) {
+ if (internalCanScrollVertically(1)) {
+ info.addAction(AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD);
}
- if ( internalCanScrollVertically( -1 ) ) {
- info.addAction( AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD );
+ if (internalCanScrollVertically(-1)) {
+ info.addAction(AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD);
}
} else {
- if ( canScrollHorizontally( 1 ) ) {
- info.addAction( AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD );
+ if (canScrollHorizontally(1)) {
+ info.addAction(AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD);
}
- if ( canScrollHorizontally( -1 ) ) {
- info.addAction( AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD );
+ if (canScrollHorizontally(-1)) {
+ info.addAction(AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD);
}
}
}
@Override
- public boolean performAccessibilityAction( View host, int action, Bundle args ) {
- if ( super.performAccessibilityAction( host, action, args ) ) {
+ public boolean performAccessibilityAction(View host, int action, Bundle args) {
+ if (super.performAccessibilityAction(host, action, args)) {
return true;
}
- switch ( action ) {
+ switch (action) {
case AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD: {
- if ( ( mOrientation == Orientation.VERTICAL && internalCanScrollVertically( 1 ) )
- || ( mOrientation == Orientation.HORIZONTAL && canScrollHorizontally( 1 ) ) ) {
- setCurrentItem( mCurItem + 1 );
+ if ((mOrientation == Orientation.VERTICAL && internalCanScrollVertically(1))
+ || (mOrientation == Orientation.HORIZONTAL && canScrollHorizontally(1))) {
+ setCurrentItem(mCurItem + 1);
return true;
}
}
return false;
case AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD: {
- if ( ( mOrientation == Orientation.VERTICAL && internalCanScrollVertically( -1 ) )
- || ( mOrientation == Orientation.HORIZONTAL && canScrollHorizontally( -1 ) ) ) {
- setCurrentItem( mCurItem - 1 );
+ if ((mOrientation == Orientation.VERTICAL && internalCanScrollVertically(-1))
+ || (mOrientation == Orientation.HORIZONTAL && canScrollHorizontally(-1))) {
+ setCurrentItem(mCurItem - 1);
return true;
}
}
@@ -3200,7 +3206,7 @@ public class OrientedViewPager extends ViewGroup {
}
private boolean canScroll() {
- return ( mAdapter != null ) && ( mAdapter.getCount() > 1 );
+ return (mAdapter != null) && (mAdapter.getCount() > 1);
}
}
@@ -3261,24 +3267,24 @@ public class OrientedViewPager extends ViewGroup {
int childIndex;
public LayoutParams() {
- super( FILL_PARENT, FILL_PARENT );
+ super(FILL_PARENT, FILL_PARENT);
}
- public LayoutParams( Context context, AttributeSet attrs ) {
- super( context, attrs );
+ public LayoutParams(Context context, AttributeSet attrs) {
+ super(context, attrs);
- final TypedArray a = context.obtainStyledAttributes( attrs, LAYOUT_ATTRS );
- gravity = a.getInteger( 0, Gravity.TOP );
+ final TypedArray a = context.obtainStyledAttributes(attrs, LAYOUT_ATTRS);
+ gravity = a.getInteger(0, Gravity.TOP);
a.recycle();
}
}
- static class ViewPositionComparator implements Comparator< View > {
+ static class ViewPositionComparator implements Comparator {
@Override
- public int compare( View lhs, View rhs ) {
- final LayoutParams llp = ( LayoutParams ) lhs.getLayoutParams();
- final LayoutParams rlp = ( LayoutParams ) rhs.getLayoutParams();
- if ( llp.isDecor != rlp.isDecor ) {
+ public int compare(View lhs, View rhs) {
+ final LayoutParams llp = (LayoutParams) lhs.getLayoutParams();
+ final LayoutParams rlp = (LayoutParams) rhs.getLayoutParams();
+ if (llp.isDecor != rlp.isDecor) {
return llp.isDecor ? 1 : -1;
}
return llp.position - rlp.position;
@@ -3291,7 +3297,7 @@ public class OrientedViewPager extends ViewGroup {
/**
* Callbacks a {@link Parcelable} creator should implement.
*/
- public interface ParcelableCompatCreatorCallbacks< T > {
+ public interface ParcelableCompatCreatorCallbacks {
/**
* Create a new instance of the Parcelable class, instantiating it
@@ -3299,11 +3305,11 @@ public class OrientedViewPager extends ViewGroup {
* {@link Parcelable#writeToParcel Parcelable.writeToParcel()} and
* using the given ClassLoader.
*
- * @param in The Parcel to read the object's data from.
+ * @param in The Parcel to read the object's data from.
* @param loader The ClassLoader that this object is being created in.
* @return Returns a new instance of the Parcelable class.
*/
- public T createFromParcel( Parcel in, ClassLoader loader );
+ public T createFromParcel(Parcel in, ClassLoader loader);
/**
* Create a new array of the Parcelable class.
@@ -3312,7 +3318,7 @@ public class OrientedViewPager extends ViewGroup {
* @return Returns an array of the Parcelable class, with every entry
* initialized to null.
*/
- public T[] newArray( int size );
+ public T[] newArray(int size);
}
/**
@@ -3327,58 +3333,58 @@ public class OrientedViewPager extends ViewGroup {
* @param callbacks Creator callbacks implementation.
* @return New creator.
*/
- public static < T > Parcelable.Creator< T > newCreator(
- OrientedViewPager.ParcelableCompatCreatorCallbacks< T > callbacks ) {
- if ( android.os.Build.VERSION.SDK_INT >= 13 ) {
- return ParcelableCompatCreatorHoneycombMR2Stub.instantiate( callbacks );
+ public static Parcelable.Creator newCreator(
+ OrientedViewPager.ParcelableCompatCreatorCallbacks callbacks) {
+ if (android.os.Build.VERSION.SDK_INT >= 13) {
+ return ParcelableCompatCreatorHoneycombMR2Stub.instantiate(callbacks);
}
- return new CompatCreator< T >( callbacks );
+ return new CompatCreator(callbacks);
}
- public static class CompatCreator< T > implements Parcelable.Creator< T > {
- final OrientedViewPager.ParcelableCompatCreatorCallbacks< T > mCallbacks;
+ public static class CompatCreator implements Parcelable.Creator {
+ final OrientedViewPager.ParcelableCompatCreatorCallbacks mCallbacks;
- public CompatCreator( OrientedViewPager.ParcelableCompatCreatorCallbacks< T > callbacks ) {
+ public CompatCreator(OrientedViewPager.ParcelableCompatCreatorCallbacks callbacks) {
mCallbacks = callbacks;
}
@Override
- public T createFromParcel( Parcel source ) {
- return mCallbacks.createFromParcel( source, null );
+ public T createFromParcel(Parcel source) {
+ return mCallbacks.createFromParcel(source, null);
}
@Override
- public T[] newArray( int size ) {
- return mCallbacks.newArray( size );
+ public T[] newArray(int size) {
+ return mCallbacks.newArray(size);
}
}
}
static class ParcelableCompatCreatorHoneycombMR2Stub {
- public static < T > Parcelable.Creator< T > instantiate(
- OrientedViewPager.ParcelableCompatCreatorCallbacks< T > callbacks ) {
- return new ParcelableCompatCreatorHoneycombMR2< T >( callbacks );
+ public static Parcelable.Creator instantiate(
+ OrientedViewPager.ParcelableCompatCreatorCallbacks callbacks) {
+ return new ParcelableCompatCreatorHoneycombMR2(callbacks);
}
}
- static class ParcelableCompatCreatorHoneycombMR2< T > implements Parcelable.ClassLoaderCreator< T > {
- private final OrientedViewPager.ParcelableCompatCreatorCallbacks< T > mCallbacks;
+ static class ParcelableCompatCreatorHoneycombMR2 implements Parcelable.ClassLoaderCreator {
+ private final OrientedViewPager.ParcelableCompatCreatorCallbacks mCallbacks;
public ParcelableCompatCreatorHoneycombMR2(
- OrientedViewPager.ParcelableCompatCreatorCallbacks< T > callbacks ) {
+ OrientedViewPager.ParcelableCompatCreatorCallbacks callbacks) {
mCallbacks = callbacks;
}
- public T createFromParcel( Parcel in ) {
- return mCallbacks.createFromParcel( in, null );
+ public T createFromParcel(Parcel in) {
+ return mCallbacks.createFromParcel(in, null);
}
- public T createFromParcel( Parcel in, ClassLoader loader ) {
- return mCallbacks.createFromParcel( in, loader );
+ public T createFromParcel(Parcel in, ClassLoader loader) {
+ return mCallbacks.createFromParcel(in, loader);
}
- public T[] newArray( int size ) {
- return mCallbacks.newArray( size );
+ public T[] newArray(int size) {
+ return mCallbacks.newArray(size);
}
}
}
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalBaseTransformer.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalBaseTransformer.java
index 85d5de7933..329d66a2b4 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalBaseTransformer.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalBaseTransformer.java
@@ -5,6 +5,10 @@ import android.view.View;
import androidx.viewpager.widget.ViewPager;
+
+/**
+ * Created by Nate on 2016/7/22.
+ */
public abstract class VerticalBaseTransformer implements ViewPager.PageTransformer {
/**
* Called each {@link #transformPage(View, float)}.
@@ -13,7 +17,7 @@ public abstract class VerticalBaseTransformer implements ViewPager.PageTransform
* @param position Position of page relative to the current front-and-center position of the pager. 0 is front and
* center. 1 is one full page position to the right, and -1 is one page position to the left.
*/
- protected abstract void onTransform( View page, float position );
+ protected abstract void onTransform(View page, float position);
/**
* Apply a property transformation to the given page. For most use cases, this method should not be overridden.
@@ -24,10 +28,10 @@ public abstract class VerticalBaseTransformer implements ViewPager.PageTransform
* center. 1 is one full page position to the right, and -1 is one page position to the left.
*/
@Override
- public void transformPage( View page, float position ) {
- onPreTransform( page, position );
- onTransform( page, position );
- onPostTransform( page, position );
+ public void transformPage(View page, float position) {
+ onPreTransform(page, position);
+ onTransform(page, position);
+ onPostTransform(page, position);
}
/**
@@ -61,24 +65,24 @@ public abstract class VerticalBaseTransformer implements ViewPager.PageTransform
* @param position Position of page relative to the current front-and-center position of the pager. 0 is front and
* center. 1 is one full page position to the right, and -1 is one page position to the left.
*/
- protected void onPreTransform( View page, float position ) {
+ protected void onPreTransform(View page, float position) {
final float width = page.getWidth();
final float height = page.getHeight();
- page.setRotationX( 0 );
- page.setRotationY( 0 );
- page.setRotation( 0 );
- page.setScaleX( 1 );
- page.setScaleY( 1 );
- page.setPivotX( 0 );
- page.setPivotY( 0 );
- page.setTranslationX( 0 );
- page.setTranslationY( isPagingEnabled() ? 0f : -height * position );
+ page.setRotationX(0);
+ page.setRotationY(0);
+ page.setRotation(0);
+ page.setScaleX(1);
+ page.setScaleY(1);
+ page.setPivotX(0);
+ page.setPivotY(0);
+ page.setTranslationX(0);
+ page.setTranslationY(isPagingEnabled() ? 0f : -height * position);
- if ( hideOffscreenPages() ) {
- page.setAlpha( position <= -1f || position >= 1f ? 0f : 1f );
+ if (hideOffscreenPages()) {
+ page.setAlpha(position <= -1f || position >= 1f ? 0f : 1f);
} else {
- page.setAlpha( 1f );
+ page.setAlpha(1f);
}
/*final float normalizedposition = Math.abs(Math.abs(position) - 1);
@@ -92,7 +96,7 @@ public abstract class VerticalBaseTransformer implements ViewPager.PageTransform
* @param position Position of page relative to the current front-and-center position of the pager. 0 is front and
* center. 1 is one full page position to the right, and -1 is one page position to the left.
*/
- protected void onPostTransform( View page, float position ) {
+ protected void onPostTransform(View page, float position) {
}
/**
@@ -102,7 +106,7 @@ public abstract class VerticalBaseTransformer implements ViewPager.PageTransform
* @param min
* @return
*/
- protected static final float min( float val, float min ) {
+ protected static final float min(float val, float min) {
return val < min ? min : val;
}
}
\ No newline at end of file
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalStackTransformer.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalStackTransformer.java
index 9184d7b65b..44cde6ab7f 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalStackTransformer.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/VerticalStackTransformer.java
@@ -9,8 +9,8 @@ import com.mogo.utils.WindowUtils;
public class VerticalStackTransformer extends VerticalBaseTransformer {
private Context context;
- private int spaceBetweenFirAndSecWith = 10 * 2;//第一张卡片和第二张卡片宽度差 dp单位
- private int spaceBetweenFirAndSecHeight = 10;//第一张卡片和第二张卡片高度差 dp单位
+ private int spaceBetweenFirAndSecWith = 5 * 2;//第一张卡片和第二张卡片宽度差 dp单位
+ private int spaceBetweenFirAndSecHeight = 5;//第一张卡片和第二张卡片高度差 dp单位
public VerticalStackTransformer( Context context ) {
this.context = context;
@@ -26,10 +26,12 @@ public class VerticalStackTransformer extends VerticalBaseTransformer {
protected void onTransform( View page, float position ) {
if ( position <= 0.0f ) {
page.setAlpha( 1.0f );
+ Log.e( "onTransform", "position <= 0.0f ==>" + position );
page.setTranslationY( 0f );
//控制停止滑动切换的时候,只有最上面的一张卡片可以点击
page.setClickable( true );
- } else if ( position <= 3.0f ) {
+ } else {
+ Log.e( "onTransform", "position <= 3.0f ==>" + position );
float scale = ( float ) ( page.getWidth() - WindowUtils.dip2px( context, spaceBetweenFirAndSecWith * position ) ) / ( float ) ( page.getWidth() );
//控制下面卡片的可见度
page.setAlpha( 1.0f );
diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
index 87844b613c..a8195bd396 100644
--- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
+++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
@@ -8,7 +8,7 @@
+
@@ -31,11 +32,9 @@
android:id="@+id/module_main_id_cards_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_marginTop="-15dp"
android:layout_marginBottom="90dp"
- android:background="#ffffff"
- android:padding="15dp" />
-
+ android:clipToPadding="false"
+ android:paddingBottom="10dp" />
@@ -43,7 +42,6 @@
android:id="@+id/module_main_id_map_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_marginLeft="-15dp"
app:layout_constraintLeft_toRightOf="@+id/module_main_id_fragment_container"
app:layout_constraintRight_toRightOf="parent" />
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java b/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java
index e8fe14fe8b..d3ef9f6bdb 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/analytics/IMogoAnalytics.java
@@ -15,6 +15,7 @@ import java.util.Map;
@Keep
public interface IMogoAnalytics extends IProvider {
+
/**
* 埋点
*