Переглянути джерело

OCFileListFragment: Solve triplicated search events

Most visible when going to Favorites from another search.

Signed-off-by: Álvaro Brey Vilas <alvaro.brey@nextcloud.com>
Álvaro Brey Vilas 3 роки тому
батько
коміт
62df4ff414

+ 6 - 19
src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -237,7 +237,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
 
         if (intent.getParcelableExtra(OCFileListFragment.SEARCH_EVENT) != null) {
             searchEvent = Parcels.unwrap(intent.getParcelableExtra(OCFileListFragment.SEARCH_EVENT));
-            onMessageEvent(searchEvent);
+            handleSearchEvent(searchEvent);
         }
 
         super.onResume();
@@ -385,10 +385,6 @@ public class OCFileListFragment extends ExtendedListFragment implements
 
         setTitle();
 
-        if (searchEvent != null) {
-            onMessageEvent(searchEvent);
-        }
-
         FragmentActivity fragmentActivity;
         if ((fragmentActivity = getActivity()) != null && fragmentActivity instanceof FileDisplayActivity) {
             FileDisplayActivity fileDisplayActivity = (FileDisplayActivity) fragmentActivity;
@@ -749,19 +745,6 @@ public class OCFileListFragment extends ExtendedListFragment implements
         ((FileActivity) getActivity()).addDrawerListener(mMultiChoiceModeListener);
     }
 
-    @Override
-    public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
-        super.onViewStateRestored(savedInstanceState);
-
-        if (savedInstanceState != null) {
-            searchEvent = Parcels.unwrap(savedInstanceState.getParcelable(SEARCH_EVENT));
-        }
-
-        if (isSearchEventSet(searchEvent)) {
-            onMessageEvent(searchEvent);
-        }
-    }
-
     /**
      * Saves the current listed folder.
      */
@@ -1490,6 +1473,10 @@ public class OCFileListFragment extends ExtendedListFragment implements
 
     @Subscribe(threadMode = ThreadMode.BACKGROUND)
     public void onMessageEvent(final SearchEvent event) {
+        handleSearchEvent(event);
+    }
+
+    private void handleSearchEvent(SearchEvent event) {
         if (SearchRemoteOperation.SearchType.PHOTO_SEARCH == event.searchType) {
             return;
         }
@@ -1663,7 +1650,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
     @Override
     public void onRefresh() {
         if (isSearchEventSet(searchEvent) && searchFragment) {
-            onMessageEvent(searchEvent);
+            handleSearchEvent(searchEvent);
 
             mRefreshListLayout.setRefreshing(false);
         } else {