From b703337a16de7d482fa92e8d36d3fd2e41accfab Mon Sep 17 00:00:00 2001
From: Sadwhy <99601717+Sadwhy@users.noreply.github.com>
Date: Thu, 7 Nov 2024 23:14:01 +0600
Subject: [PATCH] feat(Settings): Toggleable RPC (#513)
---
.github/workflows/beta.yml | 2 +-
.../java/ani/dantotsu/media/anime/ExoplayerView.kt | 3 ++-
.../media/manga/mangareader/MangaReaderActivity.kt | 3 ++-
.../ani/dantotsu/settings/SettingsAccountActivity.kt | 11 +++++++++++
.../java/ani/dantotsu/settings/saving/Preferences.kt | 1 +
app/src/main/res/drawable/interests_24.xml | 10 ++++++++++
app/src/main/res/values/strings.xml | 2 ++
7 files changed, 29 insertions(+), 3 deletions(-)
create mode 100644 app/src/main/res/drawable/interests_24.xml
diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml
index 776b241c..0c719332 100644
--- a/.github/workflows/beta.yml
+++ b/.github/workflows/beta.yml
@@ -379,4 +379,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: commit-log
- path: commit_log.txt
+ path: commit_log.txt
\ No newline at end of file
diff --git a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt
index b76cfad1..2eab2e34 100644
--- a/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt
+++ b/app/src/main/java/ani/dantotsu/media/anime/ExoplayerView.kt
@@ -1309,7 +1309,8 @@ class ExoplayerView : AppCompatActivity(), Player.Listener, SessionAvailabilityL
val ep = episode
val offline: Boolean = PrefManager.getVal(PrefName.OfflineMode)
val incognito: Boolean = PrefManager.getVal(PrefName.Incognito)
- if ((isOnline(context) && !offline) && Discord.token != null && !incognito) {
+ val rpcenabled: Boolean = PrefManager.getVal(PrefName.rpcEnabled)
+ if ((isOnline(context) && !offline) && Discord.token != null && !incognito && rpcenabled) {
lifecycleScope.launch {
val discordMode = PrefManager.getCustomVal("discord_mode", "dantotsu")
val buttons = when (discordMode) {
diff --git a/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt b/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt
index 9faf379f..689ab6af 100644
--- a/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt
+++ b/app/src/main/java/ani/dantotsu/media/manga/mangareader/MangaReaderActivity.kt
@@ -414,7 +414,8 @@ class MangaReaderActivity : AppCompatActivity() {
val context = this
val offline: Boolean = PrefManager.getVal(PrefName.OfflineMode)
val incognito: Boolean = PrefManager.getVal(PrefName.Incognito)
- if ((isOnline(context) && !offline) && Discord.token != null && !incognito) {
+ val rpcenabled: Boolean = PrefManager.getVal(PrefName.rpcEnabled)
+ if ((isOnline(context) && !offline) && Discord.token != null && !incognito && rpcenabled) {
lifecycleScope.launch {
val discordMode = PrefManager.getCustomVal("discord_mode", "dantotsu")
val buttons = when (discordMode) {
diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsAccountActivity.kt b/app/src/main/java/ani/dantotsu/settings/SettingsAccountActivity.kt
index 204feb97..a2c48b50 100644
--- a/app/src/main/java/ani/dantotsu/settings/SettingsAccountActivity.kt
+++ b/app/src/main/java/ani/dantotsu/settings/SettingsAccountActivity.kt
@@ -209,6 +209,17 @@ class SettingsAccountActivity : AppCompatActivity() {
}
binding.settingsRecyclerView.adapter = SettingsAdapter(
arrayListOf(
+ Settings(
+ type = 2,
+ name = getString(R.string.enable_rpc),
+ desc = getString(R.string.enable_rpc_desc),
+ icon = R.drawable.interests_24,
+ isChecked = PrefManager.getVal(PrefName.rpcEnabled),
+ switch = { isChecked, _ ->
+ PrefManager.setVal(PrefName.rpcEnabled, isChecked)
+ },
+ isVisible = Discord.token != null
+ ),
Settings(
type = 1,
name = getString(R.string.anilist_settings),
diff --git a/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt b/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt
index c71a6a9b..3bd63aae 100644
--- a/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt
+++ b/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt
@@ -193,6 +193,7 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
DownloadsDir(Pref(Location.Irrelevant, String::class, "")),
OC(Pref(Location.Irrelevant, Boolean::class, false)),
RefreshStatus(Pref(Location.Irrelevant, Boolean::class, false)),
+ rpcEnabled(Pref(Location.Irrelevant, Boolean::class, true)),
//Protected
DiscordToken(Pref(Location.Protected, String::class, "")),
diff --git a/app/src/main/res/drawable/interests_24.xml b/app/src/main/res/drawable/interests_24.xml
new file mode 100644
index 00000000..0a580b01
--- /dev/null
+++ b/app/src/main/res/drawable/interests_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 837aba14..83ac7c29 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -820,6 +820,8 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
Anilist notifications update frequency : %1$s
Comment notifications update frequency : %1$s
Activities
+ Enable Discord RPC
+ Display your taste to plebs on Discord!
Incorrect password
Password cannot be empty