|
30 | 30 | import android.content.IntentFilter;
|
31 | 31 | import android.content.SharedPreferences;
|
32 | 32 | import android.content.pm.PackageManager;
|
| 33 | +import android.content.pm.ServiceInfo; |
33 | 34 | import android.graphics.Bitmap;
|
34 | 35 | import android.graphics.BitmapFactory;
|
35 | 36 | import android.graphics.Canvas;
|
|
59 | 60 | import android.net.NetworkInfo;
|
60 | 61 | import android.net.Uri;
|
61 | 62 | import android.os.Build;
|
| 63 | +import android.os.Build.VERSION_CODES; |
62 | 64 | import android.os.Bundle;
|
63 | 65 | import android.os.Handler;
|
64 | 66 | import android.os.IBinder;
|
|
77 | 79 | import android.text.SpannableString;
|
78 | 80 | import android.text.TextUtils;
|
79 | 81 | import android.text.style.ForegroundColorSpan;
|
80 |
| -import android.util.Log; |
81 | 82 | import android.util.LruCache;
|
82 | 83 | import android.view.KeyEvent;
|
83 | 84 | import android.view.View;
|
|
147 | 148 | import java.util.concurrent.CountDownLatch;
|
148 | 149 | import java.util.concurrent.TimeUnit;
|
149 | 150 |
|
| 151 | +import top.qwq2333.nullgram.utils.PermissionUtils; |
| 152 | + |
150 | 153 | @SuppressLint("NewApi")
|
151 | 154 | public class VoIPService extends Service implements SensorEventListener, AudioManager.OnAudioFocusChangeListener, VoIPController.ConnectionStateListener, NotificationCenter.NotificationCenterDelegate {
|
152 | 155 |
|
@@ -3493,7 +3496,7 @@ private void onTgVoipStop(Instance.FinalState finalState) {
|
3493 | 3496 | e.printStackTrace();
|
3494 | 3497 | }
|
3495 | 3498 | }
|
3496 |
| - |
| 3499 | + |
3497 | 3500 | if (needRateCall || forceRating || finalState.isRatingSuggested) {
|
3498 | 3501 | startRatingActivity();
|
3499 | 3502 | needRateCall = false;
|
@@ -3644,7 +3647,14 @@ public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) {
|
3644 | 3647 | } else {
|
3645 | 3648 | bldr.setSmallIcon(R.drawable.ic_call);
|
3646 | 3649 | }
|
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 | + } |
3648 | 3658 | }
|
3649 | 3659 | }
|
3650 | 3660 |
|
|
0 commit comments