diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f3c65e3c..7a22ab3d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -110,6 +110,10 @@
android:name=".profile.ProfileActivity"
android:windowSoftInputMode="adjustResize|stateHidden"
android:parentActivityName=".MainActivity" />
+
diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt
index 0f115832..b76c9530 100644
--- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt
+++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt
@@ -1254,6 +1254,7 @@ Page(page:$page,perPage:50) {
show = true
)
}
+
suspend fun userFavMedia(anime: Boolean, id: Int): ArrayList {
var hasNextPage = true
var page = 0
@@ -1280,6 +1281,9 @@ Page(page:$page,perPage:50) {
private fun userFavMediaQuery(anime: Boolean, page: Int, id: Int): String {
return """User(id:${id}){id favourites{${if (anime) "anime" else "manga"}(page:$page){pageInfo{hasNextPage}edges{favouriteOrder node{id idMal isAdult mediaListEntry{ progress private score(format:POINT_100) status } chapters isFavourite format episodes nextAiringEpisode{episode}meanScore isFavourite format startDate{year month day} title{english romaji userPreferred}type status(version:2)bannerImage coverImage{large}}}}}}"""
}
+ suspend fun userFollowing(id: Int): Query.Following?{
+ return executeQuery("""{Following:Page {following(userId:${id},sort:[USERNAME]){id name avatar{large medium}bannerImage}}}""", force = true)
+ }
private suspend fun userBannerImage(type: String,id: Int?): String? {
val response =
executeQuery("""{ MediaListCollection(userId: ${id}, type: $type, chunk:1,perChunk:25, sort: [SCORE_DESC,UPDATED_TIME_DESC]) { lists { entries{ media { id bannerImage } } } } } """)
diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/api/Data.kt b/app/src/main/java/ani/dantotsu/connections/anilist/api/Data.kt
index 3f912df0..6429bdce 100644
--- a/app/src/main/java/ani/dantotsu/connections/anilist/api/Data.kt
+++ b/app/src/main/java/ani/dantotsu/connections/anilist/api/Data.kt
@@ -199,7 +199,17 @@ class Query {
val user: UserProfile?
)
}
-
+ @Serializable
+ data class Following(
+ @SerialName("data")
+ val data: Data
+ ) {
+ @Serializable
+ data class Data(
+ @SerialName("following")
+ val following: ani.dantotsu.connections.anilist.api.User?
+ )
+ }
@Serializable
data class UserProfile(
@SerialName("id")
diff --git a/app/src/main/java/ani/dantotsu/profile/FollowActivity.kt b/app/src/main/java/ani/dantotsu/profile/FollowActivity.kt
new file mode 100644
index 00000000..d61ac864
--- /dev/null
+++ b/app/src/main/java/ani/dantotsu/profile/FollowActivity.kt
@@ -0,0 +1,32 @@
+package ani.dantotsu.profile
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.lifecycle.lifecycleScope
+import ani.dantotsu.connections.anilist.Anilist
+import ani.dantotsu.databinding.ActivityFollowBinding
+import ani.dantotsu.initActivity
+import ani.dantotsu.themes.ThemeManager
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+
+class FollowActivity : AppCompatActivity(){
+ private lateinit var binding: ActivityFollowBinding
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ ThemeManager(this).applyTheme()
+ initActivity(this)
+ binding = ActivityFollowBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+ binding.listTitle.text = intent.getStringExtra("title")
+ lifecycleScope.launch(Dispatchers.IO) {
+ val respond = Anilist.query.userFollowing(intent.getIntExtra("userId", 0))
+ val user = respond?.data?.following
+ withContext(Dispatchers.Main) {
+ user?.id
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt b/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt
index 7ab6ee23..71b455df 100644
--- a/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt
+++ b/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt
@@ -1,10 +1,12 @@
package ani.dantotsu.profile
import android.annotation.SuppressLint
+import android.content.Intent
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
import androidx.core.view.updateLayoutParams
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
@@ -98,14 +100,15 @@ class ProfileActivity : AppCompatActivity() {
}
binding.profileProgressBar.visibility = View.GONE
binding.profileTopContainer.visibility = View.VISIBLE
- binding.profileBannerImage.loadImage(user.bannerImage)
- binding.profileBannerImage.setOnLongClickListener {
- ImageViewDialog.newInstance(
- this@ProfileActivity,
- "${user.name}'s [Banner]",
- user.bannerImage
+
+ binding.temp.setOnClickListener {
+ ContextCompat.startActivity(
+ this@ProfileActivity, Intent(this@ProfileActivity, FollowActivity::class.java)
+ .putExtra("title", "Following")
+ .putExtra("userId", user.id), null
)
}
+
binding.profileUserAvatar.loadImage(user.avatar?.medium)
binding.profileUserAvatar.setOnLongClickListener {
ImageViewDialog.newInstance(
@@ -114,6 +117,7 @@ class ProfileActivity : AppCompatActivity() {
user.avatar?.medium
)
}
+
binding.profileUserName.text = "${user.name} $userLevel"
if (!(PrefManager.getVal(PrefName.BannerAnimations) as Boolean)) binding.profileBannerImage.pause()
binding.profileBannerImage.loadImage(user.bannerImage)
@@ -125,14 +129,7 @@ class ProfileActivity : AppCompatActivity() {
user.bannerImage
)
}
- binding.profileUserAvatar.loadImage(user.avatar?.medium)
- binding.profileUserAvatar.setOnLongClickListener {
- ImageViewDialog.newInstance(
- this@ProfileActivity,
- user.name + " [Avatar]",
- user.avatar?.medium
- )
- }
+
}
}
diff --git a/app/src/main/res/layout/activity_follow.xml b/app/src/main/res/layout/activity_follow.xml
new file mode 100644
index 00000000..ec916119
--- /dev/null
+++ b/app/src/main/res/layout/activity_follow.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml
index 70565a9d..37543e8b 100644
--- a/app/src/main/res/layout/activity_profile.xml
+++ b/app/src/main/res/layout/activity_profile.xml
@@ -102,7 +102,21 @@
app:cornerRadius="8dp"
app:strokeColor="?attr/colorPrimaryContainer"
tools:ignore="SpeakableTextPresentCheck" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file