Skip to content

Commit

Permalink
refactor PtrIndicator
Browse files Browse the repository at this point in the history
  • Loading branch information
liaohuqiu committed Jan 21, 2015
1 parent dd0971f commit bb8d9be
Show file tree
Hide file tree
Showing 14 changed files with 305 additions and 215 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import in.srain.cube.views.ptr.PtrUIHandler;
import in.srain.cube.views.ptr.demo.R;
import in.srain.cube.views.ptr.header.StoreHouseHeader;
import in.srain.cube.views.ptr.indicator.PtrIndicator;

public class StoreHouseUsingString extends TitleBaseFragment {

Expand Down Expand Up @@ -74,7 +75,7 @@ public void onUIRefreshComplete(PtrFrameLayout frame) {
}

@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int oldPosition, int currentPosition, float oldPercent, float currentPercent) {
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {

}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import in.srain.cube.views.ptr.PtrUIHandler;
import in.srain.cube.views.ptr.demo.R;
import in.srain.cube.views.ptr.header.StoreHouseHeader;
import in.srain.cube.views.ptr.indicator.PtrIndicator;

public class StoreHouseUsingStringArray extends TitleBaseFragment {

Expand Down Expand Up @@ -91,7 +92,7 @@ public void onUIRefreshComplete(PtrFrameLayout frame) {
}

@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int oldPosition, int currentPosition, float oldPercent, float currentPercent) {
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {

}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import android.view.animation.RotateAnimation;
import android.widget.FrameLayout;
import android.widget.TextView;
import in.srain.cube.views.ptr.indicator.PtrIndicator;

import java.text.SimpleDateFormat;
import java.util.Date;
Expand Down Expand Up @@ -223,8 +224,12 @@ private String getLastUpdateTime() {
}

@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int lastPos, int currentPos, float oldPercent, float currentPercent) {
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {

final int mOffsetToRefresh = frame.getOffsetToRefresh();
final int currentPos = ptrIndicator.getCurrentPosY();
final int lastPos = ptrIndicator.getLastPosY();

if (currentPos < mOffsetToRefresh && lastPos >= mOffsetToRefresh) {
if (isUnderTouch && status == PtrFrameLayout.PTR_STATUS_PREPARE) {
crossRotateLineFromBottomUnderTouch(frame);
Expand Down
141 changes: 70 additions & 71 deletions ptr-lib/src/in/srain/cube/views/ptr/PtrFrameLayout.java

Large diffs are not rendered by default.

19 changes: 0 additions & 19 deletions ptr-lib/src/in/srain/cube/views/ptr/PtrResistanceSlider.java

This file was deleted.

68 changes: 0 additions & 68 deletions ptr-lib/src/in/srain/cube/views/ptr/PtrSlider.java

This file was deleted.

38 changes: 0 additions & 38 deletions ptr-lib/src/in/srain/cube/views/ptr/PtrTensionSlider.java

This file was deleted.

4 changes: 3 additions & 1 deletion ptr-lib/src/in/srain/cube/views/ptr/PtrUIHandler.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package in.srain.cube.views.ptr;

import in.srain.cube.views.ptr.indicator.PtrIndicator;

/**
*
*/
Expand Down Expand Up @@ -29,5 +31,5 @@ public interface PtrUIHandler {
*/
public void onUIRefreshComplete(PtrFrameLayout frame);

public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int oldPosition, int currentPosition, float oldPercent, float currentPercent);
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator);
}
8 changes: 3 additions & 5 deletions ptr-lib/src/in/srain/cube/views/ptr/PtrUIHandlerHolder.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package in.srain.cube.views.ptr;

import in.srain.cube.util.CLog;

import java.lang.ref.WeakReference;
import in.srain.cube.views.ptr.indicator.PtrIndicator;

/**
* A single linked list to wrap PtrUIHandler
Expand Down Expand Up @@ -146,12 +144,12 @@ public void onUIRefreshComplete(PtrFrameLayout frame) {
}

@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int oldPosition, int currentPosition, float oldPercent, float currentPercent) {
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {
PtrUIHandlerHolder current = this;
do {
final PtrUIHandler handler = current.getHandler();
if (null != handler) {
handler.onUIPositionChange(frame, isUnderTouch, status, oldPosition, currentPosition, oldPercent, currentPercent);
handler.onUIPositionChange(frame, isUnderTouch, status, ptrIndicator);
}
} while ((current = current.mNext) != null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import in.srain.cube.views.ptr.PtrFrameLayout;
import in.srain.cube.views.ptr.PtrUIHandlerHook;
import in.srain.cube.views.ptr.PtrUIHandler;
import in.srain.cube.views.ptr.indicator.PtrIndicator;

public class MaterialHeader extends View implements PtrUIHandler {

Expand Down Expand Up @@ -160,8 +161,9 @@ public void onUIRefreshComplete(PtrFrameLayout frame) {
}

@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int oldPosition, int currentPosition, float oldPercent, float currentPercent) {
float percent = Math.min(1f, currentPercent);
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {

float percent = Math.min(1f, ptrIndicator.getCurrentPercent());

if (status == PtrFrameLayout.PTR_STATUS_PREPARE) {
mDrawable.setAlpha((int) (255 * percent));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
import android.util.AttributeSet;
import android.view.View;
import in.srain.cube.views.ptr.PtrFrameLayout;
import in.srain.cube.views.ptr.PtrTensionSlider;
import in.srain.cube.views.ptr.indicator.PtrTensionIndicator;
import in.srain.cube.views.ptr.PtrUIHandler;
import in.srain.cube.views.ptr.indicator.PtrIndicator;
import in.srain.cube.views.ptr.util.PtrLocalDisplay;

public class RentalsSunHeaderView extends View implements PtrUIHandler {
Expand All @@ -32,8 +33,8 @@ public RentalsSunHeaderView(Context context, AttributeSet attrs) {

public void setUp(PtrFrameLayout ptrFrameLayout) {
mPtrFrameLayout = ptrFrameLayout;
PtrTensionSlider slider = new PtrTensionSlider();
mPtrFrameLayout.setPtrSlider(slider);
PtrTensionIndicator slider = new PtrTensionIndicator();
mPtrFrameLayout.setPtrIndicator(slider);
}

private void init() {
Expand Down Expand Up @@ -81,11 +82,12 @@ public void onUIRefreshComplete(PtrFrameLayout frame) {
}

@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int oldPosition, int currentPosition, float oldPercent, float currentPercent) {
float percent = Math.min(1f, currentPercent);
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {

float percent = Math.min(1f, ptrIndicator.getCurrentPercent());

if (status == PtrFrameLayout.PTR_STATUS_PREPARE) {
mDrawable.offsetTopAndBottom(currentPosition);
mDrawable.offsetTopAndBottom(ptrIndicator.getCurrentPosY());
mDrawable.setPercent(percent);
invalidate();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import android.view.animation.Transformation;
import in.srain.cube.views.ptr.PtrFrameLayout;
import in.srain.cube.views.ptr.PtrUIHandler;
import in.srain.cube.views.ptr.indicator.PtrIndicator;
import in.srain.cube.views.ptr.util.PtrLocalDisplay;

import java.util.ArrayList;
Expand Down Expand Up @@ -266,8 +267,9 @@ public void onUIRefreshComplete(PtrFrameLayout frame) {
}

@Override
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, int oldPosition, int currentPosition, float oldPercent, float currentPercent) {
currentPercent = Math.min(1f, currentPercent);
public void onUIPositionChange(PtrFrameLayout frame, boolean isUnderTouch, byte status, PtrIndicator ptrIndicator) {

float currentPercent = Math.min(1f, ptrIndicator.getCurrentPercent());
setProgress(currentPercent);
invalidate();
}
Expand Down
Loading

0 comments on commit bb8d9be

Please sign in to comment.