Guest User

Untitled

a guest
Feb 17th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.61 KB | None | 0 0
  1. package th.co.todsphol.add.projectone.fragment
  2.  
  3.  
  4. import android.annotation.SuppressLint
  5. import android.app.AlertDialog
  6. import android.app.ProgressDialog
  7. import android.os.Build
  8. import android.os.Bundle
  9. import android.os.Handler
  10. import android.support.annotation.RequiresApi
  11. import android.support.v4.app.Fragment
  12. import android.support.v4.content.ContextCompat
  13. import android.support.v7.widget.Toolbar
  14. import android.view.LayoutInflater
  15. import android.view.View
  16. import android.view.ViewGroup
  17. import android.widget.ImageView
  18. import android.widget.TextView
  19. import butterknife.BindView
  20. import butterknife.ButterKnife
  21. import com.google.firebase.database.DataSnapshot
  22. import com.google.firebase.database.DatabaseError
  23. import com.google.firebase.database.FirebaseDatabase
  24. import com.google.firebase.database.ValueEventListener
  25. import th.co.todsphol.add.projectone.R
  26. import th.co.todsphol.add.projectone.activity.DisplayActivity
  27. import com.bumptech.glide.Glide
  28. import com.bumptech.glide.util.Util
  29. import me.rishabhkhanna.customtogglebutton.CustomToggleButton
  30.  
  31.  
  32. @Suppress("DEPRECATION")
  33. class DataShowFragment : Fragment() {
  34.  
  35. @BindView(R.id.toolbar) lateinit var toolBar: Toolbar
  36. @BindView(R.id.tv_toolbar_title) lateinit var title: TextView
  37. @BindView(R.id.tv_name_client) lateinit var nameClient: TextView
  38. @BindView(R.id.tv_surname_client) lateinit var surNameClient: TextView
  39. @BindView(R.id.tv_color_client) lateinit var colorCar: TextView
  40. @BindView(R.id.tv_brand_client) lateinit var brandCar: TextView
  41. @BindView(R.id.tv_county) lateinit var licencePlate: TextView
  42. @BindView(R.id.tv_status) lateinit var alarmStatus: TextView
  43. @BindView(R.id.imv_status) lateinit var imViewStatus: ImageView
  44. @BindView(R.id.imageViewShow) lateinit var ivShowImage : ImageView
  45. @BindView(R.id.tg_noti) lateinit var tgNotification : CustomToggleButton
  46. private var baseR = FirebaseDatabase.getInstance().reference
  47. private var dataName = baseR.child("User").child("user1").child("DATA_PERS")
  48. private var dataCar = baseR.child("User").child("user1").child("DATA_CAR")
  49. private var dataStatus = baseR.child("User").child("user1").child("STATUS")
  50. private val mContext = this
  51. @RequiresApi(Build.VERSION_CODES.JELLY_BEAN)
  52. override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
  53. val view = inflater.inflate(R.layout.fragment_data_show, container, false)
  54. ButterKnife.bind(this, view)
  55. setToolbar()
  56. getDataCar()
  57. getDataname()
  58. getDataStatus()
  59. return view
  60.  
  61. }
  62.  
  63. override fun onStart() {
  64. super.onStart()
  65. isCheckToggleStatus()
  66. }
  67.  
  68. fun isCheckToggleStatus() {
  69. tgNotification.setOnClickListener {
  70. val alertDialog = AlertDialog.Builder(context).create()
  71. alertDialog.setTitle("ข้อความ")
  72. if (tgNotification.isChecked) {
  73. alertDialog.setMessage("ต้องการเปิดการแจ้งเตือนหรือไม่?")
  74. alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", { _, _ ->
  75. if (tgNotification.isChecked) {
  76. tgNotification.isChecked = false
  77. }
  78. alertDialog.dismiss()
  79. })
  80. alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", { _, _ ->
  81. dataStatus.child("Sowner").setValue("1")
  82. alertDialog.dismiss()
  83. })
  84. } else if (!tgNotification.isChecked) {
  85. alertDialog.setMessage("ต้องการปิดการแจ้งเตือนหรือไม่?")
  86. alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", { _, _ ->
  87. if (!tgNotification.isChecked) {
  88. tgNotification.isChecked = true
  89. }
  90. alertDialog.dismiss()
  91. })
  92. alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "OK", { _, _ ->
  93. dataStatus.child("Sowner").setValue("0")
  94. alertDialog.dismiss()
  95. })
  96. }
  97. alertDialog.show()
  98. }
  99. }
  100.  
  101. private fun setToolbar() {
  102. getMainActivity().setSupportActionBar(toolBar)
  103. getMainActivity().supportActionBar?.setDisplayShowTitleEnabled(false)
  104. getMainActivity().supportActionBar?.setHomeButtonEnabled(true)
  105. getMainActivity().supportActionBar?.setDisplayHomeAsUpEnabled(true)
  106. title.text = "ข้อมูลรถของท่าน"
  107.  
  108. }
  109.  
  110. fun getDataCar() {
  111. dataCar.addListenerForSingleValueEvent(object : ValueEventListener {
  112. override fun onDataChange(dataSnapshot: DataSnapshot) {
  113. val dataColorCar = dataSnapshot.child("color").getValue(String::class.java)
  114. val dataBrand = dataSnapshot.child("Type").getValue(String::class.java)
  115. val dataLicencePlate = dataSnapshot.child("LP").getValue(String::class.java)
  116. val dataUri = dataSnapshot.child("Images").getValue(String::class.java)
  117. try {
  118.  
  119. brandCar.text = dataBrand.toString()
  120. colorCar.text = dataColorCar.toString()
  121. licencePlate.text = dataLicencePlate.toString()
  122. generateImage(dataUri)
  123.  
  124. }catch (e : IllegalArgumentException) {
  125.  
  126. }
  127. }
  128.  
  129. override fun onCancelled(p0: DatabaseError?) {
  130.  
  131. }
  132.  
  133. })
  134. }
  135.  
  136. private fun generateImage(dataUri: String?) {
  137. Glide.with(context)
  138. .load(dataUri)
  139. .crossFade()
  140. .error(R.drawable.ic_motorcycle)
  141. .into(ivShowImage)
  142. }
  143.  
  144. fun getDataname() {
  145. dataName.addListenerForSingleValueEvent(object : ValueEventListener {
  146. override fun onDataChange(dataSnapshot: DataSnapshot) {
  147. val namePer = dataSnapshot.child("name").getValue(String::class.java)
  148. val surNamePer = dataSnapshot.child("surname").getValue(String::class.java)
  149. nameClient.text = namePer.toString()
  150. surNameClient.text = surNamePer.toString()
  151. }
  152.  
  153. override fun onCancelled(p0: DatabaseError?) {
  154.  
  155. }
  156.  
  157. })
  158. }
  159.  
  160.  
  161. fun getDataStatus() {
  162. dataStatus.addListenerForSingleValueEvent(object : ValueEventListener {
  163. @SuppressLint("ResourceAsColor")
  164. override fun onDataChange(dataSnapshot: DataSnapshot) {
  165. val dataStatusAlarm = dataSnapshot.child("Salarm").getValue(Int::class.java)
  166. val dataOwnerStatus = dataSnapshot.child("Sowner").getValue(String::class.java)
  167. changeColorStatus(dataStatusAlarm)
  168. if (dataOwnerStatus == "0") {
  169. tgNotification.isChecked = false
  170. } else if (dataOwnerStatus == "1") {
  171. tgNotification.isChecked = true
  172. }
  173. }
  174.  
  175. override fun onCancelled(p0: DatabaseError?) {
  176.  
  177. }
  178.  
  179. })
  180. }
  181.  
  182. private fun changeColorStatus(dataStatusAlarm: Int?) {
  183. if (dataStatusAlarm == 0) {
  184. try {
  185. imViewStatus.setColorFilter(ContextCompat.getColor(context!!, R.color.colorGreen))
  186. alarmStatus.text = "ปลอดภัย"
  187. } catch (e: NullPointerException) {
  188.  
  189. }
  190.  
  191. } else {
  192. try {
  193. imViewStatus.setColorFilter(ContextCompat.getColor(context!!, R.color.colorRed))
  194. alarmStatus.text = "ไม่ปลอดภัย"
  195. } catch (e: NullPointerException) {
  196.  
  197. }
  198. }
  199. }
  200.  
  201. private fun getMainActivity(): DisplayActivity {
  202. return activity as DisplayActivity
  203. }
  204. override fun onCreate(savedInstanceState: Bundle?) {
  205. super.onCreate(savedInstanceState)
  206. val dialog = ProgressDialog.show(activity, "กำลังโหลด", "กรุณารอสักครู่", true)
  207. dialog.show()
  208. val handler = Handler()
  209. handler.postDelayed(Runnable { dialog.dismiss() }, 1750)
  210. }
  211.  
  212.  
  213. override fun onDestroy() {
  214. super.onDestroy()
  215. if (Util.isOnMainThread()) {
  216. Glide.with(mContext).pauseRequests()
  217. }
  218.  
  219. }
  220.  
  221. companion object {
  222. fun newInstance(): Fragment {
  223. val bundle = Bundle()
  224. val fragment = DataShowFragment()
  225. fragment.arguments = bundle
  226. return fragment
  227. }
  228. }
  229.  
  230. }
Add Comment
Please, Sign In to add comment