Skip to content

Commit f26cf14

Browse files
committed
refactor: check password-enforced capability in the ViewModel instead of the Fragment
1 parent d46542c commit f26cf14

2 files changed

Lines changed: 11 additions & 19 deletions

File tree

owncloudApp/src/main/java/com/owncloud/android/presentation/capabilities/CapabilityViewModel.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ package com.owncloud.android.presentation.capabilities
2525
import androidx.lifecycle.LiveData
2626
import androidx.lifecycle.MediatorLiveData
2727
import androidx.lifecycle.ViewModel
28+
import com.owncloud.android.domain.capabilities.model.CapabilityBooleanType
2829
import com.owncloud.android.domain.capabilities.model.OCCapability
2930
import com.owncloud.android.domain.capabilities.usecases.GetCapabilitiesAsLiveDataUseCase
3031
import com.owncloud.android.domain.capabilities.usecases.GetStoredCapabilitiesUseCase
3132
import com.owncloud.android.domain.capabilities.usecases.RefreshCapabilitiesFromServerAsyncUseCase
33+
import com.owncloud.android.domain.links.model.OCLinkType
3234
import com.owncloud.android.domain.utils.Event
3335
import com.owncloud.android.extensions.ViewModelExt.runUseCaseWithResultAndUseCachedData
3436
import com.owncloud.android.presentation.common.UIResult
@@ -80,4 +82,12 @@ class CapabilityViewModel(
8082
}
8183
capabilities?.spaces?.hasMultiplePersonalSpaces == true
8284
}
85+
86+
fun checkPasswordEnforced(selectedPermission: OCLinkType, capabilities: OCCapability?) =
87+
when(selectedPermission) {
88+
OCLinkType.CAN_VIEW -> capabilities?.filesSharingPublicPasswordEnforcedReadOnly == CapabilityBooleanType.TRUE
89+
OCLinkType.CAN_EDIT -> capabilities?.filesSharingPublicPasswordEnforcedReadWrite == CapabilityBooleanType.TRUE
90+
OCLinkType.CREATE_ONLY -> capabilities?.filesSharingPublicPasswordEnforcedUploadOnly == CapabilityBooleanType.TRUE
91+
else -> true
92+
}
8393
}

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

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import androidx.core.view.isVisible
3131
import androidx.fragment.app.Fragment
3232
import com.owncloud.android.R
3333
import com.owncloud.android.databinding.AddPublicLinkFragmentBinding
34-
import com.owncloud.android.domain.capabilities.model.CapabilityBooleanType
3534
import com.owncloud.android.domain.capabilities.model.OCCapability
3635
import com.owncloud.android.domain.links.model.OCLinkType
3736
import com.owncloud.android.domain.spaces.model.OCSpace
@@ -198,27 +197,10 @@ class AddPublicLinkFragment: Fragment(), SetPasswordDialogFragment.SetPasswordLi
198197
selectedRadioButton.isChecked = true
199198
}
200199
val selectedPermission = selectedRadioButton.tag as OCLinkType
201-
checkPasswordEnforced(selectedPermission)
200+
isPasswordEnforced = capabilityViewModel.checkPasswordEnforced(selectedPermission, capabilities)
202201
spaceLinksViewModel.onPermissionSelected(selectedPermission)
203202
}
204203

205-
private fun checkPasswordEnforced(selectedPermission: OCLinkType) {
206-
isPasswordEnforced = when (selectedPermission) {
207-
OCLinkType.CAN_VIEW -> {
208-
capabilities?.filesSharingPublicPasswordEnforcedReadOnly == CapabilityBooleanType.TRUE
209-
}
210-
OCLinkType.CAN_EDIT -> {
211-
capabilities?.filesSharingPublicPasswordEnforcedReadWrite == CapabilityBooleanType.TRUE
212-
}
213-
OCLinkType.CREATE_ONLY -> {
214-
capabilities?.filesSharingPublicPasswordEnforcedUploadOnly == CapabilityBooleanType.TRUE
215-
}
216-
else -> {
217-
true
218-
}
219-
}
220-
}
221-
222204
private fun bindDatePickerDialog(expirationDate: String?) {
223205
binding.expirationDateLayout.expirationDateSwitch.setOnCheckedChangeListener { _, isChecked ->
224206
if (isChecked) {

0 commit comments

Comments
 (0)