Skip to content

Commit ae6faf0

Browse files
committed
fix: crash for VoIP foreground service issue
Signed-off-by: qwq233 <qwq233@qwq2333.top>
1 parent f38a707 commit ae6faf0

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPService.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import android.content.IntentFilter;
3131
import android.content.SharedPreferences;
3232
import android.content.pm.PackageManager;
33+
import android.content.pm.ServiceInfo;
3334
import android.graphics.Bitmap;
3435
import android.graphics.BitmapFactory;
3536
import android.graphics.Canvas;
@@ -59,6 +60,7 @@
5960
import android.net.NetworkInfo;
6061
import android.net.Uri;
6162
import android.os.Build;
63+
import android.os.Build.VERSION_CODES;
6264
import android.os.Bundle;
6365
import android.os.Handler;
6466
import android.os.IBinder;
@@ -77,7 +79,6 @@
7779
import android.text.SpannableString;
7880
import android.text.TextUtils;
7981
import android.text.style.ForegroundColorSpan;
80-
import android.util.Log;
8182
import android.util.LruCache;
8283
import android.view.KeyEvent;
8384
import android.view.View;
@@ -147,6 +148,8 @@
147148
import java.util.concurrent.CountDownLatch;
148149
import java.util.concurrent.TimeUnit;
149150

151+
import top.qwq2333.nullgram.utils.PermissionUtils;
152+
150153
@SuppressLint("NewApi")
151154
public class VoIPService extends Service implements SensorEventListener, AudioManager.OnAudioFocusChangeListener, VoIPController.ConnectionStateListener, NotificationCenter.NotificationCenterDelegate {
152155

@@ -3493,7 +3496,7 @@ private void onTgVoipStop(Instance.FinalState finalState) {
34933496
e.printStackTrace();
34943497
}
34953498
}
3496-
3499+
34973500
if (needRateCall || forceRating || finalState.isRatingSuggested) {
34983501
startRatingActivity();
34993502
needRateCall = false;
@@ -3644,7 +3647,14 @@ public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) {
36443647
} else {
36453648
bldr.setSmallIcon(R.drawable.ic_call);
36463649
}
3647-
startForeground(ID_ONGOING_CALL_NOTIFICATION, bldr.build());
3650+
if (Build.VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE) {
3651+
if (PermissionUtils.isAudioPermissionGranted()) {
3652+
startForeground(ID_ONGOING_CALL_NOTIFICATION, bldr.build(),
3653+
ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE | ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK | ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA);
3654+
}
3655+
} else {
3656+
startForeground(ID_ONGOING_CALL_NOTIFICATION, bldr.build());
3657+
}
36483658
}
36493659
}
36503660

0 commit comments

Comments
 (0)