Untitled
unknown
kotlin
3 years ago
5.8 kB
12
Indexable
package com.muzafferatmaca.ditennewcalender.ui.report.screen
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.Navigation
import com.muzafferatmaca.ditennewcalender.R
import com.muzafferatmaca.ditennewcalender.baseclass.BaseFragment
import com.muzafferatmaca.ditennewcalender.databinding.FragmentWantsNewBinding
import com.muzafferatmaca.ditennewcalender.datamodel.report.EventIdRequestString
import com.muzafferatmaca.ditennewcalender.datamodel.report.GetEmailReceiversResponseItem
import com.muzafferatmaca.ditennewcalender.datamodel.report.Receiver
import com.muzafferatmaca.ditennewcalender.dataviewmodel.report.EmailReceiversViewModel
import com.muzafferatmaca.ditennewcalender.ui.activities.ReportActivity
import com.muzafferatmaca.ditennewcalender.utils.LoginConstants
class WantsNewFragment : BaseFragment<FragmentWantsNewBinding>() {
override val layoutId: Int = R.layout.fragment_wants_new
var employeeTitle : String? = null
var employeeId : Int? = null
var requestEmail : String? = null
var requestFullName : String? = null
var eventID : Int? = null
var eventReportOpinion : String? = null
private lateinit var receiver : Receiver
private lateinit var eventIdRequest: EventIdRequestString
private lateinit var emailReceiversViewModel: EmailReceiversViewModel
private lateinit var spinnerMailAdapter : ArrayAdapter<String>
private val emailReceiversArrayList = ArrayList<GetEmailReceiversResponseItem>()
private val spinnerArrayList :ArrayList<String> = arrayListOf()
private var receiverEmailMap = mutableMapOf<String,String>()
private var receiverEmpIdMap = mutableMapOf<String,Int>()
private val receiverArrayList = ArrayList<Receiver>()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
eventID = activity?.intent?.getIntExtra("eventID",0)
emailReceiversViewModel = ViewModelProvider(this)[EmailReceiversViewModel::class.java]
setButton()
observe()
}
private fun observe(){
eventIdRequest = EventIdRequestString(eventID.toString())
emailReceiversViewModel.getEmailReceiver(eventIdRequest)
emailReceiversViewModel.loadingEmailReceivers.observe(viewLifecycleOwner){loading->
loading?.let {
}
}
emailReceiversViewModel.errorEmailReceivers.observe(viewLifecycleOwner){error ->
error?.let {
}
}
emailReceiversViewModel.emailReceiversLiveData.observe(viewLifecycleOwner){data ->
emailReceiversArrayList.clear()
data?.let {
emailReceiversArrayList.addAll(it)
}
getData()
}
}
private fun getData(){
spinnerArrayList.clear()
for (data in emailReceiversArrayList){
val email = data.email
val empID = data.empId
val posName = data.posName
val name = data.name
if (name != null) {
spinnerArrayList.add(name)
receiverEmailMap[name] = email!!
receiverEmpIdMap[name] = empID!!
}
}
binding.requestTitleEditText.addTextChangedListener(object : TextWatcher{
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
employeeTitle = p0?.toString() ?: ""
}
override fun afterTextChanged(p0: Editable?) {}
})
binding.requestDescriptionEditText.addTextChangedListener(object : TextWatcher{
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
eventReportOpinion = p0?.toString() ?: ""
}
override fun afterTextChanged(p0: Editable?) {}
})
spinnerMailAdapter = ArrayAdapter(requireContext(),android.R.layout.simple_dropdown_item_1line,android.R.id.text1,spinnerArrayList)
binding.whoSendRequestSpinner.adapter = spinnerMailAdapter
binding.whoSendRequestSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
val selectedSpinner = spinnerArrayList[p2]
requestFullName = spinnerArrayList[p2]
requestEmail = receiverEmailMap[selectedSpinner]
employeeId = receiverEmpIdMap[selectedSpinner]
}
override fun onNothingSelected(p0: AdapterView<*>?) {
}
}
}
private fun setButton(){
binding.wantsNewBackButton.setOnClickListener {
requireActivity().onBackPressed()
}
binding.wantsNewNextButton.setOnClickListener {
receiverArrayList.clear()
receiver = Receiver(employeeId,requestEmail,requestFullName,employeeTitle,eventReportOpinion)
receiverArrayList.add(receiver)
ReportActivity.reportSaveDataViewModel.wantsNew.value = receiverArrayList
val action = WantsNewFragmentDirections.actionWantsNewFragmentToWantsCoaFragment()
Navigation.findNavController(it).navigate(action)
}
}
}Editor is loading...