@qusaieilouti99/call-manager 0.1.113 → 0.1.114

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.
@@ -93,11 +93,20 @@ object CallEngine {
93
93
  private var ringtone: android.media.Ringtone? = null
94
94
  private var ringbackPlayer: MediaPlayer? = null
95
95
 
96
- // Volume monitoring
96
+ // Volume monitoring - FIXED: Using proper approach
97
97
  private var vibrator: Vibrator? = null
98
98
  private var volumeContentObserver: ContentObserver? = null
99
99
  private var lastRingVolumeLevel = -1
100
100
  private var isMonitoringVolume = false
101
+ private val volumeCheckHandler = Handler(Looper.getMainLooper())
102
+ private val volumeCheckRunnable = object : Runnable {
103
+ override fun run() {
104
+ checkVolumeChange()
105
+ if (isMonitoringVolume) {
106
+ volumeCheckHandler.postDelayed(this, 100) // Check every 100ms
107
+ }
108
+ }
109
+ }
101
110
 
102
111
  private var audioManager: AudioManager? = null
103
112
  private var wakeLock: PowerManager.WakeLock? = null
@@ -136,7 +145,6 @@ object CallEngine {
136
145
  if (isInitialized.compareAndSet(false, true)) {
137
146
  appContext = context.applicationContext
138
147
  audioManager = appContext?.getSystemService(Context.AUDIO_SERVICE) as? AudioManager
139
- setupVolumeMonitoring()
140
148
  Log.d(TAG, "CallEngine initialized successfully")
141
149
 
142
150
  if (isCallActive()) {
@@ -154,33 +162,17 @@ object CallEngine {
154
162
  )
155
163
  }
156
164
 
157
- // --- VOLUME MONITORING FOR RINGTONE SILENCING ---
158
- private fun setupVolumeMonitoring() {
159
- val context = requireContext()
160
- audioManager = audioManager ?: context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
161
-
162
- // Get initial ring volume
163
- lastRingVolumeLevel = audioManager?.getStreamVolume(AudioManager.STREAM_RING) ?: 0
164
-
165
- // Create content observer for ring volume changes
166
- volumeContentObserver = object : ContentObserver(mainHandler) {
167
- override fun onChange(selfChange: Boolean) {
168
- handleVolumeChange()
169
- }
170
- }
171
- }
172
-
165
+ // --- VOLUME MONITORING FOR RINGTONE SILENCING - FIXED ---
173
166
  private fun startVolumeMonitoring() {
174
167
  if (!isMonitoringVolume) {
175
168
  isMonitoringVolume = true
176
- val context = requireContext()
169
+ audioManager = audioManager ?: requireContext().getSystemService(Context.AUDIO_SERVICE) as AudioManager
177
170
 
178
- // Monitor ring volume changes
179
- context.contentResolver.registerContentObserver(
180
- Settings.System.getUriFor(Settings.System.VOLUME_RING),
181
- false,
182
- volumeContentObserver!!
183
- )
171
+ // Get initial ring volume
172
+ lastRingVolumeLevel = audioManager?.getStreamVolume(AudioManager.STREAM_RING) ?: 0
173
+
174
+ // Start periodic volume checking
175
+ volumeCheckHandler.post(volumeCheckRunnable)
184
176
 
185
177
  Log.d(TAG, "Started volume monitoring for ringtone silencing")
186
178
  }
@@ -189,15 +181,12 @@ object CallEngine {
189
181
  private fun stopVolumeMonitoring() {
190
182
  if (isMonitoringVolume) {
191
183
  isMonitoringVolume = false
192
- val context = requireContext()
193
- volumeContentObserver?.let {
194
- context.contentResolver.unregisterContentObserver(it)
195
- }
184
+ volumeCheckHandler.removeCallbacks(volumeCheckRunnable)
196
185
  Log.d(TAG, "Stopped volume monitoring")
197
186
  }
198
187
  }
199
188
 
200
- private fun handleVolumeChange() {
189
+ private fun checkVolumeChange() {
201
190
  if (!isMonitoringVolume) return
202
191
 
203
192
  val currentRingVolume = audioManager?.getStreamVolume(AudioManager.STREAM_RING) ?: 0
@@ -1357,7 +1346,6 @@ object CallEngine {
1357
1346
 
1358
1347
  // Start volume monitoring for silencing
1359
1348
  startVolumeMonitoring()
1360
- lastRingVolumeLevel = audioManager?.getStreamVolume(AudioManager.STREAM_RING) ?: 0
1361
1349
 
1362
1350
  // Start repeating vibration
1363
1351
  vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as? Vibrator
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qusaieilouti99/call-manager",
3
- "version": "0.1.113",
3
+ "version": "0.1.114",
4
4
  "description": "Call manager",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",