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:
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user