fix(notifications): extra padding

This commit is contained in:
aayush262 2024-06-06 21:03:43 +05:30
parent 6f685a4388
commit d488d11573
3 changed files with 46 additions and 89 deletions

View file

@ -43,30 +43,14 @@ class ActivityFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
type = arguments?.getSerializableCompat<ActivityType>("type") as ActivityType
userId = arguments?.getInt("userId")
activityId = arguments?.getInt("activityId")
arguments?.let {
type = it.getSerializableCompat<ActivityType>("type") as ActivityType
userId = it.getInt("userId")
activityId = it.getInt("activityId")
}
binding.titleBar.visibility = if (type == ActivityType.OTHER_USER) View.VISIBLE else View.GONE
binding.titleText.text = if (userId == Anilist.userid) getString(R.string.create_new_activity) else getString(R.string.write_a_message)
binding.titleImage.setOnClickListener {
if(userId == Anilist.userid) {
ContextCompat.startActivity(
requireContext(),
Intent(context, ActivityMarkdownCreator::class.java)
.putExtra("type", "activity"),
null
)
} else{
ContextCompat.startActivity(
requireContext(),
Intent(context, ActivityMarkdownCreator::class.java)
.putExtra("type", "message")
.putExtra("userId", userId),
null
)
}
}
binding.titleImage.setOnClickListener{handleTitleImageClick() }
binding.listRecyclerView.adapter = adapter
binding.listRecyclerView.layoutManager = LinearLayoutManager(context)
binding.listProgressBar.isVisible = true
@ -104,7 +88,13 @@ class ActivityFragment : Fragment() {
}
})
}
private fun handleTitleImageClick() {
val intent = Intent(context, ActivityMarkdownCreator::class.java).apply {
putExtra("type", if (userId == Anilist.userid) "activity" else "message")
putExtra("userId", userId)
}
ContextCompat.startActivity(requireContext(), intent, null)
}
private suspend fun getList() {
val list = when (type) {
@ -141,35 +131,23 @@ class ActivityFragment : Fragment() {
}
private fun onActivityClick(id: Int, type: String) {
when (type) {
"USER" -> {
ContextCompat.startActivity(
requireContext(), Intent(requireContext(), ProfileActivity::class.java)
.putExtra("userId", id), null
)
}
"MEDIA" -> {
ContextCompat.startActivity(
requireContext(), Intent(requireContext(), MediaDetailsActivity::class.java)
.putExtra("mediaId", id), null
)
}
val intent = when (type) {
"USER" -> Intent(requireContext(), ProfileActivity::class.java).putExtra("userId", id)
"MEDIA" -> Intent(requireContext(), MediaDetailsActivity::class.java).putExtra("mediaId", id)
else -> return
}
ContextCompat.startActivity(requireContext(), intent, null)
}
override fun onResume() {
super.onResume()
if (this::binding.isInitialized) {
binding.root.requestLayout()
}
}
companion object {
enum class ActivityType {
GLOBAL, USER, OTHER_USER, ONE
}
enum class ActivityType { GLOBAL, USER, OTHER_USER, ONE }
fun newInstance(type: ActivityType, userId: Int? = null, activityId: Int? = null): ActivityFragment {
return ActivityFragment().apply {

View file

@ -20,7 +20,7 @@ import ani.dantotsu.profile.notification.NotificationFragment.Companion.Notifica
import nl.joery.animatedbottombar.AnimatedBottomBar
class NotificationActivity : AppCompatActivity() {
private lateinit var binding: ActivityNotificationBinding
lateinit var binding: ActivityNotificationBinding
private var selected: Int = 0
lateinit var navBar: AnimatedBottomBar
override fun onCreate(savedInstanceState: Bundle?) {
@ -38,8 +38,8 @@ class NotificationActivity : AppCompatActivity() {
bottomMargin = navBarHeight
}
val tabs = listOf(
Pair(R.drawable.ic_round_movie_filter_24, "Media"),
Pair(R.drawable.ic_round_person_24, "User"),
Pair(R.drawable.ic_round_movie_filter_24, "Media"),
Pair(R.drawable.ic_round_notifications_active_24, "Subs"),
Pair(R.drawable.ic_round_comment_24, "Comments")
)
@ -49,7 +49,6 @@ class NotificationActivity : AppCompatActivity() {
val getOne = intent.getIntExtra("activityId", -1)
if (getOne != -1) navBar.isVisible = false
binding.notificationViewPager.adapter = ViewPagerAdapter(supportFragmentManager, lifecycle, getOne)
binding.notificationViewPager.setOffscreenPageLimit(4)
binding.notificationViewPager.setCurrentItem(selected, false)
navBar.selectTabAt(selected)
navBar.setOnTabSelectListener(object : AnimatedBottomBar.OnTabSelectListener {
@ -84,8 +83,8 @@ class NotificationActivity : AppCompatActivity() {
override fun getItemCount(): Int = if (id != -1) 1 else 4
override fun createFragment(position: Int): Fragment = when (position) {
0 -> NotificationFragment.newInstance(if (id != -1) NotificationType.ONE else NotificationType.MEDIA, id)
1 -> NotificationFragment.newInstance(NotificationType.USER)
0 -> NotificationFragment.newInstance(NotificationType.USER)
1 -> NotificationFragment.newInstance(if (id != -1) NotificationType.ONE else NotificationType.MEDIA, id)
2 -> NotificationFragment.newInstance(NotificationType.SUBSCRIPTION)
3 -> NotificationFragment.newInstance(NotificationType.COMMENT)
else -> NotificationFragment.newInstance(NotificationType.MEDIA)

View file

@ -46,8 +46,10 @@ class NotificationFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
type = arguments?.getSerializableCompat<NotificationType>("type") as NotificationType
getID = arguments?.getInt("id") ?: -1
arguments?.let {
getID = it.getInt("id")
type = it.getSerializableCompat<NotificationType>("type") as NotificationType
}
binding.notificationRecyclerView.adapter = adapter
binding.notificationRecyclerView.layoutManager = LinearLayoutManager(context)
binding.notificationProgressBar.isVisible = true
@ -158,47 +160,31 @@ class NotificationFragment : Fragment() {
!binding.notificationRecyclerView.canScrollVertically(1)
}
fun onClick(
id: Int,
optional: Int?,
type: NotificationClickType
) {
when (type) {
NotificationClickType.USER -> {
ContextCompat.startActivity(
requireContext(), Intent(requireContext(), ProfileActivity::class.java)
.putExtra("userId", id), null
)
fun onClick(id: Int, optional: Int?, type: NotificationClickType) {
val intent = when (type) {
NotificationClickType.USER -> Intent(requireContext(), ProfileActivity::class.java).apply {
putExtra("userId", id)
}
NotificationClickType.MEDIA -> {
ContextCompat.startActivity(
requireContext(), Intent(requireContext(), MediaDetailsActivity::class.java)
.putExtra("mediaId", id), null
)
NotificationClickType.MEDIA -> Intent(requireContext(), MediaDetailsActivity::class.java).apply {
putExtra("mediaId", id)
}
NotificationClickType.ACTIVITY -> {
ContextCompat.startActivity(
requireContext(), Intent(requireContext(), FeedActivity::class.java)
.putExtra("activityId", id), null
)
NotificationClickType.ACTIVITY -> Intent(requireContext(), FeedActivity::class.java).apply {
putExtra("activityId", id)
}
NotificationClickType.COMMENT -> {
ContextCompat.startActivity(
requireContext(), Intent(requireContext(), MediaDetailsActivity::class.java)
.putExtra("FRAGMENT_TO_LOAD", "COMMENTS")
.putExtra("mediaId", id)
.putExtra("commentId", optional ?: -1),
null
)
NotificationClickType.COMMENT -> Intent(requireContext(), MediaDetailsActivity::class.java).apply {
putExtra("FRAGMENT_TO_LOAD", "COMMENTS")
putExtra("mediaId", id)
putExtra("commentId", optional ?: -1)
}
NotificationClickType.UNDEFINED -> {
// Do nothing
NotificationClickType.UNDEFINED -> null
}
intent?.let {
ContextCompat.startActivity(requireContext(), it, null)
}
}
@ -206,18 +192,12 @@ class NotificationFragment : Fragment() {
super.onResume()
if (this::binding.isInitialized) {
binding.root.requestLayout()
binding.root.setBaseline((activity as NotificationActivity).navBar)
}
}
companion object {
enum class NotificationClickType {
USER, MEDIA, ACTIVITY, COMMENT, UNDEFINED
}
enum class NotificationType {
MEDIA, USER, SUBSCRIPTION, COMMENT, ONE
}
enum class NotificationClickType { USER, MEDIA, ACTIVITY, COMMENT, UNDEFINED }
enum class NotificationType { MEDIA, USER, SUBSCRIPTION, COMMENT, ONE }
fun newInstance(type: NotificationType, id: Int = -1): NotificationFragment {
return NotificationFragment().apply {