diff --git a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/components/CertificateDownloadDialog.kt b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/components/CertificateDownloadDialog.kt new file mode 100644 index 0000000..96a331b --- /dev/null +++ b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/components/CertificateDownloadDialog.kt @@ -0,0 +1,36 @@ +package com.peculiaruc.alc_mmsystem_mentor.components + +import android.app.Dialog +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.os.Bundle +import android.view.LayoutInflater +import android.widget.Toast +import androidx.appcompat.app.AlertDialog +import androidx.fragment.app.DialogFragment +import com.peculiaruc.alc_mmsystem_mentor.databinding.CertDownloadDialogBinding +import com.peculiaruc.alc_mmsystem_mentor.databinding.ShareCustomDialogBinding + +class CertificateDownloadDialog : DialogFragment() { + + private lateinit var binding: CertDownloadDialogBinding + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + binding = CertDownloadDialogBinding.inflate(LayoutInflater.from(context)) + + val builder = AlertDialog.Builder(requireActivity()) + builder.setView(binding.root) + + binding.btnCertDownloadDialog.setOnClickListener { + Toast.makeText(context, "Downloading...", Toast.LENGTH_SHORT).show() + dismiss() + } + + val dialog = builder.create() + dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + return dialog + } + + + +} \ No newline at end of file diff --git a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/domain/CertificateItem.kt b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/domain/CertificateItem.kt new file mode 100644 index 0000000..ded4775 --- /dev/null +++ b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/domain/CertificateItem.kt @@ -0,0 +1,12 @@ +package com.peculiaruc.alc_mmsystem_mentor.domain + +import android.os.Parcelable +import kotlinx.parcelize.Parcelize + +@Parcelize +data class CertificateItem( + val id : Int, + val title : String, + val time : String, + val certImage : Int, +) : Parcelable diff --git a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/adapters/CertificatesAdapter.kt b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/adapters/CertificatesAdapter.kt new file mode 100644 index 0000000..5bf9e0e --- /dev/null +++ b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/adapters/CertificatesAdapter.kt @@ -0,0 +1,44 @@ +package com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.adapters + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.peculiaruc.alc_mmsystem_mentor.databinding.CertificateListItemBinding +import com.peculiaruc.alc_mmsystem_mentor.domain.CertificateItem + +class CertificatesAdapter( + private val certificatesList : List, + private val listener: OnClickListener + +) : RecyclerView.Adapter() { + + inner class CertificateViewHolder(val binding : CertificateListItemBinding) : RecyclerView.ViewHolder(binding.root){ + fun bindItem(certificateItem: CertificateItem){ + binding.tvCertTitle.text = certificateItem.title + binding.ivCertLogo.setImageResource(certificateItem.certImage) + + binding.certificateItem.setOnClickListener { + listener.onClick(certificateItem) + } + } + + } + + interface OnClickListener{ + fun onClick(certificateItem: CertificateItem) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CertificateViewHolder { + val binding = CertificateListItemBinding.inflate(LayoutInflater.from(parent.context), parent,false) + return CertificateViewHolder(binding) + } + + override fun onBindViewHolder(holder: CertificateViewHolder, position: Int) { + val programs = certificatesList[position] + holder.bindItem(programs) + } + + override fun getItemCount(): Int { + return certificatesList.size + } +} \ No newline at end of file diff --git a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertDetailFragment.kt b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertDetailFragment.kt index 5a8fed3..cd3891a 100644 --- a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertDetailFragment.kt +++ b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertDetailFragment.kt @@ -5,6 +5,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.navigation.fragment.findNavController +import com.peculiaruc.alc_mmsystem_mentor.components.CertificateDownloadDialog import com.peculiaruc.alc_mmsystem_mentor.databinding.MentorCertDetailFragmentLayoutBinding class MentorCertDetailFragment : Fragment() { @@ -17,7 +19,12 @@ class MentorCertDetailFragment : Fragment() { savedInstanceState: Bundle? ): View { MentorCertDetailFragmentLayoutBinding.inflate(inflater).let { _binding = it } - + binding.ivCertDetailsArrowBack.setOnClickListener { + findNavController().navigateUp() + } + binding.btnCertDownload.setOnClickListener { + CertificateDownloadDialog().show(parentFragmentManager,"") + } return binding.root } diff --git a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertsFragment.kt b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertsFragment.kt index 63bad24..d0b9741 100644 --- a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertsFragment.kt +++ b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/otherScreens/MentorCertsFragment.kt @@ -5,9 +5,18 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager import com.peculiaruc.alc_mmsystem_mentor.databinding.MentorCertsFragmentLayoutBinding +import com.peculiaruc.alc_mmsystem_mentor.databinding.MentorTasksFragmentLayoutBinding +import com.peculiaruc.alc_mmsystem_mentor.domain.CertificateItem +import com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.MainHomeFragmentDirections +import com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.adapters.CertificatesAdapter +import com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.adapters.TasksAdapter +import com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.utils.Navigator +import com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.utils.UiData +import com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.utils.mmController -class MentorCertsFragment : Fragment() { +class MentorCertsFragment : Fragment(), CertificatesAdapter.OnClickListener { private var _binding: MentorCertsFragmentLayoutBinding? = null private val binding get() = _binding!! @@ -17,7 +26,10 @@ class MentorCertsFragment : Fragment() { savedInstanceState: Bundle? ): View { MentorCertsFragmentLayoutBinding.inflate(inflater).let { _binding = it } - + _binding = MentorCertsFragmentLayoutBinding.inflate(layoutInflater) + val adapter = CertificatesAdapter(UiData.certificateList,this) + binding.certificatesRv.adapter = adapter + binding.certificatesRv.layoutManager = LinearLayoutManager(activity) return binding.root } @@ -26,4 +38,11 @@ class MentorCertsFragment : Fragment() { super.onDestroyView() _binding = null } + + override fun onClick(certificateItem: CertificateItem) { + Navigator.navigate( + mmController, + MainHomeFragmentDirections.actionMainHomeFragmentToMentorCertDetailFragment(certificateItem) + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/utils/UiData.kt b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/utils/UiData.kt index 3c4b465..d8063b2 100644 --- a/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/utils/UiData.kt +++ b/app/src/main/java/com/peculiaruc/alc_mmsystem_mentor/presentations/mainHome/utils/UiData.kt @@ -1,6 +1,7 @@ package com.peculiaruc.alc_mmsystem_mentor.presentations.mainHome.utils import com.peculiaruc.alc_mmsystem_mentor.R +import com.peculiaruc.alc_mmsystem_mentor.domain.CertificateItem import com.peculiaruc.alc_mmsystem_mentor.domain.ProgramItem import com.peculiaruc.alc_mmsystem_mentor.domain.ReportItem import com.peculiaruc.alc_mmsystem_mentor.domain.TaskItem @@ -283,4 +284,50 @@ object UiData { blocker = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent dignissim ut cursus purus efficitur et. Duis ac enim tellus. Phasellus pharetra metus, ut cursus purus efficitur et. Duis ac enim tellus. Phasellus eget tortor dapibus, laoreet mauris sed, dignissim lectus", ) ) + + val certificateList = listOf( + CertificateItem( + id = 1, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ),CertificateItem( + id = 2, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ),CertificateItem( + id = 3, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ),CertificateItem( + id = 4, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ),CertificateItem( + id = 5, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ),CertificateItem( + id = 6, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ),CertificateItem( + id = 7, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ),CertificateItem( + id = 8, + title = "GADS CLOUD 2022 - COMPLETION", + time = "Oct 16 2022", + certImage = R.drawable.cert_ph + ), + + ) + } \ No newline at end of file diff --git a/app/src/main/res/layout/cert_download_dialog.xml b/app/src/main/res/layout/cert_download_dialog.xml new file mode 100644 index 0000000..7fb1a34 --- /dev/null +++ b/app/src/main/res/layout/cert_download_dialog.xml @@ -0,0 +1,54 @@ + + + + + + + + +