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

import android.app.Activity
import android.databinding.BaseObservable
import android.databinding.BindingAdapter
import android.databinding.ObservableField
import android.databinding.ObservableInt
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.view.View
import android.widget.ImageView
import org.ntlab.leftoverrecipe.Mapping
import org.ntlab.leftoverrecipe.R
import org.ntlab.leftoverrecipe.model.db.RecipeData
import org.ntlab.leftoverrecipe.util.BitmapUtil
import java.text.SimpleDateFormat

/**
 * Created by matsumoto_k on 2017/07/09.
 */
class DialyListItemViewModel(var activity: Activity) : BaseObservable() {

    val recipeTitle = ObservableField<String>()
    val date = ObservableField<String>()
    val timeZone = ObservableField<String>()
    val bitmap = ObservableField<Bitmap>()
    val comment = ObservableField<String>()
    val noImageVisible = ObservableInt(View.GONE)

    companion object {
        @JvmStatic @BindingAdapter("android:src")
        fun setImageView(view: ImageView, bitmap: Bitmap) {
            view.setImageBitmap(bitmap)
        }
    }

    fun loadItem(item: RecipeData) {
        recipeTitle.set("料理名 : ${item.recipeName}")
        timeZone.set("時間帯 : ${Mapping.getRecipeTimeZone(item.makeTimeZone)}")
        val sdf = SimpleDateFormat("yyyy-MM-dd")
        date.set(sdf.format(item.date.time).toString())
        comment.set("一言コメント\n${item.comment}")
        if (item.image != null) {
            noImageVisible.set(View.VISIBLE)
            this.bitmap.set(BitmapUtil.createBitmap(item.image!!))
        } else {
            noImageVisible.set(View.GONE)
            this.bitmap.set(BitmapFactory.decodeResource(activity.resources, R.drawable.nonimage))
        }
    }
}