Browse Source

Update actions menu on creation, to avoid losing filtering state

Juan Carlos González Cabrero 9 years ago
parent
commit
c6219c610f
1 changed files with 23 additions and 16 deletions
  1. 23 16
      src/com/owncloud/android/ui/fragment/OCFileListFragment.java

+ 23 - 16
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -353,29 +353,14 @@ public class OCFileListFragment extends ExtendedListFragment {
 
             @Override
             public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
-                final int checkedCount = getListView().getCheckedItemCount();
-
-                mode.setTitle(checkedCount + " selected");
-
                 if (checked) {
                     mAdapter.setNewSelection(position, checked);
                 } else {
                     mAdapter.removeSelection(position);
                 }
 
-                if (checkedCount > 0) {
-                    List<OCFile> targetFiles = mAdapter.getCheckedItems();
+                updateActionsMenu(mode);
 
-                    if (mContainerActivity.getStorageManager() != null) {
-                        FileMenuFilter mf = new FileMenuFilter(
-                            targetFiles,
-                            mContainerActivity.getStorageManager().getAccount(),
-                            mContainerActivity,
-                            getActivity()
-                        );
-                        mf.filter(menu);
-                    }
-                }
             }
 
             @Override
@@ -384,6 +369,8 @@ public class OCFileListFragment extends ExtendedListFragment {
                 createContextActionBar(menu);
                 this.menu = menu;
 
+                updateActionsMenu(mode);
+
                 //set gray color
                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                     getActivity().getWindow().setStatusBarColor(mStatusBarColorActionMode);
@@ -395,6 +382,26 @@ public class OCFileListFragment extends ExtendedListFragment {
                 return true;
             }
 
+            private void updateActionsMenu(ActionMode mode) {
+                final int checkedCount = getListView().getCheckedItemCount();
+
+                mode.setTitle(checkedCount + " selected");
+
+                if (checkedCount > 0) {
+                    List<OCFile> targetFiles = mAdapter.getCheckedItems();
+
+                    if (mContainerActivity.getStorageManager() != null) {
+                        FileMenuFilter mf = new FileMenuFilter(
+                            targetFiles,
+                            mContainerActivity.getStorageManager().getAccount(),
+                            mContainerActivity,
+                            getActivity()
+                        );
+                        mf.filter(menu);
+                    }
+                }
+            }
+
             @Override
             public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
                 return false;