manage 'submit' in the text search field

This commit is contained in:
Adrien Marquès 2018-12-15 12:28:24 +01:00
parent b5b1a5ed4d
commit 68fe52d213
1 changed files with 55 additions and 47 deletions

View File

@ -7,6 +7,7 @@ import android.os.Handler
import android.text.Editable import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
import android.util.Log import android.util.Log
import android.view.KeyEvent
import android.view.WindowManager import android.view.WindowManager
import android.widget.Toast import android.widget.Toast
import io.xdrm.lebonprix.anim.HomeFilterAnimation import io.xdrm.lebonprix.anim.HomeFilterAnimation
@ -93,7 +94,41 @@ class HomeActivity : AppCompatActivity() {
// launch search // launch search
search_button.setOnClickListener { search.setOnKeyListener { v, keyCode, event ->
if( event.action != KeyEvent.ACTION_DOWN || keyCode != KeyEvent.KEYCODE_ENTER )
return@setOnKeyListener false
launch_search()
return@setOnKeyListener true
}
search_button.setOnClickListener { launch_search() }
updateCategories(JSONArray("[]"))
}
private fun categoryCoordinator(keywords: String){
val now = System.currentTimeMillis()
if( last_search_time > 0 && now-last_search_time < HomeActivity.SEARCH_KEY_TIMEOUT )
return
if( keywords == last_search )
return
last_search_time = now
last_search = keywords
if( httpJob != null && httpJob!!.isActive ) {
httpJob!!.cancel()
underline_animator.animateContinue(1F).during(0).start()
}
httpJob = GlobalScope.launch {
updateCategories( apiCategories.fetch(last_search) )
}
}
private fun launch_search(){
val selectedCategories = getCategories() val selectedCategories = getCategories()
// (1) Loader // (1) Loader
@ -140,35 +175,8 @@ class HomeActivity : AppCompatActivity() {
startActivity(int) startActivity(int)
overridePendingTransition(0, 0) overridePendingTransition(0, 0)
} }
} }
updateCategories(JSONArray("[]"))
}
private fun categoryCoordinator(keywords: String){
val now = System.currentTimeMillis()
if( last_search_time > 0 && now-last_search_time < HomeActivity.SEARCH_KEY_TIMEOUT )
return
if( keywords == last_search )
return
last_search_time = now
last_search = keywords
if( httpJob != null && httpJob!!.isActive ) {
httpJob!!.cancel()
underline_animator.animateContinue(1F).during(0).start()
}
httpJob = GlobalScope.launch {
updateCategories( apiCategories.fetch(last_search) )
}
}
private fun updateCategories(categories: JSONArray){ private fun updateCategories(categories: JSONArray){
// 1. Update categories // 1. Update categories
categoryStore.data.clear() categoryStore.data.clear()