Skip to content

Commit 61b76e2

Browse files
committed
fix permissionFlag usage for QuickPermissionModel
Signed-off-by: alperozturk <alper_ozturk@proton.me>
1 parent 98f07c5 commit 61b76e2

4 files changed

Lines changed: 45 additions & 59 deletions

File tree

app/src/main/java/com/owncloud/android/ui/adapter/QuickSharingPermissionsAdapter.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import android.view.LayoutInflater
1414
import android.view.View
1515
import android.view.ViewGroup
1616
import androidx.recyclerview.widget.RecyclerView
17+
import com.nextcloud.android.common.ui.theme.utils.ColorRole
18+
import com.nextcloud.utils.extensions.setVisibleIf
1719
import com.owncloud.android.databinding.ItemQuickSharePermissionsBinding
1820
import com.owncloud.android.datamodel.QuickPermissionModel
1921
import com.owncloud.android.utils.theme.ViewThemeUtils
@@ -44,23 +46,21 @@ class QuickSharingPermissionsAdapter(
4446
itemView: View,
4547
val onPermissionChangeListener: OnPermissionChangeListener,
4648
private val viewThemeUtils: ViewThemeUtils
47-
) :
48-
RecyclerView
49-
.ViewHolder(itemView) {
49+
) : RecyclerView.ViewHolder(itemView) {
5050

5151
fun bindData(quickPermissionModel: QuickPermissionModel) {
52-
binding.tvQuickShareName.text = quickPermissionModel.permissionName
53-
if (quickPermissionModel.isSelected) {
54-
viewThemeUtils.platform.colorImageView(binding.tvQuickShareCheckIcon)
55-
binding.tvQuickShareCheckIcon.visibility = View.VISIBLE
56-
} else {
57-
binding.tvQuickShareCheckIcon.visibility = View.INVISIBLE
52+
binding.run {
53+
tvQuickShareName.text = quickPermissionModel.permissionName
54+
tvQuickShareCheckIcon.setVisibleIf(quickPermissionModel.isSelected)
55+
if (quickPermissionModel.isSelected) {
56+
viewThemeUtils.platform.colorImageView(tvQuickShareCheckIcon, ColorRole.PRIMARY)
57+
}
5858
}
5959

6060
itemView.setOnClickListener {
6161
// if user select different options then only update the permission
6262
if (!quickPermissionModel.isSelected) {
63-
onPermissionChangeListener.onPermissionChanged(adapterPosition)
63+
onPermissionChangeListener.onPermissionChanged(absoluteAdapterPosition)
6464
} else {
6565
// dismiss sheet on selection of same permission
6666
onPermissionChangeListener.onDismissSheet()

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,7 @@ class FileDetailsSharingProcessFragment :
544544
} else {
545545
shareCreateCheckbox.visibility = View.GONE
546546
}
547+
547548
shareReadCheckbox.isChecked =
548549
sharePermissionManager.hasPermission(currentPermissions, OCShare.READ_PERMISSION_FLAG)
549550
shareEditCheckbox.isChecked =

app/src/main/java/com/owncloud/android/ui/fragment/QuickSharingPermissionsBottomSheetDialog.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,15 @@ private void handlePermissionChanged(List<QuickPermissionModel> quickPermissionM
116116
} else if (permissionName.equalsIgnoreCase(res.getString(R.string.link_share_view_only))) {
117117
permissionFlag = READ_PERMISSION_FLAG;
118118
} else if (permissionName.equalsIgnoreCase(res.getString(R.string.link_share_file_drop)) || permissionName.equalsIgnoreCase(res.getString(R.string.share_create_permission))) {
119-
permissionFlag = CREATE_PERMISSION_FLAG;
119+
permissionFlag = CREATE_PERMISSION_FLAG + READ_PERMISSION_FLAG;
120120
} else if (permissionName.equalsIgnoreCase(res.getString(R.string.share_edit_permission))) {
121-
permissionFlag = UPDATE_PERMISSION_FLAG;
121+
permissionFlag = UPDATE_PERMISSION_FLAG + READ_PERMISSION_FLAG;
122122
} else if (permissionName.equalsIgnoreCase(res.getString(R.string.share_delete_permission))) {
123-
permissionFlag = DELETE_PERMISSION_FLAG;
123+
permissionFlag = DELETE_PERMISSION_FLAG + READ_PERMISSION_FLAG;
124124
} else if (permissionName.equalsIgnoreCase(res.getString(R.string.share_re_share_permission))) {
125-
permissionFlag = SHARE_PERMISSION_FLAG;
125+
permissionFlag = SHARE_PERMISSION_FLAG + READ_PERMISSION_FLAG;
126126
}
127127

128-
// FIXME: Failed to update share
129128
actions.onQuickPermissionChanged(ocShare, permissionFlag);
130129

131130
dismiss();
@@ -136,19 +135,12 @@ private void handlePermissionChanged(List<QuickPermissionModel> quickPermissionM
136135
* @return
137136
*/
138137
private List<QuickPermissionModel> getQuickPermissionList() {
138+
int permissionArrayId = ocShare.isFolder() ? R.array.folder_share_permission_dialog_values : R.array.file_share_permission_dialog_values;
139+
String[] permissionArray = fileActivity.getResources().getStringArray(permissionArrayId);
139140

140-
String[] permissionArray;
141-
if (ocShare.isFolder()) {
142-
permissionArray =
143-
fileActivity.getResources().getStringArray(R.array.folder_share_permission_dialog_values);
144-
} else {
145-
permissionArray =
146-
fileActivity.getResources().getStringArray(R.array.file_share_permission_dialog_values);
147-
}
148-
//get the checked item position
141+
// get the checked item position
149142
int checkedItem = SharingMenuHelper.getPermissionCheckedItem(fileActivity, ocShare, permissionArray);
150143

151-
152144
final List<QuickPermissionModel> quickPermissionModelList = new ArrayList<>(permissionArray.length);
153145
for (int i = 0; i < permissionArray.length; i++) {
154146
QuickPermissionModel quickPermissionModel = new QuickPermissionModel(permissionArray[i], checkedItem == i);
@@ -157,7 +149,6 @@ private List<QuickPermissionModel> getQuickPermissionList() {
157149
return quickPermissionModelList;
158150
}
159151

160-
161152
@Override
162153
protected void onStop() {
163154
super.onStop();

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

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
package com.owncloud.android.ui.fragment.util;
1313

1414
import android.content.Context;
15-
import android.view.MenuItem;
1615

1716
import com.owncloud.android.R;
1817
import com.owncloud.android.lib.resources.shares.OCShare;
@@ -35,22 +34,6 @@ private SharingMenuHelper() {
3534
// utility class -> private constructor
3635
}
3736

38-
/**
39-
* Sets checked/visibility state on the given {@link MenuItem} based on the given criteria.
40-
*
41-
* @param menuItem the {@link MenuItem} to be setup
42-
*/
43-
public static void setupHideFileDownload(MenuItem menuItem,
44-
boolean hideFileDownload,
45-
boolean isFileDrop) {
46-
if (isFileDrop) {
47-
menuItem.setVisible(false);
48-
} else {
49-
menuItem.setVisible(true);
50-
menuItem.setChecked(hideFileDownload);
51-
}
52-
}
53-
5437
public static boolean isUploadAndEditingAllowed(OCShare share) {
5538
if (share.getPermissions() == NO_PERMISSION) {
5639
return false;
@@ -110,14 +93,24 @@ public static boolean isDeletePermission(OCShare share) {
11093
}
11194

11295
public static String getPermissionName(Context context, OCShare share) {
96+
final var res = context.getResources();
97+
11398
if (SharingMenuHelper.isUploadAndEditingAllowed(share)) {
114-
return context.getResources().getString(R.string.share_permission_can_edit);
99+
return res.getString(R.string.share_permission_can_edit);
115100
} else if (SharingMenuHelper.isReadOnly(share)) {
116-
return context.getResources().getString(R.string.share_permission_view_only);
101+
return res.getString(R.string.share_permission_view_only);
117102
} else if (SharingMenuHelper.isSecureFileDrop(share)) {
118-
return context.getResources().getString(R.string.share_permission_secure_file_drop);
103+
return res.getString(R.string.share_permission_secure_file_drop);
119104
} else if (SharingMenuHelper.isFileDrop(share)) {
120-
return context.getResources().getString(R.string.share_permission_file_drop);
105+
return res.getString(R.string.share_permission_file_drop);
106+
} else if (SharingMenuHelper.isCreatePermission(share)) {
107+
return res.getString(R.string.share_create_permission);
108+
} else if (SharingMenuHelper.isUpdatePermission(share)) {
109+
return res.getString(R.string.share_edit_permission);
110+
} else if (SharingMenuHelper.isDeletePermission(share)) {
111+
return res.getString(R.string.share_delete_permission);
112+
} else if (SharingMenuHelper.canReshare(share)) {
113+
return res.getString(R.string.share_re_share_permission);
121114
}
122115
return null;
123116
}
@@ -127,26 +120,27 @@ public static String getPermissionName(Context context, OCShare share) {
127120
*
128121
*/
129122
public static int getPermissionCheckedItem(Context context, OCShare share, String[] permissionArray) {
123+
int permissionName;
124+
130125
if (SharingMenuHelper.isUploadAndEditingAllowed(share)) {
131-
if (share.isFolder()) {
132-
return getPermissionIndexFromArray(context, permissionArray, R.string.link_share_allow_upload_and_editing);
133-
} else {
134-
return getPermissionIndexFromArray(context, permissionArray, R.string.link_share_editing);
135-
}
126+
permissionName = share.isFolder() ? R.string.link_share_allow_upload_and_editing : R.string.link_share_editing;
136127
} else if (SharingMenuHelper.isReadOnly(share)) {
137-
return getPermissionIndexFromArray(context, permissionArray, R.string.link_share_view_only);
128+
permissionName = R.string.link_share_view_only;
138129
} else if (SharingMenuHelper.isFileDrop(share)) {
139-
return getPermissionIndexFromArray(context, permissionArray, R.string.link_share_file_drop);
130+
permissionName = R.string.link_share_file_drop;
140131
} else if (SharingMenuHelper.isCreatePermission(share)) {
141-
return getPermissionIndexFromArray(context, permissionArray, R.string.share_create_permission);
132+
permissionName = R.string.share_create_permission;
142133
} else if (SharingMenuHelper.isUpdatePermission(share)) {
143-
return getPermissionIndexFromArray(context, permissionArray, R.string.share_edit_permission);
134+
permissionName = R.string.share_edit_permission;
144135
} else if (SharingMenuHelper.isDeletePermission(share)) {
145-
return getPermissionIndexFromArray(context, permissionArray, R.string.share_delete_permission);
136+
permissionName = R.string.share_delete_permission;
146137
} else if (SharingMenuHelper.canReshare(share)) {
147-
return getPermissionIndexFromArray(context, permissionArray, R.string.share_re_share_permission);
138+
permissionName = R.string.share_re_share_permission;
139+
} else {
140+
return 0;
148141
}
149-
return 0;//default first item selected
142+
143+
return getPermissionIndexFromArray(context, permissionArray, permissionName);
150144
}
151145

152146
private static int getPermissionIndexFromArray(Context context, String[] permissionArray, int permissionName) {

0 commit comments

Comments
 (0)