pull/1284/head
parent
afd1a82259
commit
4066608c26
@ -1,67 +0,0 @@ |
|||||||
@file:Suppress("NOTHING_TO_INLINE", "unused") |
|
||||||
|
|
||||||
package io.legado.app.lib.dialogs |
|
||||||
|
|
||||||
import android.content.Context |
|
||||||
import android.content.DialogInterface |
|
||||||
import androidx.fragment.app.Fragment |
|
||||||
|
|
||||||
typealias AlertBuilderFactory<D> = (Context) -> AlertBuilder<D> |
|
||||||
|
|
||||||
inline fun <D : DialogInterface> Fragment.alert( |
|
||||||
noinline factory: AlertBuilderFactory<D>, |
|
||||||
title: String? = null, |
|
||||||
message: String? = null, |
|
||||||
noinline init: (AlertBuilder<D>.() -> Unit)? = null |
|
||||||
) = activity?.alert(factory, title, message, init) |
|
||||||
|
|
||||||
fun <D : DialogInterface> Context.alert( |
|
||||||
factory: AlertBuilderFactory<D>, |
|
||||||
title: String? = null, |
|
||||||
message: String? = null, |
|
||||||
init: (AlertBuilder<D>.() -> Unit)? = null |
|
||||||
): AlertBuilder<D> { |
|
||||||
return factory(this).apply { |
|
||||||
if (title != null) { |
|
||||||
this.setTitle(title) |
|
||||||
} |
|
||||||
if (message != null) { |
|
||||||
this.setMessage(message) |
|
||||||
} |
|
||||||
if (init != null) init() |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
inline fun <D : DialogInterface> Fragment.alert( |
|
||||||
noinline factory: AlertBuilderFactory<D>, |
|
||||||
titleResource: Int? = null, |
|
||||||
messageResource: Int? = null, |
|
||||||
noinline init: (AlertBuilder<D>.() -> Unit)? = null |
|
||||||
) = requireActivity().alert(factory, titleResource, messageResource, init) |
|
||||||
|
|
||||||
fun <D : DialogInterface> Context.alert( |
|
||||||
factory: AlertBuilderFactory<D>, |
|
||||||
titleResource: Int? = null, |
|
||||||
messageResource: Int? = null, |
|
||||||
init: (AlertBuilder<D>.() -> Unit)? = null |
|
||||||
): AlertBuilder<D> { |
|
||||||
return factory(this).apply { |
|
||||||
if (titleResource != null) { |
|
||||||
this.setTitle(titleResource) |
|
||||||
} |
|
||||||
if (messageResource != null) { |
|
||||||
this.setMessage(messageResource) |
|
||||||
} |
|
||||||
if (init != null) init() |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
inline fun <D : DialogInterface> Fragment.alert( |
|
||||||
noinline factory: AlertBuilderFactory<D>, |
|
||||||
noinline init: AlertBuilder<D>.() -> Unit |
|
||||||
) = requireActivity().alert(factory, init) |
|
||||||
|
|
||||||
fun <D : DialogInterface> Context.alert( |
|
||||||
factory: AlertBuilderFactory<D>, |
|
||||||
init: AlertBuilder<D>.() -> Unit |
|
||||||
): AlertBuilder<D> = factory(this).apply { init() } |
|
@ -0,0 +1,17 @@ |
|||||||
|
package io.legado.app.lib.dialogs |
||||||
|
|
||||||
|
import android.os.Parcelable |
||||||
|
import kotlinx.parcelize.Parcelize |
||||||
|
|
||||||
|
@Suppress("unused") |
||||||
|
@Parcelize |
||||||
|
data class SelectItem( |
||||||
|
val title: String, |
||||||
|
val id: Int |
||||||
|
) : Parcelable { |
||||||
|
|
||||||
|
override fun toString(): String { |
||||||
|
return title |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,29 +0,0 @@ |
|||||||
@file:Suppress("NOTHING_TO_INLINE", "unused") |
|
||||||
|
|
||||||
package io.legado.app.lib.dialogs |
|
||||||
|
|
||||||
import android.content.Context |
|
||||||
import android.content.DialogInterface |
|
||||||
import androidx.fragment.app.Fragment |
|
||||||
|
|
||||||
inline fun <D : DialogInterface> Fragment.selector( |
|
||||||
noinline factory: AlertBuilderFactory<D>, |
|
||||||
title: CharSequence? = null, |
|
||||||
items: List<CharSequence>, |
|
||||||
noinline onClick: (DialogInterface, CharSequence, Int) -> Unit |
|
||||||
) = requireActivity().selector(factory, title, items, onClick) |
|
||||||
|
|
||||||
fun <D : DialogInterface> Context.selector( |
|
||||||
factory: AlertBuilderFactory<D>, |
|
||||||
title: CharSequence? = null, |
|
||||||
items: List<CharSequence>, |
|
||||||
onClick: (DialogInterface, CharSequence, Int) -> Unit |
|
||||||
) { |
|
||||||
with(factory(this)) { |
|
||||||
if (title != null) { |
|
||||||
this.setTitle(title) |
|
||||||
} |
|
||||||
items(items, onClick) |
|
||||||
show() |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue