Fix shareLogs() is canceled on early dismiss()

This commit is contained in:
andrew 2023-08-07 17:19:24 +09:30
parent d39cf2754c
commit cc6ba0e283
2 changed files with 6 additions and 6 deletions

View File

@ -111,16 +111,16 @@ class SessionDialogBuilder(val context: Context) {
text, text,
contentDescription, contentDescription,
R.style.Widget_Session_Button_Dialog_DestructiveText, R.style.Widget_Session_Button_Dialog_DestructiveText,
listener ) { listener() }
)
fun okButton(listener: (() -> Unit) = {}) = button(android.R.string.ok, listener = listener) fun okButton(listener: (() -> Unit) = {}) = button(android.R.string.ok) { listener() }
fun cancelButton(listener: (() -> Unit) = {}) = button(android.R.string.cancel, R.string.AccessibilityId_cancel_button, listener = listener) fun cancelButton(listener: (() -> Unit) = {}) = button(android.R.string.cancel, R.string.AccessibilityId_cancel_button) { listener() }
fun button( fun button(
@StringRes text: Int, @StringRes text: Int,
@StringRes contentDescriptionRes: Int = text, @StringRes contentDescriptionRes: Int = text,
@StyleRes style: Int = R.style.Widget_Session_Button_Dialog_UnimportantText, @StyleRes style: Int = R.style.Widget_Session_Button_Dialog_UnimportantText,
dismiss: Boolean = false,
listener: (() -> Unit) = {} listener: (() -> Unit) = {}
) = Button(context, null, 0, style).apply { ) = Button(context, null, 0, style).apply {
setText(text) setText(text)
@ -129,7 +129,7 @@ class SessionDialogBuilder(val context: Context) {
.apply { setMargins(toPx(20, resources)) } .apply { setMargins(toPx(20, resources)) }
setOnClickListener { setOnClickListener {
listener.invoke() listener.invoke()
dismiss() if (dismiss) dismiss()
} }
}.let(buttonLayout::addView) }.let(buttonLayout::addView)

View File

@ -40,7 +40,7 @@ class ShareLogsDialog : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = createSessionDialog { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = createSessionDialog {
title(R.string.dialog_share_logs_title) title(R.string.dialog_share_logs_title)
text(R.string.dialog_share_logs_explanation) text(R.string.dialog_share_logs_explanation)
button(R.string.share) { shareLogs() } button(R.string.share, dismiss = false) { shareLogs() }
cancelButton { dismiss() } cancelButton { dismiss() }
} }