Skip to content

Commit 300ca55

Browse files
Made restore completely asyncronous, fixed spinner showing after failed restore
Signed-off-by: daniele-verducci <daniele.verducci@nextcloud.com>
1 parent d096e62 commit 300ca55

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

‎app/src/main/java/it/niedermann/owncloud/notes/activities/ActivitiesFragment.kt‎

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -99,18 +99,18 @@ class ActivitiesFragment : BrandedFragment(), OnActivityClickListener, Activitie
9999
}
100100

101101
override fun onVersionItemClick(version: FileVersion) {
102-
binding.swipeContainingList.isRefreshing = true
103-
// Restore the version
104-
val ssoAccount =
105-
SingleAccountHelper.getCurrentSingleSignOnAccount(requireContext())
106-
val repository = VersionsRepository(requireContext(), ssoAccount)
102+
showProgress(true)
107103
lifecycleScope.launch(Dispatchers.IO) {
104+
// Restore the version
105+
val ssoAccount =
106+
SingleAccountHelper.getCurrentSingleSignOnAccount(requireContext())
107+
val repository = VersionsRepository(requireContext(), ssoAccount)
108108
val result = repository.restoreVersion(version)
109109
withContext(Dispatchers.Main) {
110110
when (result) {
111111
RestoreVersionsResult.Success -> syncNote()
112-
RestoreVersionsResult.FailedUnsupported -> showMessage(R.string.version_restore_failed_unsupported)
113-
else -> showMessage(R.string.version_restore_failed)
112+
RestoreVersionsResult.FailedUnsupported -> showMessageAndHideProgress(R.string.version_restore_failed_unsupported)
113+
else -> showMessageAndHideProgress(R.string.version_restore_failed)
114114
}
115115
}
116116
}
@@ -128,12 +128,15 @@ class ActivitiesFragment : BrandedFragment(), OnActivityClickListener, Activitie
128128
activityDataProvider.fetchFirstPage()
129129

130130
// Notify user
131-
showMessage(R.string.version_restored)
131+
showMessageAndHideProgress(R.string.version_restored)
132132
})
133133
noteRepo.scheduleSync(account, false)
134134
}
135135

136-
private fun showMessage(@StringRes message: Int) {
136+
private fun showProgress(show: Boolean) { binding.swipeContainingList.isRefreshing = show }
137+
138+
private fun showMessageAndHideProgress(@StringRes message: Int) {
139+
showProgress(false)
137140
BrandedSnackbar.make(binding.root, message, Snackbar.LENGTH_LONG).show()
138141
}
139142

@@ -145,7 +148,7 @@ class ActivitiesFragment : BrandedFragment(), OnActivityClickListener, Activitie
145148

146149
@SuppressLint("NotifyDataSetChanged")
147150
override fun onPageFetched() {
148-
binding.swipeContainingList.isRefreshing = false
151+
showProgress(false)
149152
binding.emptyList.visibility = View.GONE
150153
adapter.items.clear()
151154
adapter.items.addAll(
@@ -156,7 +159,7 @@ class ActivitiesFragment : BrandedFragment(), OnActivityClickListener, Activitie
156159
}
157160

158161
override fun onPageFetchError() {
159-
binding.swipeContainingList.isRefreshing = false
162+
showProgress(false)
160163
if (adapter.items.isEmpty()) binding.emptyList.visibility = View.VISIBLE
161164
BrandedSnackbar.make(binding.root, R.string.activities_error, Snackbar.LENGTH_SHORT).show()
162165
}

0 commit comments

Comments
 (0)