private void userflowClick(object sender,RoutedEventArgs e) { Button button = sender as Button; if (button != null) { Debug.Assert(button == userflowButton); String label = button.Content.ToString(); if (label == beginUserflowLabel) { App.userflowName = userflowNames[random.Next(0,userflowNames.Length)]; Crittercism.BeginUserflow(App.userflowName); // Broadcast UserflowEvent to all open windows. App.OnUserflowEvent(EventArgs.Empty); } else if (label == endUserflowLabel) { EndUserflowDialog dialog = new EndUserflowDialog(); dialog.Owner = Window.GetWindow(this); dialog.ShowDialog(); Nullable<bool> dialogResult = dialog.DialogResult; if (dialogResult == true) { switch (dialog.Answer) { case "End Userflow": Crittercism.EndUserflow(App.userflowName); break; case "Fail Userflow": Crittercism.FailUserflow(App.userflowName); break; case "Cancel Userflow": Crittercism.CancelUserflow(App.userflowName); break; }; App.userflowName = null; // Broadcast UserflowEvent to all open windows. App.OnUserflowEvent(EventArgs.Empty); } } } }
public void TestStaticAPIFailUserflow() { // Test "Static API" "FailUserflow" string exampleName = "Purchase Crittercism SDK"; // Resulting state of "FailUserflow" is correct. It's required to "Begin" first. Crittercism.BeginUserflow(exampleName); Assert.IsTrue(Userflow.UserflowForName(exampleName).State() == UserflowState.BEGUN, "Confirm BeginUserflow changes state to UserflowState.BEGUN"); Crittercism.FailUserflow(exampleName); Assert.IsNull(Userflow.UserflowForName(exampleName), "Confirm finished userflow no longer accessible"); }
private void userflowButton_Click(object sender, EventArgs e) { Button button = sender as Button; if (button != null) { String label = button.Text; if (label == beginUserflowLabel) { Program.userflowName = userflowNames[random.Next(0, userflowNames.Length)]; Crittercism.BeginUserflow(Program.userflowName); // Broadcast UserflowEvent to all open windows. Program.OnUserflowEvent(EventArgs.Empty); } else if (label == endUserflowLabel) { EndUserflowDialog dialog = new EndUserflowDialog(); dialog.Owner = this; dialog.ShowDialog(); if (dialog.DialogResult == DialogResult.Yes) { switch (dialog.Answer) { case "End Userflow": Crittercism.EndUserflow(Program.userflowName); break; case "Fail Userflow": Crittercism.FailUserflow(Program.userflowName); break; case "Cancel Userflow": Crittercism.CancelUserflow(Program.userflowName); break; } ; Program.userflowName = null; // Broadcast UserflowEvent to all open windows. Program.OnUserflowEvent(EventArgs.Empty); } } } }
partial void FailLoginButton_TouchUpInside(UIButton sender) { Crittercism.FailUserflow("Login"); }
partial void FailPaymentButton_TouchUpInside(UIButton sender) { Crittercism.FailUserflow("Payment"); }
private void failUserflowClick(object sender, RoutedEventArgs e) { Crittercism.FailUserflow(Demo.userflowName); Demo.userflowName = null; GoBack(); }
internal static void ItemClick(Frame frame, SampleDataItem item) { // Navigate to the appropriate destination page, configuring the new page // by passing required information as a navigation parameter string itemId = item.UniqueId; Debug.WriteLine("UniqueId == " + itemId); if (itemId.Equals("Set Username")) { Random random = new Random(); string[] names = { "Blue Jay", "Chinchilla", "Chipmunk", "Gerbil", "Hamster", "Parrot", "Robin", "Squirrel", "Turtle" }; string name = names[random.Next(0, names.Length)]; Crittercism.SetUsername("Critter " + name); } else if (itemId.Equals("Leave Breadcrumb")) { Random random = new Random(); string[] names = { "Breadcrumb", "Strawberry", "Seed", "Grape", "Lettuce" }; string name = names[random.Next(0, names.Length)]; Crittercism.LeaveBreadcrumb(name); } else if (itemId.Equals("Network Request")) { LogNetworkRequest(); } else if (itemId.Equals("Handled Exception")) { { try { ThrowException(); } catch (Exception ex) { Crittercism.LogHandledException(ex); } } } else if (itemId.Equals("Begin Userflow")) { UserflowClick(frame, item); } else if (itemId.Equals("Crash")) { ThrowException(); } else { // We are on "End Userflow" SectionPage . if (itemId.Equals("Succeed")) { Crittercism.EndUserflow(userflowName); } else if (itemId.Equals("Fail")) { Crittercism.FailUserflow(userflowName); } else if (itemId.Equals("Cancel")) { Crittercism.CancelUserflow(userflowName); } ; userflowItem.Title = beginUserflowLabel; frame.GoBack(); } }
protected override void OnCreate(Bundle bundle) { // Initialize Crittercism Crittercism.Init(ApplicationContext, "YOUR APP ID GOES HERE"); base.OnCreate(bundle); SetContentView(Resource.Layout.Main); Button ButtonLeaveBreadcrumb = FindViewById <Button>(Resource.Id.ButtonBreadcrumb); ButtonLeaveBreadcrumb.Click += delegate(object sender, EventArgs e) { Crittercism.LeaveBreadcrumb("My Breadcrumb"); }; Button ButtonSetUserName = FindViewById <Button>(Resource.Id.ButtonSetUserName); ButtonSetUserName.Click += delegate { Crittercism.SetUserName("MrsCritter"); }; Button ButtonSetMetadata = FindViewById <Button>(Resource.Id.ButtonSetMetadata); ButtonSetMetadata.Click += delegate { Crittercism.SetMetadata("Game Level", "5"); }; Button ButtonCrash = FindViewById <Button>(Resource.Id.ButtonCrash); ButtonCrash.Click += delegate(object sender, EventArgs e) { CrashInnerException(); //CrashDivideByZero(); //CrashNullReference(); //CrashIndexOutOfRange(); //CrashCustomException(); }; Button ButtonHandledException = FindViewById <Button>(Resource.Id.ButtonHandledException); ButtonHandledException.Click += delegate(object sender, EventArgs e) { try { CrashInnerException(); } catch (System.Exception error) { Crittercism.LogHandledException(error); } }; Button ButtonLogNetworkRequest = FindViewById <Button>(Resource.Id.ButtonLogNetworkRequest); ButtonLogNetworkRequest.Click += delegate(object sender, EventArgs e) { Random random = new Random(); string[] methods = { "GET", "POST", "HEAD" }; string method = methods[random.Next(methods.Length)]; string[] urls = { "http://www.critterwebservice.com", "http://www.crittersearchengine.com/?ilove=critters", "http://www.critterdatingservice.com/nutlovers", "http://www.crittergourmetfood.com/nutsandberries.htm", "http://www.critterworldnews.com/summerfun", "http://www.crittermoviereviews.com/starring=mrscritter", "http://www.critterburrowdecor.com" }; string url = urls[random.Next(urls.Length)]; int[] responseCodes = { 200, 202, 400, 404 }; int responseCode = responseCodes[random.Next(responseCodes.Length)]; Crittercism.LogNetworkRequest( method, url, (long)(1000 * random.NextDouble()), random.Next(10000), random.Next(1000), responseCode, 0); }; Button ButtonBeginTransaction = FindViewById <Button>(Resource.Id.ButtonBeginTransaction); ButtonBeginTransaction.Click += delegate(object sender, EventArgs e) { Crittercism.BeginUserflow("Exercise"); }; Button ButtonEndTransaction = FindViewById <Button>(Resource.Id.ButtonEndTransaction); ButtonEndTransaction.Click += delegate(object sender, EventArgs e) { Crittercism.EndUserflow("Exercise"); }; Button ButtonFailTransaction = FindViewById <Button>(Resource.Id.ButtonFailTransaction); ButtonFailTransaction.Click += delegate(object sender, EventArgs e) { Crittercism.FailUserflow("Exercise"); }; Button ButtonSetTransactionValue = FindViewById <Button>(Resource.Id.ButtonSetTransactionValue); Button ButtonGetTransactionValue = FindViewById <Button>(Resource.Id.ButtonGetTransactionValue); ButtonSetTransactionValue.Click += delegate(object sender, EventArgs e) { Random random = new Random(); Crittercism.SetUserflowValue("Exercise", random.Next(1000)); }; ButtonGetTransactionValue.Click += delegate(object sender, EventArgs e) { int value = Crittercism.GetUserflowValue("Exercise"); ButtonGetTransactionValue.Text = value.ToString(); }; }