From f10777b12a8b5ea44ebe80dfdfaff82634648aec Mon Sep 17 00:00:00 2001 From: Jorge Ruesga Date: Wed, 5 Dec 2012 23:15:39 +0100 Subject: [PATCH] Issue 6795: File Manager selected file actions vanish on navigation to parent directory Issue: http://code.google.com/p/cyanogenmod/issues/detail?id=6795 The issue is relate to back navigation (nor to ahead navigation). In this case the history parcelable info data is recovery (which has a invalid selection data). On back navigation, replace the selection data parcelable info with the current selection of the navigation view. Added notifyDataSetChanged() when toogle visibility, needed to refresh the view and repaint the items. Change-Id: Ib281c6fbc33274f6e81cc6b588cde420d6ceb19f --- .../cyanogenmod/filemanager/activities/NavigationActivity.java | 2 ++ .../filemanager/adapters/FileSystemObjectAdapter.java | 1 + 2 files changed, 3 insertions(+) diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java index 77107dea9..56b7ec904 100644 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -1218,6 +1218,8 @@ public boolean navigateToHistory(History history) { (NavigationViewInfoParcelable)realHistory.getItem(); int viewId = info.getId(); NavigationView view = getNavigationView(viewId); + // Selected items must not be restored from on history navigation + info.setSelectedFiles(view.getSelectedFiles()); view.onRestoreState(info); } else if (realHistory.getItem() instanceof SearchInfoParcelable) { diff --git a/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java b/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java index bc25c5ccf..c0f5facba 100644 --- a/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java +++ b/src/com/cyanogenmod/filemanager/adapters/FileSystemObjectAdapter.java @@ -457,6 +457,7 @@ private void doSelectDeselectAllVisibleItems(boolean select) { theme.getDrawable( getContext(), "checkbox_deselected_drawable"); //$NON-NLS-1$ } + notifyDataSetChanged(); //Add or remove from the global selected items FileSystemObject fso = getItem(i);