using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PhilExample.Droid.Services;
using PhilExample.Droid.Utils;
using PhilExample.Services;

[assembly: Xamarin.Forms.Dependency(typeof(InsertionNotificationService))]
namespace PhilExample.Droid.Services
{
    public class InsertionNotificationService : IInsertionNotificationService
    {
        const string NOTIFICATION_CHANNEL_ID = "1000";
        const string NOTIFICATION_CHANNEL_NAME = "PhilExample_noti_2";
        const string NOTIFICATION_CHANNEL_DESCR = "PhilExample_insertion_noti";

        static int notiID = 2000;
        static int NotiID { get => notiID > 2020
                                                ? (notiID = 2000) //TODO: Test if this assignment does what its supposed to (limit notifications to 20 at max, update old notis)
                                                : notiID++; }


        public void PublishNotification(string title, string descr, int insertionID)
        {
            NotificationHelper.CreateNotificationChannel(NOTIFICATION_CHANNEL_ID, NOTIFICATION_CHANNEL_NAME, NOTIFICATION_CHANNEL_DESCR);

            var notification = new Notification.Builder(MainActivity._THIS, NOTIFICATION_CHANNEL_ID)
                                    //.SetContentIntent(onClickIntent)
                                    .SetContentTitle(title)
                                    .SetContentText(descr)
                                    .SetSmallIcon(Resource.Drawable.abc_btn_default_mtrl_shape)
                                    .Build();

            NotificationHelper.GetAndroidNotificationManager().Notify(NotiID, notification);
        }


    }
}