diff --git a/android/sdk/src/main/AndroidManifest.xml b/android/sdk/src/main/AndroidManifest.xml index 319306ef67..946814d628 100644 --- a/android/sdk/src/main/AndroidManifest.xml +++ b/android/sdk/src/main/AndroidManifest.xml @@ -14,6 +14,7 @@ + extraData) { + private static void doLaunch(Context context, HashMap extraData) { OngoingNotification.createNotificationChannel((Activity) context); @@ -87,6 +93,31 @@ public class JitsiMeetOngoingConferenceService extends Service } } + + public static void launch(Context context, HashMap extraData) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + PermissionListener listener = new PermissionListener() { + @Override + public boolean onRequestPermissionsResult(int i, String[] strings, int[] results) { + if (results.length > 0 && results[0] == PackageManager.PERMISSION_GRANTED) { + doLaunch(context, extraData); + } + + return true; + } + }; + + JitsiMeetActivityDelegate.requestPermissions( + (Activity) context, + new String[]{POST_NOTIFICATIONS}, + POST_NOTIFICATIONS_PERMISSION_REQUEST_CODE, + listener + ); + } else { + doLaunch(context, extraData); + } + } + public static void abort(Context context) { Intent intent = new Intent(context, JitsiMeetOngoingConferenceService.class); context.stopService(intent);