Advertisement
cardexc

Untitled

Jun 25th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.72 KB | None | 0 0
  1. package com.lanet.runner.ui.tasks.building_choose
  2.  
  3. import android.arch.lifecycle.Observer
  4. import android.content.Intent
  5. import android.content.res.Resources
  6. import android.os.Bundle
  7. import android.support.v7.app.AppCompatActivity
  8. import android.view.MenuItem
  9. import android.view.ViewGroup
  10. import com.lanet.runner.R
  11. import com.lanet.runner.databinding.ActivityAddressChooseBinding
  12. import com.lanet.runner.models.entity.House
  13. import com.lanet.runner.ui.*
  14. import com.lanet.runner.ui.actions.ProgressActions
  15.  
  16. @Suppress("UNCHECKED_CAST")
  17. class AddressChooseActivity : AppCompatActivity(),
  18.         BaseActivityMethods,
  19.         ProgressActions,
  20.         ToolBarMethods {
  21.  
  22.     override lateinit var binding: ActivityAddressChooseBinding
  23.     override lateinit var viewModel: AddressChooseActivityVM
  24.     override val appResources: Resources get() = resources
  25.     override val activity = this
  26.  
  27.     override fun onCreate(savedInstanceState: Bundle?) {
  28.         super.onCreate(savedInstanceState)
  29.  
  30.         initBinding()
  31.  
  32.         initViewModel()
  33.  
  34.         handleExtras(intent)
  35.  
  36.         initAdapters()
  37.  
  38.         setupToolbar()
  39.  
  40.         observe()
  41.  
  42.     }
  43.  
  44.     override fun onOptionsItemSelected(item: MenuItem): Boolean {
  45.         super<AppCompatActivity>.onOptionsItemSelected(item)
  46.         return super<ToolBarMethods>.onOptionsItemSelected(item)
  47.     }
  48.  
  49.     private fun observe() {
  50.         observe(viewModel.progressState) { toggleProgress() }
  51.  
  52.         viewModel.uiEvent.observe(this, Observer {
  53.             setResult(RESULT_OK, it)
  54.             finish()
  55.         })
  56.     }
  57.  
  58.     private fun initAdapters() {
  59.         binding.streets.layoutManager = viewModel.lManager
  60.     }
  61.  
  62.     override fun initViewModel() {
  63.         viewModel = initViewModel(AddressChooseActivityVM::class.java)
  64.         binding.viewModel = viewModel
  65.     }
  66.  
  67.     override fun initBinding() {
  68.         binding = setDataBindingContentView(R.layout.activity_address_choose)
  69.     }
  70.  
  71.     private fun handleExtras(intent: Intent) {
  72.  
  73.         intent.extras?.apply {
  74.  
  75.             getParcelable<House>("house")?.let {
  76.                 viewModel.house = it
  77.             }
  78.  
  79.             intent.getSerializableExtra("districtStreetCorrelationMap")?.let{
  80.                 viewModel.districtStreetCorrelationMap = it as HashMap<String, Map<String, String>>
  81.             }
  82.  
  83.             intent.getSerializableExtra("streetHousesCorrelationMap")?.let{
  84.                 viewModel.streetHousesCorrelationMap = it as HashMap<String, Map<String, String>>
  85.             }
  86.  
  87.         }
  88.  
  89.     }
  90.  
  91.     override fun getRootForProgressView(): ViewGroup? = binding.containerLayout.container
  92.  
  93.     override fun getToolbarTitle() : String = resources.getString(R.string.choose_building)
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement