Advertisement
Vassa007

rencanastudi

Nov 19th, 2024
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 6.92 KB | None | 0 0
  1. package com.siakad.student.menu.rencanastudi
  2.  
  3. import android.content.Intent
  4. import android.graphics.Color
  5. import android.os.Build
  6. import android.os.Bundle
  7. import android.util.Log
  8. import android.view.LayoutInflater
  9. import android.view.View
  10. import android.view.ViewGroup
  11. import android.widget.Toast
  12. import androidx.annotation.RequiresApi
  13. import androidx.appcompat.app.AppCompatActivity
  14. import androidx.core.content.ContextCompat
  15. import androidx.navigation.findNavController
  16. import androidx.navigation.fragment.findNavController
  17. import com.siakad.student.R
  18. import com.siakad.student.activity.base.BaseFragment
  19. import com.siakad.student.config.connection.Resource
  20. import com.siakad.student.config.crypts.EncDec
  21. import com.siakad.student.config.endpoint.RencanaStudi
  22. import com.siakad.student.config.response.ResponseModel
  23. import com.siakad.student.config.util.ProgressDialogManager
  24. import com.siakad.student.config.util.handleApiError
  25. import com.siakad.student.config.util.visible
  26. import com.siakad.student.databinding.FragmentRencanaStudiBinding
  27. import com.siakad.student.menu.home.MenuActivity
  28. import kotlinx.coroutines.flow.first
  29. import kotlinx.coroutines.runBlocking
  30. import org.json.JSONObject
  31.  
  32. class RencanaStudiFragment : BaseFragment<RencanaStudiVM, FragmentRencanaStudiBinding, RencanaStudiRepo>() {
  33.  
  34.     private val TAG = "KRS"
  35.  
  36.     @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
  37.     override fun onActivityCreated(savedInstanceState: Bundle?) {
  38.         super.onActivityCreated(savedInstanceState)
  39.         (activity as AppCompatActivity).setSupportActionBar(binding.topAppBar)
  40.         binding.topAppBar.apply {
  41.             navigationIcon = ContextCompat.getDrawable(context, R.drawable.ic_back)
  42.             setNavigationOnClickListener {
  43.                 activity?.finish()
  44.             }
  45.         }
  46.  
  47.         getRencanaStudi()
  48.     }
  49.  
  50.     fun getRencanaStudi() {
  51.         val jsonObject = JSONObject()
  52.         jsonObject.put("nim", runBlocking { userPrefrences.nimFlow.first() })
  53.         jsonObject.put("thnakademik", runBlocking { userPrefrences.thakademik.first() })
  54.         jsonObject.put("idprogramstudi", runBlocking { userPrefrences.idprogramstudi.first() })
  55.         val param = EncDec().toEncrypt(jsonObject.toString())
  56.         val streams = param?.replace("\\n", "")
  57.  
  58.  
  59.         streams?.let { it -> viewModel.getKrs_reg(it) }
  60.         val progressDialogManager = context?.let { it -> ProgressDialogManager(it).loader(getString(
  61.             R.string.message_progress_loading)) }
  62.         viewModel.rencanaStudiResponse.observe(viewLifecycleOwner, {
  63.             when (it) {
  64.                 is Resource.Loading -> progressDialogManager?.show()
  65.                 is Resource.Success -> {
  66.                     val responseModel: ResponseModel = it.value
  67.                     val decrypt = EncDec().toDerypt(responseModel.streams)
  68.  
  69.  
  70.                     val jsonObject = JSONObject(decrypt)
  71.                     binding.tvIndekPrestasi.text = jsonObject.getString("ip")
  72.                     binding.tvSksMax.text = jsonObject.getString("sksmax")
  73.  
  74.                     //NOTE: Kebalik antara tvskstempuh dan tvskssisa, sksrencanastudi == tempuh
  75.                     binding.tvSksTempuh.text = jsonObject.getString("skssisa")
  76.                     binding.tvSksSisa.text = jsonObject.getString("sksrencanastudi")
  77.  
  78.                     var statusDosenWali = jsonObject.getString("statusdosenwali")
  79.                     var catatan = jsonObject.getString("catatan")
  80.                     var pemberitahuan = jsonObject.getString("pemberitahuan")
  81.                     var stskrs = jsonObject.getString("stskrs")
  82.                     var stsKuesioner = jsonObject.getString("stskuesioner")
  83.  
  84.  
  85.                     when (stskrs) {
  86.                         "0" -> {
  87.                             // proses ambil matkul
  88.                             binding.cardProses.setOnClickListener { v ->
  89.                                 findNavController().navigate(R.id.action_rencanaStudiFragment_to_prosesFragment)
  90.                             }
  91.  
  92.                             binding.cardMenunggu.setOnClickListener { v ->
  93.                                 Toast.makeText(context, getString(R.string.label_pengambilan_matakuliah), Toast.LENGTH_SHORT).show()
  94.                             }
  95.  
  96.                             binding.cardDone.setOnClickListener { v ->
  97.                                 Toast.makeText(context, getString(R.string.label_pengambilan_matakuliah), Toast.LENGTH_SHORT).show()
  98.                             }
  99.  
  100.                         }
  101.                         "1" -> {
  102.                             // telah disetujui oleh dosen wali
  103.                             binding.cardProses.setOnClickListener { v ->
  104.                                 Toast.makeText(context,"Oops! ${getString(R.string.label_rencana_studi_telah_disetujui)}", Toast.LENGTH_SHORT).show()
  105.                             }
  106.  
  107.                             binding.cardMenunggu.setOnClickListener { v ->
  108.                                 Toast.makeText(context, "Oops! ${getString(R.string.label_rencana_studi_telah_disetujui)}", Toast.LENGTH_SHORT).show()
  109.                             }
  110.  
  111.                             binding.cardDone.setOnClickListener { v ->
  112.                                 findNavController().navigate(R.id.action_rencanaStudiFragment_to_doneFragment)
  113.                             }
  114.                         }
  115.                         "2" -> {
  116.                             // menunggu disetujui oleh dosen wali
  117.                             binding.cardProses.setOnClickListener { v ->
  118.                                 Toast.makeText(context, getString(R.string.label_persetujuan_oleh_dosen_wali), Toast.LENGTH_SHORT).show()
  119.                             }
  120.  
  121.                             binding.cardMenunggu.setOnClickListener { v ->
  122.                                 findNavController().navigate(R.id.action_rencanaStudiFragment_to_waitFragment)
  123.                             }
  124.  
  125.                             binding.cardDone.setOnClickListener { v ->
  126.                                 Toast.makeText(context, getString(R.string.label_persetujuan_oleh_dosen_wali), Toast.LENGTH_SHORT).show()
  127.                             }
  128.                         }
  129.                     }
  130.  
  131.                     progressDialogManager?.dismiss()
  132.                 }
  133.  
  134.                 is Resource.Failure -> {
  135.                     progressDialogManager?.dismiss()
  136.                     handleApiError(it)
  137.                 }
  138.             }
  139.         })
  140.     }
  141.  
  142.     override fun getViewModel()= RencanaStudiVM::class.java
  143.  
  144.     override fun getFragmentBinding(
  145.         inflater: LayoutInflater,
  146.         container: ViewGroup?
  147.     ) = FragmentRencanaStudiBinding.inflate(inflater, container, false)
  148.  
  149.     override fun getFragmentRepository() :RencanaStudiRepo {
  150.         val token = runBlocking { userPrefrences.authToken.first() }
  151.         val api = clientRemote.buildApi(RencanaStudi::class.java, token)
  152.         return RencanaStudiRepo(api)
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement