react-native-mytatva-rn-sdk 1.2.42 → 1.2.44

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.
@@ -250,10 +250,13 @@ class CgmTrackyLibModule(reactContext: ReactApplicationContext) :
250
250
  mStatus
251
251
  }
252
252
 
253
+ Log.d("postEventDataToAPI: ", "Device Event Status==> $status")
254
+
253
255
  if (status.isNotEmpty()) {
254
256
  if (status != lastDeviceStatus) {
255
257
 
256
258
  lastDeviceStatus = status
259
+ Log.d("postEventDataToAPI: ", "Device Event Status API==> $status")
257
260
 
258
261
  val rawData = JSONObject().apply {
259
262
  put("transmitterName", device?.name ?: "")
@@ -366,19 +369,7 @@ class CgmTrackyLibModule(reactContext: ReactApplicationContext) :
366
369
  // Create new observer with explicit nullable parameter type
367
370
  glucoseObserver = Observer<PocGlucose?> { pocGlucose ->
368
371
  if (pocGlucose != null) {
369
- // Add timestamp check to prevent processing old data
370
- val currentTime = System.currentTimeMillis()
371
- val dataAge = currentTime - pocGlucose.timeInMillis
372
-
373
- // Only process data that's relatively recent (within last 10 minutes as example)
374
- if (dataAge <= 10 * 60 * 1000L) { // 10 minutes
375
- handleGlucoseData(pocGlucose)
376
- } else {
377
- Log.d(
378
- "observeGlucoseData",
379
- "Skipping old glucose data: age = ${dataAge}ms"
380
- )
381
- }
372
+ handleGlucoseData(pocGlucose)
382
373
  } else {
383
374
  Log.w(
384
375
  "observeGlucoseData",
@@ -610,7 +601,7 @@ class CgmTrackyLibModule(reactContext: ReactApplicationContext) :
610
601
  lastDeviceStatus = null
611
602
 
612
603
  // Clear any cached data if needed
613
- // prefsHelper.clearCache() // if you have such method
604
+ prefsHelper.clearQRInformation() // if you have such method
614
605
 
615
606
  } catch (e: Exception) {
616
607
  Log.e("resetCgmState", "Error resetting CGM state: ${e.message}")
@@ -93,6 +93,8 @@ class ConnectSensorActivity : BaseBleActivity() {
93
93
  }
94
94
 
95
95
  binding.toolbar.btnWatchDemo.setOnClickListener {
96
+ sendDataToRN("", "cgm_watch_demo_clicked")
97
+
96
98
  startActivity(
97
99
  Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
98
100
  )
@@ -317,7 +319,7 @@ class ConnectSensorActivity : BaseBleActivity() {
317
319
  super.bindSuccess()
318
320
  ProgressManagement.getInstance().dismissWait(this)
319
321
  if (isForReconnect) {
320
- sendDataToRN("")
322
+ sendDataToRN("", "WARM_PERIOD_STARTED")
321
323
  startActivity(
322
324
  Intent(this, SensorConnectSuccessActivity::class.java)
323
325
  .putExtra(
@@ -331,17 +333,17 @@ class ConnectSensorActivity : BaseBleActivity() {
331
333
  finish()
332
334
  }
333
335
 
334
- private fun sendDataToRN(data: String) {
336
+ private fun sendDataToRN(data: String, status: String) {
335
337
  if (reactContext != null) {
336
338
  try {
337
339
  val catalystInstance: CatalystInstance = reactContext.catalystInstance
338
340
  val module = catalystInstance.getNativeModule(CgmTrackyLibModule::class.java)
339
341
 
340
342
  if (module == null) {
341
- sendDataToRNDirectly("", "WARM_PERIOD_STARTED")
343
+ sendDataToRNDirectly("", status)
342
344
  Log.d("sendDataToRN: ", "Module null")
343
345
  } else {
344
- module.sendDataToReact(data, "WARM_PERIOD_STARTED", "cgmDeviceEvent")
346
+ module.sendDataToReact(data, status, "cgmDeviceEvent")
345
347
  Log.d("sendDataToRN: ", "Module is not null")
346
348
  }
347
349
  } catch (e: Exception) {
@@ -29,6 +29,11 @@ import androidx.core.graphics.drawable.toDrawable
29
29
  import androidx.core.view.ViewCompat
30
30
  import androidx.core.view.WindowInsetsCompat
31
31
  import cgmblelib.utils.ConstantsLibrary
32
+ import com.facebook.react.bridge.Arguments
33
+ import com.facebook.react.bridge.CatalystInstance
34
+ import com.facebook.react.bridge.WritableMap
35
+ import com.facebook.react.modules.core.DeviceEventManagerModule
36
+ import com.mytatvarnsdk.CgmTrackyLibModule
32
37
  import com.mytatvarnsdk.base.BasePermissionActivity
33
38
  import com.mytatvarnsdk.databinding.ActivityPermissionBinding
34
39
  import com.mytatvarnsdk.databinding.BluetoothDialogBottomsheetBinding
@@ -43,6 +48,7 @@ class PermissionActivity : BasePermissionActivity() {
43
48
  private val bluetoothAdapter: BluetoothAdapter? by lazy {
44
49
  BluetoothAdapter.getDefaultAdapter()
45
50
  }
51
+ private val reactContext = CgmTrackyLibModule.mReactContext
46
52
 
47
53
  override fun onCreate(savedInstanceState: Bundle?) {
48
54
  super.onCreate(savedInstanceState)
@@ -150,6 +156,8 @@ class PermissionActivity : BasePermissionActivity() {
150
156
  }
151
157
 
152
158
  binding.toolbar.btnWatchDemo.setOnClickListener {
159
+ sendDataToRN("","cgm_watch_demo_clicked")
160
+
153
161
  startActivity(
154
162
  Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
155
163
  )
@@ -171,6 +179,42 @@ class PermissionActivity : BasePermissionActivity() {
171
179
  onBackPressedDispatcher.addCallback(this, callback)
172
180
  }
173
181
 
182
+ private fun sendDataToRN(data: String, status: String) {
183
+ if (reactContext != null) {
184
+ try {
185
+ val catalystInstance: CatalystInstance = reactContext.catalystInstance
186
+ val module = catalystInstance.getNativeModule(CgmTrackyLibModule::class.java)
187
+
188
+ if (module == null) {
189
+ sendDataToRNDirectly("", status)
190
+ Log.d("sendDataToRN: ", "Module null")
191
+ } else {
192
+ module.sendDataToReact(data, status, "cgmDeviceEvent")
193
+ Log.d("sendDataToRN: ", "Module is not null")
194
+ }
195
+ } catch (e: Exception) {
196
+ Log.e("sendDataToRN: Error ", e.message.toString())
197
+ }
198
+ } else {
199
+ Log.e("TrackyActivity", "ReactApplicationContext is null")
200
+ }
201
+ }
202
+
203
+
204
+ private fun sendDataToRNDirectly(data: String, status: String) {
205
+ try {
206
+ val map: WritableMap = Arguments.createMap().apply {
207
+ putString("data", data)
208
+ putString("status", status)
209
+ }
210
+
211
+ reactContext?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
212
+ ?.emit("cgmDeviceEvent", map)
213
+ } catch (e: Exception) {
214
+ Log.e("sendDataToRNDirectly", "Error sending data to React", e)
215
+ }
216
+ }
217
+
174
218
  private fun openBluetoothDialog() {
175
219
  val binding = BluetoothDialogBottomsheetBinding.inflate(layoutInflater)
176
220
 
@@ -4,6 +4,7 @@ import android.app.Dialog
4
4
  import android.content.Intent
5
5
  import android.graphics.Color
6
6
  import android.os.Bundle
7
+ import android.util.Log
7
8
  import android.view.Gravity
8
9
  import android.view.View
9
10
  import android.view.ViewGroup
@@ -16,6 +17,11 @@ import androidx.core.view.ViewCompat
16
17
  import androidx.core.view.WindowInsetsCompat
17
18
  import com.bumptech.glide.Glide
18
19
  import com.bumptech.glide.load.resource.bitmap.RoundedCorners
20
+ import com.facebook.react.bridge.Arguments
21
+ import com.facebook.react.bridge.CatalystInstance
22
+ import com.facebook.react.bridge.WritableMap
23
+ import com.facebook.react.modules.core.DeviceEventManagerModule
24
+ import com.mytatvarnsdk.CgmTrackyLibModule
19
25
  import com.mytatvarnsdk.R
20
26
  import com.mytatvarnsdk.databinding.ActivityPlaceSensorBinding
21
27
  import com.mytatvarnsdk.databinding.ExitDialogBottomsheetBinding
@@ -26,6 +32,7 @@ import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.options.IFram
26
32
 
27
33
  class PlaceSensorActivity : AppCompatActivity() {
28
34
  private lateinit var binding: ActivityPlaceSensorBinding
35
+ private val reactContext = CgmTrackyLibModule.mReactContext
29
36
 
30
37
  override fun onCreate(savedInstanceState: Bundle?) {
31
38
  super.onCreate(savedInstanceState)
@@ -56,6 +63,8 @@ class PlaceSensorActivity : AppCompatActivity() {
56
63
  }
57
64
 
58
65
  binding.toolbar.btnWatchDemo.setOnClickListener {
66
+ sendDataToRN("", "cgm_watch_demo_clicked")
67
+
59
68
  startActivity(
60
69
  Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
61
70
  )
@@ -85,6 +94,41 @@ class PlaceSensorActivity : AppCompatActivity() {
85
94
  onBackPressedDispatcher.addCallback(this, callback)
86
95
  }
87
96
 
97
+ private fun sendDataToRN(data: String, status: String) {
98
+ if (reactContext != null) {
99
+ try {
100
+ val catalystInstance: CatalystInstance = reactContext.catalystInstance
101
+ val module = catalystInstance.getNativeModule(CgmTrackyLibModule::class.java)
102
+
103
+ if (module == null) {
104
+ sendDataToRNDirectly("", status)
105
+ Log.d("sendDataToRN: ", "Module null")
106
+ } else {
107
+ module.sendDataToReact(data, status, "cgmDeviceEvent")
108
+ Log.d("sendDataToRN: ", "Module is not null")
109
+ }
110
+ } catch (e: Exception) {
111
+ Log.e("sendDataToRN: Error ", e.message.toString())
112
+ }
113
+ } else {
114
+ Log.e("TrackyActivity", "ReactApplicationContext is null")
115
+ }
116
+ }
117
+
118
+
119
+ private fun sendDataToRNDirectly(data: String, status: String) {
120
+ try {
121
+ val map: WritableMap = Arguments.createMap().apply {
122
+ putString("data", data)
123
+ putString("status", status)
124
+ }
125
+
126
+ reactContext?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
127
+ ?.emit("cgmDeviceEvent", map)
128
+ } catch (e: Exception) {
129
+ Log.e("sendDataToRNDirectly", "Error sending data to React", e)
130
+ }
131
+ }
88
132
 
89
133
  private fun openExitDialog() {
90
134
  val binding = ExitDialogBottomsheetBinding.inflate(layoutInflater)
@@ -61,7 +61,7 @@ class PlaceTransmitterActivity : AppCompatActivity() {
61
61
  binding.commonButton.tvProceed.text = "Complete"
62
62
 
63
63
  binding.commonButton.btnProceed.setOnClickListener {
64
- sendDataToRN("")
64
+ sendDataToRN("","WARM_PERIOD_STARTED")
65
65
  finish()
66
66
  }
67
67
 
@@ -70,6 +70,8 @@ class PlaceTransmitterActivity : AppCompatActivity() {
70
70
  }
71
71
 
72
72
  binding.toolbar.btnWatchDemo.setOnClickListener {
73
+ sendDataToRN("","cgm_watch_demo_clicked")
74
+
73
75
  startActivity(
74
76
  Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
75
77
  )
@@ -124,17 +126,17 @@ class PlaceTransmitterActivity : AppCompatActivity() {
124
126
  dialog.show()
125
127
  }
126
128
 
127
- private fun sendDataToRN(data: String) {
129
+ private fun sendDataToRN(data: String, status: String) {
128
130
  if (reactContext != null) {
129
131
  try {
130
132
  val catalystInstance: CatalystInstance = reactContext.catalystInstance
131
133
  val module = catalystInstance.getNativeModule(CgmTrackyLibModule::class.java)
132
134
 
133
135
  if (module == null) {
134
- sendDataToRNDirectly("", "WARM_PERIOD_STARTED")
136
+ sendDataToRNDirectly("", status)
135
137
  Log.d("sendDataToRN: ", "Module null")
136
138
  } else {
137
- module.sendDataToReact(data, "WARM_PERIOD_STARTED", "cgmDeviceEvent")
139
+ module.sendDataToReact(data, status, "cgmDeviceEvent")
138
140
  Log.d("sendDataToRN: ", "Module is not null")
139
141
  }
140
142
  } catch (e: Exception) {
@@ -33,6 +33,11 @@ import cgmblelib.custom.livedata.scan.PocDeviceAndRssi
33
33
  import cgmblelib.database.entity.PocDevice
34
34
  import cgmblelib.database.entity.PocGlucose
35
35
  import com.bumptech.glide.Glide
36
+ import com.facebook.react.bridge.Arguments
37
+ import com.facebook.react.bridge.CatalystInstance
38
+ import com.facebook.react.bridge.WritableMap
39
+ import com.facebook.react.modules.core.DeviceEventManagerModule
40
+ import com.mytatvarnsdk.CgmTrackyLibModule
36
41
  import com.mytatvarnsdk.R
37
42
  import com.mytatvarnsdk.base.BaseBleActivity
38
43
  import com.mytatvarnsdk.databinding.ActivitySearchTransmitterBinding
@@ -65,6 +70,7 @@ class SearchTransmitterActivity : BaseBleActivity() {
65
70
  private val job = Job()
66
71
  private val scope = CoroutineScope(Dispatchers.IO + job)
67
72
  private var isForReconnect: Boolean = false
73
+ private val reactContext = CgmTrackyLibModule.mReactContext
68
74
 
69
75
  override fun init() {
70
76
 
@@ -350,6 +356,8 @@ class SearchTransmitterActivity : BaseBleActivity() {
350
356
  }
351
357
 
352
358
  binding.toolbar.btnWatchDemo.setOnClickListener {
359
+ sendDataToRN("", "cgm_watch_demo_clicked")
360
+
353
361
  startActivity(
354
362
  Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
355
363
  )
@@ -457,6 +465,41 @@ class SearchTransmitterActivity : BaseBleActivity() {
457
465
  }
458
466
  }
459
467
 
468
+ private fun sendDataToRN(data: String, status: String) {
469
+ if (reactContext != null) {
470
+ try {
471
+ val catalystInstance: CatalystInstance = reactContext.catalystInstance
472
+ val module = catalystInstance.getNativeModule(CgmTrackyLibModule::class.java)
473
+
474
+ if (module == null) {
475
+ sendDataToRNDirectly("", status)
476
+ Log.d("sendDataToRN: ", "Module null")
477
+ } else {
478
+ module.sendDataToReact(data, status, "cgmDeviceEvent")
479
+ Log.d("sendDataToRN: ", "Module is not null")
480
+ }
481
+ } catch (e: Exception) {
482
+ Log.e("sendDataToRN: Error ", e.message.toString())
483
+ }
484
+ } else {
485
+ Log.e("TrackyActivity", "ReactApplicationContext is null")
486
+ }
487
+ }
488
+
489
+
490
+ private fun sendDataToRNDirectly(data: String, status: String) {
491
+ try {
492
+ val map: WritableMap = Arguments.createMap().apply {
493
+ putString("data", data)
494
+ putString("status", status)
495
+ }
496
+
497
+ reactContext?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
498
+ ?.emit("cgmDeviceEvent", map)
499
+ } catch (e: Exception) {
500
+ Log.e("sendDataToRNDirectly", "Error sending data to React", e)
501
+ }
502
+ }
460
503
 
461
504
  fun logLongJson(tag: String, message: String) {
462
505
  val maxLogSize = 4000
@@ -4,6 +4,7 @@ import android.app.Dialog
4
4
  import android.content.Intent
5
5
  import android.graphics.Color
6
6
  import android.os.Bundle
7
+ import android.util.Log
7
8
  import android.view.Gravity
8
9
  import android.view.View
9
10
  import android.view.ViewGroup
@@ -16,6 +17,10 @@ import androidx.core.view.ViewCompat
16
17
  import androidx.core.view.WindowInsetsCompat
17
18
  import cgmblelib.utils.SharedPreferencesLibraryUtil
18
19
  import com.bumptech.glide.Glide
20
+ import com.facebook.react.bridge.Arguments
21
+ import com.facebook.react.bridge.CatalystInstance
22
+ import com.facebook.react.bridge.WritableMap
23
+ import com.facebook.react.modules.core.DeviceEventManagerModule
19
24
  import com.mytatvarnsdk.R
20
25
  import com.mytatvarnsdk.databinding.ActivitySensorConnectSuccessBinding
21
26
  import com.mytatvarnsdk.databinding.ExitDialogBottomsheetBinding
@@ -41,6 +46,7 @@ class SensorConnectSuccessActivity : AppCompatActivity() {
41
46
  private val job = Job()
42
47
  private val scope = CoroutineScope(Dispatchers.IO + job)
43
48
  private var isForReconnect: Boolean = false
49
+ private val reactContext = CgmTrackyLibModule.mReactContext
44
50
 
45
51
  override fun onCreate(savedInstanceState: Bundle?) {
46
52
  super.onCreate(savedInstanceState)
@@ -74,6 +80,8 @@ class SensorConnectSuccessActivity : AppCompatActivity() {
74
80
  }
75
81
 
76
82
  binding.toolbar.btnWatchDemo.setOnClickListener {
83
+ sendDataToRN("","cgm_watch_demo_clicked")
84
+
77
85
  startActivity(
78
86
  Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
79
87
  )
@@ -102,6 +110,42 @@ class SensorConnectSuccessActivity : AppCompatActivity() {
102
110
  postEventDataToAPI()
103
111
  }
104
112
 
113
+ private fun sendDataToRN(data: String, status: String) {
114
+ if (reactContext != null) {
115
+ try {
116
+ val catalystInstance: CatalystInstance = reactContext.catalystInstance
117
+ val module = catalystInstance.getNativeModule(CgmTrackyLibModule::class.java)
118
+
119
+ if (module == null) {
120
+ sendDataToRNDirectly("", status)
121
+ Log.d("sendDataToRN: ", "Module null")
122
+ } else {
123
+ module.sendDataToReact(data, status, "cgmDeviceEvent")
124
+ Log.d("sendDataToRN: ", "Module is not null")
125
+ }
126
+ } catch (e: Exception) {
127
+ Log.e("sendDataToRN: Error ", e.message.toString())
128
+ }
129
+ } else {
130
+ Log.e("TrackyActivity", "ReactApplicationContext is null")
131
+ }
132
+ }
133
+
134
+
135
+ private fun sendDataToRNDirectly(data: String, status: String) {
136
+ try {
137
+ val map: WritableMap = Arguments.createMap().apply {
138
+ putString("data", data)
139
+ putString("status", status)
140
+ }
141
+
142
+ reactContext?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
143
+ ?.emit("cgmDeviceEvent", map)
144
+ } catch (e: Exception) {
145
+ Log.e("sendDataToRNDirectly", "Error sending data to React", e)
146
+ }
147
+ }
148
+
105
149
  private fun postEventDataToAPI() {
106
150
  val sharedPreferencesLibraryUtil = SharedPreferencesLibraryUtil(this)
107
151
  val information = sharedPreferencesLibraryUtil.qrInformation
@@ -6,6 +6,7 @@ import android.content.pm.PackageManager
6
6
  import android.graphics.Color
7
7
  import android.os.Build
8
8
  import android.os.Bundle
9
+ import android.util.Log
9
10
  import android.view.Gravity
10
11
  import android.view.View
11
12
  import android.view.ViewGroup
@@ -17,6 +18,11 @@ import androidx.core.content.ContextCompat
17
18
  import androidx.core.graphics.drawable.toDrawable
18
19
  import androidx.core.view.ViewCompat
19
20
  import androidx.core.view.WindowInsetsCompat
21
+ import com.facebook.react.bridge.Arguments
22
+ import com.facebook.react.bridge.CatalystInstance
23
+ import com.facebook.react.bridge.WritableMap
24
+ import com.facebook.react.modules.core.DeviceEventManagerModule
25
+ import com.mytatvarnsdk.CgmTrackyLibModule
20
26
  import com.mytatvarnsdk.CgmTrackyLibModule.Companion.mReactContext
21
27
  import com.mytatvarnsdk.R
22
28
  import com.mytatvarnsdk.databinding.ActivityStartCgmactivityBinding
@@ -26,6 +32,7 @@ import com.mytatvarnsdk.databinding.ExitDialogBottomsheetBinding
26
32
  class StartCGMActivity : AppCompatActivity() {
27
33
  private lateinit var binding: ActivityStartCgmactivityBinding
28
34
  private var isForReconnect: Boolean = false
35
+ private val reactContext = CgmTrackyLibModule.mReactContext
29
36
 
30
37
  override fun onCreate(savedInstanceState: Bundle?) {
31
38
  super.onCreate(savedInstanceState)
@@ -79,6 +86,7 @@ class StartCGMActivity : AppCompatActivity() {
79
86
  }
80
87
 
81
88
  binding.toolbar.btnWatchDemo.setOnClickListener {
89
+ sendDataToRN("","cgm_watch_demo_clicked")
82
90
  startActivity(
83
91
  Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
84
92
  )
@@ -142,4 +150,40 @@ class StartCGMActivity : AppCompatActivity() {
142
150
  dialog.show()
143
151
  }
144
152
 
153
+ private fun sendDataToRN(data: String, status: String) {
154
+ if (reactContext != null) {
155
+ try {
156
+ val catalystInstance: CatalystInstance = reactContext.catalystInstance
157
+ val module = catalystInstance.getNativeModule(CgmTrackyLibModule::class.java)
158
+
159
+ if (module == null) {
160
+ sendDataToRNDirectly("", status)
161
+ Log.d("sendDataToRN: ", "Module null")
162
+ } else {
163
+ module.sendDataToReact(data, status, "cgmDeviceEvent")
164
+ Log.d("sendDataToRN: ", "Module is not null")
165
+ }
166
+ } catch (e: Exception) {
167
+ Log.e("sendDataToRN: Error ", e.message.toString())
168
+ }
169
+ } else {
170
+ Log.e("TrackyActivity", "ReactApplicationContext is null")
171
+ }
172
+ }
173
+
174
+
175
+ private fun sendDataToRNDirectly(data: String, status: String) {
176
+ try {
177
+ val map: WritableMap = Arguments.createMap().apply {
178
+ putString("data", data)
179
+ putString("status", status)
180
+ }
181
+
182
+ reactContext?.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
183
+ ?.emit("cgmDeviceEvent", map)
184
+ } catch (e: Exception) {
185
+ Log.e("sendDataToRNDirectly", "Error sending data to React", e)
186
+ }
187
+ }
188
+
145
189
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-mytatva-rn-sdk",
3
- "version": "1.2.42",
3
+ "version": "1.2.44",
4
4
  "description": "a package to inject data into visit health pwa",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",