Advertisement
wesetiawan

Untitled

Mar 2nd, 2020
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 5.48 KB | None | 0 0
  1. package com.ws.minikuis.fragment
  2.  
  3. import android.graphics.Color
  4. import android.os.Bundle
  5. import android.os.CountDownTimer
  6. import android.util.Log
  7. import androidx.fragment.app.Fragment
  8. import android.view.LayoutInflater
  9. import android.view.View
  10. import android.view.ViewGroup
  11. import android.widget.Button
  12. import android.widget.TextView
  13. import com.google.firebase.database.*
  14.  
  15. import com.ws.minikuis.R
  16. import kotlinx.android.synthetic.main.quis_fragment.*
  17.  
  18. abstract class QuesFragment : Fragment(),View.OnClickListener{
  19.     private lateinit var database: DatabaseReference
  20.     lateinit var button: Button
  21.     lateinit var textView: TextView
  22.     var x: TextView? = null
  23.     var y: TextView? = null
  24.     val TAG = "GetStartedActivity"
  25.     var jawabanTepat: String? = ""
  26.     abstract var skor: Int
  27.  
  28.     override fun onCreate(savedInstanceState: Bundle?) {
  29.         super.onCreate(savedInstanceState)
  30.  
  31.     }
  32.  
  33.     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
  34.         // Inflate the layout for this fragment
  35.         return inflater.inflate(R.layout.quis_fragment, container, false)
  36.  
  37.     }
  38.  
  39.     override fun onActivityCreated(savedInstanceState: Bundle?) {
  40.         super.onActivityCreated(savedInstanceState)
  41.         getQuestionData()
  42.         tv_action.text="Mulai"
  43.         buttonConditition(false)
  44.         tv_action.setOnClickListener(this)
  45.         tv_jawabanA.setOnClickListener(this)
  46.         tv_jawabanB.setOnClickListener(this)
  47.         tv_jawabanC.setOnClickListener(this)
  48.         tv_jawabanD.setOnClickListener(this)
  49.     }
  50.  
  51.     private fun buttonConditition(b: Boolean){
  52.         tv_jawabanA.isEnabled = b
  53.         tv_jawabanB.isEnabled = b
  54.         tv_jawabanC.isEnabled = b
  55.         tv_jawabanD.isEnabled = b
  56.     }
  57.  
  58.     private fun startQuis(){
  59.         startTimer()
  60.         buttonConditition(true)
  61.         tv_action.text = "Pilih"
  62.     }
  63.  
  64.     private fun endQuis(){
  65.         tv_timer.setTextColor(Color.RED)
  66.         buttonConditition(false)
  67.         tv_action.text = "Lanjut"
  68.     }
  69.  
  70.     private fun startTimer(){
  71.         object: CountDownTimer(60000,100){
  72.             override fun onFinish() {
  73.                 buttonConditition(false)
  74.                 endQuis()
  75.             }
  76.             override fun onTick(millisUntilFinished: Long) {
  77.                 tv_timer.text = (millisUntilFinished / 1000).toString()
  78.                 if (millisUntilFinished<30000){
  79.                     tv_timer.setTextColor(Color.RED)
  80.                 }else{
  81.                     tv_timer.setTextColor(Color.BLUE)
  82.                 }
  83.  
  84.             }
  85.  
  86.         }.start()
  87.     }
  88.  
  89.     private fun getQuestionData(){
  90.         shimmerLayout.visibility= View.VISIBLE
  91.         shimmerLayout.startShimmer()
  92.         Log.d(TAG,"getQuestion")
  93.         val database = FirebaseDatabase.getInstance()
  94.         val myRef = database.getReference("pertanyaan")
  95.         myRef.addListenerForSingleValueEvent(object : ValueEventListener {
  96.             override fun onCancelled(p0: DatabaseError) {
  97.                 TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
  98.             }
  99.  
  100.             override fun onDataChange(dataSnapshot: DataSnapshot) {
  101.                 val data = dataSnapshot.toString()
  102.                 Log.d(TAG,"Value is : $data")
  103.                 tv_pertanyaan.text = dataSnapshot.child("soal").value.toString()
  104.                 tv_jawabanA.text = dataSnapshot.child("jawaban").child("a").value.toString()
  105.                 tv_jawabanB.text = dataSnapshot.child("jawaban").child("b").value.toString()
  106.                 tv_jawabanC.text = dataSnapshot.child("jawaban").child("c").value.toString()
  107.                 tv_jawabanD.text = dataSnapshot.child("jawaban").child("d").value.toString()
  108.  
  109.                 jawabanTepat = dataSnapshot.child("jawaban_tepat").value.toString()
  110.  
  111.                 shimmerLayout.stopShimmer()
  112.                 shimmerLayout.visibility= View.GONE
  113.                 quis_layout.visibility=View.VISIBLE
  114.             }
  115.  
  116.         })
  117.  
  118.     }
  119.  
  120.     private fun selectedAnswer(answer: String?,v: TextView){
  121.         Log.d(TAG,"Skor : $jawabanTepat")
  122.         Log.d(TAG,"Skor : $skor")
  123.         changeButton(v)
  124.         if (answer==jawabanTepat){
  125.             skor += 10
  126.         }
  127.         Log.d(TAG,"Skor : $skor")
  128.     }
  129.  
  130.     fun changeButton(v: TextView){
  131.         if (x!=null){
  132.             y = v
  133.             x?.isEnabled = true
  134.             y?.isEnabled = false
  135.             x=y
  136.         }else{
  137.             x = v
  138.             x?.isEnabled = false
  139.         }
  140.     }
  141.  
  142.     private fun getUserSkor(){
  143.         val database = FirebaseDatabase.getInstance()
  144.         val myRef = database.getReference("user")
  145.         myRef.addListenerForSingleValueEvent(object: ValueEventListener{
  146.             override fun onCancelled(databaseError: DatabaseError) {
  147.                 TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
  148.             }
  149.  
  150.             override fun onDataChange(dataSnapshot: DataSnapshot) {
  151.  
  152.             }
  153.  
  154.         })
  155.     }
  156.  
  157.     private fun updateUserSkor(){
  158.  
  159.     }
  160.  
  161.     override fun onClick(v: View) {
  162.         when (v.id){
  163.             R.id.tv_jawabanA -> selectedAnswer("a",tv_jawabanA)
  164.             R.id.tv_jawabanB -> selectedAnswer("b",tv_jawabanB)
  165.             R.id.tv_jawabanC -> selectedAnswer("c",tv_jawabanC)
  166.             R.id.tv_jawabanD -> selectedAnswer("d",tv_jawabanD)
  167.             R.id.tv_action -> startQuis()
  168.         }
  169.     }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement