Skip to content

Commit

Permalink
fix: half cut text story (thanks to shivam)
Browse files Browse the repository at this point in the history
  • Loading branch information
aayush2622 committed May 28, 2024
1 parent 11655bd commit 6ce41b8
Show file tree
Hide file tree
Showing 21 changed files with 199 additions and 83 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,14 @@ class AnilistMutations {
return errors?.toString()
?: (currContext()?.getString(ani.dantotsu.R.string.success) ?: "Success")
}
suspend fun postMessage(userId: Int, text: String, edit: Int? = null,isPrivate: Boolean = false): String {
val encodedText = text.stringSanitizer()
val query = "mutation{SaveMessageActivity(${if (edit != null) "id:$edit," else ""} recipientId:$userId,message:$encodedText,private:$isPrivate){id}}"
val result = executeQuery<JsonObject>(query)
val errors = result?.get("errors")
return errors?.toString()
?: (currContext()?.getString(ani.dantotsu.R.string.success) ?: "Success")
}
suspend fun postReply(activityId: Int, text: String, edit: Int? = null ): String {
val encodedText = text.stringSanitizer()
val query = "mutation{SaveActivityReply(${if (edit != null) "id:$edit," else ""} activityId:$activityId,text:$encodedText){id}}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import ani.dantotsu.checkGenreTime
import ani.dantotsu.checkId
import ani.dantotsu.connections.anilist.Anilist.authorRoles
import ani.dantotsu.connections.anilist.Anilist.executeQuery
import ani.dantotsu.connections.anilist.api.Activity
import ani.dantotsu.connections.anilist.api.FeedResponse
import ani.dantotsu.connections.anilist.api.FuzzyDate
import ani.dantotsu.connections.anilist.api.NotificationResponse
Expand Down Expand Up @@ -453,13 +454,24 @@ class AnilistQueries {
)
if (user.id == Anilist.userid) {
anilistActivities.add(0, userToAdd)

} else {
list.add(userToAdd)
}
}
}


if (anilistActivities.isEmpty() && Anilist.token != null){
anilistActivities.add(0,
User(
Anilist.userid!!,
Anilist.username!!,
Anilist.avatar,
Anilist.bg,
activity = listOf()
)
)
}
list.addAll(0, anilistActivities)
return list.toCollection(ArrayList())
} else return null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class StatusActivity : AppCompatActivity(), StoriesCallback {

override fun onStoriesStart() {
position -= 1
if (position >= 0) {
if (position >= 0 && activity[position].activity.isNotEmpty()) {
val key = "activities"
val watchedActivity = PrefManager.getCustomVal<Set<Int>>(key, setOf())
val startFrom = findFirstNonMatch(watchedActivity, activity[position].activity )
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/ani/dantotsu/home/status/Stories.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import android.content.Context
import android.content.Intent
import android.content.res.ColorStateList
import android.util.AttributeSet
import android.view.Gravity
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View
Expand All @@ -15,6 +16,7 @@ import androidx.core.app.ActivityOptionsCompat
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.isVisible
import androidx.core.widget.NestedScrollView
import androidx.fragment.app.FragmentActivity
import ani.dantotsu.R
import ani.dantotsu.blurImage
Expand Down
29 changes: 22 additions & 7 deletions app/src/main/java/ani/dantotsu/home/status/UserStatusAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import ani.dantotsu.profile.ProfileActivity
import ani.dantotsu.profile.User
import ani.dantotsu.setAnimation
import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.snackString
import ani.dantotsu.util.MarkdownCreatorActivity

class UserStatusAdapter(private val user: ArrayList<User>) :
RecyclerView.Adapter<UserStatusAdapter.UsersViewHolder>() {
Expand All @@ -23,6 +25,10 @@ class UserStatusAdapter(private val user: ArrayList<User>) :
RecyclerView.ViewHolder(binding.root) {
init {
itemView.setOnClickListener {
if (user[bindingAdapterPosition].activity.isEmpty()) {
snackString("No activity")
return@setOnClickListener
}
StatusActivity.user = user
ContextCompat.startActivity(
itemView.context,
Expand All @@ -34,14 +40,23 @@ class UserStatusAdapter(private val user: ArrayList<User>) :
)
}
itemView.setOnLongClickListener {
ContextCompat.startActivity(
itemView.context,
Intent(
if (user[bindingAdapterPosition].id == Anilist.userid) {
ContextCompat.startActivity(
itemView.context,
ProfileActivity::class.java
).putExtra("userId", user[bindingAdapterPosition].id),
null
)
Intent(itemView.context, MarkdownCreatorActivity::class.java)
.putExtra("type", "activity"),
null
)
}else{
ContextCompat.startActivity(
itemView.context,
Intent(
itemView.context,
ProfileActivity::class.java
).putExtra("userId", user[bindingAdapterPosition].id),
null
)
}
true
}
}
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/java/ani/dantotsu/media/CharacterAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.core.content.ContextCompat
import androidx.core.util.Pair
import androidx.core.view.ViewCompat
import androidx.recyclerview.widget.RecyclerView
import ani.dantotsu.copyToClipboard
import ani.dantotsu.databinding.ItemCharacterBinding
import ani.dantotsu.loadImage
import ani.dantotsu.setAnimation
Expand All @@ -32,6 +33,9 @@ class CharacterAdapter(
binding.itemCompactRelation.text = whitespace
binding.itemCompactImage.loadImage(character.image)
binding.itemCompactTitle.text = character.name
binding.root.setOnClickListener {
copyToClipboard(character.name ?: "")
}
}

override fun getItemCount(): Int = characterList.size
Expand Down
9 changes: 0 additions & 9 deletions app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,6 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
true
}

R.id.action_create_new_activity -> {
ContextCompat.startActivity(
context,
Intent(context, MarkdownCreatorActivity::class.java)
.putExtra("type", "activity"),
null
)
true
}

else -> false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import ani.dantotsu.media.MediaDetailsActivity
import ani.dantotsu.navBarHeight
import ani.dantotsu.profile.ProfileActivity
import ani.dantotsu.setBaseline
import ani.dantotsu.util.MarkdownCreatorActivity
import com.xwray.groupie.GroupieAdapter
import eu.kanade.tachiyomi.util.system.getSerializableCompat
import kotlinx.coroutines.launch
Expand All @@ -46,14 +47,35 @@ class ActivityFragment : Fragment() {
type = arguments?.getSerializableCompat<ActivityType>("type") as ActivityType
userId = arguments?.getInt("userId")
activityId = arguments?.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, MarkdownCreatorActivity::class.java)
.putExtra("type", "activity"),
null
)
} else{
ContextCompat.startActivity(
requireContext(),
Intent(context, MarkdownCreatorActivity::class.java)
.putExtra("type", "message")
.putExtra("userId", userId),

null
)
}
}
binding.listRecyclerView.adapter = adapter
binding.listRecyclerView.layoutManager = LinearLayoutManager(context)
binding.listProgressBar.isVisible = true

binding.feedRefresh.updateLayoutParams<ViewGroup.MarginLayoutParams> {
bottomMargin = navBarHeight
}
binding.emptyTextView.text = getString(R.string.no_notifications)
binding.emptyTextView.text = getString(R.string.no_activities)
lifecycleScope.launch {
getList()
if (adapter.itemCount == 0) {
Expand Down Expand Up @@ -87,8 +109,8 @@ class ActivityFragment : Fragment() {

private suspend fun getList() {
val list = when (type) {
ActivityType.GLOBAL -> getActivities(true)
ActivityType.USER -> getActivities()
ActivityType.GLOBAL -> getActivities(global = true)
ActivityType.USER -> getActivities(filter = true)
ActivityType.OTHER_USER -> getActivities(userId = userId)
ActivityType.ONE -> getActivities(activityId = activityId)
}
Expand All @@ -99,12 +121,13 @@ class ActivityFragment : Fragment() {
global: Boolean = false,
userId: Int? = null,
activityId: Int? = null,
filter:Boolean = false
): List<Activity> {
val res = Anilist.query.getFeed(userId, global, page, activityId)?.data?.page?.activities
page += 1
return res
?.filter { if (Anilist.adult) true else it.media?.isAdult != true }
?.filterNot { it.recipient?.id != null && it.recipient.id != Anilist.userid }
?.filterNot { it.recipient?.id != null && it.recipient.id != Anilist.userid && filter }
?: emptyList()
}

Expand Down
19 changes: 16 additions & 3 deletions app/src/main/java/ani/dantotsu/profile/activity/ActivityItem.kt
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,10 @@ class ActivityItem(
}
binding.activityLikeCount.text = (activity.likeCount ?: 0).toString()
binding.activityLikeContainer.setOnClickListener {

scope.launch {
val res = Anilist.mutation.toggleLike(activity.id, "ACTIVITY")
withContext(Dispatchers.Main) {
if (res != null) {

if (activity.isLiked == true) {
activity.likeCount = activity.likeCount?.minus(1)
} else {
Expand All @@ -89,7 +87,7 @@ class ActivityItem(
}
}
}
binding.activityDelete.isVisible = activity.userId == Anilist.userid
binding.activityDelete.isVisible = activity.userId == Anilist.userid || activity.messenger?.id == Anilist.userid
binding.activityDelete.setOnClickListener {
scope.launch {
val res = Anilist.mutation.deleteActivity(activity.id)
Expand All @@ -109,6 +107,7 @@ class ActivityItem(
val banner = activity.media?.bannerImage
binding.activityContent.visibility = View.GONE
binding.activityBannerContainer.visibility = View.VISIBLE
binding.activityPrivate.visibility = View.GONE
binding.activityMediaName.text = activity.media?.title?.userPreferred
val activityText = "${activity.user!!.name} ${activity.status} ${
activity.progress
Expand All @@ -135,6 +134,7 @@ class ActivityItem(
"TextActivity" -> {
binding.activityBannerContainer.visibility = View.GONE
binding.activityContent.visibility = View.VISIBLE
binding.activityPrivate.visibility = View.GONE
if (!(context as android.app.Activity).isDestroyed) {
val markwon = buildMarkwon(context, false)
markwon.setMarkdown(
Expand Down Expand Up @@ -164,6 +164,7 @@ class ActivityItem(
"MessageActivity" -> {
binding.activityBannerContainer.visibility = View.GONE
binding.activityContent.visibility = View.VISIBLE
binding.activityPrivate.visibility = if (activity.isPrivate == true) View.VISIBLE else View.GONE
if (!(context as android.app.Activity).isDestroyed) {
val markwon = buildMarkwon(context, false)
markwon.setMarkdown(
Expand All @@ -178,6 +179,18 @@ class ActivityItem(
clickCallback(activity.messengerId ?: -1, "USER")
}
binding.activityEdit.isVisible = false
binding.activityEdit.isVisible = activity.messenger?.id == Anilist.userid
binding.activityEdit.setOnClickListener {
ContextCompat.startActivity(
context,
Intent(context, MarkdownCreatorActivity::class.java)
.putExtra("type", "message")
.putExtra("other", activity.message)
.putExtra("edit", activity.id)
.putExtra("userId", activity.recipientId),
null
)
}
}
}
}
Expand Down
6 changes: 2 additions & 4 deletions app/src/main/java/ani/dantotsu/util/AniMarkdown.kt
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,8 @@ class AniMarkdown { //istg anilist has the worst api
/* Add responsive design elements for other content as needed */
</style>
</head>
<body>
$basicHtml
</body>
<body>$basicHtml</body>
</html>
""".trimIndent()
return returnHtml
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ class MarkdownCreatorActivity : AppCompatActivity() {
binding.markdownCreatorTitle.text = when (type) {
"activity" -> getString(R.string.create_new_activity)
"review" -> getString(R.string.create_new_review)
"message" -> getString(R.string.create_new_message)
"replyActivity" -> {
parentId = intent.getIntExtra("parentId", -1)
if (parentId == -1) {
Expand All @@ -64,6 +65,7 @@ class MarkdownCreatorActivity : AppCompatActivity() {
else -> ""
}
ping = intent.getStringExtra("other")
val userId = intent.getIntExtra("userId", -1)
text = ping ?: ""
binding.editText.setText(text)
binding.editText.addTextChangedListener {
Expand Down Expand Up @@ -106,7 +108,11 @@ class MarkdownCreatorActivity : AppCompatActivity() {
} else {
Anilist.mutation.postReply(parentId, text)
}

"message" -> if (isEdit) { //TODO private
Anilist.mutation.postMessage(userId , text, editId)
} else {
Anilist.mutation.postMessage(userId , text)
}
else -> "Error: Unknown type"
}
toast(success)
Expand Down
5 changes: 2 additions & 3 deletions app/src/main/res/layout/bottom_sheet_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
android:id="@+id/homeUserAvatarContainer"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginTop="4dp"
android:layout_margin="4dp"
android:backgroundTint="@color/nav_bg_inv"
app:cardCornerRadius="26dp">

Expand Down Expand Up @@ -165,7 +165,6 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="58dp"
android:orientation="vertical">

<Button
Expand All @@ -178,7 +177,7 @@
android:insetBottom="0dp"
android:paddingStart="32dp"
android:paddingEnd="32dp"
android:text="Activity"
android:text="@string/activities"
android:textAlignment="viewStart"
android:textAllCaps="false"
android:textColor="?attr/colorOnBackground"
Expand Down
Loading

0 comments on commit 6ce41b8

Please sign in to comment.