Skip to content

Commit 920ad53

Browse files
committed
fix: hide public links when there is no read permission
fix: remove updateToolbarTitle() as this is not in the requirement fix: keep simple UX refactor: remove updateMembersLoadingProgressVisibility refactor: resolve code review comment feedback
1 parent bf812a9 commit 920ad53

2 files changed

Lines changed: 122 additions & 104 deletions

File tree

owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceMembersFragment.kt

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
101101
canEditMembers = it.getBoolean(CAN_EDIT_MEMBERS, false)
102102
canReadMembers = it.getBoolean(CAN_READ_MEMBERS, false)
103103
}
104-
binding.membersRecyclerView.isVisible = canReadMembers
105104

106105
subscribeToViewModels()
107106

@@ -208,11 +207,12 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
208207
spaceMember.roles.contains(OCRoleType.toString(OCRoleType.CAN_MANAGE)) }
209208
spaceMembers = it.members
210209
addMemberRoles = it.roles
211-
val membersForList = if (canReadMembers) spaceMembers else emptyList()
212-
spaceMembersAdapter.setSpaceMembers(membersForList, roles, canRemoveMembers, canEditMembers, numberOfManagers)
213-
val hasLinks = it.links.isNotEmpty()
214-
showOrHideEmptyView(hasLinks)
215-
if (hasLinks) { showSpaceLinks(it.links) }
210+
if (canReadMembers) {
211+
spaceMembersAdapter.setSpaceMembers(spaceMembers, roles, canRemoveMembers, canEditMembers, numberOfManagers)
212+
val hasLinks = it.links.isNotEmpty()
213+
showOrHideEmptyView(hasLinks)
214+
if (hasLinks) { showSpaceLinks(it.links) }
215+
}
216216
binding.indeterminateProgressBar.isVisible = false
217217
}
218218
}
@@ -237,9 +237,11 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
237237
canRemoveMembers = DRIVES_DELETE_PERMISSION in spacePermissions
238238
canEditMembers = DRIVES_UPDATE_PERMISSION in spacePermissions
239239
canReadMembers = DRIVES_READ_PERMISSION in spacePermissions
240-
binding.membersRecyclerView.isVisible = canReadMembers
241-
val membersForList = if (canReadMembers) spaceMembers else emptyList()
242-
spaceMembersAdapter.setSpaceMembers(membersForList, roles, canRemoveMembers, canEditMembers, numberOfManagers)
240+
binding.membersListSection.isVisible = canReadMembers
241+
binding.publicLinksSection.isVisible = canReadMembers
242+
if (canReadMembers) {
243+
spaceMembersAdapter.setSpaceMembers(spaceMembers, roles, canRemoveMembers, canEditMembers, numberOfManagers)
244+
}
243245
}
244246
}
245247
is UIResult.Loading -> { }

owncloudApp/src/main/res/layout/members_fragment.xml

Lines changed: 111 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -30,111 +30,127 @@
3030
android:layout_height="wrap_content"
3131
android:orientation="vertical">
3232

33-
<androidx.constraintlayout.widget.ConstraintLayout
33+
<LinearLayout
34+
android:id="@+id/members_list_section"
3435
android:layout_width="match_parent"
35-
android:layout_height="match_parent"
36-
android:background="@color/actionbar_start_color">
37-
38-
<TextView
39-
android:id="@+id/members_title"
36+
android:layout_height="wrap_content"
37+
android:orientation="vertical">
38+
39+
<androidx.constraintlayout.widget.ConstraintLayout
40+
android:layout_width="match_parent"
41+
android:layout_height="match_parent"
42+
android:background="@color/actionbar_start_color">
43+
44+
<TextView
45+
android:id="@+id/members_title"
46+
android:layout_width="wrap_content"
47+
android:layout_height="50dp"
48+
android:layout_centerVertical="true"
49+
android:gravity="center"
50+
android:text="@string/members_title"
51+
android:layout_marginStart="@dimen/standard_half_margin"
52+
android:textAllCaps="true"
53+
android:textColor="@color/white"
54+
android:textStyle="bold"
55+
android:accessibilityHeading="true"
56+
app:layout_constraintStart_toStartOf="parent"
57+
app:layout_constraintTop_toTopOf="parent"/>
58+
59+
<ImageButton
60+
android:id="@+id/add_member_button"
61+
android:layout_width="48dp"
62+
android:layout_height="48dp"
63+
android:padding="@dimen/standard_padding"
64+
android:background="@color/transparent"
65+
android:src="@drawable/ic_add"
66+
android:contentDescription="@string/content_description_add_member"
67+
android:visibility="gone"
68+
android:focusable="true"
69+
android:clickable="true"
70+
app:layout_constraintEnd_toEndOf="parent"
71+
app:layout_constraintTop_toTopOf="parent"
72+
tools:visibility="visible"/>
73+
74+
</androidx.constraintlayout.widget.ConstraintLayout>
75+
76+
<ProgressBar
77+
android:id="@+id/indeterminate_progress_bar"
4078
android:layout_width="wrap_content"
41-
android:layout_height="50dp"
42-
android:layout_centerVertical="true"
43-
android:gravity="center"
44-
android:text="@string/members_title"
45-
android:layout_marginStart="@dimen/standard_half_margin"
46-
android:textAllCaps="true"
47-
android:textColor="@color/white"
48-
android:textStyle="bold"
49-
android:accessibilityHeading="true"
50-
app:layout_constraintStart_toStartOf="parent"
51-
app:layout_constraintTop_toTopOf="parent"/>
52-
53-
<ImageButton
54-
android:id="@+id/add_member_button"
55-
android:layout_width="48dp"
56-
android:layout_height="48dp"
57-
android:padding="@dimen/standard_padding"
58-
android:background="@color/transparent"
59-
android:src="@drawable/ic_add"
60-
android:contentDescription="@string/content_description_add_member"
61-
android:visibility="gone"
62-
android:focusable="true"
63-
android:clickable="true"
64-
app:layout_constraintEnd_toEndOf="parent"
65-
app:layout_constraintTop_toTopOf="parent"
79+
android:layout_height="wrap_content"
80+
android:layout_gravity="center"
81+
android:indeterminate="true"
82+
android:visibility="gone"/>
83+
84+
<androidx.recyclerview.widget.RecyclerView
85+
android:id="@+id/members_recycler_view"
86+
android:layout_width="match_parent"
87+
android:layout_height="wrap_content"
88+
android:scrollbars="vertical"
89+
android:visibility="visible"
6690
tools:visibility="visible"/>
6791

68-
</androidx.constraintlayout.widget.ConstraintLayout>
69-
70-
<ProgressBar
71-
android:id="@+id/indeterminate_progress_bar"
72-
android:layout_width="wrap_content"
73-
android:layout_height="wrap_content"
74-
android:layout_gravity="center"
75-
android:indeterminate="true"
76-
android:visibility="gone"/>
92+
</LinearLayout>
7793

78-
<androidx.recyclerview.widget.RecyclerView
79-
android:id="@+id/members_recycler_view"
94+
<LinearLayout
95+
android:id="@+id/public_links_section"
8096
android:layout_width="match_parent"
8197
android:layout_height="wrap_content"
82-
android:scrollbars="vertical"
83-
android:visibility="visible"
84-
tools:visibility="visible"/>
85-
86-
<androidx.constraintlayout.widget.ConstraintLayout
87-
android:layout_width="match_parent"
88-
android:layout_height="match_parent"
89-
android:background="@color/actionbar_start_color">
98+
android:orientation="vertical">
99+
100+
<androidx.constraintlayout.widget.ConstraintLayout
101+
android:layout_width="match_parent"
102+
android:layout_height="match_parent"
103+
android:background="@color/actionbar_start_color">
104+
105+
<TextView
106+
android:id="@+id/public_links_title"
107+
android:layout_width="wrap_content"
108+
android:layout_height="50dp"
109+
android:layout_centerVertical="true"
110+
android:gravity="center"
111+
android:text="@string/share_via_link_section_title"
112+
android:layout_marginStart="@dimen/standard_half_margin"
113+
android:textAllCaps="true"
114+
android:textColor="@color/white"
115+
android:textStyle="bold"
116+
android:accessibilityHeading="true"
117+
app:layout_constraintStart_toStartOf="parent"
118+
app:layout_constraintTop_toTopOf="parent"/>
119+
120+
</androidx.constraintlayout.widget.ConstraintLayout>
90121

91122
<TextView
92-
android:id="@+id/public_links_title"
93-
android:layout_width="wrap_content"
94-
android:layout_height="50dp"
95-
android:layout_centerVertical="true"
96-
android:gravity="center"
97-
android:text="@string/share_via_link_section_title"
98-
android:layout_marginStart="@dimen/standard_half_margin"
99-
android:textAllCaps="true"
100-
android:textColor="@color/white"
101-
android:textStyle="bold"
102-
android:accessibilityHeading="true"
103-
app:layout_constraintStart_toStartOf="parent"
104-
app:layout_constraintTop_toTopOf="parent"/>
105-
106-
</androidx.constraintlayout.widget.ConstraintLayout>
107-
108-
<TextView
109-
android:id="@+id/public_links_warning"
110-
android:layout_width="match_parent"
111-
android:layout_height="wrap_content"
112-
android:background="@color/warning_background_color"
113-
android:paddingTop="@dimen/standard_padding"
114-
android:paddingBottom="@dimen/standard_padding"
115-
android:paddingStart="@dimen/standard_half_padding"
116-
android:paddingEnd="@dimen/standard_half_padding"
117-
android:text="@string/share_warning_about_forwarding_space_public_links"
118-
android:textColor="@color/warning_grey_text"
119-
android:textSize="15sp" />
120-
121-
<androidx.recyclerview.widget.RecyclerView
122-
android:id="@+id/public_links_recycler_view"
123-
android:layout_width="match_parent"
124-
android:layout_height="wrap_content"
125-
android:scrollbars="vertical" />
123+
android:id="@+id/public_links_warning"
124+
android:layout_width="match_parent"
125+
android:layout_height="wrap_content"
126+
android:background="@color/warning_background_color"
127+
android:paddingTop="@dimen/standard_padding"
128+
android:paddingBottom="@dimen/standard_padding"
129+
android:paddingStart="@dimen/standard_half_padding"
130+
android:paddingEnd="@dimen/standard_half_padding"
131+
android:text="@string/share_warning_about_forwarding_space_public_links"
132+
android:textColor="@color/warning_grey_text"
133+
android:textSize="15sp" />
134+
135+
<androidx.recyclerview.widget.RecyclerView
136+
android:id="@+id/public_links_recycler_view"
137+
android:layout_width="match_parent"
138+
android:layout_height="wrap_content"
139+
android:scrollbars="vertical" />
126140

127-
<TextView
128-
android:id="@+id/no_public_links_message"
129-
android:layout_width="match_parent"
130-
android:layout_height="wrap_content"
131-
android:paddingTop="@dimen/standard_padding"
132-
android:paddingBottom="@dimen/standard_padding"
133-
android:paddingStart="@dimen/standard_half_padding"
134-
android:paddingEnd="@dimen/standard_half_padding"
135-
android:text="@string/share_no_public_links"
136-
android:textSize="15sp"
137-
android:visibility="gone"/>
141+
<TextView
142+
android:id="@+id/no_public_links_message"
143+
android:layout_width="match_parent"
144+
android:layout_height="wrap_content"
145+
android:paddingTop="@dimen/standard_padding"
146+
android:paddingBottom="@dimen/standard_padding"
147+
android:paddingStart="@dimen/standard_half_padding"
148+
android:paddingEnd="@dimen/standard_half_padding"
149+
android:text="@string/share_no_public_links"
150+
android:textSize="15sp"
151+
android:visibility="gone"/>
152+
153+
</LinearLayout>
138154

139155
</LinearLayout>
140156

0 commit comments

Comments
 (0)