Эх сурвалжийг харах

add broadcastReceiver when switching from media -> on device

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 2 жил өмнө
parent
commit
c3fd318437

+ 14 - 8
app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -290,6 +290,8 @@ public class FileDisplayActivity extends FileActivity
         mPlayerConnection = new PlayerServiceConnection(this);
 
         checkStoragePath();
+
+        initSyncBroadcastReceiver();
     }
 
     private void checkStoragePath() {
@@ -1095,16 +1097,9 @@ public class FileDisplayActivity extends FileActivity
 
         // Listen for sync messages
         if (!(leftFragment instanceof OCFileListFragment) || !((OCFileListFragment) leftFragment).isSearchFragment()) {
-            IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
-            syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
-            syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
-            syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
-            syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
-            mSyncBroadcastReceiver = new SyncBroadcastReceiver();
-            localBroadcastManager.registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
+            initSyncBroadcastReceiver();
         }
 
-
         if (!(leftFragment instanceof OCFileListFragment)) {
             if (leftFragment instanceof FileFragment) {
                 super.updateActionBarTitleAndHomeButton(((FileFragment) leftFragment).getFile());
@@ -1172,6 +1167,17 @@ public class FileDisplayActivity extends FileActivity
         Log_OC.v(TAG, "onResume() end");
     }
 
+    public void initSyncBroadcastReceiver() {
+        if (mSyncBroadcastReceiver == null) {
+            IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
+            syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
+            syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
+            syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
+            syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
+            mSyncBroadcastReceiver = new SyncBroadcastReceiver();
+            localBroadcastManager.registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
+        }
+    }
 
     @Override
     protected void onPause() {

+ 13 - 4
app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -1549,13 +1549,22 @@ public class OCFileListFragment extends ExtendedListFragment implements
         searchEvent = null;
 
         menuItemAddRemoveValue = MenuItemAddRemove.ADD_GRID_AND_SORT_WITH_SEARCH;
-        if (getActivity() != null) {
-            getActivity().invalidateOptionsMenu();
+        Activity activity = getActivity();
+        if (activity != null) {
+            activity.invalidateOptionsMenu();
+
+            if (activity instanceof FileDisplayActivity) {
+                ((FileDisplayActivity) activity).initSyncBroadcastReceiver();
+            }
+
             setTitle(themeUtils.getDefaultDisplayNameForRootFolder(getContext()));
+            activity.getIntent().removeExtra(OCFileListFragment.SEARCH_EVENT);
         }
 
-        getActivity().getIntent().removeExtra(OCFileListFragment.SEARCH_EVENT);
-        getArguments().putParcelable(OCFileListFragment.SEARCH_EVENT, null);
+        Bundle arguments = getArguments();
+        if (arguments != null) {
+            arguments.putParcelable(OCFileListFragment.SEARCH_EVENT, null);
+        }
 
         setFabVisible(true);
     }