Skip to content

Commit c3adf72

Browse files
Add pull to refresh in space members list #4773
1 parent 44a9902 commit c3adf72

2 files changed

Lines changed: 26 additions & 7 deletions

File tree

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

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import android.view.ViewGroup
2929
import androidx.core.view.isVisible
3030
import androidx.fragment.app.Fragment
3131
import androidx.recyclerview.widget.LinearLayoutManager
32+
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
3233
import com.owncloud.android.R
3334
import com.owncloud.android.databinding.MembersFragmentBinding
3435
import com.owncloud.android.domain.links.model.OCLink
@@ -102,6 +103,11 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
102103

103104
subscribeToViewModels()
104105

106+
// ✅ NEW: Pull to refresh
107+
binding.swipeRefreshMembers.setOnRefreshListener {
108+
spaceMembersViewModel.getSpaceMembers()
109+
}
110+
105111
binding.addMemberButton.setOnClickListener {
106112
spaceMembersViewModel.resetViewModel()
107113
listener?.addMember(
@@ -198,10 +204,16 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
198204
showOrHideEmptyView(hasLinks)
199205
if (hasLinks) { showSpaceLinks(it.links) }
200206
binding.indeterminateProgressBar.isVisible = false
207+
// ✅ NEW: Stop refresh animation
208+
binding.swipeRefreshMembers.isRefreshing = false
201209
}
202210
}
203211
}
204-
is UIResult.Loading -> { binding.indeterminateProgressBar.isVisible = true }
212+
// ✅ NEW: Show refresh animation on loading
213+
is UIResult.Loading -> {
214+
binding.indeterminateProgressBar.isVisible = true
215+
binding.swipeRefreshMembers.isRefreshing = true
216+
}
205217
is UIResult.Error -> {
206218
requireActivity().finish()
207219
Timber.e(uiResult.error, "Failed to retrieve space members for space: ${currentSpace.id} (${currentSpace.id})")
@@ -320,4 +332,4 @@ class SpaceMembersFragment : Fragment(), SpaceMembersAdapter.SpaceMembersAdapter
320332
}
321333
}
322334
}
323-
}
335+
}

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

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,18 @@
1616
along with this program. If not, see <http://www.gnu.org/licenses/>.
1717
-->
1818

19-
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
19+
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
2020
xmlns:tools="http://schemas.android.com/tools"
2121
xmlns:app="http://schemas.android.com/apk/res-auto"
22-
android:id="@+id/shareScroll"
22+
android:id="@+id/swipe_refresh_members"
2323
android:layout_width="match_parent"
24-
android:layout_height="match_parent"
25-
tools:context=".presentation.spaces.members.SpaceMembersActivity">
24+
android:layout_height="match_parent">
25+
26+
<androidx.core.widget.NestedScrollView
27+
android:id="@+id/shareScroll"
28+
android:layout_width="match_parent"
29+
android:layout_height="match_parent"
30+
tools:context=".presentation.spaces.members.SpaceMembersActivity">
2631

2732
<LinearLayout
2833
android:id="@+id/members_section"
@@ -138,4 +143,6 @@
138143

139144
</LinearLayout>
140145

141-
</androidx.core.widget.NestedScrollView>
146+
</androidx.core.widget.NestedScrollView>
147+
148+
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

0 commit comments

Comments
 (0)