You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

70 lines
4.1 KiB

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);
}
}
}
}