Skip to content

Commit ba85d16

Browse files
PhilLabalperozturk96
authored andcommitted
fix(slideshow) Use interface instead of EventBus
EventBus is considered deprecated by the maintainers and we want to get rid of it eventually. So extending its usage is not the right approach. Instead, a callback interface is defined. The pre-existing pattern of looking up the enclosing activity via getTypedActivity() is used to find the callback. Long-term, the getTypedActivity() might also be a pattern we want to get rid of, but it would require a pretty thorough refactoring of the FileDisplayActivity to make it work. Signed-off-by: Philipp Hasper <[email protected]>
1 parent c62cc28 commit ba85d16

File tree

4 files changed

+20
-47
lines changed

4 files changed

+20
-47
lines changed

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

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@ import com.owncloud.android.ui.dialog.SendShareDialog.SendShareDialogDownloader
122122
import com.owncloud.android.ui.dialog.SortingOrderDialogFragment.OnSortingOrderListener
123123
import com.owncloud.android.ui.dialog.StoragePermissionDialogFragment
124124
import com.owncloud.android.ui.dialog.TermsOfServiceDialog
125-
import com.owncloud.android.ui.events.FilesRefreshEvent
126125
import com.owncloud.android.ui.events.SearchEvent
127126
import com.owncloud.android.ui.events.SyncEventFinished
128127
import com.owncloud.android.ui.events.TokenPushEvent
@@ -187,6 +186,7 @@ class FileDisplayActivity :
187186
OnEnforceableRefreshListener,
188187
OnSortingOrderListener,
189188
SendShareDialogDownloader,
189+
OnFilesRemovedListener,
190190
Injectable {
191191
private lateinit var binding: FilesBinding
192192

@@ -1456,6 +1456,12 @@ class FileDisplayActivity :
14561456
}
14571457
// endregion
14581458

1459+
override fun onStop() {
1460+
Log_OC.v(TAG, "onStop()")
1461+
unregisterReceivers()
1462+
super.onStop()
1463+
}
1464+
14591465
override fun onSortingOrderChosen(selection: FileSortOrder?) {
14601466
val ocFileListFragment = this.listOfFilesFragment
14611467
ocFileListFragment?.sortFiles(selection)
@@ -2764,11 +2770,6 @@ class FileDisplayActivity :
27642770

27652771
registerReceivers()
27662772

2767-
// Register for the FilesRefreshEvent, only if not already registered
2768-
if (!EventBus.getDefault().isRegistered(this)) {
2769-
EventBus.getDefault().register(this)
2770-
}
2771-
27722773
if (SettingsActivity.isBackPressed) {
27732774
Log_OC.d(TAG, "User returned from settings activity, skipping reset content logic")
27742775
return
@@ -2777,15 +2778,6 @@ class FileDisplayActivity :
27772778
initFile()
27782779
}
27792780

2780-
public override fun onStop() {
2781-
Log_OC.v(TAG, "onStop()")
2782-
if (EventBus.getDefault().isRegistered(this)) {
2783-
EventBus.getDefault().unregister(this)
2784-
}
2785-
unregisterReceivers()
2786-
super.onStop()
2787-
}
2788-
27892781
private fun initFile() {
27902782
val userOpt = user
27912783
if (userOpt.isEmpty) {
@@ -3036,13 +3028,9 @@ class FileDisplayActivity :
30363028
})
30373029
}
30383030

3039-
// region EventBus
3040-
@Suppress("unused")
3041-
@Subscribe(threadMode = ThreadMode.MAIN)
3042-
fun onFilesRefreshNeeded(event: FilesRefreshEvent) {
3031+
override fun onFilesRemoved() {
30433032
refreshCurrentDirectory()
30443033
}
3045-
// endregion
30463034

30473035
private fun handleEcosystemIntent(intent: Intent?) {
30483036
ecosystemManager.receiveAccount(

app/src/main/java/com/owncloud/android/ui/events/FilesRefreshEvent.kt renamed to app/src/main/java/com/owncloud/android/ui/activity/OnFilesRemovedListener.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
* SPDX-License-Identifier: AGPL-3.0-or-later
66
*/
77

8-
package com.owncloud.android.ui.events
8+
package com.owncloud.android.ui.activity
99

10-
/**
11-
* Event denoting the need to refresh the files displayed in the current view
12-
*/
13-
class FilesRefreshEvent
10+
interface OnFilesRemovedListener {
11+
fun onFilesRemoved()
12+
}

app/src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,8 @@ import com.owncloud.android.datamodel.FileDataStorageManager
2525
import com.owncloud.android.datamodel.OCFile
2626
import com.owncloud.android.ui.activity.FileActivity
2727
import com.owncloud.android.ui.activity.FileDisplayActivity
28+
import com.owncloud.android.ui.activity.OnFilesRemovedListener
2829
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener
29-
import com.owncloud.android.ui.events.FilesRefreshEvent
30-
import org.greenrobot.eventbus.EventBus
3130
import javax.inject.Inject
3231

3332
/**
@@ -46,6 +45,7 @@ class RemoveFilesDialogFragment :
4645

4746
@Inject
4847
lateinit var connectivityService: ConnectivityService
48+
4949
private var positiveButton: MaterialButton? = null
5050

5151
override fun onStart() {
@@ -102,6 +102,7 @@ class RemoveFilesDialogFragment :
102102

103103
val fileActivity = getTypedActivity(FileActivity::class.java)
104104
val fda = getTypedActivity(FileDisplayActivity::class.java)
105+
val filesRemovedListener = getTypedActivity(OnFilesRemovedListener::class.java)
105106
connectivityService.isNetworkAndServerAvailable { isAvailable ->
106107
if (isAvailable) {
107108
fileActivity?.showLoadingDialog(fileActivity.getString(R.string.wait_a_moment))
@@ -115,7 +116,7 @@ class RemoveFilesDialogFragment :
115116
}
116117

117118
if (offlineFiles.isNotEmpty()) {
118-
EventBus.getDefault().post(FilesRefreshEvent())
119+
filesRemovedListener?.onFilesRemoved()
119120
}
120121

121122
fileActivity?.dismissLoadingDialog()
@@ -127,7 +128,7 @@ class RemoveFilesDialogFragment :
127128
fileDataStorageManager.addRemoveFileOfflineOperation(file)
128129
}
129130
}
130-
EventBus.getDefault().post(FilesRefreshEvent())
131+
filesRemovedListener?.onFilesRemoved()
131132
}
132133

133134
finishActionMode()

app/src/main/java/com/owncloud/android/ui/preview/PreviewImageActivity.kt

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,14 @@ import com.owncloud.android.operations.RemoveFileOperation
4646
import com.owncloud.android.operations.SynchronizeFileOperation
4747
import com.owncloud.android.ui.activity.FileActivity
4848
import com.owncloud.android.ui.activity.FileDisplayActivity
49-
import com.owncloud.android.ui.events.FilesRefreshEvent
49+
import com.owncloud.android.ui.activity.OnFilesRemovedListener
5050
import com.owncloud.android.ui.fragment.FileFragment
5151
import com.owncloud.android.ui.fragment.GalleryFragment
5252
import com.owncloud.android.ui.fragment.OCFileListFragment
5353
import com.owncloud.android.ui.preview.model.PreviewImageActivityState
5454
import com.owncloud.android.utils.DisplayUtils
5555
import com.owncloud.android.utils.MimeTypeUtil
5656
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings
57-
import org.greenrobot.eventbus.EventBus
58-
import org.greenrobot.eventbus.Subscribe
59-
import org.greenrobot.eventbus.ThreadMode
6057
import java.io.Serializable
6158
import javax.inject.Inject
6259
import kotlin.math.max
@@ -70,6 +67,7 @@ class PreviewImageActivity :
7067
FileActivity(),
7168
FileFragment.ContainerActivity,
7269
OnRemoteOperationListener,
70+
OnFilesRemovedListener,
7371
Injectable {
7472
private var livePhotoFile: OCFile? = null
7573
private var viewPager: ViewPager2? = null
@@ -213,13 +211,9 @@ class PreviewImageActivity :
213211
}
214212
}
215213

216-
// region EventBus
217-
@Suppress("unused")
218-
@Subscribe(threadMode = ThreadMode.MAIN)
219-
fun onFilesRefreshNeeded(event: FilesRefreshEvent) {
214+
override fun onFilesRemoved() {
220215
initViewPager()
221216
}
222-
// endregion
223217

224218
fun initViewPager() {
225219
if (user.isPresent) {
@@ -273,11 +267,6 @@ class PreviewImageActivity :
273267
super.onStart()
274268
registerReceivers()
275269

276-
// Register for the FilesRefreshEvent, only if not already registered
277-
if (!EventBus.getDefault().isRegistered(this)) {
278-
EventBus.getDefault().register(this)
279-
}
280-
281270
val optionalUser = user
282271
if (optionalUser.isPresent) {
283272
var file: OCFile? = file ?: throw IllegalStateException("Instanced with a NULL OCFile")
@@ -418,10 +407,6 @@ class PreviewImageActivity :
418407
downloadFinishReceiver = null
419408
}
420409

421-
if (EventBus.getDefault().isRegistered(this)) {
422-
EventBus.getDefault().unregister(this)
423-
}
424-
425410
super.onStop()
426411
}
427412

0 commit comments

Comments
 (0)