react-native-mytatva-rn-sdk 1.2.32 → 1.2.34

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 (26) hide show
  1. package/android/build.gradle +144 -141
  2. package/android/src/main/AndroidManifest.xml +4 -1
  3. package/android/src/main/AndroidManifestNew.xml +141 -138
  4. package/android/src/main/java/com/mytatvarnsdk/CgmTrackyLibModule.kt +74 -101
  5. package/android/src/main/java/com/mytatvarnsdk/MainApplication.kt +4 -4
  6. package/android/src/main/java/com/mytatvarnsdk/activity/ConnectSensorActivity.kt +20 -2
  7. package/android/src/main/java/com/mytatvarnsdk/activity/PermissionActivity.kt +6 -0
  8. package/android/src/main/java/com/mytatvarnsdk/activity/PlaceSensorActivity.kt +82 -65
  9. package/android/src/main/java/com/mytatvarnsdk/activity/PlaceTransmitterActivity.kt +106 -89
  10. package/android/src/main/java/com/mytatvarnsdk/activity/SearchTransmitterActivity.kt +13 -7
  11. package/android/src/main/java/com/mytatvarnsdk/activity/SensorConnectSuccessActivity.kt +113 -96
  12. package/android/src/main/java/com/mytatvarnsdk/activity/StartCGMActivity.kt +110 -54
  13. package/android/src/main/java/com/mytatvarnsdk/activity/VideoActivity.kt +94 -0
  14. package/android/src/main/res/drawable/img_sensor_cross.png +0 -0
  15. package/android/src/main/res/drawable/radio_button_background.xml +1 -1
  16. package/android/src/main/res/drawable/radio_checked.xml +1 -1
  17. package/android/src/main/res/layout/activity_connect_sensor.xml +497 -495
  18. package/android/src/main/res/layout/activity_place_sensor.xml +250 -238
  19. package/android/src/main/res/layout/activity_place_transmitter.xml +219 -207
  20. package/android/src/main/res/layout/activity_search_transmitter.xml +714 -712
  21. package/android/src/main/res/layout/activity_sensor_connect_success.xml +250 -179
  22. package/android/src/main/res/layout/activity_start_cgmactivity.xml +153 -153
  23. package/android/src/main/res/layout/activity_video.xml +32 -0
  24. package/android/src/main/res/values/styles.xml +1 -3
  25. package/ios/Database/KLTDatabaseHandler.m +8 -0
  26. package/package.json +1 -1
@@ -126,111 +126,111 @@ class CgmTrackyLibModule(reactContext: ReactApplicationContext) :
126
126
  @ReactMethod
127
127
  fun observeTransmitterUnbindStatus(token: String, apiResponse: String) {
128
128
  try {
129
- userToken = token
129
+ if (apiResponse != null && apiResponse.isNotEmpty()) {
130
+ userToken = token
130
131
 
131
- /*authenticateSDKService.getCGMData(
132
- environment = if ("uat".uppercase() == "PROD") TATVA_ENVIRONMENT.PROD else TATVA_ENVIRONMENT.STAGE,
133
- token = userToken,
134
- responseListener = object : AuthenticateSDKService.ResponseListener {
135
- override fun onResponseSuccess(response: String) {
132
+ /*authenticateSDKService.getCGMData(
133
+ environment = if ("uat".uppercase() == "PROD") TATVA_ENVIRONMENT.PROD else TATVA_ENVIRONMENT.STAGE,
134
+ token = userToken,
135
+ responseListener = object : AuthenticateSDKService.ResponseListener {
136
+ override fun onResponseSuccess(response: String) {
136
137
 
137
- val response = Gson().fromJson(response, CgmSensorResponse::class.java)
138
- val sensor = response.data?.firstOrNull()
138
+ val response = Gson().fromJson(response, CgmSensorResponse::class.java)
139
+ val sensor = response.data?.firstOrNull()
139
140
 
140
- if (sensor != null && !sensor.startDate.isNullOrEmpty() && !sensor.endDate.isNullOrEmpty()) {
141
- val startDate = sensor.startDate
142
- val endDate = sensor.endDate
143
- val sensorId = sensor.sensorId
141
+ if (sensor != null && !sensor.startDate.isNullOrEmpty() && !sensor.endDate.isNullOrEmpty()) {
142
+ val startDate = sensor.startDate
143
+ val endDate = sensor.endDate
144
+ val sensorId = sensor.sensorId
144
145
 
145
- println("Start Date: $startDate")
146
- println("End Date: $endDate")
146
+ println("Start Date: $startDate")
147
+ println("End Date: $endDate")
147
148
 
148
- if (isCurrentDateInRange(startDate, endDate)) {
149
+ if (isCurrentDateInRange(startDate, endDate)) {
149
150
 
150
- println("Current date is in range")
151
+ println("Current date is in range")
151
152
 
152
- val pocDevice =
153
- RepositoryDevice.getInstance(BApplication.getContext()).latestDeviceIoThread
153
+ val pocDevice =
154
+ RepositoryDevice.getInstance(BApplication.getContext()).latestDeviceIoThread
154
155
 
155
- if (pocDevice != null) {
156
- Log.d("pocDevice logsss", pocDevice.toString())
156
+ if (pocDevice != null) {
157
+ Log.d("pocDevice logsss", pocDevice.toString())
157
158
 
158
- if (pocDevice.isUnBind) {
159
- postEventDataToAPI(
160
- pocDevice,
161
- DeviceStatus.TRANSMITTER_DISCONNECT.id,
162
- pocDevice.qrMessage
163
- )
159
+ if (pocDevice.isUnBind) {
160
+ postEventDataToAPI(
161
+ pocDevice,
162
+ DeviceStatus.TRANSMITTER_DISCONNECT.id,
163
+ pocDevice.qrMessage
164
+ )
165
+ }
166
+ } else {
167
+ Log.d("pocDevice logsss", "Data null")
168
+
169
+ postEventDataToAPI(
170
+ pocDevice,
171
+ DeviceStatus.TRANSMITTER_DISCONNECT.id,
172
+ sensorId
173
+ )
174
+ }
175
+
176
+ } else {
177
+ println("Current date is out of range")
164
178
  }
165
179
  } else {
166
- Log.d("pocDevice logsss", "Data null")
167
-
168
- postEventDataToAPI(
169
- pocDevice,
170
- DeviceStatus.TRANSMITTER_DISCONNECT.id,
171
- sensorId
172
- )
180
+ println("Start or End date not available")
173
181
  }
182
+ }
174
183
 
175
- } else {
176
- println("Current date is out of range")
184
+ override fun onResponseFail() {
177
185
  }
178
- } else {
179
- println("Start or End date not available")
180
186
  }
181
- }
187
+ )*/
182
188
 
183
- override fun onResponseFail() {
184
- }
185
- }
186
- )*/
189
+ val response = Gson().fromJson(apiResponse, CgmSensorResponse::class.java)
190
+ val sensor = response.data?.firstOrNull()
187
191
 
188
- val response = Gson().fromJson(apiResponse, CgmSensorResponse::class.java)
189
- val sensor = response.data?.firstOrNull()
192
+ if (sensor != null && !sensor.startDate.isNullOrEmpty() && !sensor.endDate.isNullOrEmpty()) {
193
+ val startDate = sensor.startDate
194
+ val endDate = sensor.endDate
195
+ val sensorId = sensor.sensorId
190
196
 
191
- if (sensor != null && !sensor.startDate.isNullOrEmpty() && !sensor.endDate.isNullOrEmpty()) {
192
- val startDate = sensor.startDate
193
- val endDate = sensor.endDate
194
- val sensorId = sensor.sensorId
197
+ println("Start Date: $startDate")
198
+ println("End Date: $endDate")
195
199
 
196
- println("Start Date: $startDate")
197
- println("End Date: $endDate")
200
+ if (isCurrentDateInRange(startDate, endDate)) {
198
201
 
199
- if (isCurrentDateInRange(startDate, endDate)) {
202
+ println("Current date is in range")
200
203
 
201
- println("Current date is in range")
204
+ val pocDevice =
205
+ RepositoryDevice.getInstance(BApplication.getContext()).latestDeviceIoThread
202
206
 
203
- val pocDevice =
204
- RepositoryDevice.getInstance(BApplication.getContext()).latestDeviceIoThread
207
+ if (pocDevice != null) {
208
+ Log.d("pocDevice logsss", pocDevice.toString())
205
209
 
206
- if (pocDevice != null) {
207
- Log.d("pocDevice logsss", pocDevice.toString())
210
+ if (pocDevice.isUnBind) {
211
+ postEventDataToAPI(
212
+ pocDevice,
213
+ DeviceStatus.TRANSMITTER_DISCONNECT.id,
214
+ pocDevice.qrMessage
215
+ )
216
+ }
217
+ } else {
218
+ Log.d("pocDevice logsss", "Data null")
208
219
 
209
- if (pocDevice.isUnBind) {
210
220
  postEventDataToAPI(
211
221
  pocDevice,
212
222
  DeviceStatus.TRANSMITTER_DISCONNECT.id,
213
- pocDevice.qrMessage
223
+ sensorId
214
224
  )
215
225
  }
216
- } else {
217
- Log.d("pocDevice logsss", "Data null")
218
226
 
219
- postEventDataToAPI(
220
- pocDevice,
221
- DeviceStatus.TRANSMITTER_DISCONNECT.id,
222
- sensorId
223
- )
227
+ } else {
228
+ println("Current date is out of range")
224
229
  }
225
-
226
230
  } else {
227
- println("Current date is out of range")
231
+ println("Start or End date not available")
228
232
  }
229
- } else {
230
- println("Start or End date not available")
231
233
  }
232
-
233
-
234
234
  } catch (e: Exception) {
235
235
  Log.e("observeTransmitterUnbindStatus", "observeTransmitterUnbindStatus: ${e.message}")
236
236
  }
@@ -321,18 +321,12 @@ class CgmTrackyLibModule(reactContext: ReactApplicationContext) :
321
321
  fun reconnectCgmTracky(token: String) {
322
322
  try {
323
323
  userToken = token
324
- val intent = if (areAllPermissionsGranted()) {
325
- Intent(currentActivity, SearchTransmitterActivity::class.java).putExtra(
324
+ currentActivity?.startActivity(
325
+ Intent(currentActivity, StartCGMActivity::class.java).putExtra(
326
326
  "IsForReconnect",
327
327
  true
328
328
  )
329
- } else {
330
- Intent(currentActivity, PermissionActivity::class.java).putExtra(
331
- "IsForReconnect",
332
- true
333
- )
334
- }
335
- currentActivity?.startActivity(intent)
329
+ )
336
330
  } catch (e: Exception) {
337
331
  Log.e("reconnectCgmTracky", "reconnectCgmTracky: ${e.message}")
338
332
  }
@@ -348,27 +342,6 @@ class CgmTrackyLibModule(reactContext: ReactApplicationContext) :
348
342
  }
349
343
  }
350
344
 
351
- private fun areAllPermissionsGranted(): Boolean {
352
- val requiredPermissions = mutableListOf<String>()
353
-
354
- // Add Bluetooth permissions
355
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
356
- requiredPermissions.addAll(PermissionUtils.BLUETOOTH_S)
357
- }
358
-
359
- // Add location permissions
360
- requiredPermissions.addAll(PermissionUtils.LOCAL_PERMISSION)
361
-
362
- // Add camera permission
363
- requiredPermissions.addAll(PermissionUtils.CAMERA_PERMISSION)
364
-
365
- return requiredPermissions.all {
366
- ContextCompat.checkSelfPermission(
367
- mReactContext!!,
368
- it
369
- ) == PackageManager.PERMISSION_GRANTED
370
- }
371
- }
372
345
 
373
346
  @ReactMethod
374
347
  fun observeGlucoseData(token: String) {
@@ -35,10 +35,6 @@ class MainApplication : BApplication(), ReactApplication {
35
35
  }
36
36
  }
37
37
 
38
- // ✅ FIXED: property override instead of method
39
- override val reactNativeHost: ReactNativeHost
40
- get() = mReactNativeHost
41
-
42
38
  override fun onCreate() {
43
39
  super.onCreate()
44
40
  Log.d("MainApplication", "MainApplication onCreate called")
@@ -46,4 +42,8 @@ class MainApplication : BApplication(), ReactApplication {
46
42
  BleService.startService(this)
47
43
  BSharedPreferences.init(this)
48
44
  }
45
+
46
+ override fun getReactNativeHost(): ReactNativeHost {
47
+ return mReactNativeHost
48
+ }
49
49
  }
@@ -92,6 +92,12 @@ class ConnectSensorActivity : BaseBleActivity() {
92
92
  startActivity(Intent(this, HelpActivity::class.java))
93
93
  }
94
94
 
95
+ binding.toolbar.btnWatchDemo.setOnClickListener {
96
+ startActivity(
97
+ Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
98
+ )
99
+ }
100
+
95
101
  val callback: OnBackPressedCallback = object : OnBackPressedCallback(true) {
96
102
  override fun handleOnBackPressed() {
97
103
  openExitDialog()
@@ -130,8 +136,13 @@ class ConnectSensorActivity : BaseBleActivity() {
130
136
  binding.btnSupport.tvProceed.text = "Contact Support"
131
137
  binding.btnRetry.tvProceed.text = "Retry"
132
138
 
133
- binding.btnWatchDemo.setOnClickListener {
134
-
139
+ binding.llWatchDemo.post {
140
+ binding.llWatchDemo.setOnClickListener {
141
+ Log.d("CLICK", "Layout Clicked")
142
+ startActivity(
143
+ Intent(this, VideoActivity::class.java).putExtra("VideoId", "zRlFFdr-QD4")
144
+ )
145
+ }
135
146
  }
136
147
 
137
148
  binding.btnSupport.btnProceed.setOnClickListener {
@@ -307,6 +318,13 @@ class ConnectSensorActivity : BaseBleActivity() {
307
318
  ProgressManagement.getInstance().dismissWait(this)
308
319
  if (isForReconnect) {
309
320
  sendDataToRN("")
321
+ startActivity(
322
+ Intent(this, SensorConnectSuccessActivity::class.java)
323
+ .putExtra(
324
+ "IsForReconnect",
325
+ true
326
+ )
327
+ )
310
328
  } else {
311
329
  startActivity(Intent(this, SensorConnectSuccessActivity::class.java))
312
330
  }
@@ -149,6 +149,12 @@ class PermissionActivity : BasePermissionActivity() {
149
149
  startActivity(Intent(this, HelpActivity::class.java))
150
150
  }
151
151
 
152
+ binding.toolbar.btnWatchDemo.setOnClickListener {
153
+ startActivity(
154
+ Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
155
+ )
156
+ }
157
+
152
158
  binding.tvKnowMore.setOnClickListener {
153
159
  openBluetoothDialog()
154
160
  }
@@ -19,85 +19,102 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners
19
19
  import com.mytatvarnsdk.R
20
20
  import com.mytatvarnsdk.databinding.ActivityPlaceSensorBinding
21
21
  import com.mytatvarnsdk.databinding.ExitDialogBottomsheetBinding
22
+ import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.YouTubePlayer
23
+ import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.AbstractYouTubePlayerListener
24
+ import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.listeners.FullscreenListener
25
+ import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.options.IFramePlayerOptions
22
26
 
23
27
  class PlaceSensorActivity : AppCompatActivity() {
24
- private lateinit var binding: ActivityPlaceSensorBinding
25
-
26
- override fun onCreate(savedInstanceState: Bundle?) {
27
- super.onCreate(savedInstanceState)
28
- binding = ActivityPlaceSensorBinding.inflate(layoutInflater)
29
- enableEdgeToEdge()
30
- setContentView(binding.root)
31
- ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
32
- val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
33
- v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
34
- insets
35
- }
36
- init()
37
- }
38
-
39
- private fun init() {
40
- Glide.with(this)
41
- .load(R.drawable.img_male)
42
- .transform(RoundedCorners(50))
43
- .into(binding.ivTransmitter)
44
-
45
- Glide.with(this)
46
- .asGif()
47
- .load(R.drawable.ic_play_gif)
48
- .into(binding.ivPlay)
49
-
50
- binding.toolbar.btnWhatsapp.setOnClickListener {
51
- startActivity(Intent(this, HelpActivity::class.java))
28
+ private lateinit var binding: ActivityPlaceSensorBinding
29
+
30
+ override fun onCreate(savedInstanceState: Bundle?) {
31
+ super.onCreate(savedInstanceState)
32
+ binding = ActivityPlaceSensorBinding.inflate(layoutInflater)
33
+ enableEdgeToEdge()
34
+ setContentView(binding.root)
35
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
36
+ val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
37
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
38
+ insets
39
+ }
40
+ init()
52
41
  }
53
42
 
54
- binding.commonButton.tvProceed.text = "I Have Placed The Sensor"
55
- binding.commonButton.btnProceed.setOnClickListener {
56
- startActivity(Intent(this, PlaceTransmitterActivity::class.java))
57
- finish()
43
+ private fun init() {
44
+ Glide.with(this)
45
+ .load(R.drawable.img_male)
46
+ .transform(RoundedCorners(50))
47
+ .into(binding.ivTransmitter)
48
+
49
+ Glide.with(this)
50
+ .asGif()
51
+ .load(R.drawable.ic_play_gif)
52
+ .into(binding.ivPlay)
53
+
54
+ binding.toolbar.btnWhatsapp.setOnClickListener {
55
+ startActivity(Intent(this, HelpActivity::class.java))
56
+ }
57
+
58
+ binding.toolbar.btnWatchDemo.setOnClickListener {
59
+ startActivity(
60
+ Intent(this, VideoActivity::class.java).putExtra("VideoId", "r5Zemc4R044")
61
+ )
62
+ }
63
+
64
+ binding.commonButton.tvProceed.text = "I Have Placed The Sensor"
65
+ binding.commonButton.btnProceed.setOnClickListener {
66
+ startActivity(Intent(this, PlaceTransmitterActivity::class.java))
67
+ finish()
68
+ }
69
+
70
+ binding.toolbar.btnClose.setOnClickListener {
71
+ openExitDialog()
72
+ }
73
+
74
+ binding.ivPlay.setOnClickListener {
75
+ startActivity(
76
+ Intent(this, VideoActivity::class.java).putExtra("VideoId", "1C7VK2d5niY")
77
+ )
78
+ }
79
+
80
+ val callback: OnBackPressedCallback = object : OnBackPressedCallback(true) {
81
+ override fun handleOnBackPressed() {
82
+ openExitDialog()
83
+ }
84
+ }
85
+ onBackPressedDispatcher.addCallback(this, callback)
58
86
  }
59
87
 
60
- binding.toolbar.btnClose.setOnClickListener {
61
- openExitDialog()
62
- }
63
88
 
64
- val callback: OnBackPressedCallback = object : OnBackPressedCallback(true) {
65
- override fun handleOnBackPressed() {
66
- openExitDialog()
67
- }
68
- }
69
- onBackPressedDispatcher.addCallback(this, callback)
70
- }
89
+ private fun openExitDialog() {
90
+ val binding = ExitDialogBottomsheetBinding.inflate(layoutInflater)
71
91
 
72
- private fun openExitDialog() {
73
- val binding = ExitDialogBottomsheetBinding.inflate(layoutInflater)
92
+ val dialog = Dialog(this)
93
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
94
+ dialog.setContentView(binding.root)
74
95
 
75
- val dialog = Dialog(this)
76
- dialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
77
- dialog.setContentView(binding.root)
96
+ val window = dialog.window
97
+ window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
98
+ window?.setGravity(Gravity.BOTTOM)
99
+ window?.setBackgroundDrawable(Color.TRANSPARENT.toDrawable())
78
100
 
79
- val window = dialog.window
80
- window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
81
- window?.setGravity(Gravity.BOTTOM)
82
- window?.setBackgroundDrawable(Color.TRANSPARENT.toDrawable())
101
+ binding.btnExit.tvProceed.text = "Exit"
83
102
 
84
- binding.btnExit.tvProceed.text = "Exit"
103
+ binding.btnExit.root.setOnClickListener(View.OnClickListener { v: View? ->
104
+ finish()
105
+ dialog.dismiss()
106
+ })
85
107
 
86
- binding.btnExit.root.setOnClickListener(View.OnClickListener { v: View? ->
87
- finish()
88
- dialog.dismiss()
89
- })
108
+ binding.btnCancel.root.setOnClickListener(View.OnClickListener { v: View? ->
109
+ dialog.dismiss()
110
+ })
90
111
 
91
- binding.btnCancel.root.setOnClickListener(View.OnClickListener { v: View? ->
92
- dialog.dismiss()
93
- })
112
+ binding.closeButton.setOnClickListener(View.OnClickListener { v: View? ->
113
+ dialog.dismiss()
114
+ })
94
115
 
95
- binding.closeButton.setOnClickListener(View.OnClickListener { v: View? ->
96
- dialog.dismiss()
97
- })
98
-
99
- dialog.show()
100
- }
116
+ dialog.show()
117
+ }
101
118
 
102
119
 
103
120
  }