Newer
Older
LeftoverRecipe / app / src / main / kotlin / org / ntlab / leftoverrecipe / activity / SearchActivity.kt
MatsumotoKeiju on 10 Jul 2017 2 KB [add] menu, calendar
package org.ntlab.leftoverrecipe.activity

import android.content.Intent
import android.databinding.DataBindingUtil
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.view.View
import kotlinx.android.synthetic.main.activity_search.*
import org.ntlab.leftoverrecipe.R
import org.ntlab.leftoverrecipe.adapter.SearchListAdapter
import org.ntlab.leftoverrecipe.api.recipe.RecipeApiResponse
import org.ntlab.leftoverrecipe.contract.SearchListViewContract
import org.ntlab.leftoverrecipe.databinding.ActivitySearchBinding
import org.ntlab.leftoverrecipe.viewmodel.SearchViewModel

class SearchActivity : AppCompatActivity(), SearchListViewContract {

    var adapter: SearchListAdapter? = null
    var viewModel: SearchViewModel? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_search)

        val binding = DataBindingUtil.setContentView<ActivitySearchBinding>(this, R.layout.activity_search)
        viewModel = SearchViewModel(this, this as SearchListViewContract)
        binding.viewModel = viewModel

        setupViews()

        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        supportActionBar?.title = ""
    }

    override fun onSupportNavigateUp(): Boolean {
        finish()
        overridePendingTransition(0, 0);
        return super.onNavigateUp()
    }

    fun setupViews() {
        searchListView.layoutManager = LinearLayoutManager(this)
        adapter = SearchListAdapter(this, this as SearchListViewContract)
        searchListView.adapter = adapter
    }

    override fun onPostResume() {
        super.onPostResume()
    }

    override fun showRecipe(response: RecipeApiResponse) {
        adapter?.setItemAndRefresh(response.result!!)
    }


    override fun startDetailActivity(recipeData: RecipeApiResponse.RecipeData) {
        val intent = Intent(this@SearchActivity, DetailRecipeActivity::class.java)
        intent.putExtra("recipeData", recipeData)
        startActivity(intent)
        overridePendingTransition(0, 0);
    }
}