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