From 2e453ecb8497a2584d3ecd8b25a1faa39f3f5a2e Mon Sep 17 00:00:00 2001 From: sneazy-ibo <41344259+sneazy-ibo@users.noreply.github.com> Date: Sun, 16 Jun 2024 06:39:59 +0200 Subject: [PATCH] feat: copy username and better profile dropdown menu --- .../ani/dantotsu/profile/ProfileActivity.kt | 30 +++++++++++++++++-- app/src/main/res/menu/menu_profile.xml | 10 +++++++ app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt b/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt index 856dc0b8..f6729ac7 100644 --- a/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt +++ b/app/src/main/java/ani/dantotsu/profile/ProfileActivity.kt @@ -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(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 diff --git a/app/src/main/res/menu/menu_profile.xml b/app/src/main/res/menu/menu_profile.xml index 9cb03021..c1351e8e 100644 --- a/app/src/main/res/menu/menu_profile.xml +++ b/app/src/main/res/menu/menu_profile.xml @@ -7,4 +7,14 @@ android:title="@string/view_on_anilist" app:showAsAction="never" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9e317b87..ad001c8c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -797,6 +797,8 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc Blur Hide Scroll Bar View on AniList + Share Profile + Copy user ID Filter Notifications Anilist notifications update frequency : %1$s Comment notifications update frequency : %1$s