1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package ta1.cis.fragment
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.navigation.NavController
import androidx.navigation.Navigation
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_i_b.*
import kotlinx.android.synthetic.main.fragment_i_k.*
import kotlinx.android.synthetic.main.fragment_i_k.alertData
import kotlinx.android.synthetic.main.fragment_i_k.progressBarIzin
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import ta1.cis.R
import ta1.cis.activity.DetailIzinBermalam
import ta1.cis.activity.DetailIzinKeluar
import ta1.cis.adapter.IzinBermalamAdapter
import ta1.cis.adapter.IzinKeluarAdapter
import ta1.cis.api.RetrofitInstance
import ta1.cis.helper.SharedPref
import ta1.cis.model.response.DataIzin
import ta1.cis.model.response.DataIzinKeluar
import ta1.cis.model.response.ResponseIzinBermalam
import ta1.cis.model.response.ResponseIzinKeluar
class IKFragment : Fragment() {
private lateinit var izinKeluarAdapter: IzinKeluarAdapter
private lateinit var sharedPref : SharedPref
private var navController: NavController? =null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
sharedPref = SharedPref(activity as Context)
return inflater.inflate(R.layout.fragment_i_k, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
setUpRecycle()
loadData()
navController = Navigation.findNavController(view)
btn_requestIK.setOnClickListener {
navController!!.navigate(R.id.action_nav_ik_to_requestIzinKeluarActivity)
}
super.onViewCreated(view, savedInstanceState)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
swipeRefreshIK.setOnRefreshListener {
loadData()
}
}
override fun onStart() {
super.onStart()
loadData()
}
private fun setUpRecycle() {
izinKeluarAdapter = IzinKeluarAdapter(arrayListOf())
rv_ik.apply {
setHasFixedSize(true)
layoutManager = LinearLayoutManager(activity)
adapter = izinKeluarAdapter
}
izinKeluarAdapter.setOnItemCallback(object : IzinKeluarAdapter.OnItemCallBack{
override fun onItemClicked(dataIzin: DataIzinKeluar) {
// Toast.makeText(activity,dataIzin.toString(),Toast.LENGTH_LONG).show()
var intent = Intent(activity, DetailIzinKeluar::class.java).apply {
putExtra(DetailIzinKeluar.DATA_IZIN_KELUAR,dataIzin)
}
startActivity(intent);
}
})
}
fun loadData() {
swipeRefreshIK.isRefreshing = true
RetrofitInstance.instanceRetrofit.getIzinKeluar(
sharedPref.getDimId().toLong(),
"Bearer ${sharedPref.getTokenBearer()}"
).enqueue(object : Callback<ResponseIzinKeluar> {
override fun onFailure(call: Call<ResponseIzinKeluar>, t: Throwable) {
Toast.makeText(activity,t.message, Toast.LENGTH_SHORT).show()
swipeRefreshIK.isRefreshing = false
}
override fun onResponse(
call: Call<ResponseIzinKeluar>,
response: Response<ResponseIzinKeluar>
) {
var list = response.body()
Log.d("Izin Keluar",list?.data.toString())
// list?.toString()?.let { Log.d("Isi data", it) }
if(list?.data == null){
alertData.visibility = View.VISIBLE
rv_ik.visibility = View.GONE
}else{
alertData.visibility = View.GONE
rv_ik.visibility = View.VISIBLE
izinKeluarAdapter.setData(list?.data)
}
progressBarIzin.visibility = View.GONE
swipeRefreshIK.isRefreshing = false
}
})
}
}