SelectAppsDialog migrate to view binding

This commit is contained in:
HaliksaR 2020-11-16 00:30:51 +07:00
parent 83ac980ecc
commit 5f030608b0
2 changed files with 51 additions and 48 deletions

View File

@ -2,50 +2,57 @@ package com.vanced.manager.ui.dialogs
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.core.content.edit import androidx.core.content.edit
import androidx.databinding.DataBindingUtil import androidx.preference.PreferenceManager.*
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.vanced.manager.R import com.vanced.manager.R
import com.vanced.manager.adapter.SelectAppsAdapter import com.vanced.manager.adapter.SelectAppsAdapter
import com.vanced.manager.databinding.DialogSelectAppsBinding import com.vanced.manager.databinding.DialogSelectAppsBinding
import com.vanced.manager.ui.core.BindingBottomSheetDialogFragment
class SelectAppsDialog : BottomSheetDialogFragment() { class SelectAppsDialog : BindingBottomSheetDialogFragment<DialogSelectAppsBinding>() {
companion object {
fun newInstance(): SelectAppsDialog = SelectAppsDialog().apply {
arguments = Bundle()
}
}
private lateinit var binding: DialogSelectAppsBinding
private val prefs by lazy { getDefaultSharedPreferences(requireActivity()) } private val prefs by lazy { getDefaultSharedPreferences(requireActivity()) }
override fun onCreateView( override fun binding(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View? { ) = DialogSelectAppsBinding.inflate(inflater, container, false)
binding = DataBindingUtil.inflate(inflater, R.layout.dialog_select_apps, container, false)
return binding.root override fun otherSetups() {
bindData()
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { private fun bindData() {
super.onViewCreated(view, savedInstanceState) with(binding) {
val ad = SelectAppsAdapter(requireActivity()) val ad = SelectAppsAdapter(requireActivity())
binding.selectAppsRecycler.apply { selectAppsRecycler.apply {
layoutManager = LinearLayoutManager(requireActivity()) layoutManager = LinearLayoutManager(requireActivity())
adapter = ad adapter = ad
setHasFixedSize(true) setHasFixedSize(true)
} }
binding.selectAppsSave.setOnClickListener { selectAppsSave.setOnClickListener {
if (ad.apps.all { app -> !app.isChecked }) { if (ad.apps.all { app -> !app.isChecked }) {
Toast.makeText(requireActivity(), R.string.select_at_least_one_app, Toast.LENGTH_SHORT).show() Toast.makeText(requireActivity(), R.string.select_at_least_one_app, Toast.LENGTH_SHORT).show()
return@setOnClickListener return@setOnClickListener
} }
prefs.edit {
ad.apps.forEach { app -> ad.apps.forEach { app ->
prefs.edit { putBoolean("enable_${app.tag}", app.isChecked) } putBoolean("enable_${app.tag}", app.isChecked)
}
} }
dismiss() dismiss()
} }
} }
}
} }

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout> <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:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
style="@style/BottomDialogCard"> style="@style/BottomDialogCard">
@ -28,7 +27,4 @@
android:text="@string/save"/> android:text="@string/save"/>
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
</layout>