Skip to content

Commit 63bb06c

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

2 files changed

Lines changed: 11 additions & 18 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 & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -198,27 +198,10 @@ class AddPublicLinkFragment: Fragment(), SetPasswordDialogFragment.SetPasswordLi
198198
selectedRadioButton.isChecked = true
199199
}
200200
val selectedPermission = selectedRadioButton.tag as OCLinkType
201-
checkPasswordEnforced(selectedPermission)
201+
isPasswordEnforced = capabilityViewModel.checkPasswordEnforced(selectedPermission, capabilities)
202202
spaceLinksViewModel.onPermissionSelected(selectedPermission)
203203
}
204204

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-
222205
private fun bindDatePickerDialog(expirationDate: String?) {
223206
binding.expirationDateLayout.expirationDateSwitch.setOnCheckedChangeListener { _, isChecked ->
224207
if (isChecked) {

0 commit comments

Comments
 (0)