@@ -21,6 +21,7 @@ import androidx.fragment.app.Fragment
2121import com.nextcloud.client.di.Injectable
2222import com.nextcloud.utils.extensions.getParcelableArgument
2323import com.nextcloud.utils.extensions.getSerializableArgument
24+ import com.nextcloud.utils.extensions.setVisibilityWithAnimation
2425import com.nextcloud.utils.extensions.setVisibleIf
2526import com.owncloud.android.R
2627import com.owncloud.android.databinding.FileDetailsSharingProcessFragmentBinding
@@ -135,6 +136,7 @@ class FileDetailsSharingProcessFragment :
135136 private var isReShareShown: Boolean = true // show or hide reShare option
136137 private var isExpDateShown: Boolean = true // show or hide expiry date option
137138 private var isSecureShare: Boolean = false
139+ private var showCustomPermissions = true
138140
139141 private lateinit var capabilities: OCCapability
140142
@@ -190,20 +192,20 @@ class FileDetailsSharingProcessFragment :
190192 }
191193 implementClickEvents()
192194 setCheckboxStates()
195+ setCustomPermissionCheckboxesVisibilities()
193196 themeView()
194197 }
195198
196199 private fun themeView () {
197200 viewThemeUtils.platform.run {
198201 binding.run {
199202 colorTextView(shareProcessEditShareLink)
200- colorTextView(shareProcessAdvancePermissionTitle )
203+ colorTextView(shareCustomPermissionsText )
201204
202205 themeRadioButton(shareProcessPermissionReadOnly)
203206 themeRadioButton(shareProcessPermissionUploadEditing)
204207 themeRadioButton(shareProcessPermissionFileDrop)
205208
206- themeCheckbox(shareCustomCheckbox)
207209 themeCheckbox(shareReadCheckbox)
208210 themeCheckbox(shareCreateCheckbox)
209211 themeCheckbox(shareEditCheckbox)
@@ -259,7 +261,7 @@ class FileDetailsSharingProcessFragment :
259261 }
260262
261263 if (isSecureShare) {
262- binding.shareProcessAdvancePermissionTitle .visibility = View .GONE
264+ binding.shareCustomPermissionsText .visibility = View .GONE
263265 }
264266
265267 // show or hide expiry date
@@ -472,12 +474,12 @@ class FileDetailsSharingProcessFragment :
472474 shareProcessSelectExpDate.setOnClickListener {
473475 showExpirationDateDialog()
474476 }
475- shareCustomCheckbox.setOnCheckedChangeListener { _, isChecked ->
476- shareReadCheckbox.isChecked = isChecked
477- shareCreateCheckbox.isChecked = isChecked
478- shareEditCheckbox.isChecked = isChecked
479- shareProcessAllowResharingCheckbox.isChecked = isChecked
480- shareDeleteCheckbox.isChecked = isChecked
477+
478+ shareCustomPermissionsText.setOnClickListener {
479+ showCustomPermissions = ! showCustomPermissions
480+ val newIcon = if (showCustomPermissions) R .drawable.ic_arrow_up else R .drawable.ic_arrow_down
481+ shareCustomPermissionsText.setCompoundDrawablesWithIntrinsicBounds( 0 , 0 , newIcon, 0 )
482+ setCustomPermissionCheckboxesVisibilities()
481483 }
482484
483485 shareReadCheckbox.setOnCheckedChangeListener { _, isChecked ->
@@ -502,13 +504,12 @@ class FileDetailsSharingProcessFragment :
502504 }
503505 }
504506
507+ // TODO: check share.permission
505508 private fun setUserPermission (isChecked : Boolean , permissionFlag : Int ) {
506- share?.let {
507- it.permissions = if (isChecked) {
508- it.permissions or permissionFlag
509- } else {
510- it.permissions and permissionFlag.inv ()
511- }
509+ permission = if (isChecked) {
510+ permission or permissionFlag
511+ } else {
512+ permission and permissionFlag.inv ()
512513 }
513514 }
514515
@@ -519,6 +520,18 @@ class FileDetailsSharingProcessFragment :
519520 shareEditCheckbox.isChecked = (permission and OCShare .UPDATE_PERMISSION_FLAG ) != 0
520521 shareProcessAllowResharingCheckbox.isChecked = (permission and OCShare .SHARE_PERMISSION_FLAG ) != 0
521522 shareDeleteCheckbox.isChecked = (permission and OCShare .DELETE_PERMISSION_FLAG ) != 0
523+
524+ setCustomPermissionCheckboxesVisibilities()
525+ }
526+ }
527+
528+ private fun setCustomPermissionCheckboxesVisibilities () {
529+ binding.run {
530+ shareReadCheckbox.setVisibilityWithAnimation(showCustomPermissions)
531+ shareCreateCheckbox.setVisibilityWithAnimation(showCustomPermissions)
532+ shareEditCheckbox.setVisibilityWithAnimation(showCustomPermissions)
533+ shareProcessAllowResharingCheckbox.setVisibilityWithAnimation(showCustomPermissions)
534+ shareDeleteCheckbox.setVisibilityWithAnimation(showCustomPermissions)
522535 }
523536 }
524537
@@ -642,6 +655,7 @@ class FileDetailsSharingProcessFragment :
642655 /* *
643656 * get the permissions on the basis of selection
644657 */
658+ // TODO: Check logic it should match with new checkboxes action
645659 private fun getSelectedPermission () = when {
646660 binding.shareProcessAllowResharingCheckbox.isChecked -> getReSharePermission()
647661 binding.shareProcessPermissionReadOnly.isChecked -> OCShare .READ_PERMISSION_FLAG
0 commit comments