@@ -274,7 +274,6 @@ class FileDisplayActivity :
274274
275275 checkStoragePath()
276276
277- initSyncBroadcastReceiver()
278277 observeWorkerState()
279278 startMetadataSyncForRoot()
280279 handleBackPress()
@@ -1330,12 +1329,6 @@ class FileDisplayActivity :
13301329
13311330 // Instead of onPostCreate, starting the loading in onResume for children fragments
13321331 val leftFragment = this .leftFragment
1333-
1334- // Listen for sync messages
1335- if (leftFragment !is OCFileListFragment || ! leftFragment.isSearchFragment) {
1336- initSyncBroadcastReceiver()
1337- }
1338-
13391332 if (leftFragment !is OCFileListFragment ) {
13401333 if (leftFragment is FileFragment ) {
13411334 super .updateActionBarTitleAndHomeButton(leftFragment.file)
@@ -1364,19 +1357,6 @@ class FileDisplayActivity :
13641357 updateActionBarTitleAndHomeButton(startFile)
13651358 }
13661359
1367- // Listen for upload messages
1368- val uploadIntentFilter = IntentFilter (getUploadFinishMessage())
1369- mUploadFinishReceiver = UploadFinishReceiver ()
1370- localBroadcastManager.registerReceiver(mUploadFinishReceiver!! , uploadIntentFilter)
1371-
1372- // Listen for download messages
1373- val downloadIntentFilter = IntentFilter (getDownloadAddedMessage())
1374- downloadIntentFilter.addAction(getDownloadFinishMessage())
1375- mDownloadFinishReceiver = DownloadFinishReceiver ()
1376- mDownloadFinishReceiver?.let {
1377- localBroadcastManager.registerReceiver(it, downloadIntentFilter)
1378- }
1379-
13801360 configureMenuItem()
13811361
13821362 // show in-app review dialog to user
@@ -1411,9 +1391,36 @@ class FileDisplayActivity :
14111391 setNavigationViewItemChecked()
14121392 }
14131393
1414- fun initSyncBroadcastReceiver () {
1394+ // region local broadcast manager receivers
1395+ private fun registerReceivers () {
1396+ Log_OC .d(TAG , " registering receivers" )
1397+
1398+ registerSyncBroadcastReceiver()
1399+ registerDownloadFinishReceiver()
1400+ registerUploadFinishReceiver()
1401+ }
1402+
1403+ private fun registerUploadFinishReceiver () {
1404+ val filter = IntentFilter (getUploadFinishMessage())
1405+ mUploadFinishReceiver = UploadFinishReceiver ()
1406+ mUploadFinishReceiver?.let {
1407+ localBroadcastManager.registerReceiver(it, filter)
1408+ }
1409+ }
1410+
1411+ private fun registerDownloadFinishReceiver () {
1412+ val filter = IntentFilter (getDownloadAddedMessage()).apply {
1413+ addAction(getDownloadFinishMessage())
1414+ }
1415+ mDownloadFinishReceiver = DownloadFinishReceiver ()
1416+ mDownloadFinishReceiver?.let {
1417+ localBroadcastManager.registerReceiver(it, filter)
1418+ }
1419+ }
1420+
1421+ private fun registerSyncBroadcastReceiver () {
14151422 if (mSyncBroadcastReceiver == null ) {
1416- val syncIntentFilter = IntentFilter (FileSyncAdapter .EVENT_FULL_SYNC_START ).apply {
1423+ val filter = IntentFilter (FileSyncAdapter .EVENT_FULL_SYNC_START ).apply {
14171424 addAction(FileSyncAdapter .EVENT_FULL_SYNC_END )
14181425 addAction(FileSyncAdapter .EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED )
14191426 addAction(RefreshFolderOperation .EVENT_SINGLE_FOLDER_CONTENTS_SYNCED )
@@ -1422,13 +1429,14 @@ class FileDisplayActivity :
14221429
14231430 mSyncBroadcastReceiver = SyncBroadcastReceiver ()
14241431 mSyncBroadcastReceiver?.let {
1425- localBroadcastManager.registerReceiver(it, syncIntentFilter )
1432+ localBroadcastManager.registerReceiver(it, filter )
14261433 }
14271434 }
14281435 }
14291436
1430- override fun onPause () {
1431- Log_OC .v(TAG , " onPause() start" )
1437+ private fun unregisterReceivers () {
1438+ Log_OC .d(TAG , " unregistering receivers" )
1439+
14321440 if (mSyncBroadcastReceiver != null ) {
14331441 localBroadcastManager.unregisterReceiver(mSyncBroadcastReceiver!! )
14341442 mSyncBroadcastReceiver = null
@@ -1441,9 +1449,13 @@ class FileDisplayActivity :
14411449 localBroadcastManager.unregisterReceiver(mDownloadFinishReceiver!! )
14421450 mDownloadFinishReceiver = null
14431451 }
1452+ }
1453+ // endregion
14441454
1445- super .onPause()
1446- Log_OC .v(TAG , " onPause() end" )
1455+ override fun onStop () {
1456+ Log_OC .v(TAG , " onStop()" )
1457+ unregisterReceivers()
1458+ super .onStop()
14471459 }
14481460
14491461 override fun onSortingOrderChosen (selection : FileSortOrder ? ) {
@@ -2803,6 +2815,8 @@ class FileDisplayActivity :
28032815 public override fun onStart () {
28042816 super .onStart()
28052817
2818+ registerReceivers()
2819+
28062820 if (SettingsActivity .isBackPressed) {
28072821 Log_OC .d(TAG , " User returned from settings activity, skipping reset content logic" )
28082822 return
0 commit comments