1a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 2a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 3a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport android.widget.AbsListView; 4a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport com.xtremelabs.robolectric.internal.Implementation; 5a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzimport com.xtremelabs.robolectric.internal.Implements; 6a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 7a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz@Implements(AbsListView.class) 8a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultzpublic class ShadowAbsListView extends ShadowAdapterView { 9a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz private AbsListView.OnScrollListener onScrollListener; 10bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu private int smoothScrolledPosition; 11fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu private int lastSmoothScrollByDistance; 12fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu private int lastSmoothScrollByDuration; 13a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 14a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz @Implementation 15a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public void setOnScrollListener(AbsListView.OnScrollListener l) { 16a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz onScrollListener = l; 17a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 18bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu 19bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu @Implementation 20bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu public void smoothScrollToPosition(int position) { 21bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu smoothScrolledPosition = position; 22bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu } 23a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz 24fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu @Implementation 25fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu public void smoothScrollBy(int distance, int duration) { 26fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu this.lastSmoothScrollByDistance = distance; 27fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu this.lastSmoothScrollByDuration = duration; 28fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu } 29fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu 30a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz /** 31a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz * Robolectric accessor for the onScrollListener 32a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz * 33a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz * @return AbsListView.OnScrollListener 34a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz */ 35a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz public AbsListView.OnScrollListener getOnScrollListener() { 36a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz return onScrollListener; 37a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz } 38fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu 39bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu /** 40bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu * Robolectric accessor for the last smoothScrolledPosition 41bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu * 42bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu * @return int position 43bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu */ 44bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu public int getSmoothScrolledPosition() { 45bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu return smoothScrolledPosition; 46bce55849637b8c2b2805c2519aa0087a93193629Tyler Schultz & Wei Wu } 47fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu 48fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu /** 49fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu * Robolectric accessor for the last smoothScrollBy distance 50fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu * 51fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu * @return int distance 52fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu */ 53fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu public int getLastSmoothScrollByDistance() { 54fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu return lastSmoothScrollByDistance; 55fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu } 56fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu 57fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu /** 58fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu * Robolectric accessor for the last smoothScrollBy duration 59fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu * 60fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu * @return int duration 61fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu */ 62fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu public int getLastSmoothScrollByDuration() { 63fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu return lastSmoothScrollByDuration; 64fa9dda6c0cfa7389dfe7a8022c0305f0868730e5Tyler Schultz & Wei Wu } 65a739b57a6b1a99f14d586f609f0f62f48b8e2284Ian Fisher & Tyler Schultz} 66