protected override async void OnStart() { DependencyResolver.Init(); var navigationService = DependencyResolver.Resolve <INavigationService>(); if (CrossConnectivity.Current.IsConnected) { var secureStorage = new SecureStorage(); if (secureStorage.CheckUserStored()) { var user = await secureStorage.GetUser(); // user = null => setup probably interrupted if (user != null) { // user needs to check address UserService.SetCurrentUser(user); this.MainPage = new NavigationPage(navigationService.LoggedInEntryPoint); } else { this.MainPage = new NavigationPage(navigationService.LoginEntryPoint); } } else { this.MainPage = new NavigationPage(navigationService.LoginEntryPoint); } } else { this.MainPage = new NavigationPage(new OfflinePage()); } }
private async void TaskCompleted(BackgroundTaskRegistration sender, BackgroundTaskCompletedEventArgs args) { // Should be moved to the runtime component, but it's not possible to set a reference to Chiota var secureStorage = new SecureStorage(); if (secureStorage.CheckUserStored()) { var user = await secureStorage.GetUser(); if (user != null) { // request list is needed for information var contactRequestList = await user.TangleMessenger.GetJsonMessageAsync <Contact>(user.RequestAddress, 3); var contactsOnApproveAddress = await new SqLiteHelper().LoadContacts(user.PublicKeyAddress); var approvedContacts = contactRequestList.Intersect(contactsOnApproveAddress, new ChatAdressComparer()).ToList(); // currently no messages for contact request due to perfomance issues foreach (var contact in approvedContacts.Where(c => !c.Rejected)) { var encryptedMessages = await user.TangleMessenger.GetMessagesAsync(contact.ChatAddress); if (encryptedMessages.Any(c => !c.Stored)) { this.CreateNotification(contact); } } } } }
public App() { this.InitializeComponent(); var secureStorage = new SecureStorage(); if (secureStorage.CheckUserStored()) { this.MainPage = new NavigationPage(new ContactPage(secureStorage.GetUser())); } else { this.MainPage = new NavigationPage(new LoginPage()); } }
private async Task <bool> LookForNewNotifications() { if (CrossConnectivity.Current.IsConnected) { // seed needs to be stored on device!! var secureStorage = new SecureStorage(); if (!secureStorage.CheckUserStored()) { return(true); } var user = await secureStorage.GetUser(); if (user == null) { return(true); } var interactor = DependencyResolver.Resolve <IUsecaseInteractor <GetContactsRequest, GetContactsResponse> >(); var response = await interactor.ExecuteAsync( new GetContactsRequest { ContactRequestAddress = new Address(user.RequestAddress), PublicKeyAddress = new Address(user.PublicKeyAddress) }); if (response.Code != ResponseCode.Success) { return(true); } // currently no messages for contact request due to perfomance issues var contactNotificationId = 0; foreach (var contact in response.ApprovedContacts.Where(c => !c.Rejected)) { var encryptedMessages = await user.TangleMessenger.GetMessagesAsync(contact.ChatAddress); if (encryptedMessages.Any(c => !c.Stored)) { this.CreateNotification(contactNotificationId, contact); } contactNotificationId++; } } return(true); }
private async void TaskCompleted(BackgroundTaskRegistration sender, BackgroundTaskCompletedEventArgs args) { // Should be moved to the runtime component, but it's not possible to set a reference to Chiota var secureStorage = new SecureStorage(); if (!secureStorage.CheckUserStored()) { return; } var user = await secureStorage.GetUser(); if (user == null) { return; } var interactor = DependencyResolver.Resolve <IUsecaseInteractor <GetContactsRequest, GetContactsResponse> >(); var response = await interactor.ExecuteAsync( new GetContactsRequest { ContactRequestAddress = new Address(user.RequestAddress), PublicKeyAddress = new Address(user.PublicKeyAddress) }); if (response.Code != ResponseCode.Success) { return; } // currently no messages for contact request due to perfomance issues foreach (var contact in response.ApprovedContacts.Where(c => !c.Rejected)) { var encryptedMessages = await user.TangleMessenger.GetMessagesAsync(contact.ChatAddress); if (encryptedMessages.Any(c => !c.Stored)) { this.CreateNotification(contact); } } }
private async Task <bool> LookForNewNotifications() { if (CrossConnectivity.Current.IsConnected) { // seed needs to be stored on device!! var secureStorage = new SecureStorage(); if (secureStorage.CheckUserStored()) { var user = await secureStorage.GetUser(); if (user != null) { // request list is needed for information var contactRequestList = await user.TangleMessenger.GetJsonMessageAsync <Contact>(user.RequestAddress, 3); var contactsOnApproveAddress = await new SqLiteHelper().LoadContacts(user.PublicKeyAddress); var approvedContacts = contactRequestList.Intersect(contactsOnApproveAddress, new ChatAdressComparer()) .ToList(); // currently no messages for contact request due to perfomance issues var contactNotificationId = 0; foreach (var contact in approvedContacts.Where(c => !c.Rejected)) { var encryptedMessages = await user.TangleMessenger.GetMessagesAsync(contact.ChatAddress); if (encryptedMessages.Any(c => !c.Stored)) { this.CreateNotification(contactNotificationId, contact); } contactNotificationId++; } } } } return(true); }
protected override async void OnStart() { DependencyResolver.Init(); var navigationService = DependencyResolver.Resolve <INavigationService>(); if (CrossConnectivity.Current.IsConnected) { var secureStorage = new SecureStorage(); // Reset in case something isn't working // secureStorage.DeleteUser(); if (secureStorage.CheckUserStored()) { var user = await secureStorage.GetUser(); if (user != null) { UserService.SetCurrentUser(user); this.MainPage = new NavigationPage(navigationService.LoggedInEntryPoint); } else { this.MainPage = new NavigationPage(navigationService.LoginEntryPoint); } } else { this.MainPage = new NavigationPage(navigationService.LoginEntryPoint); } } else { this.MainPage = new NavigationPage(new OfflinePage()); } }