[skip ci] feat: theme crash fix
This commit is contained in:
parent
cd3bb20afd
commit
3d1040b280
15 changed files with 121 additions and 73 deletions
|
@ -306,23 +306,18 @@ fun Activity.reloadActivity() {
|
||||||
initActivity(this)
|
initActivity(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.restartApp(view: View) {
|
fun Activity.restartApp() {
|
||||||
val mainIntent = Intent.makeRestartActivityTask(
|
val mainIntent = Intent.makeRestartActivityTask(
|
||||||
packageManager.getLaunchIntentForPackage(this.packageName)!!.component
|
packageManager.getLaunchIntentForPackage(this.packageName)!!.component
|
||||||
)
|
)
|
||||||
val component = ComponentName(this@restartApp.packageName, this@restartApp::class.qualifiedName!!)
|
val component = ComponentName(this@restartApp.packageName, this@restartApp::class.qualifiedName!!)
|
||||||
Snackbar.make(view, R.string.restart_app, Snackbar.LENGTH_INDEFINITE).apply {
|
|
||||||
setAction(R.string.do_it) {
|
|
||||||
this.dismiss()
|
|
||||||
try {
|
try {
|
||||||
startActivity(Intent().setComponent(component))
|
startActivity(Intent().setComponent(component))
|
||||||
} catch (anything: Exception) {
|
} catch (e: Exception) {
|
||||||
startActivity(mainIntent)
|
startActivity(mainIntent)
|
||||||
}
|
}
|
||||||
Runtime.getRuntime().exit(0)
|
finishAndRemoveTask()
|
||||||
}
|
PrefManager.setCustomVal("reload", true)
|
||||||
show()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
open class BottomSheetDialogFragment : BottomSheetDialogFragment() {
|
open class BottomSheetDialogFragment : BottomSheetDialogFragment() {
|
||||||
|
|
|
@ -11,9 +11,9 @@ data class Settings(
|
||||||
val icon : Int,
|
val icon : Int,
|
||||||
val onClick: ((ItemSettingsBinding) -> Unit)? = null,
|
val onClick: ((ItemSettingsBinding) -> Unit)? = null,
|
||||||
val onLongClick: (() -> Unit)? = null,
|
val onLongClick: (() -> Unit)? = null,
|
||||||
var isChecked : Boolean = false,
|
|
||||||
val switch: ((isChecked:Boolean , view: ItemSettingsSwitchBinding ) -> Unit)? = null,
|
val switch: ((isChecked:Boolean , view: ItemSettingsSwitchBinding ) -> Unit)? = null,
|
||||||
|
val attach:((ItemSettingsBinding) -> Unit)? = null,
|
||||||
val isVisible: Boolean = true,
|
val isVisible: Boolean = true,
|
||||||
val isActivity: Boolean = false,
|
val isActivity: Boolean = false,
|
||||||
val attach:((ViewGroup) -> Unit)? = null
|
var isChecked : Boolean = false,
|
||||||
)
|
)
|
|
@ -18,6 +18,7 @@ import ani.dantotsu.settings.saving.PrefManager
|
||||||
import ani.dantotsu.settings.saving.PrefName
|
import ani.dantotsu.settings.saving.PrefName
|
||||||
import ani.dantotsu.statusBarHeight
|
import ani.dantotsu.statusBarHeight
|
||||||
import ani.dantotsu.themes.ThemeManager
|
import ani.dantotsu.themes.ThemeManager
|
||||||
|
import ani.dantotsu.util.Logger
|
||||||
|
|
||||||
class SettingsAboutActivity : AppCompatActivity() {
|
class SettingsAboutActivity : AppCompatActivity() {
|
||||||
private lateinit var binding: ActivitySettingsAboutBinding
|
private lateinit var binding: ActivitySettingsAboutBinding
|
||||||
|
@ -42,7 +43,7 @@ class SettingsAboutActivity : AppCompatActivity() {
|
||||||
Settings(
|
Settings(
|
||||||
type = 1,
|
type = 1,
|
||||||
name = getString(R.string.faq),
|
name = getString(R.string.faq),
|
||||||
desc = getString(R.string.faq),
|
desc = getString(R.string.faq_desc),
|
||||||
icon = R.drawable.ic_round_help_24,
|
icon = R.drawable.ic_round_help_24,
|
||||||
onClick = {
|
onClick = {
|
||||||
startActivity(Intent(context, FAQActivity::class.java))
|
startActivity(Intent(context, FAQActivity::class.java))
|
||||||
|
@ -52,7 +53,7 @@ class SettingsAboutActivity : AppCompatActivity() {
|
||||||
Settings(
|
Settings(
|
||||||
type = 2,
|
type = 2,
|
||||||
name = getString(R.string.check_app_updates),
|
name = getString(R.string.check_app_updates),
|
||||||
desc = getString(R.string.check_app_updates),
|
desc = getString(R.string.check_app_updates_desc),
|
||||||
icon = R.drawable.ic_round_new_releases_24,
|
icon = R.drawable.ic_round_new_releases_24,
|
||||||
isChecked = PrefManager.getVal(PrefName.CheckUpdate),
|
isChecked = PrefManager.getVal(PrefName.CheckUpdate),
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
|
@ -63,7 +64,7 @@ class SettingsAboutActivity : AppCompatActivity() {
|
||||||
Settings(
|
Settings(
|
||||||
type = 2,
|
type = 2,
|
||||||
name = getString(R.string.share_username_in_crash_reports),
|
name = getString(R.string.share_username_in_crash_reports),
|
||||||
desc = getString(R.string.share_username_in_crash_reports),
|
desc = getString(R.string.share_username_in_crash_reports_desc),
|
||||||
icon = R.drawable.ic_round_search_24,
|
icon = R.drawable.ic_round_search_24,
|
||||||
isChecked = PrefManager.getVal(PrefName.SharedUserID),
|
isChecked = PrefManager.getVal(PrefName.SharedUserID),
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
|
@ -79,13 +80,19 @@ class SettingsAboutActivity : AppCompatActivity() {
|
||||||
isChecked = PrefManager.getVal(PrefName.LogToFile),
|
isChecked = PrefManager.getVal(PrefName.LogToFile),
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.LogToFile, isChecked)
|
PrefManager.setVal(PrefName.LogToFile, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
},
|
},
|
||||||
|
attach = {
|
||||||
|
it.settingsDesc.setOnLongClickListener {
|
||||||
|
Logger.shareLog(context)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
),
|
),
|
||||||
Settings(
|
Settings(
|
||||||
type = 1,
|
type = 1,
|
||||||
name = getString(R.string.devs),
|
name = getString(R.string.devs),
|
||||||
desc= getString(R.string.devs),
|
desc= getString(R.string.devs_desc),
|
||||||
icon = R.drawable.ic_round_accessible_forward_24,
|
icon = R.drawable.ic_round_accessible_forward_24,
|
||||||
onClick = {
|
onClick = {
|
||||||
DevelopersDialogFragment().show(supportFragmentManager, "dialog")
|
DevelopersDialogFragment().show(supportFragmentManager, "dialog")
|
||||||
|
@ -94,7 +101,7 @@ class SettingsAboutActivity : AppCompatActivity() {
|
||||||
Settings(
|
Settings(
|
||||||
type = 1,
|
type = 1,
|
||||||
name = getString(R.string.forks),
|
name = getString(R.string.forks),
|
||||||
desc = getString(R.string.forks),
|
desc = getString(R.string.forks_desc),
|
||||||
icon = R.drawable.ic_round_restaurant_24,
|
icon = R.drawable.ic_round_restaurant_24,
|
||||||
onClick = {
|
onClick = {
|
||||||
ForksDialogFragment().show(supportFragmentManager, "dialog")
|
ForksDialogFragment().show(supportFragmentManager, "dialog")
|
||||||
|
@ -103,7 +110,7 @@ class SettingsAboutActivity : AppCompatActivity() {
|
||||||
Settings(
|
Settings(
|
||||||
type = 1,
|
type = 1,
|
||||||
name = getString(R.string.disclaimer),
|
name = getString(R.string.disclaimer),
|
||||||
desc = getString(R.string.disclaimer),
|
desc = getString(R.string.disclaimer_desc),
|
||||||
icon = R.drawable.ic_round_info_24,
|
icon = R.drawable.ic_round_info_24,
|
||||||
onClick = {
|
onClick = {
|
||||||
val text = TextView(context)
|
val text = TextView(context)
|
||||||
|
|
|
@ -11,6 +11,7 @@ import android.os.Build.VERSION.SDK_INT
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import androidx.activity.addCallback
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.updateLayoutParams
|
import androidx.core.view.updateLayoutParams
|
||||||
|
@ -28,6 +29,7 @@ import ani.dantotsu.others.AppUpdater
|
||||||
import ani.dantotsu.others.CustomBottomDialog
|
import ani.dantotsu.others.CustomBottomDialog
|
||||||
import ani.dantotsu.pop
|
import ani.dantotsu.pop
|
||||||
import ani.dantotsu.setSafeOnClickListener
|
import ani.dantotsu.setSafeOnClickListener
|
||||||
|
import ani.dantotsu.settings.saving.PrefManager
|
||||||
import ani.dantotsu.snackString
|
import ani.dantotsu.snackString
|
||||||
import ani.dantotsu.startMainActivity
|
import ani.dantotsu.startMainActivity
|
||||||
import ani.dantotsu.statusBarHeight
|
import ani.dantotsu.statusBarHeight
|
||||||
|
@ -40,9 +42,6 @@ import kotlin.random.Random
|
||||||
|
|
||||||
|
|
||||||
class SettingsActivity : AppCompatActivity() {
|
class SettingsActivity : AppCompatActivity() {
|
||||||
private val restartMainActivity = object : OnBackPressedCallback(false) {
|
|
||||||
override fun handleOnBackPressed() = startMainActivity(this@SettingsActivity)
|
|
||||||
}
|
|
||||||
lateinit var binding: ActivitySettingsBinding
|
lateinit var binding: ActivitySettingsBinding
|
||||||
private var cursedCounter = 0
|
private var cursedCounter = 0
|
||||||
|
|
||||||
|
@ -70,7 +69,14 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
bottomMargin = navBarHeight
|
bottomMargin = navBarHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
onBackPressedDispatcher.addCallback(context, restartMainActivity)
|
onBackPressedDispatcher.addCallback(context){
|
||||||
|
if (PrefManager.getCustomVal("reload", false)) {
|
||||||
|
startMainActivity(context)
|
||||||
|
PrefManager.setCustomVal("reload", false)
|
||||||
|
}else{
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
settingsBack.setOnClickListener {
|
settingsBack.setOnClickListener {
|
||||||
onBackPressedDispatcher.onBackPressed()
|
onBackPressedDispatcher.onBackPressed()
|
||||||
|
@ -262,4 +268,8 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
?: "Unknown Architecture"
|
?: "Unknown Architecture"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
override fun onResume() {
|
||||||
|
ThemeManager(this).applyTheme()
|
||||||
|
super.onResume()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ class SettingsAdapter(private val settings: ArrayList<Settings>) :
|
||||||
b.settingsIconRight.visibility =
|
b.settingsIconRight.visibility =
|
||||||
if (settings.isActivity) View.VISIBLE else View.GONE
|
if (settings.isActivity) View.VISIBLE else View.GONE
|
||||||
b.attachView.visibility = if (settings.attach != null) View.VISIBLE else View.GONE
|
b.attachView.visibility = if (settings.attach != null) View.VISIBLE else View.GONE
|
||||||
settings.attach?.invoke(b.attachView)
|
settings.attach?.invoke(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
2 -> {
|
2 -> {
|
||||||
|
|
|
@ -100,7 +100,7 @@ class SettingsAnimeActivity: AppCompatActivity(){
|
||||||
isChecked = PrefManager.getVal(PrefName.IncludeAnimeList),
|
isChecked = PrefManager.getVal(PrefName.IncludeAnimeList),
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.IncludeAnimeList, isChecked)
|
PrefManager.setVal(PrefName.IncludeAnimeList, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
@ -73,14 +73,14 @@ class SettingsCommonActivity: AppCompatActivity(){
|
||||||
toast(getString(R.string.incorrect_password))
|
toast(getString(R.string.incorrect_password))
|
||||||
return@passwordAlertDialog
|
return@passwordAlertDialog
|
||||||
}
|
}
|
||||||
if (PreferencePackager.unpack(decryptedJson)) restartApp(binding.root)
|
if (PreferencePackager.unpack(decryptedJson)) restartApp()
|
||||||
} else {
|
} else {
|
||||||
toast(getString(R.string.password_cannot_be_empty))
|
toast(getString(R.string.password_cannot_be_empty))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (name.endsWith(".ani")) {
|
} else if (name.endsWith(".ani")) {
|
||||||
val decryptedJson = jsonString.toString(Charsets.UTF_8)
|
val decryptedJson = jsonString.toString(Charsets.UTF_8)
|
||||||
if (PreferencePackager.unpack(decryptedJson)) restartApp(binding.root)
|
if (PreferencePackager.unpack(decryptedJson)) restartApp()
|
||||||
} else {
|
} else {
|
||||||
toast(getString(R.string.unknown_file_type))
|
toast(getString(R.string.unknown_file_type))
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ class SettingsCommonActivity: AppCompatActivity(){
|
||||||
settingsExtensionDns.setOnItemClickListener { _, _, i, _ ->
|
settingsExtensionDns.setOnItemClickListener { _, _, i, _ ->
|
||||||
PrefManager.setVal(PrefName.DohProvider, i)
|
PrefManager.setVal(PrefName.DohProvider, i)
|
||||||
settingsExtensionDns.clearFocus()
|
settingsExtensionDns.clearFocus()
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsRecyclerView.adapter = SettingsAdapter(
|
settingsRecyclerView.adapter = SettingsAdapter(
|
||||||
|
@ -294,7 +294,7 @@ class SettingsCommonActivity: AppCompatActivity(){
|
||||||
isChecked = PrefManager.getVal(PrefName.AdultOnly),
|
isChecked = PrefManager.getVal(PrefName.AdultOnly),
|
||||||
switch = {isChecked, _ ->
|
switch = {isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.AdultOnly, isChecked)
|
PrefManager.setVal(PrefName.AdultOnly, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
},
|
},
|
||||||
isVisible = Anilist.adult
|
isVisible = Anilist.adult
|
||||||
|
|
||||||
|
|
|
@ -161,13 +161,12 @@ class SettingsExtensionsActivity: AppCompatActivity() {
|
||||||
desc = getString(R.string.anime_add_repository),
|
desc = getString(R.string.anime_add_repository),
|
||||||
icon = R.drawable.ic_github,
|
icon = R.drawable.ic_github,
|
||||||
onClick = {
|
onClick = {
|
||||||
val dialogView = layoutInflater.inflate(R.layout.dialog_user_agent, null)
|
val dialogView = DialogUserAgentBinding.inflate(layoutInflater)
|
||||||
val editText =
|
val editText = dialogView.userAgentTextBox.apply {
|
||||||
dialogView.findViewById<TextInputEditText>(R.id.userAgentTextBox).apply {
|
|
||||||
hint = getString(R.string.anime_add_repository)
|
hint = getString(R.string.anime_add_repository)
|
||||||
}
|
}
|
||||||
val alertDialog = AlertDialog.Builder(context, R.style.MyPopup)
|
val alertDialog = AlertDialog.Builder(context, R.style.MyPopup)
|
||||||
.setTitle(R.string.anime_add_repository).setView(dialogView)
|
.setTitle(R.string.anime_add_repository).setView(dialogView.root)
|
||||||
.setPositiveButton(getString(R.string.ok)) { dialog, _ ->
|
.setPositiveButton(getString(R.string.ok)) { dialog, _ ->
|
||||||
if (!editText.text.isNullOrBlank()) processUserInput(
|
if (!editText.text.isNullOrBlank()) processUserInput(
|
||||||
editText.text.toString(),
|
editText.text.toString(),
|
||||||
|
@ -183,8 +182,8 @@ class SettingsExtensionsActivity: AppCompatActivity() {
|
||||||
alertDialog.show()
|
alertDialog.show()
|
||||||
alertDialog.window?.setDimAmount(0.8f)
|
alertDialog.window?.setDimAmount(0.8f)
|
||||||
},
|
},
|
||||||
attach = { view ->
|
attach = {
|
||||||
setExtensionOutput(view, MediaType.ANIME)
|
setExtensionOutput(it.attachView, MediaType.ANIME)
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Settings(
|
Settings(
|
||||||
|
@ -193,13 +192,12 @@ class SettingsExtensionsActivity: AppCompatActivity() {
|
||||||
desc = getString(R.string.manga_add_repository),
|
desc = getString(R.string.manga_add_repository),
|
||||||
icon = R.drawable.ic_github,
|
icon = R.drawable.ic_github,
|
||||||
onClick = {
|
onClick = {
|
||||||
val dialogView = layoutInflater.inflate(R.layout.dialog_user_agent, null)
|
val dialogView = DialogUserAgentBinding.inflate(layoutInflater)
|
||||||
val editText =
|
val editText = dialogView.userAgentTextBox.apply {
|
||||||
dialogView.findViewById<TextInputEditText>(R.id.userAgentTextBox).apply {
|
|
||||||
hint = getString(R.string.manga_add_repository)
|
hint = getString(R.string.manga_add_repository)
|
||||||
}
|
}
|
||||||
val alertDialog = AlertDialog.Builder(context, R.style.MyPopup)
|
val alertDialog = AlertDialog.Builder(context, R.style.MyPopup)
|
||||||
.setTitle(R.string.manga_add_repository).setView(dialogView)
|
.setTitle(R.string.manga_add_repository).setView(dialogView.root)
|
||||||
.setPositiveButton(getString(R.string.ok)) { dialog, _ ->
|
.setPositiveButton(getString(R.string.ok)) { dialog, _ ->
|
||||||
if (!editText.text.isNullOrBlank()) processUserInput(
|
if (!editText.text.isNullOrBlank()) processUserInput(
|
||||||
editText.text.toString(),
|
editText.text.toString(),
|
||||||
|
@ -215,8 +213,8 @@ class SettingsExtensionsActivity: AppCompatActivity() {
|
||||||
alertDialog.show()
|
alertDialog.show()
|
||||||
alertDialog.window?.setDimAmount(0.8f)
|
alertDialog.window?.setDimAmount(0.8f)
|
||||||
},
|
},
|
||||||
attach = { view ->
|
attach = {
|
||||||
setExtensionOutput(view, MediaType.MANGA)
|
setExtensionOutput(it.attachView, MediaType.MANGA)
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Settings(
|
Settings(
|
||||||
|
|
|
@ -123,7 +123,7 @@ class SettingsMangaActivity: AppCompatActivity(){
|
||||||
isChecked = PrefManager.getVal(PrefName.IncludeMangaList),
|
isChecked = PrefManager.getVal(PrefName.IncludeMangaList),
|
||||||
switch = {isChecked, _ ->
|
switch = {isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.IncludeMangaList, isChecked)
|
PrefManager.setVal(PrefName.IncludeMangaList, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package ani.dantotsu.settings
|
package ani.dantotsu.settings
|
||||||
|
|
||||||
|
import android.content.ComponentName
|
||||||
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
|
import androidx.activity.addCallback
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.updateLayoutParams
|
import androidx.core.view.updateLayoutParams
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
@ -37,8 +40,21 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
topMargin = statusBarHeight
|
topMargin = statusBarHeight
|
||||||
bottomMargin = navBarHeight
|
bottomMargin = navBarHeight
|
||||||
}
|
}
|
||||||
themeSettingsBack.setOnClickListener { onBackPressedDispatcher.onBackPressed() }
|
onBackPressedDispatcher.addCallback(context) {
|
||||||
|
val mainIntent = Intent.makeRestartActivityTask(
|
||||||
|
packageManager.getLaunchIntentForPackage(packageName)!!.component
|
||||||
|
)
|
||||||
|
val component = ComponentName(packageName, SettingsActivity::class.qualifiedName!!)
|
||||||
|
try {
|
||||||
|
startActivity(Intent().setComponent(component))
|
||||||
|
} catch (anything: Exception) {
|
||||||
|
startActivity(mainIntent)
|
||||||
|
}
|
||||||
|
finishAndRemoveTask()
|
||||||
|
}
|
||||||
|
themeSettingsBack.setOnClickListener {
|
||||||
|
onBackPressedDispatcher.onBackPressed()
|
||||||
|
}
|
||||||
var previous: View = when (PrefManager.getVal<Int>(PrefName.DarkMode)) {
|
var previous: View = when (PrefManager.getVal<Int>(PrefName.DarkMode)) {
|
||||||
0 -> settingsUiAuto
|
0 -> settingsUiAuto
|
||||||
1 -> settingsUiLight
|
1 -> settingsUiLight
|
||||||
|
@ -87,7 +103,7 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
ThemeManager.Companion.Theme.entries[i].theme
|
ThemeManager.Companion.Theme.entries[i].theme
|
||||||
)
|
)
|
||||||
clearFocus()
|
clearFocus()
|
||||||
restartApp(binding.root)
|
reload()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,7 +117,7 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
isChecked = PrefManager.getVal(PrefName.UseOLED),
|
isChecked = PrefManager.getVal(PrefName.UseOLED),
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.UseOLED, isChecked)
|
PrefManager.setVal(PrefName.UseOLED, isChecked)
|
||||||
restartApp(binding.root)
|
reload()
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
Settings(
|
Settings(
|
||||||
|
@ -113,7 +129,7 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.UseMaterialYou, isChecked)
|
PrefManager.setVal(PrefName.UseMaterialYou, isChecked)
|
||||||
if (isChecked) PrefManager.setVal(PrefName.UseCustomTheme, false)
|
if (isChecked) PrefManager.setVal(PrefName.UseCustomTheme, false)
|
||||||
restartApp(binding.root)
|
reload()
|
||||||
},
|
},
|
||||||
isVisible = Build.VERSION.SDK_INT > Build.VERSION_CODES.R
|
isVisible = Build.VERSION.SDK_INT > Build.VERSION_CODES.R
|
||||||
),
|
),
|
||||||
|
@ -125,7 +141,6 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
isChecked = PrefManager.getVal(PrefName.UseSourceTheme),
|
isChecked = PrefManager.getVal(PrefName.UseSourceTheme),
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.UseSourceTheme, isChecked)
|
PrefManager.setVal(PrefName.UseSourceTheme, isChecked)
|
||||||
restartApp(binding.root)
|
|
||||||
},
|
},
|
||||||
isVisible = Build.VERSION.SDK_INT > Build.VERSION_CODES.R
|
isVisible = Build.VERSION.SDK_INT > Build.VERSION_CODES.R
|
||||||
),
|
),
|
||||||
|
@ -138,7 +153,7 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
switch = { isChecked, _ ->
|
switch = { isChecked, _ ->
|
||||||
PrefManager.setVal(PrefName.UseCustomTheme, isChecked)
|
PrefManager.setVal(PrefName.UseCustomTheme, isChecked)
|
||||||
if (isChecked) PrefManager.setVal(PrefName.UseMaterialYou, false)
|
if (isChecked) PrefManager.setVal(PrefName.UseMaterialYou, false)
|
||||||
restartApp(binding.root)
|
reload()
|
||||||
},
|
},
|
||||||
isVisible = Build.VERSION.SDK_INT > Build.VERSION_CODES.R
|
isVisible = Build.VERSION.SDK_INT > Build.VERSION_CODES.R
|
||||||
),
|
),
|
||||||
|
@ -151,7 +166,7 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
val originalColor: Int = PrefManager.getVal(PrefName.CustomThemeInt)
|
val originalColor: Int = PrefManager.getVal(PrefName.CustomThemeInt)
|
||||||
class CustomColorDialog : SimpleColorDialog() {
|
class CustomColorDialog : SimpleColorDialog() {
|
||||||
override fun onPositiveButtonClick() {
|
override fun onPositiveButtonClick() {
|
||||||
restartApp(binding.root)
|
reload()
|
||||||
super.onPositiveButtonClick()
|
super.onPositiveButtonClick()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -183,4 +198,9 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
fun reload(){
|
||||||
|
PrefManager.setCustomVal("reload", true)
|
||||||
|
restartApp()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -48,7 +48,7 @@ class UserInterfaceSettingsActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
setPositiveButton("Done") { _, _ ->
|
setPositiveButton("Done") { _, _ ->
|
||||||
PrefManager.setVal(PrefName.HomeLayoutShow, set)
|
PrefManager.setVal(PrefName.HomeLayoutShow, set)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
}.show()
|
}.show()
|
||||||
dialog.window?.setDimAmount(0.8f)
|
dialog.window?.setDimAmount(0.8f)
|
||||||
|
@ -57,24 +57,24 @@ class UserInterfaceSettingsActivity : AppCompatActivity() {
|
||||||
binding.uiSettingsSmallView.isChecked = PrefManager.getVal(PrefName.SmallView)
|
binding.uiSettingsSmallView.isChecked = PrefManager.getVal(PrefName.SmallView)
|
||||||
binding.uiSettingsSmallView.setOnCheckedChangeListener { _, isChecked ->
|
binding.uiSettingsSmallView.setOnCheckedChangeListener { _, isChecked ->
|
||||||
PrefManager.setVal(PrefName.SmallView, isChecked)
|
PrefManager.setVal(PrefName.SmallView, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.uiSettingsImmersive.isChecked = PrefManager.getVal(PrefName.ImmersiveMode)
|
binding.uiSettingsImmersive.isChecked = PrefManager.getVal(PrefName.ImmersiveMode)
|
||||||
binding.uiSettingsImmersive.setOnCheckedChangeListener { _, isChecked ->
|
binding.uiSettingsImmersive.setOnCheckedChangeListener { _, isChecked ->
|
||||||
PrefManager.setVal(PrefName.ImmersiveMode, isChecked)
|
PrefManager.setVal(PrefName.ImmersiveMode, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
binding.uiSettingsBannerAnimation.isChecked = PrefManager.getVal(PrefName.BannerAnimations)
|
binding.uiSettingsBannerAnimation.isChecked = PrefManager.getVal(PrefName.BannerAnimations)
|
||||||
binding.uiSettingsBannerAnimation.setOnCheckedChangeListener { _, isChecked ->
|
binding.uiSettingsBannerAnimation.setOnCheckedChangeListener { _, isChecked ->
|
||||||
PrefManager.setVal(PrefName.BannerAnimations, isChecked)
|
PrefManager.setVal(PrefName.BannerAnimations, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.uiSettingsLayoutAnimation.isChecked = PrefManager.getVal(PrefName.LayoutAnimations)
|
binding.uiSettingsLayoutAnimation.isChecked = PrefManager.getVal(PrefName.LayoutAnimations)
|
||||||
binding.uiSettingsLayoutAnimation.setOnCheckedChangeListener { _, isChecked ->
|
binding.uiSettingsLayoutAnimation.setOnCheckedChangeListener { _, isChecked ->
|
||||||
PrefManager.setVal(PrefName.LayoutAnimations, isChecked)
|
PrefManager.setVal(PrefName.LayoutAnimations, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.uiSettingsTrendingScroller.isChecked = PrefManager.getVal(PrefName.TrendingScroller)
|
binding.uiSettingsTrendingScroller.isChecked = PrefManager.getVal(PrefName.TrendingScroller)
|
||||||
|
@ -98,22 +98,22 @@ class UserInterfaceSettingsActivity : AppCompatActivity() {
|
||||||
mapReverse[PrefManager.getVal(PrefName.AnimationSpeed)] ?: 1f
|
mapReverse[PrefManager.getVal(PrefName.AnimationSpeed)] ?: 1f
|
||||||
binding.uiSettingsAnimationSpeed.addOnChangeListener { _, value, _ ->
|
binding.uiSettingsAnimationSpeed.addOnChangeListener { _, value, _ ->
|
||||||
PrefManager.setVal(PrefName.AnimationSpeed, map[value] ?: 1f)
|
PrefManager.setVal(PrefName.AnimationSpeed, map[value] ?: 1f)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
binding.uiSettingsBlurBanners.isChecked = PrefManager.getVal(PrefName.BlurBanners)
|
binding.uiSettingsBlurBanners.isChecked = PrefManager.getVal(PrefName.BlurBanners)
|
||||||
binding.uiSettingsBlurBanners.setOnCheckedChangeListener { _, isChecked ->
|
binding.uiSettingsBlurBanners.setOnCheckedChangeListener { _, isChecked ->
|
||||||
PrefManager.setVal(PrefName.BlurBanners, isChecked)
|
PrefManager.setVal(PrefName.BlurBanners, isChecked)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
binding.uiSettingsBlurRadius.value = (PrefManager.getVal(PrefName.BlurRadius) as Float)
|
binding.uiSettingsBlurRadius.value = (PrefManager.getVal(PrefName.BlurRadius) as Float)
|
||||||
binding.uiSettingsBlurRadius.addOnChangeListener { _, value, _ ->
|
binding.uiSettingsBlurRadius.addOnChangeListener { _, value, _ ->
|
||||||
PrefManager.setVal(PrefName.BlurRadius, value)
|
PrefManager.setVal(PrefName.BlurRadius, value)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
binding.uiSettingsBlurSampling.value = (PrefManager.getVal(PrefName.BlurSampling) as Float)
|
binding.uiSettingsBlurSampling.value = (PrefManager.getVal(PrefName.BlurSampling) as Float)
|
||||||
binding.uiSettingsBlurSampling.addOnChangeListener { _, value, _ ->
|
binding.uiSettingsBlurSampling.addOnChangeListener { _, value, _ ->
|
||||||
PrefManager.setVal(PrefName.BlurSampling, value)
|
PrefManager.setVal(PrefName.BlurSampling, value)
|
||||||
restartApp(binding.root)
|
restartApp()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,17 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:orientation="vertical">
|
android:orientation="horizontal">
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="3dp"
|
||||||
|
android:alpha="0.7"
|
||||||
|
android:fontFamily="@font/poppins_bold"
|
||||||
|
android:text="•"
|
||||||
|
android:textSize="16sp"
|
||||||
|
tools:ignore="HardcodedText,RtlSymmetry" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/repositoryItem"
|
android:id="@+id/repositoryItem"
|
||||||
|
@ -12,8 +21,8 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
|
android:layout_gravity="center"
|
||||||
android:alpha="0.66"
|
android:alpha="0.66"
|
||||||
android:textAlignment="viewStart"
|
|
||||||
android:textColor="?attr/colorOnBackground"
|
android:textColor="?attr/colorOnBackground"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
tools:text="xyz repo"/>
|
tools:text="xyz repo"/>
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
android:gravity="center_vertical|start"
|
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/settingsIcon"
|
android:id="@+id/settingsIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="24dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="top"
|
||||||
android:layout_marginVertical="24dp"
|
android:layout_marginVertical="24dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
app:srcCompat="@drawable/ic_circle_add"
|
app:srcCompat="@drawable/ic_circle_add"
|
||||||
|
@ -43,23 +43,26 @@
|
||||||
android:fontFamily="@font/poppins_semi_bold"
|
android:fontFamily="@font/poppins_semi_bold"
|
||||||
android:text="@string/slogan"
|
android:text="@string/slogan"
|
||||||
android:textColor="?attr/colorOnSurfaceVariant" />
|
android:textColor="?attr/colorOnSurfaceVariant" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/attachView"
|
android:id="@+id/attachView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="4dp"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:ignore="RtlSymmetry" />
|
tools:ignore="RtlSymmetry" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/settingsIconRight"
|
android:id="@+id/settingsIconRight"
|
||||||
android:layout_width="24dp"
|
android:layout_width="24dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginVertical="24dp"
|
||||||
|
android:rotation="180"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:visibility="visible"
|
|
||||||
app:srcCompat="@drawable/ic_round_arrow_back_ios_new_24"
|
app:srcCompat="@drawable/ic_round_arrow_back_ios_new_24"
|
||||||
app:tint="?attr/colorPrimary"
|
app:tint="?attr/colorPrimary"
|
||||||
android:rotation="180"
|
tools:ignore="ContentDescription"
|
||||||
tools:ignore="ContentDescription" />
|
tools:visibility="visible" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
android:gravity="center_vertical|start"
|
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/settingsIcon"
|
android:id="@+id/settingsIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="24dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="top"
|
||||||
android:layout_marginVertical="24dp"
|
android:layout_marginVertical="24dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
app:srcCompat="@drawable/ic_circle_add"
|
app:srcCompat="@drawable/ic_circle_add"
|
||||||
|
@ -33,9 +33,9 @@
|
||||||
android:elegantTextHeight="true"
|
android:elegantTextHeight="true"
|
||||||
android:fontFamily="@font/poppins_bold"
|
android:fontFamily="@font/poppins_bold"
|
||||||
android:text="@string/name"
|
android:text="@string/name"
|
||||||
android:textSize="16sp"
|
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
android:textColor="?attr/colorOnBackground"
|
android:textColor="?attr/colorOnBackground"
|
||||||
|
android:textSize="16sp"
|
||||||
app:cornerRadius="0dp"
|
app:cornerRadius="0dp"
|
||||||
app:drawableTint="?attr/colorPrimary"
|
app:drawableTint="?attr/colorPrimary"
|
||||||
app:showText="false"
|
app:showText="false"
|
||||||
|
|
|
@ -377,7 +377,7 @@
|
||||||
<string name="search_source_list">Search next available source</string>
|
<string name="search_source_list">Search next available source</string>
|
||||||
<string name="timestamp_proxy_desc">Useful if you are getting Handshake Fails</string>
|
<string name="timestamp_proxy_desc">Useful if you are getting Handshake Fails</string>
|
||||||
<string name="timestamp_proxy">Use Proxy for Timestamps</string>
|
<string name="timestamp_proxy">Use Proxy for Timestamps</string>
|
||||||
<string name="check_app_updates">Always check for App Updates</string>
|
<string name="check_app_updates">Check for Updates</string>
|
||||||
<string name="author">Author</string>
|
<string name="author">Author</string>
|
||||||
<string name="forks">Versions</string>
|
<string name="forks">Versions</string>
|
||||||
<string name="faq">FAQ</string>
|
<string name="faq">FAQ</string>
|
||||||
|
@ -716,7 +716,7 @@
|
||||||
<string name="purge_manga_downloads">Delete all Manga Downloads</string>
|
<string name="purge_manga_downloads">Delete all Manga Downloads</string>
|
||||||
<string name="purge_novel_downloads">Delete all Novel Downloads</string>
|
<string name="purge_novel_downloads">Delete all Novel Downloads</string>
|
||||||
<string name="requires_android_12">Requires Android 12+</string>
|
<string name="requires_android_12">Requires Android 12+</string>
|
||||||
<string name="share_username_in_crash_reports">Share username in crash reports</string>
|
<string name="share_username_in_crash_reports">Share username</string>
|
||||||
<string name="pinned_sources">Pinned Sources</string>
|
<string name="pinned_sources">Pinned Sources</string>
|
||||||
<string name="backup_restore">Backup and Restore</string>
|
<string name="backup_restore">Backup and Restore</string>
|
||||||
<string name="restore_settings">Import Settings</string>
|
<string name="restore_settings">Import Settings</string>
|
||||||
|
@ -903,4 +903,10 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
|
||||||
<string name="anime_desc">Choose how you watch</string>
|
<string name="anime_desc">Choose how you watch</string>
|
||||||
<string name="manga_desc">Choose how you read</string>
|
<string name="manga_desc">Choose how you read</string>
|
||||||
<string name="about_desc">Learn more about Dantotsu</string>
|
<string name="about_desc">Learn more about Dantotsu</string>
|
||||||
|
<string name="faq_desc">General questions about Dantotsu</string>
|
||||||
|
<string name="check_app_updates_desc">Check Github for app updates</string>
|
||||||
|
<string name="share_username_in_crash_reports_desc">Share username in crash reports</string>
|
||||||
|
<string name="devs_desc">Dantotsu\'s very own unpaid labours </string>
|
||||||
|
<string name="forks_desc">More like Dantotsu</string>
|
||||||
|
<string name="disclaimer_desc">Something to keep in mind</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue