diff --git a/FlareLane/src/main/java/com/flarelane/FlareLane.java b/FlareLane/src/main/java/com/flarelane/FlareLane.java index 1daa5be..fbd4f92 100644 --- a/FlareLane/src/main/java/com/flarelane/FlareLane.java +++ b/FlareLane/src/main/java/com/flarelane/FlareLane.java @@ -27,7 +27,7 @@ public class FlareLane { public static class SdkInfo { public static SdkType type = SdkType.NATIVE; - public static String version = "1.3.0"; + public static String version = "1.3.1"; } protected static com.flarelane.NotificationConvertedHandler notificationConvertedHandler = null; diff --git a/FlareLane/src/main/java/com/flarelane/PermissionActivity.java b/FlareLane/src/main/java/com/flarelane/PermissionActivity.java index a97f872..ebd7543 100644 --- a/FlareLane/src/main/java/com/flarelane/PermissionActivity.java +++ b/FlareLane/src/main/java/com/flarelane/PermissionActivity.java @@ -44,5 +44,6 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, } finish(); + overridePendingTransition(0, 0); } } diff --git a/app/src/main/java/com/flarelane/example/MainActivity.java b/app/src/main/java/com/flarelane/example/MainActivity.java index a4f8562..c123165 100644 --- a/app/src/main/java/com/flarelane/example/MainActivity.java +++ b/app/src/main/java/com/flarelane/example/MainActivity.java @@ -32,6 +32,7 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + askNotificationPermission(); FirebaseMessaging.getInstance().getToken() .addOnCompleteListener(new OnCompleteListener() { @Override @@ -114,4 +115,33 @@ public void onClick(View v) { } }); } + + // FOR FIREBASE: https://firebase.google.com/docs/cloud-messaging/android/client + // Declare the launcher at the top of your Activity/Fragment: + private final ActivityResultLauncher requestPermissionLauncher = + registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> { + if (isGranted) { + // FCM SDK (and your app) can post notifications. + } else { + // TODO: Inform user that that your app will not show notifications. + } + }); + + private void askNotificationPermission() { + // This is only necessary for API level >= 33 (TIRAMISU) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) == + PackageManager.PERMISSION_GRANTED) { + // FCM SDK (and your app) can post notifications. + } else if (shouldShowRequestPermissionRationale(Manifest.permission.POST_NOTIFICATIONS)) { + // TODO: display an educational UI explaining to the user the features that will be enabled + // by them granting the POST_NOTIFICATION permission. This UI should provide the user + // "OK" and "No thanks" buttons. If the user selects "OK," directly request the permission. + // If the user selects "No thanks," allow the user to continue without notifications. + } else { + // Directly ask for the permission + requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS); + } + } + } }