Skip to content

Commit 1182a1e

Browse files
committed
use lib extensions
Signed-off-by: alperozturk <alper_ozturk@proton.me>
1 parent 43f613a commit 1182a1e

3 files changed

Lines changed: 15 additions & 78 deletions

File tree

app/src/androidTest/java/com/nextcloud/utils/SharePermissionManagerTest.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ package com.nextcloud.utils
1010
import com.owncloud.android.datamodel.quickPermission.QuickPermissionType
1111
import com.owncloud.android.lib.resources.shares.OCShare
1212
import com.owncloud.android.lib.resources.shares.ShareType
13+
import com.owncloud.android.lib.resources.shares.extensions.isAllowDownloadAndSyncEnabled
14+
import com.owncloud.android.lib.resources.shares.extensions.toggleAllowDownloadAndSync
1315
import com.owncloud.android.ui.fragment.util.SharePermissionManager
1416
import junit.framework.TestCase.assertEquals
1517
import junit.framework.TestCase.assertFalse
@@ -249,18 +251,22 @@ class SharePermissionManagerTest {
249251
// region Attributes Tests
250252
@Test
251253
fun testToggleAllowDownloadAndSyncShouldCreateAttributeJsonIfNoneExists() {
252-
val attributes = SharePermissionManager.toggleAllowDownloadAndSync(
254+
val ocShare = OCShare().apply {
255+
isFolder = true
256+
shareType = ShareType.USER
257+
permissions = 17
258+
}
259+
ocShare.attributes = ocShare.toggleAllowDownloadAndSync(
253260
isChecked = true,
254-
useV2DownloadAttributes = false,
255-
share = null
261+
useV2DownloadAttributes = false
256262
)
257-
assertTrue(SharePermissionManager.isAllowDownloadAndSyncEnabled(attributes, false))
263+
assertTrue(ocShare.isAllowDownloadAndSyncEnabled(false))
258264
}
259265

260266
@Test
261267
fun testIsAllowDownloadAndSyncEnabledShouldReturnFalseIfAttributeIsMissing() {
262268
val share = createShare(OCShare.READ_PERMISSION_FLAG, attributesJson = null)
263-
assertFalse(SharePermissionManager.isAllowDownloadAndSyncEnabled(share.attributes, false))
269+
assertFalse(share.isAllowDownloadAndSyncEnabled(false))
264270
}
265271
// endregion
266272
}

app/src/main/java/com/owncloud/android/ui/fragment/FileDetailsSharingProcessFragment.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import com.owncloud.android.datamodel.quickPermission.QuickPermissionType
2828
import com.owncloud.android.lib.common.utils.Log_OC
2929
import com.owncloud.android.lib.resources.shares.OCShare
3030
import com.owncloud.android.lib.resources.shares.ShareType
31+
import com.owncloud.android.lib.resources.shares.extensions.isAllowDownloadAndSyncEnabled
32+
import com.owncloud.android.lib.resources.shares.extensions.toggleAllowDownloadAndSync
3133
import com.owncloud.android.lib.resources.status.NextcloudVersion
3234
import com.owncloud.android.lib.resources.status.OCCapability
3335
import com.owncloud.android.ui.activity.FileActivity
@@ -631,7 +633,7 @@ class FileDetailsSharingProcessFragment :
631633

632634
if (!isPublicShare()) {
633635
shareAllowDownloadAndSyncCheckbox.isChecked =
634-
isAllowDownloadAndSyncEnabled(share?.attributes, useV2DownloadAttributes())
636+
share?.isAllowDownloadAndSyncEnabled(useV2DownloadAttributes()) == true
635637
}
636638
}
637639
}
@@ -654,9 +656,7 @@ class FileDetailsSharingProcessFragment :
654656

655657
if (!isPublicShare()) {
656658
binding.shareAllowDownloadAndSyncCheckbox.setOnCheckedChangeListener { _, isChecked ->
657-
val result =
658-
SharePermissionManager
659-
.toggleAllowDownloadAndSync(isChecked, useV2DownloadAttributes(), share)
659+
val result = share.toggleAllowDownloadAndSync(isChecked, useV2DownloadAttributes())
660660
share?.attributes = result
661661
downloadAttribute = result
662662
}

app/src/main/java/com/owncloud/android/ui/fragment/util/SharePermissionManager.kt

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ package com.owncloud.android.ui.fragment.util
1010
import com.owncloud.android.datamodel.quickPermission.QuickPermissionType
1111
import com.owncloud.android.lib.common.utils.Log_OC
1212
import com.owncloud.android.lib.resources.shares.OCShare
13-
import com.owncloud.android.lib.resources.shares.attributes.ShareAttributes
14-
import com.owncloud.android.lib.resources.shares.attributes.ShareAttributesJsonHandler
1513
import com.owncloud.android.ui.fragment.FileDetailsSharingProcessFragment.Companion.TAG
16-
import org.json.JSONArray
17-
import org.json.JSONObject
1814

1915
object SharePermissionManager {
2016

@@ -67,71 +63,6 @@ object SharePermissionManager {
6763
}
6864
// endregion
6965

70-
// region DownloadAttribute
71-
fun toggleAllowDownloadAndSync(
72-
isChecked: Boolean,
73-
useV2DownloadAttributes: Boolean,
74-
share: OCShare?
75-
): String? {
76-
val jsonArray = if (share?.attributes.isNullOrEmpty()) {
77-
JSONArray()
78-
} else {
79-
JSONArray(share.attributes)
80-
}
81-
82-
val downloadAttr = getDownloadPermissionAttribute(jsonArray)
83-
84-
if (downloadAttr != null) {
85-
if (useV2DownloadAttributes) {
86-
downloadAttr.put("value", isChecked)
87-
} else {
88-
downloadAttr.put("enabled", isChecked)
89-
}
90-
} else {
91-
val newAttr = JSONObject().apply {
92-
put("key", "download")
93-
put("scope", "permissions")
94-
if (useV2DownloadAttributes) {
95-
put("value", isChecked)
96-
} else {
97-
put("enabled", isChecked)
98-
}
99-
}
100-
jsonArray.put(newAttr)
101-
}
102-
103-
return jsonArray.toString()
104-
}
105-
106-
107-
private fun getDownloadPermissionAttribute(jsonArray: JSONArray): JSONObject? {
108-
for (i in 0 until jsonArray.length()) {
109-
val obj = jsonArray.getJSONObject(i)
110-
if (obj.optString("key") == "download" && obj.optString("scope") == "permissions") {
111-
return obj
112-
}
113-
}
114-
return null
115-
}
116-
117-
fun isAllowDownloadAndSyncEnabled(attributes: String?, useV2DownloadAttributes: Boolean): Boolean {
118-
if (attributes.isNullOrEmpty()) return false
119-
120-
val jsonArray = JSONArray(attributes)
121-
val downloadAttr = getDownloadPermissionAttribute(jsonArray)
122-
123-
return if (useV2DownloadAttributes) {
124-
downloadAttr?.optBoolean("value", false) ?: false
125-
} else {
126-
downloadAttr?.optBoolean("enabled", false) ?: false
127-
}
128-
}
129-
130-
private fun getShareDownloadAttributes(share: OCShare?): List<ShareAttributes>? {
131-
return share?.attributes?.let { ShareAttributesJsonHandler.toList(it) }
132-
}
133-
// endregion
134-
13566
// region Helper Methods
13667
fun canEdit(share: OCShare?): Boolean {
13768
if (share == null) {

0 commit comments

Comments
 (0)