WIP
This commit is contained in:
parent
80f2739cd2
commit
bcf32ee06c
@ -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) {
|
||||||
|
|||||||
@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user