feat: copy username and better profile dropdown menu

This commit is contained in:
sneazy-ibo
2024-06-16 06:39:59 +02:00
parent 899af3ee1a
commit 2e453ecb84
3 changed files with 39 additions and 3 deletions

View File

@@ -1,6 +1,9 @@
package ani.dantotsu.profile
import android.animation.ObjectAnimator
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.content.res.Configuration
import android.os.Bundle
@@ -8,6 +11,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.PopupMenu
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.view.isGone
@@ -152,11 +156,24 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
popup.setOnMenuItemClickListener { item ->
when (item.itemId) {
R.id.action_view_on_anilist -> {
openLinkInBrowser("https://anilist.co/user/${user.name}")
openLinkInBrowser(getString(R.string.anilist_link, user.name))
true
}
R.id.action_share_profile -> {
val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.type = "text/plain"
shareIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.anilist_link, user.name))
startActivity(Intent.createChooser(shareIntent, "Share Profile"))
true
}
R.id.action_copy_user_id -> {
val userId = user.id.toString()
val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clipData = ClipData.newPlainText("User ID", userId)
clipboardManager.setPrimaryClip(clipData)
toast(getString(R.string.copied_text, userId))
true
}
else -> false
}
}
@@ -169,6 +186,13 @@ class ProfileActivity : AppCompatActivity(), AppBarLayout.OnOffsetChangedListene
user.avatar?.medium ?: ""
)
profileUserName.text = user.name
val profileUserName = findViewById<TextView>(R.id.profileUserName)
profileUserName.setOnClickListener {
val clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clipData = ClipData.newPlainText("Username", profileUserName.text)
clipboardManager.setPrimaryClip(clipData)
toast(getString(R.string.copied_to_clipboard))
}
val bannerAnimations: ImageView =
if (PrefManager.getVal(PrefName.BannerAnimations)) profileBannerImage else profileBannerImageNoKen

View File

@@ -7,4 +7,14 @@
android:title="@string/view_on_anilist"
app:showAsAction="never" />
<item
android:id="@+id/action_share_profile"
android:title="@string/share_profile"
app:showAsAction="never" />
<item
android:id="@+id/action_copy_user_id"
android:title="@string/copy_user_id"
app:showAsAction="never" />
</menu>

View File

@@ -797,6 +797,8 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
<string name="blur">Blur</string>
<string name="hide_scroll_bar">Hide Scroll Bar</string>
<string name="view_on_anilist" translatable="false">View on AniList</string>
<string name="share_profile">Share Profile</string>
<string name="copy_user_id" >Copy user ID</string>
<string name="anilist_notification_filters">Filter Notifications</string>
<string name="anilist_notifications_checking_time">Anilist notifications update frequency : %1$s</string>
<string name="comment_notification_checking_time">Comment notifications update frequency : %1$s</string>