Skip to content

Commit 8e6d40f

Browse files
committed
refactor: move create space link listener out of observer method
1 parent 8cf7acf commit 8e6d40f

2 files changed

Lines changed: 22 additions & 23 deletions

File tree

owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/links/AddPublicLinkFragment.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,7 @@ class AddPublicLinkFragment: Fragment(), SetPasswordDialogFragment.SetPasswordLi
104104
setPasswordSwitch.isVisible = !isPasswordEnforced
105105
setPasswordSwitch.isChecked = hasPassword
106106
}
107-
binding.createPublicLinkButton.isEnabled = isPasswordEnforced && hasPassword || !isPasswordEnforced
108-
109-
binding.createPublicLinkButton.setOnClickListener {
110-
spaceLinksViewModel.createPublicLink(
111-
binding.publicLinkNameEditText.text.toString().ifEmpty { getString(R.string.public_link_default_display_name) },
112-
selectedPermission,
113-
uiState.selectedExpirationDate,
114-
uiState.selectedPassword,
115-
)
116-
}
107+
binding.createPublicLinkButton.isEnabled = (isPasswordEnforced && hasPassword) || !isPasswordEnforced
117108
}
118109

119110
bindDatePickerDialog(uiState.selectedExpirationDate)
@@ -181,6 +172,12 @@ class AddPublicLinkFragment: Fragment(), SetPasswordDialogFragment.SetPasswordLi
181172
if (setPasswordSwitch.isChecked) showPasswordDialog() else removePassword()
182173
}
183174
}
175+
176+
binding.createPublicLinkButton.setOnClickListener {
177+
spaceLinksViewModel.createPublicLink(
178+
binding.publicLinkNameEditText.text.toString().ifEmpty { getString(R.string.public_link_default_display_name) }
179+
)
180+
}
184181
}
185182

186183
override fun onCancelPassword() {

owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/links/SpaceLinksViewModel.kt

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,22 @@ class SpaceLinksViewModel(
6161
_addPublicLinkUIState.update { it?.copy(selectedPassword = password) }
6262
}
6363

64-
fun createPublicLink(displayName: String, permission: OCLinkType, expirationDate: String?, password: String?) {
65-
runUseCaseWithResult(
66-
coroutineDispatcher = coroutineDispatcherProvider.io,
67-
flow = _addLinkResultFlow,
68-
useCase = addLinkUseCase,
69-
useCaseParams = AddLinkUseCase.Params(
70-
accountName = accountName,
71-
spaceId = space.id,
72-
displayName = displayName,
73-
type = permission,
74-
expirationDate = expirationDate,
75-
password = password
64+
fun createPublicLink(displayName: String) {
65+
_addPublicLinkUIState.value?.selectedPermission?.let {
66+
runUseCaseWithResult(
67+
coroutineDispatcher = coroutineDispatcherProvider.io,
68+
flow = _addLinkResultFlow,
69+
useCase = addLinkUseCase,
70+
useCaseParams = AddLinkUseCase.Params(
71+
accountName = accountName,
72+
spaceId = space.id,
73+
displayName = displayName,
74+
type = it,
75+
expirationDate = _addPublicLinkUIState.value?.selectedExpirationDate,
76+
password = _addPublicLinkUIState.value?.selectedPassword
77+
)
7678
)
77-
)
79+
}
7880
}
7981

8082
data class AddPublicLinkUIState(

0 commit comments

Comments
 (0)