|
|
|
|
4
|
import android.support.annotation.Nullable;
|
4
|
import android.support.annotation.Nullable;
|
5
|
import android.view.GestureDetector;
|
5
|
import android.view.GestureDetector;
|
6
|
import android.view.MotionEvent;
|
6
|
import android.view.MotionEvent;
|
|
|
7
|
+import android.view.ViewConfiguration;
|
7
|
import android.widget.ScrollView;
|
8
|
import android.widget.ScrollView;
|
8
|
|
9
|
|
9
|
import com.reactnativenavigation.NavigationApplication;
|
10
|
import com.reactnativenavigation.NavigationApplication;
|
|
|
|
|
31
|
private OnFlingListener flingListener;
|
32
|
private OnFlingListener flingListener;
|
32
|
private int scrollY = 0;
|
33
|
private int scrollY = 0;
|
33
|
private int totalCollapse = 0;
|
34
|
private int totalCollapse = 0;
|
|
|
35
|
+ private final int scaledTouchSlop;
|
34
|
|
36
|
|
35
|
public CollapseCalculator(final CollapsingView collapsingView, CollapseBehaviour collapseBehaviour) {
|
37
|
public CollapseCalculator(final CollapsingView collapsingView, CollapseBehaviour collapseBehaviour) {
|
36
|
this.view = collapsingView;
|
38
|
this.view = collapsingView;
|
37
|
this.collapseBehaviour = collapseBehaviour;
|
39
|
this.collapseBehaviour = collapseBehaviour;
|
|
|
40
|
+ scaledTouchSlop = ViewConfiguration.get(NavigationApplication.instance).getScaledTouchSlop();
|
38
|
setFlingDetector();
|
41
|
setFlingDetector();
|
39
|
}
|
42
|
}
|
40
|
|
43
|
|
|
|
|
|
188
|
totalCollapse += collapse;
|
191
|
totalCollapse += collapse;
|
189
|
previousCollapseY = y;
|
192
|
previousCollapseY = y;
|
190
|
previousTouchEvent = MotionEvent.obtain(event);
|
193
|
previousTouchEvent = MotionEvent.obtain(event);
|
191
|
- return new CollapseAmount(collapse);
|
|
|
|
|
194
|
+ return Math.abs(totalCollapse) < scaledTouchSlop ? CollapseAmount.None : new CollapseAmount(collapse);
|
192
|
}
|
195
|
}
|
193
|
|
196
|
|
194
|
private float calculateCollapse(float y) {
|
197
|
private float calculateCollapse(float y) {
|