package com.covalima.rekomendasaunaihan.ui.rekomendasi import android.os.Bundle import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import com.covalima.rekomendasaunaihan.databinding.ActivityPreferensiaBinding import com.covalima.rekomendasaunaihan.model.ApiResponse import com.covalima.rekomendasaunaihan.model.PreferensiaRequest import com.covalima.rekomendasaunaihan.model.Rekomendasi import com.covalima.rekomendasaunaihan.network.ApiClient import com.covalima.rekomendasaunaihan.util.DeviceUtil import retrofit2.Call import retrofit2.Callback import retrofit2.Response /** * "Form" Profil Utilizadór — utilizadór hili nia preferénsia rasik * (ingredientes, sabor, textura) hanesan Imaculada, Dina no Ana iha * Tabela 3.7 husi proposta. Rezultadu hatudu DIRETAMENTE iha okos buton * "Hetan Rekomendasaun", iha pájina hanesan (la muda/la navega ba pájina foun). */ class PreferensiaActivity : AppCompatActivity() { private lateinit var binding: ActivityPreferensiaBinding private lateinit var adapter: RekomendasaunHasilAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityPreferensiaBinding.inflate(layoutInflater) setContentView(binding.root) setSupportActionBar(binding.toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) supportActionBar?.title = "Hili Preferénsia Ita Nian" binding.toolbar.setNavigationOnClickListener { finish() } adapter = RekomendasaunHasilAdapter(emptyList()) binding.rvRezultadu.layoutManager = LinearLayoutManager(this) binding.rvRezultadu.adapter = adapter binding.btnHetanRekomendasaun.setOnClickListener { submeteFormuláriu() } } private fun submeteFormuláriu() { val request = PreferensiaRequest( ikan = if (binding.cbIkan.isChecked) 1 else 0, nan = if (binding.cbNan.isChecked) 1 else 0, modo = if (binding.cbModo.isChecked) 1 else 0, dosi = if (binding.cbDosi.isChecked) 1 else 0, manas = if (binding.cbManas.isChecked) 1 else 0, midar = if (binding.cbMidar.isChecked) 1 else 0, moruk = if (binding.cbMoruk.isChecked) 1 else 0, sin = if (binding.cbSin.isChecked) 1 else 0, mamar = if (binding.cbMamar.isChecked) 1 else 0, tos = if (binding.cbTos.isChecked) 1 else 0, idDevice = DeviceUtil.getDeviceId(this) ) val totalHili = listOf( request.ikan, request.nan, request.modo, request.dosi, request.manas, request.midar, request.moruk, request.sin, request.mamar, request.tos ).sum() if (totalHili == 0) { Toast.makeText(this, "Favór hili preferénsia uluk", Toast.LENGTH_SHORT).show() return } // Hatudu área rezultadu (título, divider, progress) no buka pedidu API binding.dividerRezultadu.visibility = View.VISIBLE binding.tvTituluRezultadu.visibility = View.VISIBLE binding.progressBar.visibility = View.VISIBLE binding.tvEmpty.visibility = View.GONE ApiClient.apiService.getRekomendasiPreferensia(request).enqueue(object : Callback>> { override fun onResponse( call: Call>>, response: Response>> ) { binding.progressBar.visibility = View.GONE val data = response.body()?.data if (data.isNullOrEmpty()) { binding.tvEmpty.visibility = View.VISIBLE binding.tvEmpty.text = "Seidauk hetan ai-han ne'ebé kompatível ho preferénsia ne'e." } else { binding.tvEmpty.visibility = View.GONE adapter.updateData(data) // Scroll automátiku ba área rezultadu (okos buton) atu utilizadór haree diretamente binding.dividerRezultadu.post { binding.scrollView.smoothScrollTo(0, binding.dividerRezultadu.top) } } } override fun onFailure(call: Call>>, t: Throwable) { binding.progressBar.visibility = View.GONE binding.tvEmpty.visibility = View.VISIBLE binding.tvEmpty.text = "Konesaun falha: ${t.message}" Toast.makeText(this@PreferensiaActivity, "Konesaun falha: ${t.message}", Toast.LENGTH_SHORT).show() } }) } }