140 lines
5.7 KiB
Kotlin
140 lines
5.7 KiB
Kotlin
package ani.dantotsu.settings
|
|
|
|
import android.app.AlertDialog
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import androidx.core.view.updateLayoutParams
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import ani.dantotsu.R
|
|
import ani.dantotsu.databinding.ActivitySettingsAnimeBinding
|
|
import ani.dantotsu.download.DownloadsManager
|
|
import ani.dantotsu.initActivity
|
|
import ani.dantotsu.media.MediaType
|
|
import ani.dantotsu.navBarHeight
|
|
import ani.dantotsu.restartApp
|
|
import ani.dantotsu.settings.saving.PrefManager
|
|
import ani.dantotsu.settings.saving.PrefName
|
|
import ani.dantotsu.statusBarHeight
|
|
import ani.dantotsu.themes.ThemeManager
|
|
import ani.dantotsu.util.customAlertDialog
|
|
import uy.kohesive.injekt.Injekt
|
|
import uy.kohesive.injekt.api.get
|
|
|
|
class SettingsAnimeActivity : AppCompatActivity() {
|
|
private lateinit var binding: ActivitySettingsAnimeBinding
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
ThemeManager(this).applyTheme()
|
|
initActivity(this)
|
|
val context = this
|
|
binding = ActivitySettingsAnimeBinding.inflate(layoutInflater)
|
|
setContentView(binding.root)
|
|
binding.apply {
|
|
|
|
settingsAnimeLayout.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
|
topMargin = statusBarHeight
|
|
bottomMargin = navBarHeight
|
|
}
|
|
animeSettingsBack.setOnClickListener { onBackPressedDispatcher.onBackPressed() }
|
|
|
|
settingsRecyclerView.adapter = SettingsAdapter(
|
|
arrayListOf(
|
|
Settings(
|
|
type = 1,
|
|
name = getString(R.string.player_settings),
|
|
desc = getString(R.string.player_settings_desc),
|
|
icon = R.drawable.ic_round_video_settings_24,
|
|
onClick = {
|
|
startActivity(Intent(context, PlayerSettingsActivity::class.java))
|
|
},
|
|
isActivity = true
|
|
),
|
|
Settings(
|
|
type = 1,
|
|
name = getString(R.string.purge_anime_downloads),
|
|
desc = getString(R.string.purge_anime_downloads_desc),
|
|
icon = R.drawable.ic_round_delete_24,
|
|
onClick = {
|
|
context.customAlertDialog().apply {
|
|
setTitle(R.string.purge_anime_downloads)
|
|
setMessage(R.string.purge_confirm, getString(R.string.anime))
|
|
setPosButton(R.string.yes, onClick = {
|
|
val downloadsManager = Injekt.get<DownloadsManager>()
|
|
downloadsManager.purgeDownloads(MediaType.ANIME)
|
|
})
|
|
setNegButton(R.string.no)
|
|
show()
|
|
}
|
|
}
|
|
|
|
),
|
|
Settings(
|
|
type = 2,
|
|
name = getString(R.string.prefer_dub),
|
|
desc = getString(R.string.prefer_dub_desc),
|
|
icon = R.drawable.ic_round_audiotrack_24,
|
|
isChecked = PrefManager.getVal(PrefName.SettingsPreferDub),
|
|
switch = { isChecked, _ ->
|
|
PrefManager.setVal(PrefName.SettingsPreferDub, isChecked)
|
|
}
|
|
),
|
|
Settings(
|
|
type = 2,
|
|
name = getString(R.string.show_yt),
|
|
desc = getString(R.string.show_yt_desc),
|
|
icon = R.drawable.ic_round_play_circle_24,
|
|
isChecked = PrefManager.getVal(PrefName.ShowYtButton),
|
|
switch = { isChecked, _ ->
|
|
PrefManager.setVal(PrefName.ShowYtButton, isChecked)
|
|
}
|
|
),
|
|
Settings(
|
|
type = 2,
|
|
name = getString(R.string.include_list),
|
|
desc = getString(R.string.include_list_anime_desc),
|
|
icon = R.drawable.view_list_24,
|
|
isChecked = PrefManager.getVal(PrefName.IncludeAnimeList),
|
|
switch = { isChecked, _ ->
|
|
PrefManager.setVal(PrefName.IncludeAnimeList, isChecked)
|
|
restartApp()
|
|
}
|
|
),
|
|
)
|
|
)
|
|
settingsRecyclerView.apply {
|
|
layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
|
|
setHasFixedSize(true)
|
|
}
|
|
|
|
var previousEp: View = when (PrefManager.getVal<Int>(PrefName.AnimeDefaultView)) {
|
|
0 -> settingsEpList
|
|
1 -> settingsEpGrid
|
|
2 -> settingsEpCompact
|
|
else -> settingsEpList
|
|
}
|
|
previousEp.alpha = 1f
|
|
fun uiEp(mode: Int, current: View) {
|
|
previousEp.alpha = 0.33f
|
|
previousEp = current
|
|
current.alpha = 1f
|
|
PrefManager.setVal(PrefName.AnimeDefaultView, mode)
|
|
}
|
|
|
|
settingsEpList.setOnClickListener {
|
|
uiEp(0, it)
|
|
}
|
|
|
|
settingsEpGrid.setOnClickListener {
|
|
uiEp(1, it)
|
|
}
|
|
|
|
settingsEpCompact.setOnClickListener {
|
|
uiEp(2, it)
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|