Fix clear db crashing

This commit is contained in:
Jobobby04 2021-09-26 14:21:53 -04:00
parent f2caa59ec9
commit 7097363f26

View File

@ -6,14 +6,10 @@ import android.content.ActivityNotFoundException
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import androidx.core.view.setMargins
import androidx.preference.PreferenceScreen import androidx.preference.PreferenceScreen
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
@ -50,7 +46,6 @@ import eu.kanade.tachiyomi.util.preference.switchPreference
import eu.kanade.tachiyomi.util.preference.titleRes import eu.kanade.tachiyomi.util.preference.titleRes
import eu.kanade.tachiyomi.util.storage.DiskUtil import eu.kanade.tachiyomi.util.storage.DiskUtil
import eu.kanade.tachiyomi.util.system.MiuiUtil import eu.kanade.tachiyomi.util.system.MiuiUtil
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.isPackageInstalled import eu.kanade.tachiyomi.util.system.isPackageInstalled
import eu.kanade.tachiyomi.util.system.isTablet import eu.kanade.tachiyomi.util.system.isTablet
import eu.kanade.tachiyomi.util.system.powerManager import eu.kanade.tachiyomi.util.system.powerManager
@ -497,41 +492,26 @@ class SettingsAdvancedController : SettingsController() {
class ClearDatabaseDialogController : DialogController() { class ClearDatabaseDialogController : DialogController() {
override fun onCreateDialog(savedViewState: Bundle?): Dialog { override fun onCreateDialog(savedViewState: Bundle?): Dialog {
val item = arrayOf( val item = arrayOf(
activity!!.getString(R.string.clear_database_confirmation),
activity!!.getString(R.string.clear_db_exclude_read) activity!!.getString(R.string.clear_db_exclude_read)
) )
val selected = booleanArrayOf(true) val selected = booleanArrayOf(true, true)
return MaterialAlertDialogBuilder(activity!!) return MaterialAlertDialogBuilder(activity!!)
// .setMessage(R.string.clear_database_confirmation) // .setMessage(R.string.clear_database_confirmation)
// SY --> // SY -->
.setMultiChoiceItems(item, selected) { _, _, isChecked -> .setMultiChoiceItems(item, selected) { _, which, checked ->
selected[0] = isChecked if (which == 0) {
(dialog as AlertDialog).listView.setItemChecked(which, true)
} else {
selected[which] = checked
}
} }
// SY <-- // SY <--
.setPositiveButton(android.R.string.ok) { _, _ -> .setPositiveButton(android.R.string.ok) { _, _ ->
(targetController as? SettingsAdvancedController)?.clearDatabase(selected.first()) (targetController as? SettingsAdvancedController)?.clearDatabase(selected.last())
} }
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.create().apply { .create()
LinearLayout(this.context).apply {
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
TextView(this.context).apply {
layoutParams = LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
).apply {
setMargins(8.dpToPx)
}
setText(R.string.clear_database_confirmation)
isClickable = false
isFocusable = false
}.let(this::addView)
isClickable = false
isFocusable = false
}.let(listView::addFooterView)
}
} }
} }