Advertisement
Sedo09

Untitled

Oct 8th, 2023
1,194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 4.55 KB | Software | 0 0
  1. import android.Manifest
  2. import android.content.Intent
  3. import android.content.pm.PackageManager
  4. import android.net.Uri
  5. import android.os.Bundle
  6. import android.widget.Button
  7. import android.widget.EditText
  8. import androidx.appcompat.app.AlertDialog
  9. import androidx.appcompat.app.AppCompatActivity
  10. import androidx.core.app.ActivityCompat
  11. import androidx.core.content.ContextCompat
  12.  
  13. class MainActivity : AppCompatActivity() {
  14. // Дефинирайте код за извикване на телефонното приложение
  15. private val CALL_PHONE_PERMISSION_REQUEST_CODE = 123
  16.  
  17. override fun onCreate(savedInstanceState: Bundle?) {
  18. super.onCreate(savedInstanceState)
  19. setContentView(R.layout.activity_main)
  20.  
  21. // Свързване на бутон от XML с кода
  22. val myButton = findViewById<Button>(R.id.myButtonId)
  23. myButton.setOnClickListener {
  24. // Действия при натискане на бутона
  25. val intent = Intent(this, BloodSugarActivity::class.java)
  26. startActivity(intent)
  27. }
  28.  
  29. val enterBloodSugarButton = findViewById<Button>(R.id.enterBloodSugarButton)
  30. enterBloodSugarButton.setOnClickListener {
  31. // Отваряне на активитет за въвеждане на стойността на кръвната захар
  32. val intent = Intent(this, EnterBloodSugarActivity::class.java)
  33. startActivity(intent)
  34. }
  35.  
  36. val viewDailyMonitoringButton = findViewById<Button>(R.id.viewDailyMonitoringButton)
  37. viewDailyMonitoringButton.setOnClickListener {
  38. // Отваряне на активитет за преглед на мониторинг на кръвната захар за деня
  39. val intent = Intent(this, DailyMonitoringActivity::class.java)
  40. startActivity(intent)
  41. }
  42.  
  43. val emergencyButton = findViewById<Button>(R.id.emergencyButton)
  44. emergencyButton.setOnClickListener {
  45. // Проверка и извикване на функцията за звънене при спешни случаи
  46. if (checkCallPhonePermission()) {
  47. callEmergencyNumber()
  48. }
  49. }
  50. }
  51.  
  52. // Функция за проверка на разрешението за звънене
  53. private fun checkCallPhonePermission(): Boolean {
  54. if (ContextCompat.checkSelfPermission(
  55. this,
  56. Manifest.permission.CALL_PHONE
  57. ) != PackageManager.PERMISSION_GRANTED
  58. ) {
  59. ActivityCompat.requestPermissions(
  60. this,
  61. arrayOf(Manifest.permission.CALL_PHONE),
  62. CALL_PHONE_PERMISSION_REQUEST_CODE
  63. )
  64. return false
  65. }
  66. return true
  67. }
  68.  
  69. // Функция за извикване на телефонното приложение и звънене на спешния номер
  70. private fun callEmergencyNumber() {
  71. val intent = Intent(Intent.ACTION_CALL)
  72. intent.data = Uri.parse("tel:112")
  73. startActivity(intent)
  74. }
  75.  
  76. // Обработка на резултата от заявката за разрешение
  77. override fun onRequestPermissionsResult(
  78. requestCode: Int,
  79. permissions: Array<out String>,
  80. grantResults: IntArray
  81. ) {
  82. if (requestCode == CALL_PHONE_PERMISSION_REQUEST_CODE) {
  83. if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  84. // Разрешението е дадено, можем да извикаме номера
  85. callEmergencyNumber()
  86. }
  87. }
  88. }
  89. }
  90.  
  91. class EnterBloodSugarActivity : AppCompatActivity() {
  92. override fun onCreate(savedInstanceState: Bundle?) {
  93. super.onCreate(savedInstanceState)
  94. setContentView(R.layout.activity_enter_blood_sugar)
  95.  
  96. // Свързване на EditText за въвеждане на стойността на кръвната захар
  97. val bloodSugarEditText = findViewById<EditText>(R.id.bloodSugarEditText)
  98. val submitButton = findViewById<Button>(R.id.submitButton)
  99.  
  100. submitButton.setOnClickListener {
  101. val bloodSugarValue = bloodSugarEditText.text.toString().toDoubleOrNull()
  102.  
  103. if (bloodSugarValue != null) {
  104. if (bloodSugarValue > 4.5) {
  105. // Показване на съобщение за висока кръвна захар
  106. showHighBloodSugarMessage()
  107. }
  108. // Записване на данните или друга обработка
  109. } else {
  110. // Невалидна стойност, направете обработка на този случай
  111. }
  112. }
  113. }
  114.  
  115. private fun showHighBloodSugarMessage() {
  116. // Използване на AlertDialog за показване на съобщение
  117. val alertDialog = AlertDialog.Builder(this)
  118. .setTitle("Висока кръвна захар")
  119. .setMessage("Стойността на кръвната захар е над 4.5. Моля, обърнете се към лекаря си.")
  120. .setPositiveButton("OK") { dialog, _ ->
  121. dialog.dismiss()
  122. }
  123. .create()
  124.  
  125. alertDialog.show()
  126. }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement