This commit is contained in:
Erik Cavazos 2023-08-15 23:11:15 -06:00
parent 80f2739cd2
commit bcf32ee06c
4 changed files with 12 additions and 7 deletions

View File

@ -12,6 +12,7 @@ import com.isolaatti.common.UserListRecyclerViewAdapter
import com.isolaatti.databinding.FragmentFollowersBinding import com.isolaatti.databinding.FragmentFollowersBinding
import com.isolaatti.followers.presentation.FollowersViewModel import com.isolaatti.followers.presentation.FollowersViewModel
import com.isolaatti.profile.domain.entity.ProfileListItem import com.isolaatti.profile.domain.entity.ProfileListItem
import com.isolaatti.profile.ui.ProfileActivity
class FollowingFragment : Fragment(), UserItemCallback { class FollowingFragment : Fragment(), UserItemCallback {
private lateinit var binding: FragmentFollowersBinding private lateinit var binding: FragmentFollowersBinding
@ -48,7 +49,7 @@ class FollowingFragment : Fragment(), UserItemCallback {
} }
override fun itemClick(userId: Int) { override fun itemClick(userId: Int) {
ProfileActivity.startActivity(requireContext(), userId)
} }
override fun followButtonClick(user: ProfileListItem, action: UserItemCallback.FollowButtonAction) { override fun followButtonClick(user: ProfileListItem, action: UserItemCallback.FollowButtonAction) {

View File

@ -135,7 +135,6 @@ class FeedFragment : Fragment(), OnUserInteractedWithPostCallback {
viewBinding.swipeToRefresh.setOnRefreshListener { viewBinding.swipeToRefresh.setOnRefreshListener {
viewModel.getFeed(refresh = true) viewModel.getFeed(refresh = true)
viewBinding.swipeToRefresh.isRefreshing = false
} }
@ -175,6 +174,9 @@ class FeedFragment : Fragment(), OnUserInteractedWithPostCallback {
viewModel.loadingPosts.observe(viewLifecycleOwner) { viewModel.loadingPosts.observe(viewLifecycleOwner) {
viewBinding.loadingIndicator.visibility = if(it) View.VISIBLE else View.GONE viewBinding.loadingIndicator.visibility = if(it) View.VISIBLE else View.GONE
if(!it) {
viewBinding.swipeToRefresh.isRefreshing = false
}
} }

View File

@ -120,6 +120,8 @@ class PostsRecyclerViewAdapter (private val markwon: Markwon, private val callba
return FeedViewHolder(view) return FeedViewHolder(view)
} }
var previousSize = 0
override fun getItemCount(): Int = feedDto?.data?.size ?: 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 postUpdated = feedDto?.data?.find { p -> p.post.id == updateEvent.affectedId }
val position = feedDto?.data?.indexOf(postUpdated) val position = feedDto?.data?.indexOf(postUpdated)
previousSize = itemCount
feedDto = updatedFeed feedDto = updatedFeed
when(updateEvent.updateType) { when(updateEvent.updateType) {
@ -157,7 +160,7 @@ class PostsRecyclerViewAdapter (private val markwon: Markwon, private val callba
} }
UpdateEvent.UpdateType.PAGE_ADDED -> { UpdateEvent.UpdateType.PAGE_ADDED -> {
notifyItemInserted(itemCount - 1) notifyItemInserted(previousSize)
} }
UpdateEvent.UpdateType.REFRESH -> { UpdateEvent.UpdateType.REFRESH -> {
notifyDataSetChanged() notifyDataSetChanged()

View File

@ -5,16 +5,12 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup 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.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager 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.BuildConfig
import com.isolaatti.R import com.isolaatti.R
import com.isolaatti.databinding.FragmentDiscussionsBinding import com.isolaatti.databinding.FragmentDiscussionsBinding
@ -164,6 +160,9 @@ class ProfileMainFragment : Fragment() {
viewModel.followingState.observe(viewLifecycleOwner, followingStateObserver) viewModel.followingState.observe(viewLifecycleOwner, followingStateObserver)
viewModel.loadingPosts.observe(viewLifecycleOwner) { viewModel.loadingPosts.observe(viewLifecycleOwner) {
viewBinding.loadingIndicator.visibility = if(it) View.VISIBLE else View.GONE viewBinding.loadingIndicator.visibility = if(it) View.VISIBLE else View.GONE
if(!it) {
viewBinding.swipeToRefresh.isRefreshing = false
}
} }
} }