From 9eff9d0aa49d76df0a80ce424fb77fce9444f0e9 Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Wed, 22 Apr 2020 10:05:01 +0200 Subject: [PATCH] Backport #1027 No option visit list's creator profile --- .../mariotaku/twidere/extension/DialogExtensions.kt | 10 ++++++++-- .../org/mariotaku/twidere/fragment/UserListFragment.kt | 5 +++++ twidere/src/main/res/values/strings.xml | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/DialogExtensions.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/DialogExtensions.kt index 7965a0851..9818bbdcf 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/extension/DialogExtensions.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/extension/DialogExtensions.kt @@ -31,18 +31,24 @@ fun T.applyOnShow(action: T.() -> Unit) { } } -fun AlertDialog.Builder.positive(@StringRes textId: Int, action: (dialog: AlertDialog) -> Unit) { +inline fun AlertDialog.Builder.positive(@StringRes textId: Int, crossinline action: (dialog: AlertDialog) -> Unit) { setPositiveButton(textId) { dialog, _ -> action(dialog as AlertDialog) } } -fun AlertDialog.Builder.negative(@StringRes textId: Int, action: (dialog: AlertDialog) -> Unit) { +inline fun AlertDialog.Builder.negative(@StringRes textId: Int, crossinline action: (dialog: AlertDialog) -> Unit) { setNegativeButton(textId) { dialog, _ -> action(dialog as AlertDialog) } } +inline fun AlertDialog.Builder.neutral(@StringRes textId: Int, crossinline action: (dialog: AlertDialog) -> Unit) { + setNeutralButton(textId) { dialog, _ -> + action(dialog as AlertDialog) + } +} + fun T.onShow(action: (dialog: T) -> Unit) { setOnShowListener { dialog -> @Suppress("UNCHECKED_CAST") diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt index ee81d2262..77b1561c9 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/UserListFragment.kt @@ -54,6 +54,7 @@ import org.mariotaku.twidere.app.TwidereApplication import org.mariotaku.twidere.constant.newDocumentApiKey import org.mariotaku.twidere.extension.applyTheme import org.mariotaku.twidere.extension.model.api.microblog.toParcelable +import org.mariotaku.twidere.extension.neutral import org.mariotaku.twidere.extension.onShow import org.mariotaku.twidere.fragment.iface.IBaseFragment.SystemWindowInsetsCallback import org.mariotaku.twidere.fragment.iface.SupportFragmentCallback @@ -405,6 +406,10 @@ class UserListFragment : AbsToolbarTabPagesFragment(), OnClickListener, builder.setTitle(userList.name) builder.setMessage(userList.description) builder.setPositiveButton(android.R.string.ok, null) + builder.neutral(R.string.action_list_creator) { + startActivity(IntentUtils.userProfile(userList.account_key, userList.user_key, + userList.user_screen_name)) + } val dialog = builder.create() dialog.onShow { it.applyTheme() } return dialog diff --git a/twidere/src/main/res/values/strings.xml b/twidere/src/main/res/values/strings.xml index c1ed3b80f..f5151ac85 100644 --- a/twidere/src/main/res/values/strings.xml +++ b/twidere/src/main/res/values/strings.xml @@ -78,6 +78,7 @@ Leave conversation Like + List creator Location Manage in Buffer Mark as read