@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
|
-
|
|
169
|
+
audioManager = audioManager ?: requireContext().getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
|
177
170
|
|
|
178
|
-
//
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
-
|
|
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
|
|
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
|