Dantotsu/app/src/main/java/ani/dantotsu/settings/SettingsAboutActivity.kt
rebel onion 670d16bd8e
Addons (#368)
* feat: (wip) torrent

credit to kuukiyomi

* fix: extensions -> addons

* fix: unified loader

* feat: (wip) modularity

* fix: addon ui

* feat: addon install/uninstall

---------

Co-authored-by: aayush262 <aayushthakur262006@gmail.com>
2024-04-19 04:08:20 -05:00

137 lines
No EOL
6.1 KiB
Kotlin

package ani.dantotsu.settings
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updateLayoutParams
import androidx.recyclerview.widget.LinearLayoutManager
import ani.dantotsu.BuildConfig
import ani.dantotsu.R
import ani.dantotsu.databinding.ActivitySettingsAboutBinding
import ani.dantotsu.initActivity
import ani.dantotsu.navBarHeight
import ani.dantotsu.others.CustomBottomDialog
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.Logger
class SettingsAboutActivity : AppCompatActivity() {
private lateinit var binding: ActivitySettingsAboutBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
ThemeManager(this).applyTheme()
initActivity(this)
val context = this
binding = ActivitySettingsAboutBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.apply {
settingsAboutLayout.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = statusBarHeight
bottomMargin = navBarHeight
}
aboutSettingsBack.setOnClickListener { onBackPressedDispatcher.onBackPressed() }
settingsRecyclerView.adapter = SettingsAdapter(
arrayListOf(
Settings(
type = 1,
name = getString(R.string.faq),
desc = getString(R.string.faq_desc),
icon = R.drawable.ic_round_help_24,
onClick = {
startActivity(Intent(context, FAQActivity::class.java))
},
isActivity = true
),
Settings(
type = 2,
name = getString(R.string.check_app_updates),
desc = getString(R.string.check_app_updates_desc),
icon = R.drawable.ic_round_new_releases_24,
isChecked = PrefManager.getVal(PrefName.CheckUpdate),
switch = { isChecked, _ ->
PrefManager.setVal(PrefName.CheckUpdate, isChecked)
},
isVisible = !BuildConfig.FLAVOR.contains("fdroid")
),
Settings(
type = 2,
name = 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,
isChecked = PrefManager.getVal(PrefName.SharedUserID),
switch = { isChecked, _ ->
PrefManager.setVal(PrefName.SharedUserID, isChecked)
},
isVisible = !BuildConfig.FLAVOR.contains("fdroid")
),
Settings(
type = 2,
name = getString(R.string.log_to_file),
desc = getString(R.string.logging_warning),
icon = R.drawable.ic_round_edit_note_24,
isChecked = PrefManager.getVal(PrefName.LogToFile),
switch = { isChecked, _ ->
PrefManager.setVal(PrefName.LogToFile, isChecked)
restartApp()
},
attachToSwitch = {
it.settingsExtraIcon.visibility = View.VISIBLE
it.settingsExtraIcon.setImageResource(R.drawable.ic_round_share_24)
it.settingsExtraIcon.setOnClickListener {
Logger.shareLog(context)
}
}
),
Settings(
type = 1,
name = getString(R.string.devs),
desc= getString(R.string.devs_desc),
icon = R.drawable.ic_round_accessible_forward_24,
onClick = {
DevelopersDialogFragment().show(supportFragmentManager, "dialog")
}
),
Settings(
type = 1,
name = getString(R.string.forks),
desc = getString(R.string.forks_desc),
icon = R.drawable.ic_round_restaurant_24,
onClick = {
ForksDialogFragment().show(supportFragmentManager, "dialog")
}
),
Settings(
type = 1,
name = getString(R.string.disclaimer),
desc = getString(R.string.disclaimer_desc),
icon = R.drawable.ic_round_info_24,
onClick = {
val text = TextView(context)
text.setText(R.string.full_disclaimer)
CustomBottomDialog.newInstance().apply {
setTitleText(context.getString(R.string.disclaimer))
addView(text)
setNegativeButton(context.getString(R.string.close)) {
dismiss()
}
show(supportFragmentManager, "dialog")
}
}
),
)
)
binding.settingsRecyclerView.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
}
}
}