mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-13 04:28:55 +01:00
Replace some listeners with flowbindings
This commit is contained in:
@@ -12,6 +12,12 @@ import kotlinx.android.synthetic.main.download_custom_amount.view.btn_decrease_1
|
||||
import kotlinx.android.synthetic.main.download_custom_amount.view.btn_increase
|
||||
import kotlinx.android.synthetic.main.download_custom_amount.view.btn_increase_10
|
||||
import kotlinx.android.synthetic.main.download_custom_amount.view.myNumber
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import reactivecircus.flowbinding.android.widget.textChanges
|
||||
import timber.log.Timber
|
||||
|
||||
/**
|
||||
@@ -20,6 +26,8 @@ import timber.log.Timber
|
||||
class DialogCustomDownloadView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||
LinearLayout(context, attrs) {
|
||||
|
||||
private val scope = CoroutineScope(Job() + Dispatchers.Main)
|
||||
|
||||
/**
|
||||
* Current amount of custom download chooser.
|
||||
*/
|
||||
@@ -73,16 +81,16 @@ class DialogCustomDownloadView @JvmOverloads constructor(context: Context, attrs
|
||||
}
|
||||
|
||||
// When user inputs custom number set amount equal to input.
|
||||
myNumber.addTextChangedListener(object : SimpleTextWatcher() {
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
||||
myNumber.textChanges()
|
||||
.onEach {
|
||||
try {
|
||||
amount = getAmount(Integer.parseInt(s.toString()))
|
||||
amount = getAmount(Integer.parseInt(it.toString()))
|
||||
} catch (error: NumberFormatException) {
|
||||
// Catch NumberFormatException to prevent parse exception when input is empty.
|
||||
Timber.e(error)
|
||||
}
|
||||
}
|
||||
})
|
||||
.launchIn(scope)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.content.Context
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
class PreCachingLayoutManager(context: Context) : LinearLayoutManager(context) {
|
||||
|
||||
init {
|
||||
isItemPrefetchEnabled = false
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val DEFAULT_EXTRA_LAYOUT_SPACE = 600
|
||||
}
|
||||
|
||||
var extraLayoutSpace = 0
|
||||
|
||||
override fun getExtraLayoutSpace(state: RecyclerView.State): Int {
|
||||
if (extraLayoutSpace > 0) {
|
||||
return extraLayoutSpace
|
||||
}
|
||||
return DEFAULT_EXTRA_LAYOUT_SPACE
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.widget.SeekBar
|
||||
|
||||
open class SimpleSeekBarListener : SeekBar.OnSeekBarChangeListener {
|
||||
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
|
||||
}
|
||||
|
||||
override fun onStartTrackingTouch(seekBar: SeekBar) {
|
||||
}
|
||||
|
||||
override fun onStopTrackingTouch(seekBar: SeekBar) {
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
|
||||
open class SimpleTextWatcher : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||
|
||||
override fun afterTextChanged(s: Editable) {}
|
||||
}
|
||||
@@ -13,7 +13,6 @@ import com.dd.processbutton.iml.ActionProcessButton
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
import eu.kanade.tachiyomi.widget.SimpleTextWatcher
|
||||
import kotlinx.android.synthetic.main.pref_account_login.view.login
|
||||
import kotlinx.android.synthetic.main.pref_account_login.view.password
|
||||
import kotlinx.android.synthetic.main.pref_account_login.view.show_password
|
||||
@@ -66,16 +65,6 @@ abstract class LoginDialogPreference(
|
||||
login.setOnClickListener { checkLogin() }
|
||||
|
||||
setCredentialsOnView(this)
|
||||
|
||||
show_password.isEnabled = password.text.isNullOrEmpty()
|
||||
|
||||
password.addTextChangedListener(object : SimpleTextWatcher() {
|
||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
|
||||
if (s.isEmpty()) {
|
||||
show_password.isEnabled = true
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user