From bcf32ee06ccf06b28c125869c3bece99c9bb8637 Mon Sep 17 00:00:00 2001 From: Erik Cavazos Date: Tue, 15 Aug 2023 23:11:15 -0600 Subject: [PATCH] WIP --- .../java/com/isolaatti/followers/ui/FollowingFragment.kt | 3 ++- app/src/main/java/com/isolaatti/home/FeedFragment.kt | 4 +++- .../posting/posts/presentation/PostsRecyclerViewAdapter.kt | 5 ++++- .../java/com/isolaatti/profile/ui/ProfileMainFragment.kt | 7 +++---- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/isolaatti/followers/ui/FollowingFragment.kt b/app/src/main/java/com/isolaatti/followers/ui/FollowingFragment.kt index 0a66920..c9678ba 100644 --- a/app/src/main/java/com/isolaatti/followers/ui/FollowingFragment.kt +++ b/app/src/main/java/com/isolaatti/followers/ui/FollowingFragment.kt @@ -12,6 +12,7 @@ import com.isolaatti.common.UserListRecyclerViewAdapter import com.isolaatti.databinding.FragmentFollowersBinding import com.isolaatti.followers.presentation.FollowersViewModel import com.isolaatti.profile.domain.entity.ProfileListItem +import com.isolaatti.profile.ui.ProfileActivity class FollowingFragment : Fragment(), UserItemCallback { private lateinit var binding: FragmentFollowersBinding @@ -48,7 +49,7 @@ class FollowingFragment : Fragment(), UserItemCallback { } override fun itemClick(userId: Int) { - + ProfileActivity.startActivity(requireContext(), userId) } override fun followButtonClick(user: ProfileListItem, action: UserItemCallback.FollowButtonAction) { diff --git a/app/src/main/java/com/isolaatti/home/FeedFragment.kt b/app/src/main/java/com/isolaatti/home/FeedFragment.kt index 5837c62..de56d3f 100644 --- a/app/src/main/java/com/isolaatti/home/FeedFragment.kt +++ b/app/src/main/java/com/isolaatti/home/FeedFragment.kt @@ -135,7 +135,6 @@ class FeedFragment : Fragment(), OnUserInteractedWithPostCallback { viewBinding.swipeToRefresh.setOnRefreshListener { viewModel.getFeed(refresh = true) - viewBinding.swipeToRefresh.isRefreshing = false } @@ -175,6 +174,9 @@ class FeedFragment : Fragment(), OnUserInteractedWithPostCallback { viewModel.loadingPosts.observe(viewLifecycleOwner) { viewBinding.loadingIndicator.visibility = if(it) View.VISIBLE else View.GONE + if(!it) { + viewBinding.swipeToRefresh.isRefreshing = false + } } diff --git a/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt b/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt index 5416c2b..bec2015 100644 --- a/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt +++ b/app/src/main/java/com/isolaatti/posting/posts/presentation/PostsRecyclerViewAdapter.kt @@ -120,6 +120,8 @@ class PostsRecyclerViewAdapter (private val markwon: Markwon, private val callba return FeedViewHolder(view) } + + var previousSize = 0 override fun getItemCount(): Int = feedDto?.data?.size ?: 0 @@ -137,6 +139,7 @@ class PostsRecyclerViewAdapter (private val markwon: Markwon, private val callba val postUpdated = feedDto?.data?.find { p -> p.post.id == updateEvent.affectedId } val position = feedDto?.data?.indexOf(postUpdated) + previousSize = itemCount feedDto = updatedFeed when(updateEvent.updateType) { @@ -157,7 +160,7 @@ class PostsRecyclerViewAdapter (private val markwon: Markwon, private val callba } UpdateEvent.UpdateType.PAGE_ADDED -> { - notifyItemInserted(itemCount - 1) + notifyItemInserted(previousSize) } UpdateEvent.UpdateType.REFRESH -> { notifyDataSetChanged() diff --git a/app/src/main/java/com/isolaatti/profile/ui/ProfileMainFragment.kt b/app/src/main/java/com/isolaatti/profile/ui/ProfileMainFragment.kt index 7bdecf4..fdb44a2 100644 --- a/app/src/main/java/com/isolaatti/profile/ui/ProfileMainFragment.kt +++ b/app/src/main/java/com/isolaatti/profile/ui/ProfileMainFragment.kt @@ -5,16 +5,12 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.core.content.res.ResourcesCompat -import androidx.core.content.res.ResourcesCompat.ThemeCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.lifecycle.Observer import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager -import com.google.android.material.R.color.m3_icon_button_icon_color_selector -import com.google.android.material.button.MaterialButton import com.isolaatti.BuildConfig import com.isolaatti.R import com.isolaatti.databinding.FragmentDiscussionsBinding @@ -164,6 +160,9 @@ class ProfileMainFragment : Fragment() { viewModel.followingState.observe(viewLifecycleOwner, followingStateObserver) viewModel.loadingPosts.observe(viewLifecycleOwner) { viewBinding.loadingIndicator.visibility = if(it) View.VISIBLE else View.GONE + if(!it) { + viewBinding.swipeToRefresh.isRefreshing = false + } } }