feat: discord status switcher (#211)
This commit is contained in:
parent
da22347267
commit
a5567ef909
8 changed files with 76 additions and 4 deletions
|
@ -2,6 +2,8 @@ package ani.dantotsu.connections.discord
|
|||
|
||||
import ani.dantotsu.connections.discord.serializers.Activity
|
||||
import ani.dantotsu.connections.discord.serializers.Presence
|
||||
import ani.dantotsu.settings.saving.PrefManager
|
||||
import ani.dantotsu.settings.saving.PrefName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.Json
|
||||
|
@ -81,7 +83,7 @@ open class RPC(val token: String, val coroutineContext: CoroutineContext) {
|
|||
),
|
||||
afk = true,
|
||||
since = data.startTimestamp,
|
||||
status = data.status
|
||||
status = PrefManager.getVal(PrefName.DiscordStatus)
|
||||
)
|
||||
))
|
||||
}
|
||||
|
|
|
@ -14,8 +14,10 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.animation.AnimationUtils
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.ArrayAdapter
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
|
@ -805,7 +807,41 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene
|
|||
restartMainActivity.isEnabled = true
|
||||
reload()
|
||||
}
|
||||
|
||||
val imageSwitcher: ImageView = findViewById(R.id.imageSwitcher)
|
||||
imageSwitcher.visibility = View.VISIBLE
|
||||
val temp3: String = PrefManager.getVal(PrefName.DiscordStatus)
|
||||
var temp5 = when (temp3) {
|
||||
"online" -> R.drawable.discord_status_online
|
||||
"idle" -> R.drawable.discord_status_idle
|
||||
"dnd" -> R.drawable.discord_status_dnd
|
||||
else -> R.drawable.discord_status_online
|
||||
}
|
||||
imageSwitcher.setImageResource(temp5)
|
||||
|
||||
val zoomInAnimation = AnimationUtils.loadAnimation(this, R.anim.bounce_zoom)
|
||||
imageSwitcher.setOnClickListener {
|
||||
temp5 = when (temp5) {
|
||||
R.drawable.discord_status_online -> R.drawable.discord_status_idle
|
||||
R.drawable.discord_status_idle -> R.drawable.discord_status_dnd
|
||||
R.drawable.discord_status_dnd -> R.drawable.discord_status_online
|
||||
else -> R.drawable.discord_status_online
|
||||
}
|
||||
|
||||
val status = when (temp5) {
|
||||
R.drawable.discord_status_online -> "online"
|
||||
R.drawable.discord_status_idle -> "idle"
|
||||
R.drawable.discord_status_dnd -> "dnd"
|
||||
else -> "online"
|
||||
}
|
||||
|
||||
PrefManager.setVal(PrefName.DiscordStatus, status)
|
||||
imageSwitcher.setImageResource(temp5)
|
||||
imageSwitcher.startAnimation(zoomInAnimation)
|
||||
}
|
||||
} else {
|
||||
val imageSwitcher: ImageView = findViewById(R.id.imageSwitcher)
|
||||
imageSwitcher.visibility = View.GONE
|
||||
binding.settingsDiscordAvatar.setImageResource(R.drawable.ic_round_person_24)
|
||||
binding.settingsDiscordUsername.visibility = View.GONE
|
||||
binding.settingsDiscordLogin.setText(R.string.login)
|
||||
|
@ -950,4 +986,4 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene
|
|||
?: "Unknown Architecture"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -144,6 +144,7 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files
|
|||
//Irrelevant
|
||||
Incognito(Pref(Location.Irrelevant, Boolean::class, false)),
|
||||
OfflineMode(Pref(Location.Irrelevant, Boolean::class, false)),
|
||||
DiscordStatus(Pref(Location.Irrelevant, String::class, "online")),
|
||||
DownloadsKeys(Pref(Location.Irrelevant, String::class, "")),
|
||||
NovelLastExtCheck(Pref(Location.Irrelevant, Long::class, 0L)),
|
||||
SomethingSpecial(Pref(Location.Irrelevant, Boolean::class, false)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue