Loading src/com/android/documentsui/dirlist/DirectoryFragment.java +4 −3 Original line number Diff line number Diff line Loading @@ -207,9 +207,6 @@ public class DirectoryFragment extends Fragment mProgressBar = view.findViewById(R.id.progressbar); assert(mProgressBar != null); mRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh_layout); mRefreshLayout.setOnRefreshListener(this); mRecView = (RecyclerView) view.findViewById(R.id.dir_list); mRecView.setRecyclerListener( new RecyclerListener() { Loading @@ -219,6 +216,9 @@ public class DirectoryFragment extends Fragment } }); mRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh_layout); mRefreshLayout.setOnRefreshListener(this); Resources resources = getContext().getResources(); new FastScroller(mRecView, (StateListDrawable) resources.getDrawable(R.drawable.fast_scroll_thumb_drawable), Loading Loading @@ -373,6 +373,7 @@ public class DirectoryFragment extends Fragment this.getContext(), mRecView, mDragStartListener::onMouseDragEvent, mRefreshLayout::setEnabled, gestureSel, mInputHandler, mBandController, Loading src/com/android/documentsui/dirlist/DocumentsSwipeRefreshLayout.java +3 −4 Original line number Diff line number Diff line Loading @@ -23,11 +23,10 @@ import android.support.v4.widget.SwipeRefreshLayout; import android.util.AttributeSet; import android.view.MotionEvent; import com.android.documentsui.base.Events; /** * A {@link SwipeRefreshLayout} that does not intercept any touch events. This relies on its nested * view to scroll in order to cause a refresh. * view to scroll in order to cause a refresh. It is possible that it gets disabled by * {@link ListeningGestureDetector} . */ public class DocumentsSwipeRefreshLayout extends SwipeRefreshLayout { Loading src/com/android/documentsui/dirlist/ListeningGestureDetector.java +21 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.view.GestureDetector; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import com.android.documentsui.base.DebugFlags; import com.android.documentsui.base.BooleanConsumer; import com.android.documentsui.base.EventHandler; import com.android.documentsui.base.Events; import com.android.documentsui.base.Events.InputEvent; Loading @@ -49,6 +49,7 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo private final Features mFeatures; private final GestureSelector mGestureSelector; private final EventHandler<InputEvent> mMouseDragListener; private final BooleanConsumer mRefreshLayoutEnabler; private final BandController mBandController; private final MouseDelegate mMouseDelegate = new MouseDelegate(); private final TouchDelegate mTouchDelegate = new TouchDelegate(); Loading @@ -56,12 +57,12 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo // Currently only initialized on IS_DEBUGGABLE builds. private final @Nullable ScaleGestureDetector mScaleDetector; public ListeningGestureDetector( Features features, Context context, RecyclerView recView, EventHandler<InputEvent> mouseDragListener, BooleanConsumer refreshLayoutEnabler, GestureSelector gestureSelector, UserInputHandler<? extends InputEvent> handler, @Nullable BandController bandController, Loading @@ -71,6 +72,7 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo mFeatures = features; mMouseDragListener = mouseDragListener; mRefreshLayoutEnabler = refreshLayoutEnabler; mGestureSelector = gestureSelector; mBandController = bandController; recView.addOnItemTouchListener(this); Loading Loading @@ -104,10 +106,23 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo try (InputEvent event = MotionInputEvent.obtain(e, rv)) { if (event.isMouseEvent()) { if (event.isActionDown()) { mRefreshLayoutEnabler.accept(false); } handled |= mMouseDelegate.onInterceptTouchEvent(event); } else { // If user has started some gesture while RecyclerView is not at the top, disable // refresh if (event.isActionDown() && rv.computeVerticalScrollOffset() != 0) { mRefreshLayoutEnabler.accept(false); } handled |= mTouchDelegate.onInterceptTouchEvent(event); } if (event.isActionUp()) { mRefreshLayoutEnabler.accept(true); } } // Forward all events to UserInputHandler. Loading @@ -126,6 +141,10 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo } else { mTouchDelegate.onTouchEvent(rv, event); } if (event.isActionUp()) { mRefreshLayoutEnabler.accept(true); } } // Note: even though this event is being handled as part of gestures such as drag and band, Loading Loading
src/com/android/documentsui/dirlist/DirectoryFragment.java +4 −3 Original line number Diff line number Diff line Loading @@ -207,9 +207,6 @@ public class DirectoryFragment extends Fragment mProgressBar = view.findViewById(R.id.progressbar); assert(mProgressBar != null); mRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh_layout); mRefreshLayout.setOnRefreshListener(this); mRecView = (RecyclerView) view.findViewById(R.id.dir_list); mRecView.setRecyclerListener( new RecyclerListener() { Loading @@ -219,6 +216,9 @@ public class DirectoryFragment extends Fragment } }); mRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refresh_layout); mRefreshLayout.setOnRefreshListener(this); Resources resources = getContext().getResources(); new FastScroller(mRecView, (StateListDrawable) resources.getDrawable(R.drawable.fast_scroll_thumb_drawable), Loading Loading @@ -373,6 +373,7 @@ public class DirectoryFragment extends Fragment this.getContext(), mRecView, mDragStartListener::onMouseDragEvent, mRefreshLayout::setEnabled, gestureSel, mInputHandler, mBandController, Loading
src/com/android/documentsui/dirlist/DocumentsSwipeRefreshLayout.java +3 −4 Original line number Diff line number Diff line Loading @@ -23,11 +23,10 @@ import android.support.v4.widget.SwipeRefreshLayout; import android.util.AttributeSet; import android.view.MotionEvent; import com.android.documentsui.base.Events; /** * A {@link SwipeRefreshLayout} that does not intercept any touch events. This relies on its nested * view to scroll in order to cause a refresh. * view to scroll in order to cause a refresh. It is possible that it gets disabled by * {@link ListeningGestureDetector} . */ public class DocumentsSwipeRefreshLayout extends SwipeRefreshLayout { Loading
src/com/android/documentsui/dirlist/ListeningGestureDetector.java +21 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.view.GestureDetector; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import com.android.documentsui.base.DebugFlags; import com.android.documentsui.base.BooleanConsumer; import com.android.documentsui.base.EventHandler; import com.android.documentsui.base.Events; import com.android.documentsui.base.Events.InputEvent; Loading @@ -49,6 +49,7 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo private final Features mFeatures; private final GestureSelector mGestureSelector; private final EventHandler<InputEvent> mMouseDragListener; private final BooleanConsumer mRefreshLayoutEnabler; private final BandController mBandController; private final MouseDelegate mMouseDelegate = new MouseDelegate(); private final TouchDelegate mTouchDelegate = new TouchDelegate(); Loading @@ -56,12 +57,12 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo // Currently only initialized on IS_DEBUGGABLE builds. private final @Nullable ScaleGestureDetector mScaleDetector; public ListeningGestureDetector( Features features, Context context, RecyclerView recView, EventHandler<InputEvent> mouseDragListener, BooleanConsumer refreshLayoutEnabler, GestureSelector gestureSelector, UserInputHandler<? extends InputEvent> handler, @Nullable BandController bandController, Loading @@ -71,6 +72,7 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo mFeatures = features; mMouseDragListener = mouseDragListener; mRefreshLayoutEnabler = refreshLayoutEnabler; mGestureSelector = gestureSelector; mBandController = bandController; recView.addOnItemTouchListener(this); Loading Loading @@ -104,10 +106,23 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo try (InputEvent event = MotionInputEvent.obtain(e, rv)) { if (event.isMouseEvent()) { if (event.isActionDown()) { mRefreshLayoutEnabler.accept(false); } handled |= mMouseDelegate.onInterceptTouchEvent(event); } else { // If user has started some gesture while RecyclerView is not at the top, disable // refresh if (event.isActionDown() && rv.computeVerticalScrollOffset() != 0) { mRefreshLayoutEnabler.accept(false); } handled |= mTouchDelegate.onInterceptTouchEvent(event); } if (event.isActionUp()) { mRefreshLayoutEnabler.accept(true); } } // Forward all events to UserInputHandler. Loading @@ -126,6 +141,10 @@ final class ListeningGestureDetector extends GestureDetector implements OnItemTo } else { mTouchDelegate.onTouchEvent(rv, event); } if (event.isActionUp()) { mRefreshLayoutEnabler.accept(true); } } // Note: even though this event is being handled as part of gestures such as drag and band, Loading