using Android.App; using Android.OS; using GMCabsDriverAssistant.Services; using GMCabsDriverAssistantSolution.Platforms.Android.Services; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Application = Android.App.Application; [assembly: Dependency(typeof(NotificationChannelService))] namespace GMCabsDriverAssistantSolution.Platforms.Android.Services { public class NotificationChannelService : INotificationChannelService { #region Constants public const string TAG = nameof(GMCabsDriverAssistantApplication); public static string SILENT_NOTIFICATION_CHANNEL_ID = "GMCabsDriverAssistantSilentNotificationChannel"; public static string SILENT_NOTIFICATION_CHANNEL_NAME = "GM Cabs Silent Notification Channel"; public static string SOUND_NOTIFICATION_CHANNEL_ID = "GMCabsDriverAssistantChannel"; public static string SOUND_NOTIFICATION_CHANNEL_NAME = "GM Cabs Notification Channel"; public static string SYSTEM_SOUND_NOTIFICATION_CHANNEL_ID = "GMCabsDriverAssistantSystemChannel"; public static string SYSTEM_SOUND_NOTIFICATION_CHANNEL_NAME = "GM Cabs System Notification Channel"; #endregion public void ManageNotificationChannelService() { if (Build.VERSION.SdkInt >= BuildVersionCodes.O) { var silentNotificationImportance = NotificationImportance.Low; var soundNotificationImportance = NotificationImportance.Max; var soundFileName = "newbooking"; NotificationManager silentNotificationManager = Application.Context.GetSystemService(global::Android.Content.Context.NotificationService) as NotificationManager; NotificationManager customNotificationManager = Application.Context.GetSystemService(global::Android.Content.Context.NotificationService) as NotificationManager; NotificationManager systemNotificationManager = Application.Context.GetSystemService(global::Android.Content.Context.NotificationService) as NotificationManager; /* Delete Notification Channel */ silentNotificationManager.DeleteNotificationChannel(SILENT_NOTIFICATION_CHANNEL_ID); customNotificationManager.DeleteNotificationChannel(SOUND_NOTIFICATION_CHANNEL_ID); systemNotificationManager.DeleteNotificationChannel(SYSTEM_SOUND_NOTIFICATION_CHANNEL_ID); /* Silent Notification Channel */ NotificationChannel silentNotificationchannel = new NotificationChannel(SILENT_NOTIFICATION_CHANNEL_ID, SILENT_NOTIFICATION_CHANNEL_NAME, silentNotificationImportance); silentNotificationchannel.EnableVibration(true); silentNotificationchannel.LockscreenVisibility = NotificationVisibility.Public; silentNotificationManager.CreateNotificationChannel(silentNotificationchannel); /* Custom Sound Notification Channel */ NotificationChannel soundNotificationChannel = new NotificationChannel(SOUND_NOTIFICATION_CHANNEL_ID, SOUND_NOTIFICATION_CHANNEL_NAME, soundNotificationImportance); soundNotificationChannel.EnableVibration(true); soundNotificationChannel.LockscreenVisibility = NotificationVisibility.Public; soundNotificationChannel.SetSound(global::Android.Net.Uri.Parse("android.resource://au.com.gmcabs.driverassistant/raw/" + soundFileName), null); customNotificationManager.CreateNotificationChannel(soundNotificationChannel); /* System Sound Notification Channel */ NotificationChannel systemSoundNotificationChannel = new NotificationChannel(SYSTEM_SOUND_NOTIFICATION_CHANNEL_ID, SYSTEM_SOUND_NOTIFICATION_CHANNEL_NAME, soundNotificationImportance); systemSoundNotificationChannel.EnableVibration(true); systemSoundNotificationChannel.LockscreenVisibility = NotificationVisibility.Public; systemNotificationManager.CreateNotificationChannel(systemSoundNotificationChannel); } } } }