2020-10-31 19:45:39 +00:00
|
|
|
package com.vanced.manager.ui.dialogs
|
2020-04-09 17:31:13 +00:00
|
|
|
|
2020-10-31 19:45:39 +00:00
|
|
|
import android.content.DialogInterface
|
2020-04-09 17:31:13 +00:00
|
|
|
import android.os.Bundle
|
|
|
|
import android.view.LayoutInflater
|
|
|
|
import android.view.ViewGroup
|
2020-11-23 16:00:41 +00:00
|
|
|
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
|
|
|
|
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
|
2020-08-02 16:16:55 +00:00
|
|
|
import android.widget.LinearLayout
|
2020-10-31 19:45:39 +00:00
|
|
|
import android.widget.Toast
|
2020-08-02 19:10:13 +00:00
|
|
|
import com.google.android.material.checkbox.MaterialCheckBox
|
2020-04-09 17:31:13 +00:00
|
|
|
import com.vanced.manager.R
|
2020-11-26 15:37:03 +00:00
|
|
|
import com.vanced.manager.core.ui.base.BindingBottomSheetDialogFragment
|
|
|
|
import com.vanced.manager.core.ui.ext.showDialog
|
2020-11-15 17:35:54 +00:00
|
|
|
import com.vanced.manager.databinding.DialogVancedLanguageSelectionBinding
|
2020-12-14 21:18:58 +00:00
|
|
|
import com.vanced.manager.ui.core.ThemedMaterialCheckbox
|
2021-01-24 18:17:19 +00:00
|
|
|
import com.vanced.manager.utils.installPrefs
|
|
|
|
import com.vanced.manager.utils.lang
|
2021-01-16 17:00:38 +00:00
|
|
|
import com.vanced.manager.utils.vanced
|
2020-08-02 16:16:55 +00:00
|
|
|
import java.util.*
|
2020-04-09 17:31:13 +00:00
|
|
|
|
2020-11-15 17:35:54 +00:00
|
|
|
class VancedLanguageSelectionDialog : BindingBottomSheetDialogFragment<DialogVancedLanguageSelectionBinding>() {
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
|
|
|
|
fun newInstance(): VancedLanguageSelectionDialog = VancedLanguageSelectionDialog().apply {
|
|
|
|
arguments = Bundle()
|
|
|
|
}
|
|
|
|
}
|
2020-04-19 17:21:40 +00:00
|
|
|
|
2020-12-16 13:21:45 +00:00
|
|
|
private val langs = vanced.value?.array<String>("langs")?.value
|
2021-01-24 18:17:19 +00:00
|
|
|
private val prefs by lazy { requireActivity().installPrefs }
|
2020-08-03 08:11:20 +00:00
|
|
|
|
2020-11-15 17:35:54 +00:00
|
|
|
override fun binding(
|
|
|
|
inflater: LayoutInflater,
|
|
|
|
container: ViewGroup?,
|
2020-04-09 17:31:13 +00:00
|
|
|
savedInstanceState: Bundle?
|
2020-11-15 17:35:54 +00:00
|
|
|
) = DialogVancedLanguageSelectionBinding.inflate(inflater, container, false)
|
|
|
|
|
|
|
|
override fun otherSetups() {
|
|
|
|
bindData()
|
2020-04-09 17:31:13 +00:00
|
|
|
}
|
|
|
|
|
2020-11-15 17:35:54 +00:00
|
|
|
private fun bindData() {
|
|
|
|
with(binding) {
|
|
|
|
langButtonLl.loadBoxes()
|
|
|
|
vancedInstallFinish.setOnClickListener {
|
|
|
|
val chosenLangs = mutableListOf<String>()
|
|
|
|
langs?.forEach { lang ->
|
|
|
|
if (root.findViewWithTag<MaterialCheckBox>(lang).isChecked) {
|
|
|
|
chosenLangs.add(lang)
|
|
|
|
}
|
2020-08-02 16:16:55 +00:00
|
|
|
}
|
2020-11-15 17:35:54 +00:00
|
|
|
if (chosenLangs.isEmpty()) {
|
|
|
|
Toast.makeText(requireActivity(), R.string.select_at_least_one_lang, Toast.LENGTH_SHORT).show()
|
|
|
|
return@setOnClickListener
|
|
|
|
}
|
2021-01-24 18:17:19 +00:00
|
|
|
prefs.lang = chosenLangs.joinToString()
|
2020-11-15 17:35:54 +00:00
|
|
|
dismiss()
|
2020-11-15 15:39:33 +00:00
|
|
|
}
|
2020-08-02 16:16:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-11-15 17:35:54 +00:00
|
|
|
private fun LinearLayout.loadBoxes() {
|
2021-01-24 18:17:19 +00:00
|
|
|
val langPrefs = prefs.lang
|
2020-11-15 17:35:54 +00:00
|
|
|
langs?.forEach { lang ->
|
|
|
|
val loc = Locale(lang)
|
2020-12-14 21:18:58 +00:00
|
|
|
val box = ThemedMaterialCheckbox(requireActivity()).apply {
|
2020-11-15 17:35:54 +00:00
|
|
|
tag = lang
|
|
|
|
isChecked = langPrefs?.contains(lang) ?: false
|
|
|
|
text = loc.getDisplayLanguage(loc).capitalize(Locale.ROOT)
|
|
|
|
textSize = 18F
|
2020-11-15 00:26:07 +00:00
|
|
|
}
|
2020-11-15 17:35:54 +00:00
|
|
|
addView(box, MATCH_PARENT, WRAP_CONTENT)
|
2020-08-09 15:28:56 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-10-31 19:45:39 +00:00
|
|
|
override fun onDismiss(dialog: DialogInterface) {
|
|
|
|
super.onDismiss(dialog)
|
2020-11-26 15:37:03 +00:00
|
|
|
showDialog(VancedPreferencesDialog())
|
2020-10-31 19:45:39 +00:00
|
|
|
}
|
2020-04-09 17:31:13 +00:00
|
|
|
}
|