feat: comments sorter popup

This commit is contained in:
aayush262 2024-02-15 15:25:18 +05:30
parent aaf9bdd00c
commit 1694a1cb24
6 changed files with 64 additions and 12 deletions

View file

@ -87,7 +87,7 @@ class CalendarActivity : AppCompatActivity() {
binding.listTitle.setText(R.string.release_calendar) binding.listTitle.setText(R.string.release_calendar)
binding.listSort.visibility = View.GONE binding.listSort.visibility = View.GONE
binding.random.visibility = View.GONE
binding.listTabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { binding.listTabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) { override fun onTabSelected(tab: TabLayout.Tab?) {
this@CalendarActivity.selectedTabIdx = tab?.position ?: 1 this@CalendarActivity.selectedTabIdx = tab?.position ?: 1

View file

@ -4,11 +4,14 @@ import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
import android.text.TextWatcher import android.text.TextWatcher
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.PopupMenu
import androidx.core.view.updateLayoutParams import androidx.core.view.updateLayoutParams
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import ani.dantotsu.R
import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.connections.anilist.Anilist
import ani.dantotsu.connections.comments.Comment import ani.dantotsu.connections.comments.Comment
import ani.dantotsu.connections.comments.CommentsAPI import ani.dantotsu.connections.comments.CommentsAPI
@ -16,6 +19,8 @@ import ani.dantotsu.databinding.FragmentCommentsBinding
import ani.dantotsu.databinding.ItemCommentsBinding import ani.dantotsu.databinding.ItemCommentsBinding
import ani.dantotsu.loadImage import ani.dantotsu.loadImage
import ani.dantotsu.navBarHeight import ani.dantotsu.navBarHeight
import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.settings.saving.PrefName
import ani.dantotsu.snackString import ani.dantotsu.snackString
import ani.dantotsu.statusBarHeight import ani.dantotsu.statusBarHeight
import ani.dantotsu.themes.ThemeManager import ani.dantotsu.themes.ThemeManager
@ -120,6 +125,14 @@ class CommentsFragment : AppCompatActivity(){
} }
adapter.add(section) adapter.add(section)
} }
binding.commentSort.setOnClickListener {
val popup = PopupMenu(this, it)
popup.setOnMenuItemClickListener { item ->
true
}
popup.inflate(R.menu.comments_sort_menu)
popup.show()
}
} }
private fun buildMarkwon(): Markwon { private fun buildMarkwon(): Markwon {

View file

@ -10,19 +10,37 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView <TextView
android:id="@+id/commentTitle" android:id="@+id/commentTitle"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_weight="1"
android:layout_gravity=""
android:layout_marginStart="32dp" android:layout_marginStart="32dp"
android:layout_marginEnd="32dp" android:layout_marginEnd="32dp"
android:fontFamily="@font/poppins_bold" android:fontFamily="@font/poppins_bold"
android:gravity="center" android:gravity="center|start"
android:text="@string/comments" android:text="@string/comments"
android:textColor="?attr/colorPrimary" android:textColor="?attr/colorPrimary"
android:textSize="16sp" /> android:textSize="16sp" />
<ImageView
android:id="@+id/commentSort"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:layout_gravity="center"
android:background="?android:attr/selectableItemBackground"
android:contentDescription="@string/sort_by"
app:srcCompat="@drawable/ic_round_sort_24"
app:tint="?attr/colorOnBackground" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/commentsList" android:id="@+id/commentsList"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -108,6 +108,7 @@
android:id="@+id/commentTotalReplies" android:id="@+id/commentTotalReplies"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"
android:alpha="0.6" android:alpha="0.6"
android:fontFamily="@font/poppins_semi_bold" android:fontFamily="@font/poppins_semi_bold"
android:text="View x more replies" android:text="View x more replies"

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/comment_sort_ascending"
android:title="@string/comments_sort_ascending" />
<item
android:id="@+id/comment_sort_descending"
android:title="@string/comments_sort_descending" />
<item
android:id="@+id/comment_sort_upvote"
android:title="@string/comments_sort_upvote" />
<item
android:id="@+id/comment_sort_downvote"
android:title="@string/comments_sort_downvote" />
</menu>

View file

@ -657,5 +657,10 @@
<string name="import_export_settings">Import/Export Settings</string> <string name="import_export_settings">Import/Export Settings</string>
<string name="import_settings">Import Settings</string> <string name="import_settings">Import Settings</string>
<string name="try_internal_cast_experimental">Try Internal Cast (Experimental)</string> <string name="try_internal_cast_experimental">Try Internal Cast (Experimental)</string>
<string name="comments">Comments</string> <string name="comments">Comments</string>
<string name="comments_sort_ascending">Ascending</string>
<string name="comments_sort_descending">Descending</string>
<string name="comments_sort_upvote">Most UpVoted</string>
<string name="comments_sort_downvote">Most DownVoted</string>
</resources> </resources>