@@ -533,22 +533,30 @@ class FileDetailsSharingProcessFragment :
533533 }
534534 }
535535
536- // TODO: check share.permission
537536 private fun setUserPermission (isChecked : Boolean , permissionFlag : Int ) {
538- permission = if (isChecked) {
539- permission or permissionFlag
537+ val currentPermissions = share?.permissions ? : permission
538+ val updatedPermissions = if (isChecked) {
539+ currentPermissions or permissionFlag
540540 } else {
541- permission and permissionFlag.inv ()
541+ currentPermissions and permissionFlag.inv ()
542+ }
543+
544+ if (share?.permissions != null ) {
545+ share!! .permissions = updatedPermissions
546+ } else {
547+ permission = updatedPermissions
542548 }
543549 }
544550
545551 private fun setCheckboxStates () {
552+ val currentPermissions = share?.permissions ? : permission
553+
546554 binding.run {
547- shareReadCheckbox.isChecked = (permission and OCShare .READ_PERMISSION_FLAG ) != 0
548- shareCreateCheckbox.isChecked = (permission and OCShare .CREATE_PERMISSION_FLAG ) != 0
549- shareEditCheckbox.isChecked = (permission and OCShare .UPDATE_PERMISSION_FLAG ) != 0
550- shareProcessAllowResharingCheckbox.isChecked = (permission and OCShare .SHARE_PERMISSION_FLAG ) != 0
551- shareDeleteCheckbox.isChecked = (permission and OCShare .DELETE_PERMISSION_FLAG ) != 0
555+ shareReadCheckbox.isChecked = (currentPermissions and OCShare .READ_PERMISSION_FLAG ) != 0
556+ shareCreateCheckbox.isChecked = (currentPermissions and OCShare .CREATE_PERMISSION_FLAG ) != 0
557+ shareEditCheckbox.isChecked = (currentPermissions and OCShare .UPDATE_PERMISSION_FLAG ) != 0
558+ shareProcessAllowResharingCheckbox.isChecked = (currentPermissions and OCShare .SHARE_PERMISSION_FLAG ) != 0
559+ shareDeleteCheckbox.isChecked = (currentPermissions and OCShare .DELETE_PERMISSION_FLAG ) != 0
552560 }
553561 }
554562
0 commit comments