Improve global search
parent
6f67bd7542
commit
604efef832
@ -0,0 +1,56 @@
|
|||||||
|
package org.koitharu.kotatsu.search.ui.multi
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
|
import android.view.Menu
|
||||||
|
import android.view.MenuInflater
|
||||||
|
import android.view.MenuItem
|
||||||
|
import androidx.core.view.MenuProvider
|
||||||
|
import org.koitharu.kotatsu.R
|
||||||
|
import org.koitharu.kotatsu.core.nav.router
|
||||||
|
import org.koitharu.kotatsu.search.domain.SearchKind
|
||||||
|
|
||||||
|
class SearchKindMenuProvider(
|
||||||
|
private val activity: SearchActivity,
|
||||||
|
private val query: String,
|
||||||
|
private val kind: SearchKind
|
||||||
|
) : MenuProvider {
|
||||||
|
|
||||||
|
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
|
||||||
|
menuInflater.inflate(R.menu.opt_search_kind, menu)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onPrepareMenu(menu: Menu) {
|
||||||
|
super.onPrepareMenu(menu)
|
||||||
|
menu.findItem(
|
||||||
|
when (kind) {
|
||||||
|
SearchKind.SIMPLE -> R.id.action_kind_simple
|
||||||
|
SearchKind.TITLE -> R.id.action_kind_title
|
||||||
|
SearchKind.AUTHOR -> R.id.action_kind_author
|
||||||
|
SearchKind.TAG -> R.id.action_kind_tag
|
||||||
|
},
|
||||||
|
)?.isChecked = true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
|
||||||
|
val newKind = when (menuItem.itemId) {
|
||||||
|
R.id.action_kind_simple -> SearchKind.SIMPLE
|
||||||
|
R.id.action_kind_title -> SearchKind.TITLE
|
||||||
|
R.id.action_kind_author -> SearchKind.AUTHOR
|
||||||
|
R.id.action_kind_tag -> SearchKind.TAG
|
||||||
|
else -> return false
|
||||||
|
}
|
||||||
|
if (newKind != kind) {
|
||||||
|
activity.router.openSearch(
|
||||||
|
query = query,
|
||||||
|
kind = newKind,
|
||||||
|
)
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
activity.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out, 0)
|
||||||
|
} else {
|
||||||
|
activity.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
|
||||||
|
}
|
||||||
|
activity.finishAfterTransition()
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_search_kind"
|
||||||
|
android:icon="@drawable/ic_filter_menu"
|
||||||
|
android:orderInCategory="0"
|
||||||
|
android:title="@string/type"
|
||||||
|
app:showAsAction="ifRoom">
|
||||||
|
|
||||||
|
<menu>
|
||||||
|
|
||||||
|
<group
|
||||||
|
android:id="@+id/group_search_kind"
|
||||||
|
android:checkableBehavior="single">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_kind_simple"
|
||||||
|
android:title="@string/simple" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_kind_title"
|
||||||
|
android:title="@string/name" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_kind_author"
|
||||||
|
android:title="@string/author" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_kind_tag"
|
||||||
|
android:title="@string/genre" />
|
||||||
|
|
||||||
|
</group>
|
||||||
|
</menu>
|
||||||
|
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</menu>
|
||||||
Loading…
Reference in New Issue