From 8de3eace8ab3d599e16b67a76604574c50654dba Mon Sep 17 00:00:00 2001 From: tom5079 Date: Sat, 18 May 2019 10:51:54 +0900 Subject: [PATCH] Tag search added --- .../java/xyz/quaver/pupil/MainActivity.kt | 25 ++++++++++++++++++- .../pupil/adapters/GalleryBlockAdapter.kt | 2 +- .../main/java/xyz/quaver/pupil/types/Tags.kt | 4 +++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/xyz/quaver/pupil/MainActivity.kt b/app/src/main/java/xyz/quaver/pupil/MainActivity.kt index 951ff28a..e02e7429 100644 --- a/app/src/main/java/xyz/quaver/pupil/MainActivity.kt +++ b/app/src/main/java/xyz/quaver/pupil/MainActivity.kt @@ -8,6 +8,7 @@ import android.text.* import android.text.style.AlignmentSpan import android.view.View import android.view.WindowManager +import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.core.content.res.ResourcesCompat @@ -127,8 +128,8 @@ class MainActivity : AppCompatActivity() { true } - setupRecyclerView() setupSearchBar() + setupRecyclerView() fetchGalleries(query) loadBlocks() } @@ -136,6 +137,17 @@ class MainActivity : AppCompatActivity() { override fun onBackPressed() { if (main_drawer_layout.isDrawerOpen(GravityCompat.START)) main_drawer_layout.closeDrawer(GravityCompat.START) + else if (query.isNotEmpty()) { + runOnUiThread { + query = "" + findViewById(R.id.search_bar_text).setText(query, TextView.BufferType.EDITABLE) + + cancelFetch() + clearGalleries() + fetchGalleries(query) + loadBlocks() + } + } else super.onBackPressed() } @@ -219,7 +231,18 @@ class MainActivity : AppCompatActivity() { private fun setupRecyclerView() { with(main_recyclerview) { adapter = GalleryBlockAdapter(galleries).apply { + onChipClickedHandler.add { + post { + query = it.toQuery() + this@MainActivity.findViewById(R.id.search_bar_text) + .setText(query, TextView.BufferType.EDITABLE) + cancelFetch() + clearGalleries() + fetchGalleries(query) + loadBlocks() + } + } } addOnScrollListener( object: RecyclerView.OnScrollListener() { diff --git a/app/src/main/java/xyz/quaver/pupil/adapters/GalleryBlockAdapter.kt b/app/src/main/java/xyz/quaver/pupil/adapters/GalleryBlockAdapter.kt index 54166f8e..a7a3f4d9 100644 --- a/app/src/main/java/xyz/quaver/pupil/adapters/GalleryBlockAdapter.kt +++ b/app/src/main/java/xyz/quaver/pupil/adapters/GalleryBlockAdapter.kt @@ -46,7 +46,7 @@ class GalleryBlockAdapter(private val galleries: List() - private var onChipClickedHandler = ArrayList<((Tag) -> Unit)>() + val onChipClickedHandler = ArrayList<((Tag) -> Unit)>() class ViewHolder(val view: CardView, var galleryID: Int? = null) : RecyclerView.ViewHolder(view) class ProgressViewHolder(val view: LinearLayout) : RecyclerView.ViewHolder(view) diff --git a/app/src/main/java/xyz/quaver/pupil/types/Tags.kt b/app/src/main/java/xyz/quaver/pupil/types/Tags.kt index 083674bd..b7e8039b 100644 --- a/app/src/main/java/xyz/quaver/pupil/types/Tags.kt +++ b/app/src/main/java/xyz/quaver/pupil/types/Tags.kt @@ -27,6 +27,10 @@ data class Tag(val area: String?, val tag: String, val isNegative: Boolean = fal } } + fun toQuery(): String { + return toString().replace(' ', '_') + } + override fun equals(other: Any?): Boolean { if (other !is Tag) return false