From bfc9282b18c5d053b96b28f106ad062f4608cb68 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Wed, 4 Oct 2017 14:37:12 +0800 Subject: [PATCH] fixed search tab query requirement --- .../org/mariotaku/twidere/fragment/CustomTabsFragment.kt | 5 +---- .../org/mariotaku/twidere/model/tab/TabConfiguration.kt | 8 ++++++++ .../twidere/model/tab/conf/StringExtraConfiguration.kt | 4 ++++ .../twidere/model/tab/impl/SearchTabConfiguration.kt | 2 +- twidere/src/main/res/values/strings.xml | 1 + 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/CustomTabsFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/CustomTabsFragment.kt index bc9d0f6f9..22da91927 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/CustomTabsFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/CustomTabsFragment.kt @@ -39,7 +39,6 @@ import android.view.* import android.widget.* import android.widget.AbsListView.MultiChoiceModeListener import android.widget.AdapterView.OnItemClickListener -import com.bumptech.glide.Glide import com.mobeta.android.dslv.SimpleDragSortCursorAdapter import kotlinx.android.synthetic.main.dialog_custom_tab_editor.* import kotlinx.android.synthetic.main.layout_draggable_list_with_empty_view.* @@ -372,9 +371,7 @@ class CustomTabsFragment : BaseFragment(), LoaderCallbacks, MultiChoice // Make sure immutable configuration skipped in edit mode if (editMode && !extraConf.isMutable) return@forEach if (!conf.applyExtraConfigurationTo(tab, extraConf)) { - val titleString = extraConf.title.createString(context) - Toast.makeText(context, getString(R.string.message_tab_field_is_required, - titleString), Toast.LENGTH_SHORT).show() + extraConf.showRequiredError() return@setOnClickListener } } diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/TabConfiguration.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/TabConfiguration.kt index 1a0b677d3..b6ee0bb6d 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/TabConfiguration.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/TabConfiguration.kt @@ -26,6 +26,8 @@ import android.support.annotation.StringRes import android.support.v4.app.Fragment import android.view.View import android.view.ViewGroup +import android.widget.Toast +import org.mariotaku.twidere.R import org.mariotaku.twidere.annotation.CustomTabType import org.mariotaku.twidere.annotation.TabAccountFlags import org.mariotaku.twidere.fragment.CustomTabsFragment.TabEditorDialogFragment @@ -138,6 +140,12 @@ abstract class TabConfiguration { open fun onAccountSelectionChanged(account: AccountDetails?) { } + + open fun showRequiredError() { + val titleString = title.createString(context) + Toast.makeText(context, context.getString(R.string.message_tab_field_is_required, + titleString), Toast.LENGTH_SHORT).show() + } } companion object { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/conf/StringExtraConfiguration.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/conf/StringExtraConfiguration.kt index 240d761eb..eb5a6bae2 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/conf/StringExtraConfiguration.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/conf/StringExtraConfiguration.kt @@ -38,6 +38,10 @@ class StringExtraConfiguration(key: String, title: StringHolder, private val def editText.setText(def) } + override fun showRequiredError() { + editText.error = context.getString(R.string.hint_error_field_required) + } + fun maxLines(maxLines: Int): StringExtraConfiguration { this.maxLines = maxLines return this diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/impl/SearchTabConfiguration.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/impl/SearchTabConfiguration.kt index 3868e087d..c1fe5f62a 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/impl/SearchTabConfiguration.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/model/tab/impl/SearchTabConfiguration.kt @@ -53,7 +53,7 @@ class SearchTabConfiguration : TabConfiguration() { val arguments = tab.arguments as TextQueryArguments when (extraConf.key) { EXTRA_QUERY -> { - val query = (extraConf as StringExtraConfiguration).value ?: return false + val query = (extraConf as StringExtraConfiguration).value?.takeIf(String::isNotBlank) ?: return false arguments.query = query } } diff --git a/twidere/src/main/res/values/strings.xml b/twidere/src/main/res/values/strings.xml index bcac59d17..bcf7e885d 100644 --- a/twidere/src/main/res/values/strings.xml +++ b/twidere/src/main/res/values/strings.xml @@ -455,6 +455,7 @@ Accounts dashboard Conversation name No subscriptions + Required No content Search users No account