using Android.App; using Android.Content; using Android.OS; using AndroidX.Core.App; using GMCabsDriverAssistantSolution.Platforms.Android.Helpers; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; [assembly: Dependency(typeof(NotificationHelper))] namespace GMCabsDriverAssistantSolution.Platforms.Android.Helpers { internal class NotificationHelper : INotification { private static string foregroundChannelId = "9001"; private static Context context = global::Android.App.Application.Context; public Notification ReturnNotif() { var intent = new Intent(context, typeof(MainActivity)); intent.AddFlags(ActivityFlags.SingleTop); intent.PutExtra("Title", "Message"); var pendingIntentFlags = (Build.VERSION.SdkInt >= BuildVersionCodes.S) ? PendingIntentFlags.UpdateCurrent | PendingIntentFlags.Mutable : PendingIntentFlags.UpdateCurrent; var pendingActivityIntent = PendingIntent.GetActivity(context, 0, intent, pendingIntentFlags); var pendingIntent = PendingIntent.GetBroadcast(context, 0, intent, pendingIntentFlags); var notifBuilder = new NotificationCompat.Builder(context, foregroundChannelId) .SetContentTitle("Location") .SetContentText("Update location") .SetOngoing(true) .SetContentIntent(pendingIntent); if (global::Android.OS.Build.VERSION.SdkInt >= BuildVersionCodes.O) { NotificationChannel notificationChannel = new NotificationChannel(foregroundChannelId, "Title", NotificationImportance.High); notificationChannel.Importance = NotificationImportance.High; notificationChannel.EnableLights(true); notificationChannel.EnableVibration(true); notificationChannel.SetShowBadge(true); notificationChannel.SetVibrationPattern(new long[] { 100, 200, 300 }); var notifManager = context.GetSystemService(Context.NotificationService) as NotificationManager; if (notifManager != null) { notifBuilder.SetChannelId(foregroundChannelId); notifManager.CreateNotificationChannel(notificationChannel); } } return notifBuilder.Build(); } } }