This commit is contained in:
aayush262 2024-05-18 23:49:43 +05:30
parent df2867c7db
commit bfa847130e
7 changed files with 81 additions and 44 deletions

View file

@ -1505,7 +1505,7 @@ Page(page:$page,perPage:50) {
return author return author
} }
suspend fun getReviews(mediaId: Int, page: Int = 1, sort: String = "UPDATED_AT_DESC"): Query.ReviewsResponse? { suspend fun getReviews(mediaId: Int, page: Int = 1, sort: String = "CREATED_AT_DESC"): Query.ReviewsResponse? {
return executeQuery<Query.ReviewsResponse>( return executeQuery<Query.ReviewsResponse>(
"""{Page(page:$page,perPage:10){pageInfo{currentPage,hasNextPage,total}reviews(mediaId:$mediaId,sort:$sort){id,mediaId,mediaType,summary,body(asHtml:true)rating,ratingAmount,userRating,score,private,siteUrl,createdAt,updatedAt,user{id,name,bannerImage avatar{medium,large}}}}}""", """{Page(page:$page,perPage:10){pageInfo{currentPage,hasNextPage,total}reviews(mediaId:$mediaId,sort:$sort){id,mediaId,mediaType,summary,body(asHtml:true)rating,ratingAmount,userRating,score,private,siteUrl,createdAt,updatedAt,user{id,name,bannerImage avatar{medium,large}}}}}""",
force = true force = true

View file

@ -84,15 +84,15 @@ class Contributors {
"https://anilist.co/user/6244220" "https://anilist.co/user/6244220"
), ),
Developer( Developer(
"Zaidsenior", "Ziadsenior",
"https://s4.anilist.co/file/anilistcdn/user/avatar/large/b6049773-8cjYeUOFUguv.jpg", "https://s4.anilist.co/file/anilistcdn/user/avatar/large/b6049773-8cjYeUOFUguv.jpg",
"Comment Moderator", "Comment Moderator and Arabic Translator",
"https://anilist.co/user/6049773" "https://anilist.co/user/6049773"
), ),
Developer( Developer(
"hastsu", "hastsu",
"https://cdn.discordapp.com/avatars/602422545077108749/20b4a6efa4314550e4ed51cdbe4fef3d.webp?size=160", "https://cdn.discordapp.com/avatars/602422545077108749/20b4a6efa4314550e4ed51cdbe4fef3d.webp?size=160",
"Comment Moderator", "Comment Moderator and Arabic Translator",
"https://anilist.co/user/6183359" "https://anilist.co/user/6183359"
), ),
) )

View file

@ -42,6 +42,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import java.util.Calendar import java.util.Calendar
import java.util.Locale import java.util.Locale
import kotlin.math.abs
class Stories @JvmOverloads constructor( class Stories @JvmOverloads constructor(
@ -264,29 +265,44 @@ class Stories @JvmOverloads constructor(
private var startClickTime = 0L private var startClickTime = 0L
private var startX = 0f
private var startY = 0f
private var isLongPress = false
private val swipeThreshold = 100
override fun onTouch(view: View?, event: MotionEvent?): Boolean { override fun onTouch(view: View?, event: MotionEvent?): Boolean {
val maxClickDuration = 200 val maxClickDuration = 200
when (event?.action) { when (event?.action) {
MotionEvent.ACTION_DOWN -> { MotionEvent.ACTION_DOWN -> {
startX = event.x
startY = event.y
startClickTime = Calendar.getInstance().timeInMillis startClickTime = Calendar.getInstance().timeInMillis
pause() pause()
isLongPress = false
}
MotionEvent.ACTION_MOVE -> {
val deltaX = event.x - startX
val deltaY = event.y - startY
if (!isLongPress && (abs(deltaX) > swipeThreshold || abs(deltaY) > swipeThreshold)) {
isLongPress = true
}
} }
MotionEvent.ACTION_UP -> { MotionEvent.ACTION_UP -> {
val clickDuration = Calendar.getInstance().timeInMillis - startClickTime val clickDuration = Calendar.getInstance().timeInMillis - startClickTime
if (clickDuration < maxClickDuration) { if (clickDuration < maxClickDuration && !isLongPress) {
//click occurred when (view?.id) {
view?.let { R.id.leftTouchPanel -> leftPanelTouch()
if (it.id == R.id.leftTouchPanel) { R.id.rightTouchPanel -> rightPanelTouch()
leftPanelTouch()
} else if (it.id == R.id.rightTouchPanel) {
rightPanelTouch()
}
} }
} else { } else {
//hold click occurred
resume() resume()
} }
val deltaX = event.x - startX
if (abs(deltaX) > swipeThreshold) {
if (deltaX > 0) onStoriesPrevious()
else onStoriesCompleted()
}
} }
} }
return true return true
@ -359,16 +375,14 @@ class Stories @JvmOverloads constructor(
) )
} }
fun visible(isList: Boolean) { fun visible(isList: Boolean) {
val visible = if (isList) View.VISIBLE else View.GONE binding.textActivity.isVisible = !isList
val gone = if (isList) View.GONE else View.VISIBLE binding.textActivityContainer.isVisible = !isList
binding.textActivity.visibility = gone binding.infoText.isVisible = isList
binding.textActivityContainer.visibility = gone binding.coverImage.isVisible = isList
binding.infoText.visibility = visible
binding.coverImage.visibility = visible
binding.infoText.visibility = if (isList) View.VISIBLE else View.INVISIBLE binding.infoText.visibility = if (isList) View.VISIBLE else View.INVISIBLE
binding.infoText.text = "" binding.infoText.text = ""
binding.contentImageViewKen.visibility = visible binding.contentImageViewKen.isVisible = isList
binding.contentImageView.visibility = visible binding.contentImageView.isVisible = isList
} }
when (story.typename) { when (story.typename) {
@ -383,16 +397,15 @@ class Stories @JvmOverloads constructor(
} }
} }
} ${story.progress ?: story.media?.title?.userPreferred} " + } ${story.progress ?: story.media?.title?.userPreferred} " +
if ( if (
story.status?.contains("completed") == false && story.status?.contains("completed") == false &&
!story.status.contains("plans") && !story.status.contains("plans") &&
!story.status.contains("repeating") !story.status.contains("repeating")
) ) {
{ "of ${story.media?.title?.userPreferred}"
"of ${story.media?.title?.userPreferred}" } else {
} else { ""
"" }
}
binding.infoText.text = text binding.infoText.text = text
val bannerAnimations: Boolean = PrefManager.getVal(PrefName.BannerAnimations) val bannerAnimations: Boolean = PrefManager.getVal(PrefName.BannerAnimations)
blurImage( blurImage(
@ -404,18 +417,16 @@ class Stories @JvmOverloads constructor(
ContextCompat.startActivity( ContextCompat.startActivity(
context, context,
Intent(context, MediaDetailsActivity::class.java).putExtra( Intent(context, MediaDetailsActivity::class.java).putExtra(
"mediaId", "mediaId",
story.media?.id story.media?.id
), ),
ActivityOptionsCompat.makeSceneTransitionAnimation( ActivityOptionsCompat.makeSceneTransitionAnimation(
activity, activity,
binding.coverImage, binding.coverImage,
ViewCompat.getTransitionName(binding.coverImage)!! ViewCompat.getTransitionName(binding.coverImage)!!
).toBundle() ).toBundle()
) )
} }
} }
"TextActivity" -> { "TextActivity" -> {
@ -445,11 +456,13 @@ class Stories @JvmOverloads constructor(
val likeColor = ContextCompat.getColor(context, R.color.yt_red) val likeColor = ContextCompat.getColor(context, R.color.yt_red)
val notLikeColor = ContextCompat.getColor(context, R.color.bg_opp) val notLikeColor = ContextCompat.getColor(context, R.color.bg_opp)
binding.activityRepliesContainer.setOnClickListener { binding.activityRepliesContainer.setOnClickListener {
RepliesBottomDialog.newInstance(story.id).show(activity.supportFragmentManager, "replies") RepliesBottomDialog.newInstance(story.id)
.show(activity.supportFragmentManager, "replies")
} }
binding.activityLike.setColorFilter(if (story.isLiked == true) likeColor else notLikeColor)
binding.replyCount.text = story.replyCount.toString() binding.replyCount.text = story.replyCount.toString()
binding.activityLikeCount.text = story.likeCount.toString() binding.activityLikeCount.text = story.likeCount.toString()
binding.activityLike.setColorFilter(if (story.isLiked == true) likeColor else notLikeColor) binding.activityLike.setColorFilter(ContextCompat.getColor(context, R.color.bg_opp))
binding.activityLikeContainer.setOnClickListener { binding.activityLikeContainer.setOnClickListener {
like() like()
} }

View file

@ -5,6 +5,7 @@ import android.view.View
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import ani.dantotsu.R import ani.dantotsu.R
import ani.dantotsu.databinding.ItemSubscriptionBinding import ani.dantotsu.databinding.ItemSubscriptionBinding
import ani.dantotsu.loadImage
import ani.dantotsu.media.MediaDetailsActivity import ani.dantotsu.media.MediaDetailsActivity
import ani.dantotsu.notifications.subscription.SubscriptionHelper import ani.dantotsu.notifications.subscription.SubscriptionHelper
import com.xwray.groupie.GroupieAdapter import com.xwray.groupie.GroupieAdapter
@ -25,7 +26,7 @@ class SubscriptionItem(
else else
SubscriptionHelper.getMangaParser(media.id).name SubscriptionHelper.getMangaParser(media.id).name
val mediaName = media.name val mediaName = media.name
val showName = "$mediaName - $parserName" val showName = "$mediaName ($parserName)"
binding.subscriptionName.text = showName binding.subscriptionName.text = showName
binding.root.setOnClickListener { binding.root.setOnClickListener {
ContextCompat.startActivity( ContextCompat.startActivity(
@ -36,6 +37,7 @@ class SubscriptionItem(
null null
) )
} }
binding.subscriptionCover.loadImage(media.image)
binding.deleteSubscription.setOnClickListener { binding.deleteSubscription.setOnClickListener {
SubscriptionHelper.deleteSubscription(id, true) SubscriptionHelper.deleteSubscription(id, true)
adapter.remove(this) adapter.remove(this)

View file

@ -74,11 +74,12 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical" android:layout_gravity="start|center_vertical"
android:ellipsize="end"
android:fontFamily="@font/poppins_semi_bold" android:fontFamily="@font/poppins_semi_bold"
android:ellipsize="end"
android:alpha="0.75"
android:maxLines="2" android:maxLines="2"
android:text="@string/lorem_ipsum" android:text="@string/lorem_ipsum"
android:textSize="14sp" android:textSize="12sp"
android:visibility="gone" /> android:visibility="gone" />
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>

View file

@ -30,7 +30,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:src="@drawable/ic_circle_cancel" android:src="@drawable/ic_round_close_24"
android:textSize="14sp" android:textSize="14sp"
app:tint="?attr/colorOnBackground" app:tint="?attr/colorOnBackground"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />

View file

@ -8,14 +8,35 @@
android:layout_marginHorizontal="8dp" android:layout_marginHorizontal="8dp"
android:orientation="horizontal" android:orientation="horizontal"
tools:ignore="UseCompoundDrawables"> tools:ignore="UseCompoundDrawables">
<com.google.android.material.card.MaterialCardView
android:id="@+id/subscriptionCoverContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:layout_margin="16dp"
android:layout_marginStart="16dp"
android:backgroundTint="@color/bg_white"
app:cardCornerRadius="16dp"
app:strokeColor="@color/transparent">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/subscriptionCover"
android:layout_width="108dp"
android:layout_height="160dp"
android:layout_gravity="center"
android:scaleType="centerCrop"
tools:ignore="ContentDescription,ImageContrastCheck"
tools:srcCompat="@tools:sample/backgrounds/scenic"
tools:tint="@color/transparent" />
</com.google.android.material.card.MaterialCardView>
<TextView <TextView
android:id="@+id/subscriptionName" android:id="@+id/subscriptionName"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="1" android:layout_weight="1"
android:fontFamily="@font/poppins_bold" android:fontFamily="@font/poppins_semi_bold"
android:text="@string/placeholder" android:text="@string/placeholder"
android:textSize="16sp" /> android:textSize="16sp" />
@ -26,7 +47,7 @@
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:contentDescription="@string/delete" android:contentDescription="@string/delete"
android:src="@drawable/ic_circle_cancel" android:src="@drawable/ic_round_close_24"
app:tint="?attr/colorOnBackground" /> app:tint="?attr/colorOnBackground" />
</LinearLayout> </LinearLayout>