Remove some dead code
This commit is contained in:
parent
86fe850794
commit
9d28def387
@ -4,8 +4,6 @@ import rx.Observable
|
|||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.subscriptions.CompositeSubscription
|
import rx.subscriptions.CompositeSubscription
|
||||||
|
|
||||||
fun Subscription?.isNullOrUnsubscribed() = this == null || isUnsubscribed
|
|
||||||
|
|
||||||
operator fun CompositeSubscription.plusAssign(subscription: Subscription) = add(subscription)
|
operator fun CompositeSubscription.plusAssign(subscription: Subscription) = add(subscription)
|
||||||
|
|
||||||
fun <T, U, R> Observable<T>.combineLatest(o2: Observable<U>, combineFn: (T, U) -> R): Observable<R> {
|
fun <T, U, R> Observable<T>.combineLatest(o2: Observable<U>, combineFn: (T, U) -> R): Observable<R> {
|
||||||
|
@ -24,7 +24,6 @@ import eu.kanade.tachiyomi.util.system.getResourceColor
|
|||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import eu.kanade.tachiyomi.widget.preference.AdaptiveTitlePreferenceCategory
|
import eu.kanade.tachiyomi.widget.preference.AdaptiveTitlePreferenceCategory
|
||||||
import eu.kanade.tachiyomi.widget.preference.IntListPreference
|
import eu.kanade.tachiyomi.widget.preference.IntListPreference
|
||||||
import eu.kanade.tachiyomi.widget.preference.SwitchPreferenceCategory
|
|
||||||
|
|
||||||
@DslMarker
|
@DslMarker
|
||||||
@Target(AnnotationTarget.TYPE)
|
@Target(AnnotationTarget.TYPE)
|
||||||
@ -53,10 +52,6 @@ inline fun PreferenceGroup.switchPreference(block: (@DSL SwitchPreferenceCompat)
|
|||||||
return initThenAdd(SwitchPreferenceCompat(context), block)
|
return initThenAdd(SwitchPreferenceCompat(context), block)
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun PreferenceGroup.switchPreferenceCategory(block: (@DSL SwitchPreferenceCategory).() -> Unit): SwitchPreferenceCategory {
|
|
||||||
return initThenAdd(SwitchPreferenceCategory(context), block)
|
|
||||||
}
|
|
||||||
|
|
||||||
inline fun PreferenceGroup.checkBoxPreference(block: (@DSL CheckBoxPreference).() -> Unit): CheckBoxPreference {
|
inline fun PreferenceGroup.checkBoxPreference(block: (@DSL CheckBoxPreference).() -> Unit): CheckBoxPreference {
|
||||||
return initThenAdd(CheckBoxPreference(context), block)
|
return initThenAdd(CheckBoxPreference(context), block)
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,6 @@ import androidx.compose.ui.platform.ViewCompositionStrategy
|
|||||||
import androidx.core.view.children
|
import androidx.core.view.children
|
||||||
import androidx.core.view.descendants
|
import androidx.core.view.descendants
|
||||||
import androidx.core.view.forEach
|
import androidx.core.view.forEach
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
|
||||||
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
|
||||||
import com.google.android.material.shape.MaterialShapeDrawable
|
import com.google.android.material.shape.MaterialShapeDrawable
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import eu.kanade.presentation.theme.TachiyomiTheme
|
import eu.kanade.presentation.theme.TachiyomiTheme
|
||||||
@ -174,42 +172,6 @@ inline fun View.popupMenu(
|
|||||||
return popup
|
return popup
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Shrink an ExtendedFloatingActionButton when the associated RecyclerView is scrolled down.
|
|
||||||
*
|
|
||||||
* @param recycler [RecyclerView] that the FAB should shrink/extend in response to.
|
|
||||||
*/
|
|
||||||
inline fun ExtendedFloatingActionButton.shrinkOnScroll(recycler: RecyclerView): RecyclerView.OnScrollListener {
|
|
||||||
val listener = object : RecyclerView.OnScrollListener() {
|
|
||||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
|
||||||
if (dy <= 0) {
|
|
||||||
extend()
|
|
||||||
} else {
|
|
||||||
shrink()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
recycler.addOnScrollListener(listener)
|
|
||||||
return listener
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Callback will be run immediately when no animation running
|
|
||||||
*/
|
|
||||||
fun RecyclerView.onAnimationsFinished(callback: (RecyclerView) -> Unit) = post(
|
|
||||||
object : Runnable {
|
|
||||||
override fun run() {
|
|
||||||
if (isAnimating) {
|
|
||||||
itemAnimator?.isRunning {
|
|
||||||
post(this)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
callback(this@onAnimationsFinished)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns this ViewGroup's first child of specified class
|
* Returns this ViewGroup's first child of specified class
|
||||||
*/
|
*/
|
||||||
|
@ -1,40 +1,15 @@
|
|||||||
package eu.kanade.tachiyomi.widget.materialdialogs
|
package eu.kanade.tachiyomi.widget.materialdialogs
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.inputmethod.InputMethodManager
|
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.content.getSystemService
|
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.widget.doAfterTextChanged
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import eu.kanade.tachiyomi.databinding.DialogStubQuadstatemultichoiceBinding
|
import eu.kanade.tachiyomi.databinding.DialogStubQuadstatemultichoiceBinding
|
||||||
import eu.kanade.tachiyomi.databinding.DialogStubTextinputBinding
|
|
||||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||||
import kotlin.coroutines.resume
|
import kotlin.coroutines.resume
|
||||||
|
|
||||||
fun MaterialAlertDialogBuilder.setTextInput(
|
|
||||||
hint: String? = null,
|
|
||||||
prefill: String? = null,
|
|
||||||
onTextChanged: (String) -> Unit,
|
|
||||||
): MaterialAlertDialogBuilder {
|
|
||||||
val binding = DialogStubTextinputBinding.inflate(LayoutInflater.from(context))
|
|
||||||
binding.textField.hint = hint
|
|
||||||
binding.textField.editText?.apply {
|
|
||||||
setText(prefill, TextView.BufferType.EDITABLE)
|
|
||||||
doAfterTextChanged {
|
|
||||||
onTextChanged(it?.toString() ?: "")
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
requestFocusFromTouch()
|
|
||||||
context.getSystemService<InputMethodManager>()?.showSoftInput(this, 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return setView(binding.root)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a list of items with checkboxes that supports 4 states.
|
* Sets a list of items with checkboxes that supports 4 states.
|
||||||
*
|
*
|
||||||
@ -79,7 +54,7 @@ suspend fun MaterialAlertDialogBuilder.await(
|
|||||||
@StringRes positiveLabelId: Int,
|
@StringRes positiveLabelId: Int,
|
||||||
@StringRes negativeLabelId: Int,
|
@StringRes negativeLabelId: Int,
|
||||||
@StringRes neutralLabelId: Int? = null,
|
@StringRes neutralLabelId: Int? = null,
|
||||||
) = suspendCancellableCoroutine<Int> { cont ->
|
) = suspendCancellableCoroutine { cont ->
|
||||||
setPositiveButton(positiveLabelId) { _, _ -> cont.resume(AlertDialog.BUTTON_POSITIVE) }
|
setPositiveButton(positiveLabelId) { _, _ -> cont.resume(AlertDialog.BUTTON_POSITIVE) }
|
||||||
setNegativeButton(negativeLabelId) { _, _ -> cont.resume(AlertDialog.BUTTON_NEGATIVE) }
|
setNegativeButton(negativeLabelId) { _, _ -> cont.resume(AlertDialog.BUTTON_NEGATIVE) }
|
||||||
if (neutralLabelId != null) {
|
if (neutralLabelId != null) {
|
||||||
|
@ -1,126 +0,0 @@
|
|||||||
package eu.kanade.tachiyomi.widget.preference
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.res.TypedArray
|
|
||||||
import android.util.AttributeSet
|
|
||||||
import android.view.View
|
|
||||||
import android.widget.Checkable
|
|
||||||
import android.widget.CompoundButton
|
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.appcompat.widget.SwitchCompat
|
|
||||||
import androidx.preference.PreferenceCategory
|
|
||||||
import androidx.preference.PreferenceViewHolder
|
|
||||||
import eu.kanade.tachiyomi.R
|
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
|
||||||
|
|
||||||
class SwitchPreferenceCategory @JvmOverloads constructor(
|
|
||||||
context: Context,
|
|
||||||
attrs: AttributeSet? = null,
|
|
||||||
) :
|
|
||||||
PreferenceCategory(
|
|
||||||
context,
|
|
||||||
attrs,
|
|
||||||
R.attr.switchPreferenceCompatStyle,
|
|
||||||
),
|
|
||||||
CompoundButton.OnCheckedChangeListener {
|
|
||||||
|
|
||||||
private var mChecked = false
|
|
||||||
|
|
||||||
private var mCheckedSet = false
|
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: PreferenceViewHolder) {
|
|
||||||
super.onBindViewHolder(holder)
|
|
||||||
val titleView = holder.findViewById(android.R.id.title) as TextView
|
|
||||||
titleView.setTextColor(context.getResourceColor(R.attr.colorAccent))
|
|
||||||
syncSwitchView(holder)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun syncSwitchView(holder: PreferenceViewHolder) {
|
|
||||||
val switchView = holder.findViewById(R.id.switchWidget)
|
|
||||||
syncSwitchView(switchView)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun syncSwitchView(view: View) {
|
|
||||||
if (view is Checkable) {
|
|
||||||
val isChecked = view.isChecked
|
|
||||||
if (isChecked == mChecked) return
|
|
||||||
|
|
||||||
if (view is SwitchCompat) {
|
|
||||||
view.setOnCheckedChangeListener(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
view.toggle()
|
|
||||||
|
|
||||||
if (view is SwitchCompat) {
|
|
||||||
view.setOnCheckedChangeListener(this)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
|
|
||||||
if (!callChangeListener(isChecked)) {
|
|
||||||
buttonView.isChecked = !isChecked
|
|
||||||
} else {
|
|
||||||
setChecked(isChecked)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onClick() {
|
|
||||||
super.onClick()
|
|
||||||
|
|
||||||
val newValue = !isChecked()
|
|
||||||
if (callChangeListener(newValue)) {
|
|
||||||
setChecked(newValue)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the checked state and saves it to the [SharedPreferences].
|
|
||||||
*
|
|
||||||
* @param checked The checked state.
|
|
||||||
*/
|
|
||||||
fun setChecked(checked: Boolean) {
|
|
||||||
// Always persist/notify the first time; don't assume the field's default of false.
|
|
||||||
val changed = mChecked != checked
|
|
||||||
if (changed || !mCheckedSet) {
|
|
||||||
mChecked = checked
|
|
||||||
mCheckedSet = true
|
|
||||||
persistBoolean(checked)
|
|
||||||
if (changed) {
|
|
||||||
notifyDependencyChange(shouldDisableDependents())
|
|
||||||
notifyChanged()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the checked state.
|
|
||||||
*
|
|
||||||
* @return The checked state.
|
|
||||||
*/
|
|
||||||
fun isChecked(): Boolean {
|
|
||||||
return mChecked
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun isEnabled(): Boolean {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun shouldDisableDependents(): Boolean {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onGetDefaultValue(a: TypedArray, index: Int): Any {
|
|
||||||
return a.getBoolean(index, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSetInitialValue(restoreValue: Boolean, defaultValue: Any?) {
|
|
||||||
setChecked(
|
|
||||||
if (restoreValue) {
|
|
||||||
getPersistedBoolean(mChecked)
|
|
||||||
} else {
|
|
||||||
defaultValue as Boolean
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user