async public void DidSignIn(SignIn signIn, GoogleUser user, NSError error) { if (user != null && error == null) { ShowHud(Strings.Hud.please_wait); GoogleNameLabel.Text = user.Profile.Name; UserId = user.UserID; var outlet = new Outlet(); outlet.Name = user.Profile.Name; outlet.Handle = user.UserID; outlet.Type = Outlet.outlet_type_google; RealmServices.SaveOutlet(outlet); var url = await GoogleAuthenticator.GetProfileURL(UserId); ImageView.Hidden = false; ImageView.SetImage(url, "NoProfile", "NoProfile", async() => { HideHud(); await Task.Delay(TimeSpan.FromSeconds(2)); SignIn.SharedInstance.SignOutUser(); var popToViewController = NavigationController.ViewControllers.Where(c => c.GetType() == typeof(MyOutletsViewController)).First(); NavigationController.PopToViewController(popToViewController, true); }); } }
public override void FetchTableDataFromDatabase() { base.FetchTableDataFromDatabase(); TableSource.SetItems(TableView, RealmServices.GetMyOutlets()); IfEmpty(true); }
async public void HandleSignInResult(GoogleSignInResult result) { if (result.IsSuccess) { // Signed in successfully, show authenticated UI. var acct = result.SignInAccount; TitleTextView.Text = acct.DisplayName; ImageView.SetImage(acct.PhotoUrl.ToString(), Resource.Drawable.ic_noprofilewhite, Resource.Drawable.ic_noprofilewhite, "Google", WebImageView.DefaultCircleTransformation); var outlet = new Outlet(); outlet.Name = acct.DisplayName; outlet.Handle = acct.Id; outlet.Type = Outlet.outlet_type_google; RealmServices.SaveOutlet(outlet); await Task.Delay(TimeSpan.FromSeconds(2)); var activity = Activity as BaseActivity; activity?.PopFragmentOverUntil(typeof(MyOutletsRecyclerViewFragment)); } else { } }
partial void SaveButtonClicked(Foundation.NSObject sender) { string name = null; if (URL.Contains("http://")) { name = URL.Substring(7); } else if (URL.Contains("https://")) { name = URL.Substring(8); } var outlet = new Outlet(); outlet.Name = name; outlet.Handle = URL; outlet.Type = Outlet.outlet_type_website; RealmServices.SaveOutlet(outlet); var fromNewCardPage = false; if (Transporter.SharedInstance.ContainsKey(Transporter.NewOutletAddedTransporterKey)) { fromNewCardPage = (bool)Transporter.SharedInstance.GetObjectForKey(Transporter.NewOutletAddedTransporterKey); } var popToViewController = fromNewCardPage ? NavigationController.ViewControllers.Where(c => c.GetType() == typeof(NewCardViewController)).First() : NavigationController.ViewControllers.Where(c => c.GetType() == typeof(MyOutletsViewController)).First(); NavigationController.PopToViewController(popToViewController, true); }
public override Android.Views.View OnCreateView(Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Android.OS.Bundle savedInstanceState) { var view = base.OnCreateView(inflater, container, savedInstanceState); RecyclerViewAdapter.SetListItems(RealmServices.GetMyOutlets().ToList()); Activity.Title = SettingsShared.navigation_item_my_outlets; RegisterForContextMenu(RecyclerView); return(view); }
async partial void NextButtonClicked(Foundation.NSObject sender) { View.EndEditing(true); string emailAddress = (string)Transporter.SharedInstance.GetObjectForKey("email"); string code = VerificationCodeTextField.Text.Trim(); bool allFieldsValid = ValidateAllFields(); if (!allFieldsValid) { return; } ShowHud(Strings.Hud.please_wait); try { var result = await WebServices.EmailController.UseValidationCode(emailAddress, code); if (result.StatusCode == System.Net.HttpStatusCode.OK) { var outlet = new Outlet(); outlet.Handle = emailAddress; outlet.Type = Outlet.outlet_type_email; outlet.Name = emailAddress; var outletSaved = RealmServices.SaveOutlet(outlet); if (outletSaved) { var popToViewController = NavigationController.ViewControllers.Where(c => c.GetType() == typeof(MyOutletsViewController)).First(); NavigationController.PopToViewController(popToViewController, true); } else { ShowDuplicateEntryAlert(); } } else { VerificationCodeTextField.SetInvalid(); } } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } HideHud(); }
async partial void NextButtonClicked(Foundation.NSObject sender) { View.EndEditing(true); string code = StringUtils.RemoveNonIntegers(VerificationCodeTextField.Text.Trim()); bool allFieldsValid = ValidateAllFields(); if (!allFieldsValid) { return; } ShowHud(Strings.Hud.please_wait); try { var result = await TwilioServices.VerifyPhoneAsync(PhoneNumber, code); if (result != null && result.success) { var outlet = new Outlet(); outlet.Handle = PhoneNumber; outlet.Type = Outlet.outlet_type_phone; outlet.Name = PhoneNumber; var outletSaved = RealmServices.SaveOutlet(outlet); if (outletSaved) { var popToViewController = NavigationController.ViewControllers.Where(c => c.GetType() == typeof(MyOutletsViewController)).First(); NavigationController.PopToViewController(popToViewController, true); } else { ShowDuplicateEntryAlert(); } } else { VerificationCodeTextField.SetInvalid(); } } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } HideHud(); }
public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); Title = Strings.PageTitles.page_title_select_an_outlet; var convertedDataSource = CollectionView.WeakDataSource as NewOutletCollectionViewDataSource; if (convertedDataSource != null) { convertedDataSource.CollectionItems = RealmServices.GetAllAvailableOutlets(); } CollectionView.ReloadData(); }
public override void ViewDidLoad() { base.ViewDidLoad(); RemoveBackBarButtonTitle(); Profile.Notifications.ObserveDidChange((sender, e) => { if (e.NewProfile == null) { return; } pictureView.ProfileId = e.NewProfile.UserID; FacebookNameLabel.Text = e.NewProfile.Name; var outlet = new Outlet(); outlet.Name = e.NewProfile.Name; outlet.Handle = e.NewProfile.UserID; outlet.Locked = true; outlet.Type = Outlet.outlet_type_facebook; RealmServices.SaveOutlet(outlet); loginView.RemoveFromSuperview(); }); // Set the Read and Publish permissions you want to get loginView = new LoginButton(FacebookButtonSuperview.Bounds) { LoginBehavior = LoginBehavior.Browser, ReadPermissions = readPermissions.ToArray() }; // Handle actions once the user is logged in loginView.Completed += async(sender, e) => { loginView.RemoveFromSuperview(); await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(2)); NavigationController.PopViewController(true); }; FacebookButtonSuperview.AddSubview(loginView); pictureView = new ProfilePictureView(FacebookProfilePictureSuperview.Bounds); FacebookProfilePictureSuperview.AddSubview(pictureView); }
public override void ViewDidLoad() { PullToRefresh = false; base.ViewDidLoad(); TableSource = new MyOutletsTableViewSource(); TableSource.ItemSelected += (NSIndexPath arg1, Outlet arg2) => { OutletSelected?.Invoke(arg2); }; TableSource.RowDeleted += (NSIndexPath arg1, Outlet arg2) => { RealmServices.DeleteOutlet(arg2); TableSource.TableItems = RealmServices.GetMyOutlets(); }; TableView.Source = TableSource; var label = LabelWithActivityIndicatorView.Create(); label.BindDataToView("No Outlets", true); TableViewEmptyBackground = label; AddRowViewController FooterView = new AddRowViewController(); FooterView.LabelAddText = Strings.TableViewFooters.table_view_footer_create_new_outlet; FooterView.Clicked += (editing) => { CATransition transition = CATransition.CreateAnimation(); transition.Duration = 0.3; transition.Type = CATransition.TransitionFade; NavigationController.View.Layer.AddAnimation(transition, null); NavigationController.PushViewController(new NewOutletViewController(), false); }; FooterView.View.Frame = new CGRect(0, 0, TableView.Frame.Width, FooterView.GetHeight()); TableView.TableFooterView = FooterView.View; AddChildViewController(FooterView); }
AdRequest GetRequest(Dictionary <string, string> advertisingTargetInfo) { var request = new AdRequest.Builder(); request.AddTestDevice(AdRequest.DeviceIdEmulator); request.AddTestDevice("260661DE96DFEDE845160916AD01F3CA"); //samsung tablet //Gender var gender = Gender.Unknown; if (advertisingTargetInfo.ContainsKey(AdKeyGender)) { gender = advertisingTargetInfo[AdKeyGender].Equals("female", StringComparison.InvariantCultureIgnoreCase) ? Gender.Female : Gender.Male; request.SetGender((int)gender); } //Location var location = RealmServices.GetLastUserLocation(); if (location != null) { var loc = new Android.Locations.Location(""); loc.Latitude = location.Latitude; loc.Longitude = location.Longitude; loc.Accuracy = 1; request.SetLocation(loc); } //Birthday if (advertisingTargetInfo.ContainsKey(AdKeyBirthday)) { var birthday = DateTime.ParseExact(advertisingTargetInfo[AdKeyBirthday], "MM/dd/yyyy", null); var bith = new Java.Util.Date(birthday.Year, birthday.Month, birthday.Day); request.SetBirthday(bith); } return(request.Build()); }
public override bool OnContextItemSelected(IMenuItem item) { var position = item.Order; var model = RecyclerViewAdapter.GetItemInList(position); if (model == null) { return(base.OnContextItemSelected(item)); } switch (item.TitleFormatted.ToString().ToLower()) { case "delete": RealmServices.DeleteOutlet(model); RecyclerViewAdapter.SetListItems(RealmServices.GetMyOutlets().ToList()); break; default: break; } return(base.OnContextItemSelected(item)); }
{ var bannerView = new BannerView(AdSizeCons.SmartBannerPortrait); bannerView.AdUnitID = "ca-app-pub-4252799872870196/8180596755"; bannerView.RootViewController = this; bannerView.ReceiveAdFailed += (sender, e) => { Console.Write(e.Error.LocalizedDescription); AdViewSuperViewHeightConstaint.Constant = 0; }; bannerView.AdReceived += (sender, e) => { AdViewSuperViewHeightConstaint.Constant = AddViewSuperviewHeight; }; AdViewSuperView.AddSubview(bannerView); var request = GetRequest(advertisingTargetInfo); bannerView.LoadRequest(request); } Request GetRequest(Dictionary<string, string> advertisingTargetInfo) { var request = Request.GetDefaultRequest(); request.TestDevices = new string[] { Request.SimulatorId.ToString() }; //Gender var gender = Gender.Unknown; if (advertisingTargetInfo.ContainsKey(AdKeyGender)) gender = advertisingTargetInfo[AdKeyGender].Equals("female", StringComparison.InvariantCultureIgnoreCase) ? Gender.Female : Gender.Male; request.Gender = gender; //Location var location = RealmServices.GetLastUserLocation(); if (location != null) request.SetLocation((nfloat)location.Latitude, (nfloat)location.Longitude, 1); //Birthday if (advertisingTargetInfo.ContainsKey(AdKeyBirthday)) { var birthday = DateTime.ParseExact(advertisingTargetInfo[AdKeyBirthday], "MM/dd/yyyy",null); request.SetBirthday(birthday.Month, birthday.Day, birthday.Year); } //todo Keywords return request; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var view = inflater.Inflate(Resource.Layout.EnterPhoneNumberVerificationCode, container, false); PhoneNumberTextField = view.FindViewById <EditText>(Resource.Id.PhoneNumberTextField); PhoneNumberTextField.InputType = Android.Text.InputTypes.ClassNumber; var titleTextView = view.FindViewById <TextView>(Resource.Id.TitleTextView); titleTextView.Text = "Verify Email Address"; var messageTextView = view.FindViewById <TextView>(Resource.Id.MessageTextView); messageTextView.Text = "We've sent you an email!"; var progressButton = view.FindViewById <Button>(Resource.Id.ProgressButton); progressButton.Click += async(sender, e) => { string emailAddress = (string)Transporter.SharedInstance.GetObjectForKey("email"); string code = PhoneNumberTextField.Text.Trim(); bool allFieldsValid = ValidateAllFields(); if (!allFieldsValid) { return; } ShowHud(Strings.Hud.please_wait); try { var result = await WebServices.EmailController.UseValidationCode(emailAddress, code); if (result.StatusCode == System.Net.HttpStatusCode.OK) { var outlet = new Outlet(); outlet.Handle = emailAddress; outlet.Type = Outlet.outlet_type_email; outlet.Name = emailAddress; var outletSaved = RealmServices.SaveOutlet(outlet); if (outletSaved) { var activity = Activity as BaseActivity; activity?.PopFragmentOverUntil(typeof(MyOutletsRecyclerViewFragment)); } else { ShowDuplicateEntryAlert(); } } else { PhoneNumberTextField.SetInvalid(Resources); } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } HideHud(); }; return(view); }
public override void ViewWillDisappear(bool animated) { base.ViewWillDisappear(animated); RealmServices.ShareAllOutlets(Shared.SelectedCard); }
public override void ViewDidLoad() { base.ViewDidLoad(); RemoveBackBarButtonTitle(); CollectionView.RegisterNibForCell(UINib.FromName("NewOutletCollectionViewCell", NSBundle.MainBundle), NewOutletCollectionViewCell.Key); CollectionView.WeakDataSource = new NewOutletCollectionViewDataSource(); var delegateFlowLayout = new NewOutletCollectionViewDelegateFlowLayout(); delegateFlowLayout.ItemClicked += (UICollectionView arg1, NSIndexPath arg2) => { var items = RealmServices.GetAllAvailableOutlets(); var item = items[arg2.Row]; if (item == null) { return; } if (!item.AvailbleForAddition) { ShowDuplcateAccountAlert("For now, you can only have 1 " + item.Type + " account. We're working on it"); return; } if (item.Type.Equals(Outlet.outlet_type_phone)) { NavigationController.PushViewController(new EnterPhoneNumberViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_email)) { NavigationController.PushViewController(new EnterEmailAddressViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_website)) { NavigationController.PushViewController(new WebsiteViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_facebook)) { NavigationController.PushViewController(new LoginWithFacebookViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_linkedIn)) { NavigationController.PushViewController(new LinkedInWebViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_github)) { NavigationController.PushViewController(new GithubWebViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_instagram)) { NavigationController.PushViewController(new InstagramWebViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_google)) { NavigationController.PushViewController(new LoginWithGoogleViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_twitter)) { ShowTwitterAuthenticationFlow(); return; } if (item.Type.Equals(Outlet.outlet_type_pinterest)) { NavigationController.PushViewController(new PinterestWebViewController(), true); return; } }; CollectionView.WeakDelegate = delegateFlowLayout; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var view = inflater.Inflate(Resource.Layout.EnterPhoneNumberVerificationCode, container, false); PhoneNumberTextField = view.FindViewById <EditText>(Resource.Id.PhoneNumberTextField); PhoneNumberTextField.InputType = Android.Text.InputTypes.ClassNumber; var titleTextView = view.FindViewById <TextView>(Resource.Id.TitleTextView); titleTextView.Text = "Verify Phone Number"; var messageTextView = view.FindViewById <TextView>(Resource.Id.MessageTextView); messageTextView.Text = "We've sent you an text!"; var progressButton = view.FindViewById <Button>(Resource.Id.ProgressButton); progressButton.Click += async(sender, e) => { string code = StringUtils.RemoveNonIntegers(PhoneNumberTextField.Text.Trim()); bool allFieldsValid = ValidateAllFields(); if (!allFieldsValid) { return; } ShowHud(Strings.Hud.please_wait); try { var result = await TwilioServices.VerifyPhoneAsync(PhoneNumber, code); if (result != null && result.success) { var outlet = new Outlet(); outlet.Handle = PhoneNumber; outlet.Type = Outlet.outlet_type_phone; outlet.Name = PhoneNumber; var outletSaved = RealmServices.SaveOutlet(outlet); if (outletSaved) { var activity = Activity as BaseActivity; activity?.PopFragmentOverUntil(typeof(MyOutletsRecyclerViewFragment)); } else { ShowDuplicateEntryAlert(); } } else { PhoneNumberTextField.SetInvalid(Resources); } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } HideHud(); }; return(view); }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var view = inflater.Inflate(Resource.Layout.Website, container, false); Activity.Title = "Website"; CookieManager.Instance.RemoveAllCookies(null); CookieManager.Instance.Flush(); WebView = view.FindViewById <WebView>(Resource.Id.WebView); WebView.Visibility = ViewStates.Invisible; WebView.ClearHistory(); WebView.ClearCache(true); var client = new BaseWebViewClient(); client.ShouldOverrideUrlLoadingFunc += (arg) => { return(false); }; client.OnPageFinishedAction += (arg1, arg2) => { ProgressBar.Visibility = ViewStates.Invisible; ProgressButton.Text = "Save"; }; WebView.SetWebViewClient(client); TextField = view.FindViewById <EditText>(Resource.Id.WebsiteTextField); TextField.Hint = "Website URL"; TextField.InputType = InputTypes.TextVariationWebEditText | InputTypes.TextFlagNoSuggestions; TextField.TextChanged += (sender, e) => { WebView.Visibility = ViewStates.Invisible; ProgressBar.Visibility = ViewStates.Invisible; ProgressButton.Text = "Validate"; }; ProgressButton = view.FindViewById <Button>(Resource.Id.ProgressButton); ProgressButton.Click += (sender, e) => { if (String.IsNullOrEmpty(TextField.Text)) { return; } var activity = Activity as BaseActivity; if (ProgressButton.Text.Equals("Save", StringComparison.InvariantCultureIgnoreCase)) { string name = null; if (URL.Contains("http://")) { name = URL.Substring(7); } else if (URL.Contains("https://")) { name = URL.Substring(8); } var outlet = new Outlet(); outlet.Name = name; outlet.Handle = URL; outlet.Type = Outlet.outlet_type_website; RealmServices.SaveOutlet(outlet); var fromNewCardPage = false; if (Transporter.SharedInstance.ContainsKey(Transporter.NewOutletAddedTransporterKey)) { fromNewCardPage = (bool)Transporter.SharedInstance.GetObjectForKey(Transporter.NewOutletAddedTransporterKey); } //var popToViewController = fromNewCardPage ? NavigationController.ViewControllers.Where(c => c.GetType() == typeof(NewCardViewController)).First() : NavigationController.ViewControllers.Where(c => c.GetType() == typeof(MyOutletsViewController)).First(); activity?.PopFragmentOverUntil(typeof(MyOutletsRecyclerViewFragment)); return; } URL = TextField.Text.Trim(); if (!URL.Contains("http")) { URL = "http://" + URL; } if (!StringUtils.IsValidURL(URL)) { return; } activity?.HideKeyboard(); WebView.Visibility = ViewStates.Visible; WebView.LoadUrl(URL); ProgressBar.Visibility = ViewStates.Visible; }; ProgressBar = view.FindViewById <ProgressBar>(Resource.Id.ProgressBar); ProgressBar.Visibility = ViewStates.Invisible; return(view); }
//make sure at least one outlet is selected if (!SelectedCard.Outlets.Any(c => !c.Omitted)) return; if (ButtonLocked) return; ButtonLocked = true; if (Sharing) StopSharing(); else StartSharing(); } async public void StartSharing() { if (DisplayPurposeOnly) return; if (SelectedCard == null) { return; } if (!IsSufficentPermissionGranted()) { return; } SharingButton.SetTitle(Strings.Sharing.authenticating, new UIControlState()); try { SessionUUID = await RealmServices.BoardcastCard(SelectedCard, SessionUUID); Sharing = !String.IsNullOrEmpty(SessionUUID); } catch (Exception e) { Sharing = false; AppCenterManager.Report(e); } if (Sharing) { Timer.Start(); ApplyAnimation(); } else { SharingButton.SetTitle(Strings.Sharing.could_not_share_card, new UIControlState()); } ButtonLocked = false; }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { var view = inflater.Inflate(Resource.Layout.GridView, container, false); Activity.Title = Strings.PageTitles.page_title_select_an_outlet; var gridView = view.FindViewById <GridView>(Resource.Id.GridView); gridView.ItemClick += (sender, e) => { var items = RealmServices.GetAllAvailableOutlets(); var item = items[e.Position]; if (item == null) { return; } if (!item.AvailbleForAddition) { ShowDuplcateAccountAlert("For now, you can only have 1 " + item.Type + " account. We're working on it"); return; } if (item.Type.Equals(Outlet.outlet_type_phone)) { ((BaseActivity)Activity).AddFragmentOver(new EnterPhoneNumberFragment()); return; } if (item.Type.Equals(Outlet.outlet_type_email)) { ((BaseActivity)Activity).AddFragmentOver(new EnterEmailAddressFragment()); return; } if (item.Type.Equals(Outlet.outlet_type_website)) { ((BaseActivity)Activity).AddFragmentOver(new WebsiteFragment()); return; } if (item.Type.Equals(Outlet.outlet_type_facebook)) { //NavigationController.PushViewController(new LoginWithFacebookViewController(), true); return; } if (item.Type.Equals(Outlet.outlet_type_linkedIn)) { ((BaseActivity)Activity).AddFragmentOver(new LinkedInWebViewFragment()); return; } if (item.Type.Equals(Outlet.outlet_type_github)) { ((BaseActivity)Activity).AddFragmentOver(new GithubWebViewFragment()); return; } if (item.Type.Equals(Outlet.outlet_type_instagram)) { ((BaseActivity)Activity).AddFragmentOver(new InstagramWebViewFragment()); return; } if (item.Type.Equals(Outlet.outlet_type_google)) { ((BaseActivity)Activity).AddFragmentOver(new GoogleFragment()); return; } if (item.Type.Equals(Outlet.outlet_type_twitter)) { ShowTwitterAuthenticationFlow(); return; } if (item.Type.Equals(Outlet.outlet_type_pinterest)) { ((BaseActivity)Activity).AddFragmentOver(new PinterestWebViewFragment()); return; } }; var GridViewAdapter = new NewOutletGridViewAdapter(); GridViewAdapter.Context = Activity; GridViewAdapter.ListItems = RealmServices.GetAllAvailableOutlets(); gridView.Adapter = GridViewAdapter; return(view); }