react-native-mytatva-rn-sdk 1.2.9 → 1.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/android/src/main/java/com/mytatvarnsdk/activity/ConnectSensorActivity.kt +16 -9
  2. package/android/src/main/java/com/mytatvarnsdk/activity/PermissionActivity.kt +69 -4
  3. package/android/src/main/java/com/mytatvarnsdk/activity/SearchTransmitterActivity.kt +416 -408
  4. package/android/src/main/res/drawable/bg_light_yellow.xml +10 -0
  5. package/android/src/main/res/drawable/ic_setting.xml +9 -0
  6. package/android/src/main/res/drawable/img_permission_1.png +0 -0
  7. package/android/src/main/res/drawable/img_permission_2.png +0 -0
  8. package/android/src/main/res/layout/activity_connect_sensor.xml +18 -1
  9. package/android/src/main/res/layout/activity_search_transmitter.xml +19 -1
  10. package/android/src/main/res/layout/bluetooth_dialog_bottomsheet.xml +106 -0
  11. package/ios/Custom/CustomOverlayButton.swift +4 -4
  12. package/ios/Custom/CustomTopUIView.swift +3 -3
  13. package/ios/MyReactNativeBridge.m +26 -14
  14. package/ios/Storyboard/{Base.lproj/MainCGM.storyboard → MainCGM.storyboard} +72 -71
  15. package/ios/Support/Global.swift +11 -0
  16. package/ios/TableViewCell/ChargingIndicatorTVC/ChargingIndicatorTVC.swift +4 -0
  17. package/ios/TableViewCell/ChargingIndicatorTVC/ChargingIndicatorTVC.xib +6 -5
  18. package/ios/TableViewCell/ChatOptionTVC/ChatOptionTVC.swift +2 -2
  19. package/ios/TableViewCell/ChatOptionTVC/ChatOptionTVC.xib +4 -5
  20. package/ios/TableViewCell/ConnectDeviceTVC/ConnectDeviceTVC.swift +5 -0
  21. package/ios/TableViewCell/ConnectDeviceTVC/ConnectDeviceTVC.xib +6 -5
  22. package/ios/TableViewCell/ConnectSuccessTVC/ConnectSuccessTVC.swift +7 -1
  23. package/ios/TableViewCell/ConnectSuccessTVC/ConnectSuccessTVC.xib +6 -4
  24. package/ios/TableViewCell/ImageTVC/ImageTVC.swift +2 -0
  25. package/ios/TableViewCell/ImageTVC/ImageTVC.xib +5 -4
  26. package/ios/TableViewCell/LabelTVC/LabelTVC.xib +3 -4
  27. package/ios/TableViewCell/NoteTVC/NoteTVC.swift +2 -0
  28. package/ios/TableViewCell/NoteTVC/NoteTVC.xib +4 -4
  29. package/ios/TableViewCell/PodDetailsTVC/PodDetailsTVC.swift +7 -0
  30. package/ios/TableViewCell/PodDetailsTVC/PodDetailsTVC.xib +7 -5
  31. package/ios/TableViewCell/SearchDeviceTVC/SearchDeviceTVC.xib +4 -4
  32. package/ios/TableViewCell/SeparatorTVC/SeparatorTVC.xib +3 -3
  33. package/ios/TableViewCell/SwitchTVC/SwitchTVC.xib +5 -6
  34. package/ios/TableViewCell/VIdeoTVC/VideoTVC.xib +4 -4
  35. package/ios/TableViewCell/VerticalLabelsTVC/VerticalLabelsTVC.xib +3 -3
  36. package/ios/TableViewCell/WatchVideoTVC/WatchVideoTVC.swift +3 -0
  37. package/ios/TableViewCell/WatchVideoTVC/WatchVideoTVC.xib +5 -4
  38. package/ios/ViewControllers/AttachTransmitterViewController.swift +1 -1
  39. package/ios/ViewControllers/ChatWithExpertViewController.swift +2 -0
  40. package/ios/ViewControllers/ConnectToSensorViewController.swift +2 -2
  41. package/ios/ViewControllers/ConnectToTransmitterViewController.swift +1 -1
  42. package/ios/ViewControllers/ExitJourneyViewController.swift +11 -1
  43. package/ios/ViewControllers/PutOnTheSensorViewController.swift +1 -1
  44. package/ios/ViewControllers/StartConnectionViewController.swift +1 -1
  45. package/ios/ViewModel/FinalViewModel.swift +1 -1
  46. package/package.json +1 -2
  47. package/react-native-mytatva-rn-sdk.podspec +6 -2
  48. package/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -35
  49. package/ios/Storyboard/Base.lproj/LaunchScreen.storyboard +0 -25
  50. /package/ios/{Assets.xcassets → icon.xcassets}/AccentColor.colorset/Contents.json +0 -0
  51. /package/ios/{Assets.xcassets → icon.xcassets}/CGM_with_Toggle.imageset/CGM_with_Toggle.png +0 -0
  52. /package/ios/{Assets.xcassets → icon.xcassets}/CGM_with_Toggle.imageset/Contents.json +0 -0
  53. /package/ios/{Assets.xcassets → icon.xcassets}/Contents.json +0 -0
  54. /package/ios/{Assets.xcassets → icon.xcassets}/Take_out_transmitter.imageset/Contents.json +0 -0
  55. /package/ios/{Assets.xcassets → icon.xcassets}/Take_out_transmitter.imageset/Take our transmitter.png +0 -0
  56. /package/ios/{Assets.xcassets → icon.xcassets}/charging.imageset/Contents.json +0 -0
  57. /package/ios/{Assets.xcassets → icon.xcassets}/charging.imageset/charging.png +0 -0
  58. /package/ios/{Assets.xcassets → icon.xcassets}/charging_pod.imageset/Contents.json +0 -0
  59. /package/ios/{Assets.xcassets → icon.xcassets}/charging_pod.imageset/charging_pod.png +0 -0
  60. /package/ios/{Assets.xcassets → icon.xcassets}/close_pod.imageset/Contents.json +0 -0
  61. /package/ios/{Assets.xcassets → icon.xcassets}/close_pod.imageset/Group 1000005563.png +0 -0
  62. /package/ios/{Assets.xcassets → icon.xcassets}/close_pod.imageset/Group 1000005563@2x.png +0 -0
  63. /package/ios/{Assets.xcassets → icon.xcassets}/close_pod.imageset/Group 1000005563@3x.png +0 -0
  64. /package/ios/{Assets.xcassets → icon.xcassets}/do_not_place_inside.imageset/Contents.json +0 -0
  65. /package/ios/{Assets.xcassets → icon.xcassets}/do_not_place_inside.imageset/do_not_place_inside.png +0 -0
  66. /package/ios/{Assets.xcassets → icon.xcassets}/flip_the_reference.imageset/Contents.json +0 -0
  67. /package/ios/{Assets.xcassets → icon.xcassets}/flip_the_reference.imageset/flip_the_reference.png +0 -0
  68. /package/ios/{Assets.xcassets → icon.xcassets}/fully_charged.imageset/Contents.json +0 -0
  69. /package/ios/{Assets.xcassets → icon.xcassets}/fully_charged.imageset/fully_charged.png +0 -0
  70. /package/ios/{Assets.xcassets → icon.xcassets}/green.colorset/Contents.json +0 -0
  71. /package/ios/{Assets.xcassets → icon.xcassets}/ic_arrow.imageset/7.png +0 -0
  72. /package/ios/{Assets.xcassets → icon.xcassets}/ic_arrow.imageset/7@2x.png +0 -0
  73. /package/ios/{Assets.xcassets → icon.xcassets}/ic_arrow.imageset/7@3x.png +0 -0
  74. /package/ios/{Assets.xcassets → icon.xcassets}/ic_arrow.imageset/Contents.json +0 -0
  75. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back.imageset/7.png +0 -0
  76. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back.imageset/7@2x.png +0 -0
  77. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back.imageset/7@3x.png +0 -0
  78. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back.imageset/Contents.json +0 -0
  79. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back_arrow.imageset/Contents.json +0 -0
  80. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back_arrow.imageset/image 17 (Traced).png +0 -0
  81. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back_arrow.imageset/image 17 (Traced)@2x.png +0 -0
  82. /package/ios/{Assets.xcassets → icon.xcassets}/ic_back_arrow.imageset/image 17 (Traced)@3x.png +0 -0
  83. /package/ios/{Assets.xcassets → icon.xcassets}/ic_circle.imageset/Contents.json +0 -0
  84. /package/ios/{Assets.xcassets → icon.xcassets}/ic_circle.imageset/circle.png +0 -0
  85. /package/ios/{Assets.xcassets → icon.xcassets}/ic_circle.imageset/circle@2x.png +0 -0
  86. /package/ios/{Assets.xcassets → icon.xcassets}/ic_circle.imageset/circle@3x.png +0 -0
  87. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close.imageset/Contents.json +0 -0
  88. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close.imageset/close button.png +0 -0
  89. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close.imageset/close button@2x.png +0 -0
  90. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close.imageset/close button@3x.png +0 -0
  91. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close_popup.imageset/Contents.json +0 -0
  92. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close_popup.imageset/Frame.png +0 -0
  93. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close_popup.imageset/Frame@2x.png +0 -0
  94. /package/ios/{Assets.xcassets → icon.xcassets}/ic_close_popup.imageset/Frame@3x.png +0 -0
  95. /package/ios/{Assets.xcassets → icon.xcassets}/ic_green_arrow.imageset/Contents.json +0 -0
  96. /package/ios/{Assets.xcassets → icon.xcassets}/ic_green_arrow.imageset/image 17 (Traced).png +0 -0
  97. /package/ios/{Assets.xcassets → icon.xcassets}/ic_green_arrow.imageset/image 17 (Traced)@2x.png +0 -0
  98. /package/ios/{Assets.xcassets → icon.xcassets}/ic_green_arrow.imageset/image 17 (Traced)@3x.png +0 -0
  99. /package/ios/{Assets.xcassets → icon.xcassets}/ic_play.imageset/Contents.json +0 -0
  100. /package/ios/{Assets.xcassets → icon.xcassets}/ic_play.imageset/Play.png +0 -0
  101. /package/ios/{Assets.xcassets → icon.xcassets}/ic_play.imageset/Play@2x.png +0 -0
  102. /package/ios/{Assets.xcassets → icon.xcassets}/ic_play.imageset/Play@3x.png +0 -0
  103. /package/ios/{Assets.xcassets → icon.xcassets}/ic_selected.imageset/Contents.json +0 -0
  104. /package/ios/{Assets.xcassets → icon.xcassets}/ic_selected.imageset/Frame.png +0 -0
  105. /package/ios/{Assets.xcassets → icon.xcassets}/ic_selected.imageset/Frame@2x.png +0 -0
  106. /package/ios/{Assets.xcassets → icon.xcassets}/ic_selected.imageset/Frame@3x.png +0 -0
  107. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsApp_only.imageset/Contents.json +0 -0
  108. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsApp_only.imageset/WhatsApp.png +0 -0
  109. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsApp_only.imageset/WhatsApp@2x.png +0 -0
  110. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsApp_only.imageset/WhatsApp@3x.png +0 -0
  111. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsapp.imageset/Contents.json +0 -0
  112. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsapp.imageset/Frame 1000006343.png +0 -0
  113. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsapp.imageset/Frame 1000006343@2x.png +0 -0
  114. /package/ios/{Assets.xcassets → icon.xcassets}/ic_whatsapp.imageset/Frame 1000006343@3x.png +0 -0
  115. /package/ios/{Assets.xcassets → icon.xcassets}/indigo.colorset/Contents.json +0 -0
  116. /package/ios/{Assets.xcassets → icon.xcassets}/mandala.imageset/Contents.json +0 -0
  117. /package/ios/{Assets.xcassets → icon.xcassets}/mandala.imageset/ending.png +0 -0
  118. /package/ios/{Assets.xcassets → icon.xcassets}/open_pod.imageset/Contents.json +0 -0
  119. /package/ios/{Assets.xcassets → icon.xcassets}/open_pod.imageset/Screenshot 2025-04-22 at 8.07.34/342/200/257PM 1.png" +0 -0
  120. /package/ios/{Assets.xcassets → icon.xcassets}/open_pod.imageset/Screenshot 2025-04-22 at 8.07.34/342/200/257PM 1@2x.png" +0 -0
  121. /package/ios/{Assets.xcassets → icon.xcassets}/open_pod.imageset/Screenshot 2025-04-22 at 8.07.34/342/200/257PM 1@3x.png" +0 -0
  122. /package/ios/{Assets.xcassets → icon.xcassets}/step4.imageset/Contents.json +0 -0
  123. /package/ios/{Assets.xcassets → icon.xcassets}/step4.imageset/step4.png +0 -0
  124. /package/ios/{Assets.xcassets → icon.xcassets}/step5.imageset/Contents.json +0 -0
  125. /package/ios/{Assets.xcassets → icon.xcassets}/step5.imageset/step5.png +0 -0
  126. /package/ios/{Assets.xcassets → icon.xcassets}/transmitter_image.imageset/Contents.json +0 -0
  127. /package/ios/{Assets.xcassets → icon.xcassets}/transmitter_image.imageset/transmitter_image.png +0 -0
  128. /package/ios/{Assets.xcassets → icon.xcassets}/transmitter_shadow.imageset/CGM Shadow.png +0 -0
  129. /package/ios/{Assets.xcassets → icon.xcassets}/transmitter_shadow.imageset/Contents.json +0 -0
  130. /package/ios/{Assets.xcassets → icon.xcassets}/unselectedGray.colorset/Contents.json +0 -0
@@ -107,7 +107,7 @@ class ConnectSensorActivity : BaseBleActivity() {
107
107
  }
108
108
  }
109
109
 
110
- fun manageErrorState(showError: Boolean) {
110
+ fun manageErrorState(showError: Boolean, errorStatus: String) {
111
111
  ProgressManagement.getInstance().dismissWait(this)
112
112
  if (showError) {
113
113
  binding.clFail.visibility = View.VISIBLE
@@ -138,6 +138,13 @@ class ConnectSensorActivity : BaseBleActivity() {
138
138
  )
139
139
  }
140
140
  }
141
+
142
+ if (errorStatus.isNotEmpty()) {
143
+ binding.tvReason.visibility = View.VISIBLE
144
+ binding.tvReason.text = "Reason - ${errorStatus}"
145
+ } else {
146
+ binding.tvReason.visibility = View.GONE
147
+ }
141
148
  } else {
142
149
  binding.commonButton.root.visibility = View.VISIBLE
143
150
  binding.clFail.visibility = View.GONE
@@ -278,7 +285,7 @@ class ConnectSensorActivity : BaseBleActivity() {
278
285
 
279
286
  override fun bindFail() {
280
287
  super.bindFail()
281
- manageErrorState(true)
288
+ manageErrorState(true, "Bind Fail")
282
289
  }
283
290
 
284
291
  override fun bindSuccess() {
@@ -291,43 +298,43 @@ class ConnectSensorActivity : BaseBleActivity() {
291
298
 
292
299
  override fun bluetoothStateOFF() {
293
300
  super.bluetoothStateOFF()
294
- manageErrorState(true)
301
+ manageErrorState(true, "Bluetooth Off")
295
302
 
296
303
  }
297
304
 
298
305
  override fun disconnect() {
299
306
  super.disconnect()
300
- manageErrorState(true)
307
+ manageErrorState(true, "Disconnected")
301
308
 
302
309
  }
303
310
 
304
311
  override fun disconnectForTimeout() {
305
312
  super.disconnectForTimeout()
306
- manageErrorState(true)
313
+ manageErrorState(true, "Disconnected")
307
314
 
308
315
  }
309
316
 
310
317
  override fun checkFailForLowPower() {
311
318
  super.checkFailForLowPower()
312
- manageErrorState(true)
319
+ manageErrorState(true, "Low Power")
313
320
 
314
321
  }
315
322
 
316
323
  override fun checkFailErrorTemperature() {
317
324
  super.checkFailErrorTemperature()
318
- manageErrorState(true)
325
+ manageErrorState(true, "Temperature Error")
319
326
 
320
327
  }
321
328
 
322
329
  override fun unbindReset() {
323
330
  super.unbindReset()
324
- manageErrorState(true)
331
+ manageErrorState(true, "Unbinded")
325
332
 
326
333
  }
327
334
 
328
335
  override fun unbindCommand() {
329
336
  super.unbindCommand()
330
- manageErrorState(true)
337
+ manageErrorState(true, "Unbinded")
331
338
 
332
339
  }
333
340
 
@@ -1,22 +1,28 @@
1
1
  package com.mytatvarnsdk.activity
2
2
 
3
3
  import android.Manifest
4
+ import android.annotation.SuppressLint
4
5
  import android.app.AlertDialog
5
6
  import android.app.Dialog
7
+ import android.bluetooth.BluetoothAdapter
6
8
  import android.content.Context
7
9
  import android.content.Intent
8
10
  import android.content.pm.PackageManager
9
11
  import android.graphics.Color
12
+ import android.net.Uri
10
13
  import android.os.Build
11
14
  import android.os.Bundle
15
+ import android.provider.Settings
12
16
  import android.util.Log
13
17
  import android.view.Gravity
14
18
  import android.view.View
15
19
  import android.view.ViewGroup
16
20
  import android.view.Window
21
+ import android.widget.Toast
17
22
  import androidx.activity.OnBackPressedCallback
18
23
  import androidx.activity.enableEdgeToEdge
19
24
  import androidx.annotation.RequiresApi
25
+ import androidx.annotation.RequiresPermission
20
26
  import androidx.core.app.ActivityCompat
21
27
  import androidx.core.content.ContextCompat
22
28
  import androidx.core.graphics.drawable.toDrawable
@@ -25,14 +31,19 @@ import androidx.core.view.WindowInsetsCompat
25
31
  import cgmblelib.utils.ConstantsLibrary
26
32
  import com.mytatvarnsdk.base.BasePermissionActivity
27
33
  import com.mytatvarnsdk.databinding.ActivityPermissionBinding
34
+ import com.mytatvarnsdk.databinding.BluetoothDialogBottomsheetBinding
28
35
  import com.mytatvarnsdk.databinding.ExitDialogBottomsheetBinding
29
36
 
30
-
31
37
  class PermissionActivity : BasePermissionActivity() {
32
38
  private lateinit var binding: ActivityPermissionBinding
33
39
  private val LOCATION_REQUEST_CODE = 101
34
40
  private val BLUETOOTH_REQUEST_CODE = 102
35
41
 
42
+ private val REQUEST_ENABLE_BT = 1
43
+ private val bluetoothAdapter: BluetoothAdapter? by lazy {
44
+ BluetoothAdapter.getDefaultAdapter()
45
+ }
46
+
36
47
  override fun onCreate(savedInstanceState: Bundle?) {
37
48
  super.onCreate(savedInstanceState)
38
49
  binding = ActivityPermissionBinding.inflate(layoutInflater)
@@ -104,8 +115,12 @@ class PermissionActivity : BasePermissionActivity() {
104
115
  }
105
116
 
106
117
 
118
+ @SuppressLint("MissingPermission")
107
119
  private fun initialize() {
108
- binding.switchBluetooth.isChecked = isBluetoothPermissionGranted(this)
120
+ bluetoothAdapter?.let {
121
+ binding.switchBluetooth.isChecked = isBluetoothPermissionGranted(this) && it.isEnabled
122
+ }
123
+
109
124
  binding.switchLocation.isChecked = isLocationPermissionGranted(this)
110
125
 
111
126
  binding.switchBluetooth.setOnCheckedChangeListener { _, isChecked ->
@@ -134,6 +149,10 @@ class PermissionActivity : BasePermissionActivity() {
134
149
  startActivity(Intent(this, HelpActivity::class.java))
135
150
  }
136
151
 
152
+ binding.tvKnowMore.setOnClickListener {
153
+ openBluetoothDialog()
154
+ }
155
+
137
156
  binding.toolbar.btnClose.setOnClickListener {
138
157
  openExitDialog()
139
158
  }
@@ -146,6 +165,31 @@ class PermissionActivity : BasePermissionActivity() {
146
165
  onBackPressedDispatcher.addCallback(this, callback)
147
166
  }
148
167
 
168
+ private fun openBluetoothDialog() {
169
+ val binding = BluetoothDialogBottomsheetBinding.inflate(layoutInflater)
170
+
171
+ val dialog = Dialog(this)
172
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
173
+ dialog.setContentView(binding.root)
174
+
175
+ val window = dialog.window
176
+ window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
177
+ window?.setGravity(Gravity.BOTTOM)
178
+ window?.setBackgroundDrawable(Color.TRANSPARENT.toDrawable())
179
+
180
+ binding.tvKnowMore.setOnClickListener {
181
+ val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
182
+ data = Uri.fromParts("package", packageName, null)
183
+ }
184
+ startActivity(intent)
185
+ }
186
+
187
+ binding.closeButton.setOnClickListener(View.OnClickListener { v: View? ->
188
+ dialog.dismiss()
189
+ })
190
+
191
+ dialog.show()
192
+ }
149
193
 
150
194
  private fun openExitDialog() {
151
195
  val binding = ExitDialogBottomsheetBinding.inflate(layoutInflater)
@@ -218,6 +262,7 @@ class PermissionActivity : BasePermissionActivity() {
218
262
  }
219
263
  }
220
264
 
265
+ @RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
221
266
  private fun requestBluetoothPermission() {
222
267
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
223
268
  val permissions = PermissionUtils.BLUETOOTH_S
@@ -279,11 +324,12 @@ class PermissionActivity : BasePermissionActivity() {
279
324
  }
280
325
 
281
326
  private fun updateProceedButtonState() {
282
- binding.commonButton.btnProceed.isEnabled = areAllPermissionsGranted()
283
- if (areAllPermissionsGranted()) {
327
+ if (areAllPermissionsGranted() && bluetoothAdapter!!.isEnabled) {
284
328
  binding.commonButton.btnProceed.alpha = 1f
329
+ binding.commonButton.btnProceed.isEnabled = true
285
330
  } else {
286
331
  binding.commonButton.btnProceed.alpha = 0.5f
332
+ binding.commonButton.btnProceed.isEnabled = false
287
333
  }
288
334
  }
289
335
 
@@ -298,6 +344,7 @@ class PermissionActivity : BasePermissionActivity() {
298
344
  }
299
345
  }
300
346
 
347
+ @RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
301
348
  override fun onRequestPermissionsResult(
302
349
  requestCode: Int,
303
350
  permissions: Array<out String>,
@@ -335,7 +382,17 @@ class PermissionActivity : BasePermissionActivity() {
335
382
  // Start location-based action
336
383
  }
337
384
 
385
+ @RequiresPermission(Manifest.permission.BLUETOOTH_CONNECT)
338
386
  private fun onBluetoothPermissionGranted() {
387
+ if (bluetoothAdapter == null) {
388
+ Toast.makeText(this, "Bluetooth not supported", Toast.LENGTH_SHORT).show()
389
+ } else {
390
+ if (!bluetoothAdapter!!.isEnabled) {
391
+ val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
392
+ startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
393
+ }
394
+ }
395
+
339
396
  updateProceedButtonState()
340
397
  // Start Bluetooth device scan or connect
341
398
  }
@@ -345,6 +402,14 @@ class PermissionActivity : BasePermissionActivity() {
345
402
  updateProceedButtonState()
346
403
  }
347
404
 
405
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
406
+ super.onActivityResult(requestCode, resultCode, data)
407
+ if (requestCode == REQUEST_ENABLE_BT) {
408
+ if (resultCode == RESULT_OK) {
409
+ updateProceedButtonState()
410
+ }
411
+ }
412
+ }
348
413
  }
349
414
 
350
415
  object PermissionUtils {