mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-24 03:42:15 +00:00
Update: Wire the search bar
This commit is contained in:
parent
891ad6bc6e
commit
b047b5e814
@ -3,11 +3,13 @@ package com.looker.droidify.ui.activities
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.*
|
import android.view.Menu
|
||||||
|
import android.view.MenuItem
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.WindowCompat
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
@ -23,7 +25,6 @@ import com.looker.droidify.R
|
|||||||
import com.looker.droidify.content.Preferences
|
import com.looker.droidify.content.Preferences
|
||||||
import com.looker.droidify.databinding.ActivityMainXBinding
|
import com.looker.droidify.databinding.ActivityMainXBinding
|
||||||
import com.looker.droidify.installer.AppInstaller
|
import com.looker.droidify.installer.AppInstaller
|
||||||
import com.looker.droidify.screen.*
|
|
||||||
import com.looker.droidify.service.Connection
|
import com.looker.droidify.service.Connection
|
||||||
import com.looker.droidify.service.SyncService
|
import com.looker.droidify.service.SyncService
|
||||||
import com.looker.droidify.ui.fragments.MainNavFragmentX
|
import com.looker.droidify.ui.fragments.MainNavFragmentX
|
||||||
@ -52,6 +53,7 @@ class MainActivityX : AppCompatActivity() {
|
|||||||
lateinit var appBarConfiguration: AppBarConfiguration
|
lateinit var appBarConfiguration: AppBarConfiguration
|
||||||
private lateinit var navController: NavController
|
private lateinit var navController: NavController
|
||||||
private val viewModel: MainActivityViewModelX by viewModels()
|
private val viewModel: MainActivityViewModelX by viewModels()
|
||||||
|
val menuSetup = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
private val syncConnection = Connection(SyncService::class.java, onBind = { _, _ ->
|
private val syncConnection = Connection(SyncService::class.java, onBind = { _, _ ->
|
||||||
navController.currentDestination?.let {
|
navController.currentDestination?.let {
|
||||||
@ -126,6 +128,7 @@ class MainActivityX : AppCompatActivity() {
|
|||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.menu_main, menu)
|
menuInflater.inflate(R.menu.menu_main, menu)
|
||||||
|
menuSetup.value = true
|
||||||
return super.onCreateOptionsMenu(menu)
|
return super.onCreateOptionsMenu(menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
import androidx.compose.material.Scaffold
|
import androidx.compose.material.Scaffold
|
||||||
import androidx.core.view.children
|
import androidx.core.view.children
|
||||||
@ -17,9 +18,8 @@ import com.looker.droidify.entity.Section
|
|||||||
import com.looker.droidify.ui.compose.ProductsVerticalRecycler
|
import com.looker.droidify.ui.compose.ProductsVerticalRecycler
|
||||||
import com.looker.droidify.ui.compose.theme.AppTheme
|
import com.looker.droidify.ui.compose.theme.AppTheme
|
||||||
import com.looker.droidify.utility.isDarkTheme
|
import com.looker.droidify.utility.isDarkTheme
|
||||||
|
import com.looker.droidify.widget.FocusSearchView
|
||||||
|
|
||||||
|
|
||||||
// TODO add chips bar to navigate categories
|
|
||||||
class ExploreFragment : MainNavFragmentX() {
|
class ExploreFragment : MainNavFragmentX() {
|
||||||
|
|
||||||
private lateinit var binding: FragmentExploreXBinding
|
private lateinit var binding: FragmentExploreXBinding
|
||||||
@ -95,5 +95,21 @@ class ExploreFragment : MainNavFragmentX() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mainActivityX.menuSetup.observe(viewLifecycleOwner) {
|
||||||
|
if (it != null) {
|
||||||
|
val searchView =
|
||||||
|
mainActivityX.toolbar.menu.findItem(R.id.toolbar_search).actionView as FocusSearchView
|
||||||
|
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onQueryTextChange(newText: String?): Boolean {
|
||||||
|
if (isResumed) viewModel.setSearchQuery(newText.orEmpty())
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
import androidx.compose.material.Scaffold
|
import androidx.compose.material.Scaffold
|
||||||
import com.google.android.material.composethemeadapter.MdcTheme
|
import com.google.android.material.composethemeadapter.MdcTheme
|
||||||
@ -15,6 +16,7 @@ import com.looker.droidify.ui.compose.ProductsHorizontalRecycler
|
|||||||
import com.looker.droidify.ui.compose.ProductsVerticalRecycler
|
import com.looker.droidify.ui.compose.ProductsVerticalRecycler
|
||||||
import com.looker.droidify.ui.compose.theme.AppTheme
|
import com.looker.droidify.ui.compose.theme.AppTheme
|
||||||
import com.looker.droidify.utility.isDarkTheme
|
import com.looker.droidify.utility.isDarkTheme
|
||||||
|
import com.looker.droidify.widget.FocusSearchView
|
||||||
|
|
||||||
class InstalledFragment : MainNavFragmentX() {
|
class InstalledFragment : MainNavFragmentX() {
|
||||||
|
|
||||||
@ -97,5 +99,21 @@ class InstalledFragment : MainNavFragmentX() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mainActivityX.menuSetup.observe(viewLifecycleOwner) {
|
||||||
|
if (it != null) {
|
||||||
|
val searchView =
|
||||||
|
mainActivityX.toolbar.menu.findItem(R.id.toolbar_search).actionView as FocusSearchView
|
||||||
|
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onQueryTextChange(newText: String?): Boolean {
|
||||||
|
if (isResumed) viewModel.setSearchQuery(newText.orEmpty())
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,9 +4,11 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
import androidx.compose.material.Scaffold
|
import androidx.compose.material.Scaffold
|
||||||
import com.google.android.material.composethemeadapter.MdcTheme
|
import com.google.android.material.composethemeadapter.MdcTheme
|
||||||
|
import com.looker.droidify.R
|
||||||
import com.looker.droidify.content.Preferences
|
import com.looker.droidify.content.Preferences
|
||||||
import com.looker.droidify.database.entity.Repository
|
import com.looker.droidify.database.entity.Repository
|
||||||
import com.looker.droidify.databinding.FragmentLatestXBinding
|
import com.looker.droidify.databinding.FragmentLatestXBinding
|
||||||
@ -14,6 +16,7 @@ import com.looker.droidify.ui.compose.ProductsHorizontalRecycler
|
|||||||
import com.looker.droidify.ui.compose.ProductsVerticalRecycler
|
import com.looker.droidify.ui.compose.ProductsVerticalRecycler
|
||||||
import com.looker.droidify.ui.compose.theme.AppTheme
|
import com.looker.droidify.ui.compose.theme.AppTheme
|
||||||
import com.looker.droidify.utility.isDarkTheme
|
import com.looker.droidify.utility.isDarkTheme
|
||||||
|
import com.looker.droidify.widget.FocusSearchView
|
||||||
|
|
||||||
class LatestFragment : MainNavFragmentX() {
|
class LatestFragment : MainNavFragmentX() {
|
||||||
|
|
||||||
@ -79,5 +82,21 @@ class LatestFragment : MainNavFragmentX() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mainActivityX.menuSetup.observe(viewLifecycleOwner) {
|
||||||
|
if (it != null) {
|
||||||
|
val searchView =
|
||||||
|
mainActivityX.toolbar.menu.findItem(R.id.toolbar_search).actionView as FocusSearchView
|
||||||
|
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onQueryTextChange(newText: String?): Boolean {
|
||||||
|
if (isResumed) viewModel.setSearchQuery(newText.orEmpty())
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ import com.looker.droidify.ui.activities.MainActivityX
|
|||||||
import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX
|
import com.looker.droidify.ui.viewmodels.MainNavFragmentViewModelX
|
||||||
|
|
||||||
abstract class MainNavFragmentX : BaseNavFragment() {
|
abstract class MainNavFragmentX : BaseNavFragment() {
|
||||||
private val mainActivityX: MainActivityX
|
protected val mainActivityX: MainActivityX
|
||||||
get() = requireActivity() as MainActivityX
|
get() = requireActivity() as MainActivityX
|
||||||
val viewModel: MainNavFragmentViewModelX by viewModels {
|
val viewModel: MainNavFragmentViewModelX by viewModels {
|
||||||
MainNavFragmentViewModelX.Factory(mainActivityX.db, primarySource, secondarySource)
|
MainNavFragmentViewModelX.Factory(mainActivityX.db, primarySource, secondarySource)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user