@@ -37,34 +37,46 @@ open class NSPtrLayout @JvmOverloads constructor(
3737 }
3838
3939 sealed class State {
40+ // init state
4041 // 初始化状态
4142 object IDLE : State()
43+ // refreshing state
4244 // 刷新状态
4345 object REFRESHING : State()
46+ // drag state
4447 // 拖动状态
4548 object DRAG : State()
4649 }
4750
4851 sealed class Event {
52+ // pull/drag the content
4953 // 下拉事件
5054 object Pull : Event()
55+ // touch release make content view to IDLE
5156 // 放手回到空闲
5257 object ReleaseToIdle : Event()
58+ // touch release make content view to REFRESHING
5359 // 放手开始刷新
5460 object ReleaseToRefreshing : Event()
61+ // refresh complete
5562 // 刷新完成
5663 object RefreshComplete : Event()
64+ // auto refresh
5765 // 自动刷新
5866 object AutoRefresh : Event()
5967 }
6068
6169 sealed class SideEffect {
70+ // detect touch release or other trigger transition to IDLE
6271 // 手势取消回到顶部
63- object OnCancelToIdle : SideEffect()
72+ object OnToIdle : SideEffect()
73+ // detect refreshing action
6474 // 刷新动作
6575 object OnRefreshing : SideEffect()
76+ // detect drag action
6677 // 开始拖动控件
6778 object OnDragBegin : SideEffect()
79+ // detect refresh complete
6880 // 刷新完成的动作
6981 object OnComplete : SideEffect()
7082 }
@@ -93,7 +105,7 @@ open class NSPtrLayout @JvmOverloads constructor(
93105
94106 state<State .DRAG > {
95107 on<Event .ReleaseToIdle > {
96- transitionTo(State .IDLE , SideEffect .OnCancelToIdle )
108+ transitionTo(State .IDLE , SideEffect .OnToIdle )
97109 }
98110 on<Event .ReleaseToRefreshing > {
99111 transitionTo(State .REFRESHING , SideEffect .OnRefreshing )
@@ -115,7 +127,7 @@ open class NSPtrLayout @JvmOverloads constructor(
115127 SideEffect .OnRefreshing -> {
116128 performRefresh()
117129 }
118- SideEffect .OnCancelToIdle -> {
130+ SideEffect .OnToIdle -> {
119131 tryScrollBackToTop()
120132 }
121133 }
@@ -132,19 +144,19 @@ open class NSPtrLayout @JvmOverloads constructor(
132144 return this @NSPtrLayout
133145 }
134146
135- override fun startPosition (): Int {
147+ override fun contentInitPosition (): Int {
136148 return 0
137149 }
138150
139- override fun atStartPosition (): Boolean {
140- return contentTopPosition == startPosition ()
151+ override fun isContentAtInitPosition (): Boolean {
152+ return contentTopPosition == contentInitPosition ()
141153 }
142154
143- override fun overToRefreshPosition (): Boolean {
155+ override fun isContentOverRefreshPosition (): Boolean {
144156 return contentTopPosition > headerView?.height ? : measuredHeight
145157 }
146158
147- override fun refreshPosition (): Int {
159+ override fun contentRefreshPosition (): Int {
148160 return headerView?.height ? : measuredHeight
149161 }
150162
@@ -384,7 +396,7 @@ open class NSPtrLayout @JvmOverloads constructor(
384396 // like ListView, we need enable nest scroll in intercept process
385397 val y = (ev.getY(pointerIndex) + 0.5f ).toInt()
386398 val dy = (mLastTouch.y - y).toInt()
387- if (config.atStartPosition () || dy > 0 ) {
399+ if (config.isContentAtInitPosition () || dy > 0 ) {
388400 if (dispatchNestedPreScroll(0 , dy, mScrollConsumed, mScrollOffset)) {
389401 mLastTouch.y = (y - mScrollOffset[1 ]).toFloat()
390402 // handle touch when parent not accept nest scroll
@@ -432,7 +444,7 @@ open class NSPtrLayout @JvmOverloads constructor(
432444
433445 val y = (event.getY(pointerIndex) + 0.5f ).toInt()
434446 var dy = (y - mLastTouch.y).toInt()
435- if (dy > 0 || config.atStartPosition ()) {
447+ if (dy > 0 || config.isContentAtInitPosition ()) {
436448 if (dispatchNestedPreScroll(0 , - dy, mScrollConsumed, mScrollOffset)) {
437449 mLastTouch.y = (y - mScrollOffset[1 ]).toFloat()
438450 // handle touch when parent not accept nest scroll
@@ -448,7 +460,7 @@ open class NSPtrLayout @JvmOverloads constructor(
448460 }
449461 val moveDown = dy > 0
450462 val moveUp = ! moveDown
451- val canMoveUp = config.atStartPosition ()
463+ val canMoveUp = config.isContentAtInitPosition ()
452464 if (contentTopPosition != 0 ) {
453465 movePos(dy.toFloat())
454466 return true
@@ -469,14 +481,14 @@ open class NSPtrLayout @JvmOverloads constructor(
469481 */
470482 private fun movePos (deltaY : Float ): Int {
471483 // has reached the top
472- if (deltaY < 0 && config.atStartPosition ()) {
484+ if (deltaY < 0 && config.isContentAtInitPosition ()) {
473485 return 0
474486 }
475487 var to = contentTopPosition + deltaY.toInt()
476488
477489 // over top
478- if (to < config.startPosition ()) {
479- to = config.startPosition ()
490+ if (to < config.contentInitPosition ()) {
491+ to = config.contentInitPosition ()
480492 }
481493
482494 val change = to - contentTopPosition
@@ -516,7 +528,7 @@ open class NSPtrLayout @JvmOverloads constructor(
516528 if (isNestedScroll || event == null ) {
517529 when (stateMachine.state) {
518530 is State .IDLE -> {
519- if (contentTopPosition != config.startPosition ()) {
531+ if (contentTopPosition != config.contentInitPosition ()) {
520532 mScrollChecker.scrollToStart()
521533 }
522534 }
@@ -621,7 +633,7 @@ open class NSPtrLayout @JvmOverloads constructor(
621633 var isOverToRefreshPosition: Boolean = false
622634 private set
623635 get() {
624- return config.overToRefreshPosition ()
636+ return config.isContentOverRefreshPosition ()
625637 }
626638
627639 var headerView: View ?
@@ -833,7 +845,7 @@ open class NSPtrLayout @JvmOverloads constructor(
833845 override fun onNestedPreScroll (target : View , dx : Int , dy : Int , consumed : IntArray , type : Int ) {
834846 // If we are in the middle of consuming, a scroll, then we want to move the ptr back up
835847 // before allowing the list to scroll
836- if (dy > 0 && ! config.atStartPosition ()) {
848+ if (dy > 0 && ! config.isContentAtInitPosition ()) {
837849 consumed[1 ] = - movePos(- dy.toFloat())
838850 }
839851
@@ -1006,11 +1018,11 @@ open class NSPtrLayout @JvmOverloads constructor(
10061018 }
10071019
10081020 fun scrollToRefreshing () {
1009- mScrollChecker.tryToScrollTo(config.refreshPosition ())
1021+ mScrollChecker.tryToScrollTo(config.contentRefreshPosition ())
10101022 }
10111023
10121024 fun scrollToStart () {
1013- mScrollChecker.tryToScrollTo(config.startPosition ())
1025+ mScrollChecker.tryToScrollTo(config.contentInitPosition ())
10141026 }
10151027
10161028 private fun tryToScrollTo (to : Int , duration : Int = 200) {
0 commit comments