Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e29ce7bd authored by Tomasz Mikolajewski's avatar Tomasz Mikolajewski Committed by android-build-merger
Browse files

Merge "Do not crash when trying to select unselectable items with keyboard." into nyc-dev

am: 566c595d

* commit '566c595d':
  Do not crash when trying to select unselectable items with keyboard.

Change-Id: Ica9fb710057a2d5f94625a4ec71a27797b85c27f
parents 1a99189d 566c595d
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -1410,7 +1410,7 @@ public class DirectoryFragment extends Fragment
                // Handle range selection adjustments. Extending the selection will adjust the
                // bounds of the in-progress range selection. Each time an unshifted navigation
                // event is received, the range selection is restarted.
                if (shouldExtendSelection(event)) {
                if (shouldExtendSelection(doc, event)) {
                    if (!mSelectionManager.isRangeSelectionActive()) {
                        // Start a range selection if one isn't active
                        mSelectionManager.startRangeSelection(doc.getAdapterPosition());
@@ -1447,9 +1447,22 @@ public class DirectoryFragment extends Fragment
            return false;
        }

        private boolean shouldExtendSelection(KeyEvent event) {
            return Events.isNavigationKeyCode(event.getKeyCode()) &&
                    event.isShiftPressed();
        private boolean shouldExtendSelection(DocumentHolder doc, KeyEvent event) {
            if (!Events.isNavigationKeyCode(event.getKeyCode()) || !event.isShiftPressed()) {
                return false;
            }

            // TODO: Combine this method with onBeforeItemStateChange, as both of them are almost
            // the same, and responsible for the same thing (whether to select or not).
            final Cursor cursor = mModel.getItem(doc.modelId);
            if (cursor == null) {
                Log.w(TAG, "Couldn't obtain cursor for modelId: " + doc.modelId);
                return false;
            }

            final String docMimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE);
            final int docFlags = getCursorInt(cursor, Document.COLUMN_FLAGS);
            return mTuner.canSelectType(docMimeType, docFlags);
        }
    }

+2 −2

File changed.

Contains only whitespace changes.