Remove dead code

Mostly from settings rewrite, but some other things too.

(cherry picked from commit 69cdba71eb)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/database/ClearDatabaseScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAppearanceController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBackupController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBrowseController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/database/ClearDatabasePresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/track/TrackLoginDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/materialdialogs/MaterialAlertDialogBuilderExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/preference/IntListPreference.kt
#	app/src/main/java/eu/kanade/tachiyomi/widget/preference/LoginDialogPreference.kt
#	app/src/main/res/drawable/ic_done_green_24dp.xml
#	app/src/main/res/layout/pref_account_login.xml
#	app/src/main/res/layout/pref_library_columns.xml
This commit is contained in:
arkon
2022-10-16 12:40:56 -04:00
committed by Jobobby04
parent a2f6b90547
commit 2144221250
64 changed files with 6 additions and 7416 deletions
@@ -1,57 +0,0 @@
package exh.widget.preference
import android.content.Context
import android.util.AttributeSet
import androidx.core.view.isVisible
import androidx.preference.Preference
import androidx.preference.PreferenceViewHolder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.PrefItemMangadexBinding
import eu.kanade.tachiyomi.source.online.all.MangaDex
import eu.kanade.tachiyomi.util.system.getResourceColor
class MangaDexLoginPreference @JvmOverloads constructor(
context: Context,
val source: MangaDex,
attrs: AttributeSet? = null,
) : Preference(context, attrs) {
init {
layoutResource = R.layout.pref_item_mangadex
}
var binding: PrefItemMangadexBinding? = null
private var onLoginClick: () -> Unit = {}
override fun onBindViewHolder(holder: PreferenceViewHolder) {
super.onBindViewHolder(holder)
binding = PrefItemMangadexBinding.bind(holder.itemView)
holder.itemView.setOnClickListener {
onLoginClick()
}
val loginFrame = binding?.loginFrame
val color = if (source.isLogged()) {
context.getResourceColor(R.attr.colorAccent)
} else {
context.getResourceColor(R.attr.colorSecondary)
}
binding?.login?.setImageResource(R.drawable.ic_outline_people_alt_24dp)
binding?.login?.drawable?.setTint(color)
loginFrame?.isVisible = true
loginFrame?.setOnClickListener {
onLoginClick()
}
}
fun setOnLoginClickListener(block: () -> Unit) {
onLoginClick = block
}
// Make method public
public override fun notifyChanged() {
super.notifyChanged()
}
}
@@ -1,158 +0,0 @@
package exh.widget.preference
import android.app.Dialog
import android.os.Bundle
import android.view.LayoutInflater
import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import com.bluelinelabs.conductor.ControllerChangeHandler
import com.bluelinelabs.conductor.ControllerChangeType
import com.dd.processbutton.iml.ActionProcessButton
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.domain.UnsortedPreferences
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.PrefSiteLoginTwoFactorAuthBinding
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.online.LoginSource
import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.util.lang.launchUI
import eu.kanade.tachiyomi.util.lang.withUIContext
import eu.kanade.tachiyomi.util.system.toast
import exh.log.xLogW
import exh.source.getMainSource
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
class MangadexLoginDialog(bundle: Bundle? = null) : DialogController(bundle) {
val source = Injekt.get<SourceManager>().get(args.getLong("key", 0))?.getMainSource() as LoginSource
val preferences: UnsortedPreferences by injectLazy()
val scope = CoroutineScope(Job() + Dispatchers.Main)
lateinit var binding: PrefSiteLoginTwoFactorAuthBinding
constructor(source: LoginSource) : this(
bundleOf(
"key" to source.id,
),
)
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
binding = PrefSiteLoginTwoFactorAuthBinding.inflate(LayoutInflater.from(activity!!))
onViewCreated()
return MaterialAlertDialogBuilder(activity!!)
.setView(binding.root)
.create()
}
fun onViewCreated() {
binding.login.setMode(ActionProcessButton.Mode.ENDLESS)
binding.login.setOnClickListener { checkLogin() }
setCredentialsOnView()
when (source.twoFactorAuth) {
LoginSource.AuthSupport.REQUIRED -> {
binding.twoFactorCheck.isVisible = false
binding.twoFactorHolder.isVisible = true
}
LoginSource.AuthSupport.SUPPORTED -> {
binding.twoFactorCheck.setOnCheckedChangeListener { _, isChecked ->
binding.twoFactorHolder.isVisible = isChecked
}
}
LoginSource.AuthSupport.NOT_SUPPORTED -> {
binding.twoFactorCheck.isVisible = false
binding.twoFactorHolder.isVisible = false
}
}
}
private fun setCredentialsOnView() {
binding.username.setText(source.getUsername())
binding.password.setText(source.getPassword())
}
private fun checkLogin() {
val username = binding.username.text?.toString()
val password = binding.password.text?.toString()
val twoFactor = binding.twoFactorEdit.text?.toString()
if (username.isNullOrBlank() || password.isNullOrBlank() || (binding.twoFactorCheck.isChecked && twoFactor.isNullOrBlank())) {
errorResult()
launchUI {
binding.root.context.toast(R.string.fields_cannot_be_blank)
}
return
}
binding.login.progress = 1
dialog?.setCancelable(false)
dialog?.setCanceledOnTouchOutside(false)
scope.launch {
try {
val result = source.login(
username,
password,
twoFactor.toString(),
)
if (result) {
dialog?.dismiss()
withUIContext {
binding.root.context.toast(R.string.login_success)
}
} else {
errorResult()
}
} catch (error: Exception) {
errorResult()
xLogW("Login to Mangadex error", error)
error.message?.let { launchUI { binding.root.context.toast(it) } }
}
}
}
private fun errorResult() {
with(binding) {
dialog?.setCancelable(true)
dialog?.setCanceledOnTouchOutside(true)
login.progress = -1
login.setText(R.string.unknown_error)
}
}
override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) {
super.onChangeStarted(handler, type)
if (!type.isEnter) {
onDialogClosed()
}
}
private fun onDialogClosed() {
scope.cancel()
if (activity != null) {
(activity as? Listener)?.siteLoginDialogClosed(source)
} else {
(targetController as? Listener)?.siteLoginDialogClosed(source)
}
}
override fun onDestroy() {
super.onDestroy()
scope.cancel()
}
interface Listener {
fun siteLoginDialogClosed(source: Source)
}
}
@@ -1,57 +0,0 @@
package exh.widget.preference
import android.app.Dialog
import android.os.Bundle
import androidx.core.os.bundleOf
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.online.LoginSource
import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.withUIContext
import eu.kanade.tachiyomi.util.system.toast
import exh.source.getMainSource
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
class MangadexLogoutDialog(bundle: Bundle? = null) : DialogController(bundle) {
val source = Injekt.get<SourceManager>().get(args.getLong("key", 0))?.getMainSource() as LoginSource
val trackManager: TrackManager by injectLazy()
constructor(source: Source) : this(
bundleOf(
"key" to source.id,
),
)
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
return MaterialAlertDialogBuilder(activity!!)
.setTitle(R.string.logout)
.setPositiveButton(R.string.logout) { _, _ ->
launchIO {
if (source.logout()) {
withUIContext {
activity?.toast(R.string.logout_success)
(targetController as? Listener)?.siteLogoutDialogClosed(source)
}
} else {
withUIContext {
activity?.toast(R.string.unknown_error)
}
}
}
}
.setNegativeButton(android.R.string.cancel, null)
.create()
}
interface Listener {
fun siteLogoutDialogClosed(source: Source)
}
}