public void RegisterToNotificationsHub(string deviceToken = null) { this.IsNotificationHubConnected = false; AppController.Utility.ExecuteOnAsyncTask( System.Threading.CancellationToken.None, () => { // Refresh current device token if (deviceToken != null) { _notificationDeviceToken = deviceToken; } // Do we have a current device token; if (_notificationDeviceToken == null) { return; } if (!AppController.IsUserRestorable) { return; } // We have already created our notification hub if (_hub == null) { _hub = new NotificationHub( AppController.Globals.AzureNHubName, AppController.Globals.AzureNHubConnectionString, Application.Context.ApplicationContext); } try { _hub.UnregisterAll(_notificationDeviceToken); } catch (Exception ex) { AppController.Utility.DebugOutput("Chatty", "Azure HUB, UnregisterAll Error: " + ex.ToString()); } try { var tags = new List <string>() { AppController.Settings.LastLoginUsernameUsed }; var hubRegistration = _hub.Register(_notificationDeviceToken, tags.ToArray()); this.IsNotificationHubConnected = true; PushNotificationRegistered?.Invoke(this, EventArgs.Empty); AppController.Utility.ExecuteOnMainThread(() => Toast.MakeText(this.ApplicationContext, "You are connected!", ToastLength.Long).Show()); } catch (Exception ex) { PushNotificationRegistrationFailed?.Invoke(this, new PushEventArgs(ex)); AppController.Utility.DebugOutput("Chatty", "Azure HUB, Register Error: " + ex.ToString()); AppController.Utility.ExecuteOnMainThread(() => Toast.MakeText(this.ApplicationContext, ex.Message, ToastLength.Long).Show()); } }); }
public void HandlePushNotificationRegistered() { PushNotificationRegistered?.Invoke(this, EventArgs.Empty); }
public void RegisterToNotificationsHub(NSData deviceToken = null) { this.IsNotificationHubConnected = false; // Refresh current device token if (deviceToken != null) { _notificationDeviceToken = deviceToken; } // Do we have a current device token; if (_notificationDeviceToken == null) { return; } if (!AppController.IsUserRestorable) { return; } // We have already registered our notification hub if (_hub == null) { _hub = new SBNotificationHub( AppController.Globals.AzureNHubConnectionString, AppController.Globals.AzureNHubName); } _hub.UnregisterAllAsync(_notificationDeviceToken, (error) => { if (error != null) { AppController.Utility.DebugOutput("Chatty", "Azure HUB, UnregisterAll Error: " + error.Description); return; } NSSet tags = new NSSet(new[] { AppController.Settings.LastLoginUsernameUsed }); _hub.RegisterNativeAsync(_notificationDeviceToken, tags, (err) => { if (err == null) { this.IsNotificationHubConnected = true; PushNotificationRegistered?.Invoke(this, EventArgs.Empty); AppController.Utility.ExecuteOnMainThread(() => UIToast.MakeText("You are connected!", UIToastLength.Long).Show()); } else { PushNotificationRegistrationFailed?.Invoke(this, new PushEventArgs(new InvalidOperationException(err.Description))); AppController.Utility.DebugOutput("Chatty", "Azure HUB, Register Error: " + err.Description); AppController.Utility.ExecuteOnMainThread(() => UIToast.MakeText(err.Description, UIToastLength.Long).Show()); } }); }); }