From db050e04f096b78103feb3117c3d3ab63b0ac89c Mon Sep 17 00:00:00 2001 From: Julian Raufelder Date: Fri, 28 Jan 2022 17:38:53 +0100 Subject: [PATCH] Update folder in the BrowseFilesFragment too when credentials changed --- .../presentation/presenter/BrowseFilesPresenter.kt | 4 +++- .../presentation/ui/activity/BrowseFilesActivity.kt | 5 ++++- .../presentation/ui/activity/view/BrowseFilesView.kt | 1 + .../presentation/ui/fragment/BrowseFilesFragment.kt | 6 ++++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/presentation/src/main/java/org/cryptomator/presentation/presenter/BrowseFilesPresenter.kt b/presentation/src/main/java/org/cryptomator/presentation/presenter/BrowseFilesPresenter.kt index c5456841..79082205 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/presenter/BrowseFilesPresenter.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/presenter/BrowseFilesPresenter.kt @@ -237,7 +237,9 @@ class BrowseFilesPresenter @Inject constructor( // } cloudNode.withCloud(updatedCloud)?.let { - getCloudList(cloudFolderModelMapper.toModel(it)) + val folder = cloudFolderModelMapper.toModel(it) + view?.updateActiveFolderDueToAuthenticationProblem(folder) + getCloudList(folder) } ?: throw FatalBackendException("cloudFolderModel with updated Cloud shouldn't be null") } diff --git a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/BrowseFilesActivity.kt b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/BrowseFilesActivity.kt index 29c8e949..bd49f2d2 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/BrowseFilesActivity.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/BrowseFilesActivity.kt @@ -50,7 +50,6 @@ import org.cryptomator.presentation.ui.dialog.ReplaceDialog import org.cryptomator.presentation.ui.dialog.SymLinkDialog import org.cryptomator.presentation.ui.dialog.UploadCloudFileDialog import org.cryptomator.presentation.ui.fragment.BrowseFilesFragment -import java.util.ArrayList import java.util.regex.Pattern import javax.inject.Inject import kotlinx.android.synthetic.main.toolbar_layout.toolbar @@ -615,6 +614,10 @@ class BrowseFilesActivity : BaseActivity(), // showDialog(NoDirFileDialog.newInstance(cryptoFolderName, cloudFolderPath)) } + override fun updateActiveFolderDueToAuthenticationProblem(folder: CloudFolderModel) { + browseFilesFragment().folder = folder + } + override fun navigateFolderBackBecauseSymlink() { onBackPressed() } diff --git a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/view/BrowseFilesView.kt b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/view/BrowseFilesView.kt index 3adac850..11beedce 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/ui/activity/view/BrowseFilesView.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/ui/activity/view/BrowseFilesView.kt @@ -35,5 +35,6 @@ interface BrowseFilesView : View { fun disableSelectionMode() fun showSymLinkDialog() fun showNoDirFileDialog(cryptoFolderName: String, cloudFolderPath: String) + fun updateActiveFolderDueToAuthenticationProblem(folder: CloudFolderModel) } diff --git a/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/BrowseFilesFragment.kt b/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/BrowseFilesFragment.kt index e6c6c3ec..6a98cd7e 100644 --- a/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/BrowseFilesFragment.kt +++ b/presentation/src/main/java/org/cryptomator/presentation/ui/fragment/BrowseFilesFragment.kt @@ -26,7 +26,6 @@ import org.cryptomator.presentation.model.ProgressModel import org.cryptomator.presentation.presenter.BrowseFilesPresenter import org.cryptomator.presentation.ui.adapter.BrowseFilesAdapter import org.cryptomator.presentation.util.ResourceHelper.Companion.getPixelOffset -import java.util.Comparator import java.util.Optional import javax.inject.Inject import kotlinx.android.synthetic.main.floating_action_button_layout.floatingActionButton @@ -51,8 +50,11 @@ class BrowseFilesFragment : BaseFragment() { private var filterText: String = "" - val folder: CloudFolderModel + var folder: CloudFolderModel get() = requireArguments().getSerializable(ARG_FOLDER) as CloudFolderModel + set(updatedFolder) { + arguments?.putSerializable(ARG_FOLDER, updatedFolder) + } private val chooseCloudNodeSettings: ChooseCloudNodeSettings? get() = requireArguments().getSerializable(ARG_CHOOSE_CLOUD_NODE_SETTINGS) as ChooseCloudNodeSettings?