mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-20 19:25:01 +01:00
Use native view bindings for GeocodingController
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
31d585e763
commit
adda60c7fb
@ -27,29 +27,26 @@ import android.os.Build
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.InputType
|
import android.text.InputType
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuInflater
|
import android.view.MenuInflater
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
|
||||||
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.EditorInfo
|
||||||
import android.widget.AdapterView
|
import android.widget.AdapterView
|
||||||
import android.widget.ListView
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.widget.SearchView
|
import androidx.appcompat.widget.SearchView
|
||||||
import androidx.core.view.MenuItemCompat
|
import androidx.core.view.MenuItemCompat
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import butterknife.BindView
|
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.adapters.GeocodingAdapter
|
import com.nextcloud.talk.adapters.GeocodingAdapter
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.controllers.base.BaseController
|
import com.nextcloud.talk.controllers.base.NewBaseController
|
||||||
|
import com.nextcloud.talk.controllers.util.viewBinding
|
||||||
|
import com.nextcloud.talk.databinding.ControllerGeocodingBinding
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys
|
import com.nextcloud.talk.utils.bundle.BundleKeys
|
||||||
import com.nextcloud.talk.utils.database.user.UserUtils
|
import com.nextcloud.talk.utils.database.user.UserUtils
|
||||||
import com.nextcloud.talk.utils.preferences.AppPreferences
|
|
||||||
import fr.dudie.nominatim.client.JsonNominatimClient
|
import fr.dudie.nominatim.client.JsonNominatimClient
|
||||||
import fr.dudie.nominatim.model.Address
|
import fr.dudie.nominatim.model.Address
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@ -68,11 +65,13 @@ import org.osmdroid.config.Configuration
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQueryTextListener {
|
class GeocodingController(args: Bundle) :
|
||||||
|
NewBaseController(
|
||||||
@Inject
|
R.layout.controller_geocoding,
|
||||||
@JvmField
|
args
|
||||||
var context: Context? = null
|
),
|
||||||
|
SearchView.OnQueryTextListener {
|
||||||
|
private val binding: ControllerGeocodingBinding by viewBinding(ControllerGeocodingBinding::bind)
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var ncApi: NcApi
|
lateinit var ncApi: NcApi
|
||||||
@ -80,14 +79,6 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue
|
|||||||
@Inject
|
@Inject
|
||||||
lateinit var userUtils: UserUtils
|
lateinit var userUtils: UserUtils
|
||||||
|
|
||||||
@Inject
|
|
||||||
@JvmField
|
|
||||||
var appPreferences: AppPreferences? = null
|
|
||||||
|
|
||||||
@BindView(R.id.geocoding_results)
|
|
||||||
@JvmField
|
|
||||||
var geocodingResultListView: ListView? = null
|
|
||||||
|
|
||||||
var roomToken: String?
|
var roomToken: String?
|
||||||
var nominatimClient: JsonNominatimClient? = null
|
var nominatimClient: JsonNominatimClient? = null
|
||||||
|
|
||||||
@ -111,12 +102,8 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initAdapter(addresses: List<Address>) {
|
private fun initAdapter(addresses: List<Address>) {
|
||||||
adapter = GeocodingAdapter(geocodingResultListView?.context!!, addresses)
|
adapter = GeocodingAdapter(binding.geocodingResults.context!!, addresses)
|
||||||
geocodingResultListView?.adapter = adapter
|
binding.geocodingResults.adapter = adapter
|
||||||
}
|
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
|
||||||
return inflater.inflate(R.layout.controller_geocoding, container, false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onAttach(view: View) {
|
override fun onAttach(view: View) {
|
||||||
@ -131,7 +118,7 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue
|
|||||||
Log.e(TAG, "search string that was passed to GeocodingController was null or empty")
|
Log.e(TAG, "search string that was passed to GeocodingController was null or empty")
|
||||||
}
|
}
|
||||||
|
|
||||||
geocodingResultListView?.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
|
binding.geocodingResults.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
|
||||||
val address: Address = adapter.getItem(position) as Address
|
val address: Address = adapter.getItem(position) as Address
|
||||||
val listener: GeocodingResultListener? = targetController as GeocodingResultListener?
|
val listener: GeocodingResultListener? = targetController as GeocodingResultListener?
|
||||||
listener?.receiveChosenGeocodingResult(address.latitude, address.longitude, address.displayName)
|
listener?.receiveChosenGeocodingResult(address.latitude, address.longitude, address.displayName)
|
||||||
@ -152,8 +139,8 @@ class GeocodingController(args: Bundle) : BaseController(args), SearchView.OnQue
|
|||||||
|
|
||||||
override fun onPrepareOptionsMenu(menu: Menu) {
|
override fun onPrepareOptionsMenu(menu: Menu) {
|
||||||
super.onPrepareOptionsMenu(menu)
|
super.onPrepareOptionsMenu(menu)
|
||||||
hideSearchBar()
|
showToolbar()
|
||||||
actionBar.setIcon(ColorDrawable(resources!!.getColor(android.R.color.transparent)))
|
actionBar?.setIcon(ColorDrawable(resources!!.getColor(android.R.color.transparent)))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onQueryTextSubmit(query: String?): Boolean {
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
|
@ -172,6 +172,15 @@ abstract class NewBaseController(@LayoutRes var layoutRes: Int, args: Bundle? =
|
|||||||
binding.searchToolbar.layoutParams = layoutParams
|
binding.searchToolbar.layoutParams = layoutParams
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected fun showToolbar() {
|
||||||
|
if (isValidActivity(activity)) {
|
||||||
|
val activity = activity as MainActivity
|
||||||
|
showToolbar(activity.binding)
|
||||||
|
colorizeStatusBar(false, activity, resources)
|
||||||
|
colorizeNavigationBar(activity, resources)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun showToolbar(binding: ActivityMainBinding) {
|
private fun showToolbar(binding: ActivityMainBinding) {
|
||||||
val layoutParams = binding.searchToolbar.layoutParams as AppBarLayout.LayoutParams
|
val layoutParams = binding.searchToolbar.layoutParams as AppBarLayout.LayoutParams
|
||||||
binding.searchToolbar.visibility = View.GONE
|
binding.searchToolbar.visibility = View.GONE
|
||||||
|
Loading…
Reference in New Issue
Block a user