VancedLanguageSelectionDialog migrate to view binding
This commit is contained in:
parent
5f030608b0
commit
94d339732f
|
@ -4,70 +4,75 @@ import android.content.Context
|
|||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
|
||||
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
import android.view.ViewGroup.LayoutParams.*
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import com.google.android.material.checkbox.MaterialCheckBox
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.databinding.DialogVancedLanguageSelectionBinding
|
||||
import com.vanced.manager.ui.core.BindingBottomSheetDialogFragment
|
||||
import com.vanced.manager.utils.Extensions.show
|
||||
import com.vanced.manager.utils.InternetTools.vanced
|
||||
import com.vanced.manager.utils.LanguageHelper.getDefaultVancedLanguages
|
||||
import java.util.*
|
||||
|
||||
class VancedLanguageSelectionDialog : BottomSheetDialogFragment() {
|
||||
class VancedLanguageSelectionDialog : BindingBottomSheetDialogFragment<DialogVancedLanguageSelectionBinding>() {
|
||||
|
||||
companion object {
|
||||
|
||||
fun newInstance(): VancedLanguageSelectionDialog = VancedLanguageSelectionDialog().apply {
|
||||
arguments = Bundle()
|
||||
}
|
||||
}
|
||||
|
||||
private val langs = vanced.get()?.array<String>("langs")?.value
|
||||
private val prefs by lazy { requireActivity().getSharedPreferences("installPrefs", Context.MODE_PRIVATE) }
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
override fun binding(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
return inflater.inflate(R.layout.dialog_vanced_language_selection, container, false)
|
||||
) = DialogVancedLanguageSelectionBinding.inflate(inflater, container, false)
|
||||
|
||||
override fun otherSetups() {
|
||||
bindData()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
loadBoxes(view.findViewById(R.id.lang_button_ll))
|
||||
view.findViewById<MaterialButton>(R.id.vanced_install_finish).setOnClickListener {
|
||||
val chosenLangs = mutableListOf<String>()
|
||||
langs?.forEach { lang ->
|
||||
if (view.findViewWithTag<MaterialCheckBox>(lang).isChecked) {
|
||||
chosenLangs.add(lang)
|
||||
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)
|
||||
}
|
||||
}
|
||||
if (chosenLangs.isEmpty()) {
|
||||
Toast.makeText(requireActivity(), R.string.select_at_least_one_lang, Toast.LENGTH_SHORT).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
prefs?.edit { putString("lang", chosenLangs.joinToString()) }
|
||||
dismiss()
|
||||
}
|
||||
|
||||
if (chosenLangs.isEmpty()) {
|
||||
Toast.makeText(requireActivity(), R.string.select_at_least_one_lang, Toast.LENGTH_SHORT).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
prefs?.edit { putString("lang", chosenLangs.joinToString()) }
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadBoxes(ll: LinearLayout) {
|
||||
requireActivity().runOnUiThread {
|
||||
val langPrefs = prefs.getString("lang", getDefaultVancedLanguages())
|
||||
langs?.forEach { lang ->
|
||||
val loc = Locale(lang)
|
||||
val box: MaterialCheckBox = MaterialCheckBox(requireActivity()).apply {
|
||||
tag = lang
|
||||
isChecked = langPrefs?.contains(lang) ?: false
|
||||
text = loc.getDisplayLanguage(loc).capitalize(Locale.ROOT)
|
||||
textSize = 18F
|
||||
typeface = ResourcesCompat.getFont(requireActivity(), R.font.exo_bold)
|
||||
}
|
||||
ll.addView(box, MATCH_PARENT, WRAP_CONTENT)
|
||||
private fun LinearLayout.loadBoxes() {
|
||||
val langPrefs = prefs.getString("lang", getDefaultVancedLanguages())
|
||||
langs?.forEach { lang ->
|
||||
val loc = Locale(lang)
|
||||
val box: MaterialCheckBox = MaterialCheckBox(requireActivity()).apply {
|
||||
tag = lang
|
||||
isChecked = langPrefs?.contains(lang) ?: false
|
||||
text = loc.getDisplayLanguage(loc).capitalize(Locale.ROOT)
|
||||
textSize = 18F
|
||||
typeface = ResourcesCompat.getFont(requireActivity(), R.font.exo_bold)
|
||||
}
|
||||
addView(box, MATCH_PARENT, WRAP_CONTENT)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,5 +80,4 @@ class VancedLanguageSelectionDialog : BottomSheetDialogFragment() {
|
|||
super.onDismiss(dialog)
|
||||
VancedPreferencesDialog().show(requireActivity())
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
style="@style/BottomDialogCard"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
@ -14,7 +16,7 @@
|
|||
style="@style/BottomDialogCardTitle"
|
||||
android:text="@string/choose_preferred_language" />
|
||||
|
||||
<androidx.core.widget.NestedScrollView xmlns:tools="http://schemas.android.com/tools"
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="400dp"
|
||||
android:layout_marginTop="8dp"
|
||||
|
@ -25,17 +27,12 @@
|
|||
android:id="@+id/lang_button_ll"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
android:orientation="vertical"/>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/vanced_install_finish"
|
||||
style="@style/BottomDialogButtonStyle"
|
||||
android:text="@string/save" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</com.google.android.material.card.MaterialCardView>
|
Loading…
Reference in New Issue