howlongtobeat-android/app/src/main/java/be/kuleuven/howlongtobeat/GameDetailFragment.kt

49 lines
1.8 KiB
Kotlin

package be.kuleuven.howlongtobeat
import android.graphics.BitmapFactory
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import be.kuleuven.howlongtobeat.databinding.FragmentGamedetailBinding
import be.kuleuven.howlongtobeat.model.Game
import be.kuleuven.howlongtobeat.model.GameRepository
import com.google.android.material.snackbar.Snackbar
class GameDetailFragment : Fragment(R.layout.fragment_gamedetail) {
private lateinit var binding: FragmentGamedetailBinding
private lateinit var gameRepo: GameRepository
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentGamedetailBinding.inflate(layoutInflater)
gameRepo = GameRepository.defaultImpl(requireContext())
val gameId = arguments?.getSerializable(Game.GAME_ID).toString().toInt()
val game = gameRepo.find(gameId)
binding.txtDetailTitle.text = "${game.title}\n${game.cartCode}"
binding.txtDetailGameStats.text = "${game.howLongToBeat} hr(s) to beat"
binding.chkDetailFinished.isChecked = game.finished
binding.chkDetailFinished.setOnClickListener {
game.finished = binding.chkDetailFinished.isChecked
gameRepo.update(game)
Snackbar.make(binding.root, "Saved!", Snackbar.LENGTH_SHORT).show()
}
requireContext().openFileInput(game.boxartFileName).use {
binding.imgDetailBoxArt.setImageBitmap(BitmapFactory.decodeStream(it))
}
requireContext().openFileInput(game.snapshotFileName).use {
binding.imgDetailSnapshot.setImageBitmap(BitmapFactory.decodeStream(it))
}
return binding.root
}
}