public override void OnMessageReceived(RemoteMessage message)
        {
            var dependencyContainer = AndroidDependencyContainer.Instance;
            var userIsLoggedIn      = dependencyContainer.UserAccessManager.CheckIfLoggedIn();

            if (!userIsLoggedIn)
            {
                return;
            }

            var keyValueStorage = dependencyContainer.KeyValueStorage;

            if (!shouldScheduleSyncJob(keyValueStorage))
            {
                return;
            }

            var jobClass       = Java.Lang.Class.FromType(typeof(SyncJobService));
            var jobScheduler   = (JobScheduler)GetSystemService(JobSchedulerService);
            var serviceName    = new ComponentName(this, jobClass);
            var jobInfoBuilder = new JobInfo.Builder(SyncJobServiceJobId, serviceName)
                                 .SetRequiredNetworkType(NetworkType.Any);

            if (PieApis.AreAvailable)
            {
                jobInfoBuilder = jobInfoBuilder.SetImportantWhileForeground(true);
            }

            jobScheduler.Schedule(jobInfoBuilder.Build());
            keyValueStorage.SetBool(HasPendingSyncJobServiceScheduledKey, true);
            keyValueStorage.SetDateTimeOffset(LastSyncJobScheduledAtKey, DateTimeOffset.Now);
        }