mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-14 22:30:30 +05:30
use material library inbuilts
This commit is contained in:
parent
6f3834fcef
commit
31fee99282
@ -1,38 +0,0 @@
|
|||||||
package com.github.libretube.ui.adapters
|
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.ViewGroup
|
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
|
||||||
import com.github.libretube.databinding.BackupRowBinding
|
|
||||||
|
|
||||||
class BackupOptionsAdapter(
|
|
||||||
private val options: List<Int>,
|
|
||||||
private val onChange: (position: Int, isChecked: Boolean) -> Unit
|
|
||||||
) : RecyclerView.Adapter<BackupOptionsViewHolder>() {
|
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BackupOptionsViewHolder {
|
|
||||||
val binding = BackupRowBinding.inflate(
|
|
||||||
LayoutInflater.from(parent.context),
|
|
||||||
parent,
|
|
||||||
false
|
|
||||||
)
|
|
||||||
return BackupOptionsViewHolder(binding)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getItemCount(): Int {
|
|
||||||
return options.size
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: BackupOptionsViewHolder, position: Int) {
|
|
||||||
holder.binding.apply {
|
|
||||||
title.text = root.context?.getString(options[position])
|
|
||||||
switchWidget.setOnCheckedChangeListener { _, isChecked ->
|
|
||||||
onChange.invoke(position, isChecked)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class BackupOptionsViewHolder(
|
|
||||||
val binding: BackupRowBinding
|
|
||||||
) : RecyclerView.ViewHolder(binding.root)
|
|
@ -3,25 +3,20 @@ package com.github.libretube.ui.dialogs
|
|||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.databinding.DialogBackupBinding
|
|
||||||
import com.github.libretube.db.DatabaseHolder.Companion.Database
|
import com.github.libretube.db.DatabaseHolder.Companion.Database
|
||||||
import com.github.libretube.obj.BackupFile
|
import com.github.libretube.obj.BackupFile
|
||||||
import com.github.libretube.obj.PreferenceItem
|
import com.github.libretube.obj.PreferenceItem
|
||||||
import com.github.libretube.ui.adapters.BackupOptionsAdapter
|
|
||||||
import com.github.libretube.util.PreferenceHelper
|
import com.github.libretube.util.PreferenceHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
class BackupDialog(
|
class BackupDialog(
|
||||||
private val createBackupFile: (BackupFile) -> Unit
|
private val createBackupFile: (BackupFile) -> Unit
|
||||||
) : DialogFragment() {
|
) : DialogFragment() {
|
||||||
private lateinit var binding: DialogBackupBinding
|
|
||||||
|
|
||||||
private val backupFile = BackupFile()
|
private val backupFile = BackupFile()
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
val backupOptions = listOf(
|
val backupOptionNames = listOf(
|
||||||
R.string.watch_history,
|
R.string.watch_history,
|
||||||
R.string.watch_positions,
|
R.string.watch_positions,
|
||||||
R.string.search_history,
|
R.string.search_history,
|
||||||
@ -30,18 +25,15 @@ class BackupDialog(
|
|||||||
R.string.preferences
|
R.string.preferences
|
||||||
)
|
)
|
||||||
|
|
||||||
val selected = MutableList(backupOptions.size) { false }
|
val backupItems = backupOptionNames.map { context?.getString(it)!! }.toTypedArray()
|
||||||
|
|
||||||
binding = DialogBackupBinding.inflate(layoutInflater)
|
val selected = BooleanArray(backupOptionNames.size) { false }
|
||||||
binding.backupOptionsRecycler.layoutManager = LinearLayoutManager(context)
|
|
||||||
binding.backupOptionsRecycler.adapter =
|
|
||||||
BackupOptionsAdapter(backupOptions) { position, isChecked ->
|
|
||||||
selected[position] = isChecked
|
|
||||||
}
|
|
||||||
|
|
||||||
return MaterialAlertDialogBuilder(requireContext())
|
return MaterialAlertDialogBuilder(requireContext())
|
||||||
.setTitle(R.string.backup)
|
.setTitle(R.string.backup)
|
||||||
.setView(binding.root)
|
.setMultiChoiceItems(backupItems, selected) { _, index, newValue ->
|
||||||
|
selected[index] = newValue
|
||||||
|
}
|
||||||
.setNegativeButton(R.string.cancel, null)
|
.setNegativeButton(R.string.cancel, null)
|
||||||
.setPositiveButton(R.string.backup) { _, _ ->
|
.setPositiveButton(R.string.backup) { _, _ ->
|
||||||
val thread = Thread {
|
val thread = Thread {
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:paddingHorizontal="30dp"
|
|
||||||
android:paddingVertical="5dp">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/title"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="5dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textSize="16sp" />
|
|
||||||
|
|
||||||
<com.google.android.material.materialswitch.MaterialSwitch
|
|
||||||
android:id="@+id/switchWidget"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/backupOptionsRecycler"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
Loading…
Reference in New Issue
Block a user