Skip to content

Commit df4e8da

Browse files
Merge pull request #16168 from nextcloud/backport/16165/stable-3.35
[stable-3.35] fix: register/unregister broadcast receivers
2 parents 67bec6d + 37ddd40 commit df4e8da

File tree

2 files changed

+41
-28
lines changed

2 files changed

+41
-28
lines changed

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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

app/src/main/java/com/owncloud/android/ui/fragment/SharedListFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ class SharedListFragment :
6363
val fileDisplayActivity = activity as FileDisplayActivity
6464
fileDisplayActivity.updateActionBarTitleAndHomeButtonByString(getString(R.string.drawer_item_shared))
6565
fileDisplayActivity.setMainFabVisible(false)
66-
fileDisplayActivity.initSyncBroadcastReceiver()
6766
}
6867
}
6968
}

0 commit comments

Comments
 (0)