Ejemplo n.º 1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            shareDetails = e.Parameter as ShareTargetDetails;

            if (shareDetails.Type == StandardDataFormats.StorageItems)
            {
                string s = "???";

                if (SendDataTemporaryStorage.Files != null)
                {
                    s = SendDataTemporaryStorage.Files.Count.ToString() +
                        " file" + (SendDataTemporaryStorage.Files.Count > 1 ? "s" : "");
                }

                ViewModel.PreviewText = s;
                ViewModel.ShowShareStorageItem();
            }
            else if ((shareDetails.Type == StandardDataFormats.WebLink) || (shareDetails.Type == StandardDataFormats.ApplicationLink))
            {
                ViewModel.PreviewText = SendDataTemporaryStorage.LaunchUri.OriginalString;
                ViewModel.ShowShareUrl();
            }
            else if (shareDetails.Type == StandardDataFormats.Text)
            {
                ViewModel.PreviewText = SendDataTemporaryStorage.Text;
                ViewModel.ShowShareText();
            }

            base.OnNavigatedTo(e);

#if !DEBUG
            App.Tracker.Send(HitBuilder.CreateScreenView("ShareTarget").Build());
#endif
        }
Ejemplo n.º 2
0
        private async void PrivacyPolicyButton_Tapped(object sender, TappedRoutedEventArgs e)
        {
#if !DEBUG
            App.Tracker.Send(HitBuilder.CreateScreenView("PrivacyPolicy").Build());
#endif
            await Launcher.LaunchUriAsync(new Uri("https://roamit.ghiasi.net/privacy/"));
        }
        public async Task SendCommerceImpressionPageView()
        {
            var product = MockConfig.MakeProduct();
            var hit     = HitBuilder.CreateScreenView();

            hit.AddImpression(product, "Impression List");
            await SendHitAsync(hit);
        }
        public async Task SendCommercePageView()
        {
            var product = MockConfig.MakeProduct();
            var hit     = HitBuilder.CreateScreenView();

            hit.AddProduct(product);
            await SendHitAsync(hit);
        }
Ejemplo n.º 5
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            VisualChildFinder.FindVisualChild <ContentControl>(pivot, "HeaderClipper").MaxWidth = 720;

#if !DEBUG
            App.Tracker.Send(HitBuilder.CreateScreenView("Settings").Build());
#endif
        }
Ejemplo n.º 6
0
        internal static void PageView(string pageName)
        {
#if !DEBUG
            GoogleAnalyticsTracker.Send(HitBuilder.CreateScreenView(pageName).Build());

            logger.Info($"PageView '{pageName}' fired.");
#endif
        }
Ejemplo n.º 7
0
 public static void TrackPage(string pageName)
 {
     try
     {
         Tracker.ScreenName = pageName;
         Tracker.Send(HitBuilder.CreateScreenView().Build());
     }
     catch
     {
         // Ignore error
     }
 }
Ejemplo n.º 8
0
 public void TrackPage(string pageName)
 {
     try
     {
         GoogleAnalyticsClient.ScreenName = pageName;
         GoogleAnalyticsClient.Send(HitBuilder.CreateScreenView().Build());
     }
     catch
     {
         // ignored
     }
 }
Ejemplo n.º 9
0
        internal static void PageView(string pageName, bool setNewSession = false)
        {
#if !DEBUG
            if (setNewSession)
            {
                GoogleAnalyticsTracker.Send(HitBuilder.CreateScreenView(pageName).SetNewSession().Build());
            }
            else
            {
                GoogleAnalyticsTracker.Send(HitBuilder.CreateScreenView(pageName).Build());
            }
#endif
            logger.Info($"PageView '{pageName}' fired.");
        }
Ejemplo n.º 10
0
        public virtual async Task TrackPageViewAsync(string viewName, Dictionary <string, string> properties)
        {
            tracker.ScreenName = viewName;

            var viewToTrack = HitBuilder.CreateScreenView().Build();

            if (properties != null)
            {
                foreach (var property in properties)
                {
                    viewToTrack.Add(property.Key, property.Value);
                }
            }

            tracker.Send(viewToTrack);
        }
Ejemplo n.º 11
0
        public void TrackPage(string pageName)
        {
            try
            {
                TrackEvent("Page Navigation", new Dictionary <string, string> {
                    { "PageName", pageName }
                });

                _googleAnalyticsClient.ScreenName = pageName;
                _googleAnalyticsClient.Send(HitBuilder.CreateScreenView().Build());
            }
            catch
            {
                // ignored
            }
        }
Ejemplo n.º 12
0
        internal static void PageView(string pageName, bool setNewSession = false)
        {
#if !DEBUG
            if (setNewSession)
            {
                GoogleAnalyticsTracker.Send(HitBuilder.CreateScreenView(pageName).SetNewSession().Build());
            }
            else
            {
                GoogleAnalyticsTracker.Send(HitBuilder.CreateScreenView(pageName).Build());
            }
#endif
            Analytics.TrackEvent("pageView", new Dictionary <string, string>()
            {
                { "name", pageName },
            });
            logger.Info($"PageView '{pageName}' fired.");
        }
Ejemplo n.º 13
0
        public void GenerateHitWithTrackerProperties()
        {
            var          mockServiceManager = new MockServiceManager();
            var          tracker            = new Tracker("fakePropertyId", null, mockServiceManager);
            const string screenName         = "testscreen";
            const string referrer           = "referrer";
            const string language           = "de-de";
            const string ipOverride         = "127.0.0.1";
            const string appInstallerId     = "appInstallerid";
            const string appName            = "appname";
            const string appVersion         = "1.0.0.0";
            const string encoding           = "utf-16";

            tracker.ScreenName     = screenName;
            tracker.Referrer       = referrer;
            tracker.Language       = language;
            tracker.IpOverride     = ipOverride;
            tracker.AppInstallerId = appInstallerId;
            tracker.AppName        = appName;
            tracker.AppVersion     = appVersion;
            tracker.Encoding       = encoding;


            var hit = HitBuilder.CreateScreenView();

            tracker.Send(HitBuilder.CreateScreenView().Build());

            tracker.Send(new Dictionary <string, string>()
            {
                { "key", "value" }
            });

            Assert.IsTrue(mockServiceManager.LastDataEnqueued["key"] == "value");
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.PropertyId] == "fakePropertyId");
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.ScreenName] == screenName);
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.Referrer] == referrer);
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.UserLanguage] == language);
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.IpOverride] == ipOverride);
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.AppName] == appName);
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.AppVersion] == appVersion);
            Assert.IsTrue(mockServiceManager.LastDataEnqueued[ParameterNames.Encoding] == encoding);

            // TODO: test additional fields
        }
Ejemplo n.º 14
0
        /// <summary>
        ///     Track a page/view hit.
        /// </summary>
        /// <param name="pageName">Page/View name</param>
        public void TrackPage(string pageName)
        {
            // Ignore telementry before service is init
            if (!_isInit)
            {
                return;
            }

            try
            {
                TrackEvent("Page Navigation", new Dictionary <string, string> {
                    { "PageName", pageName }
                });

                _googleAnalyticsClient.ScreenName = pageName;
                _googleAnalyticsClient.Send(HitBuilder.CreateScreenView().Build());
            }
            catch
            {
                // ignored
            }
        }
        public virtual async Task TrackPageViewAsync(string viewName, Dictionary <string, string> properties)
        {
            try
            {
                Tracker.ScreenName = viewName;

                var viewToTrack = HitBuilder.CreateScreenView().Build();

                if (properties != null)
                {
                    foreach (var property in properties)
                    {
                        viewToTrack.Add(property.Key, property.Value);
                    }
                }

                Tracker.Send(viewToTrack);
            }
            catch (Exception ex)
            {
                _ = TinyInsights.TrackErrorAsync(ex);
            }
        }
 private void MainWindow_Loaded(object sender, RoutedEventArgs e)
 {
     App.Tracker.Send(HitBuilder.CreateScreenView("MainWindow").Build());
     //TimeSpan ts = TimeSpan.FromSeconds(2.2);
     //App.Tracker.Send(HitBuilder.CreateTiming("load", "MainWindow", ts).Build());
 }
Ejemplo n.º 17
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

#if !DEBUG
            App.Tracker.Send(HitBuilder.CreateScreenView("Send").Build());
#endif
            PersistentDisplay.ActivatePersistentDisplay();

            if (Frame.BackStackDepth > 0)
            {
                if (Frame.BackStack[Frame.BackStackDepth - 1].SourcePageType == typeof(MainSend))
                {
                    Frame.BackStack.RemoveAt(Frame.BackStackDepth - 1);
                }
            }

            bool preserveFolderStructure = (Frame.BackStackDepth <= 0 || Frame.BackStack[Frame.BackStackDepth - 1].SourcePageType != typeof(PicturePicker));

            var rs = MainPage.Current.GetSelectedSystem();

            bool isDestinationAndroid;

            IRomePackageManager packageManager;
            if (rs is NormalizedRemoteSystem)
            {
                isDestinationAndroid = true;

                var nrs = rs as NormalizedRemoteSystem;

                if ((!string.IsNullOrEmpty(nrs.AppVersion)) &&
                    (Version.TryParse(nrs.AppVersion, out Version remoteAppVersion)) &&
                    (remoteAppVersion < new Version("2.1.4")))
                {
                    MainPage.Current.AndroidPackageManager.Mode = AndroidRomePackageManager.AndroidPackageManagerMode.MessageCarrier;
                }
                else
                {
                    PackageManagerHelper.InitAndroidPackageManagerMode();
                }
            }
            else
            {
                isDestinationAndroid = false;
            }

            string deviceName;

            var localDeviceInfo = NetworkInformation.GetHostNames().FirstOrDefault(name => name.DisplayName.EndsWith(".local"));
            if (localDeviceInfo != null)
            {
                deviceName = localDeviceInfo.DisplayName.Substring(0, localDeviceInfo.DisplayName.Length - ".local".Length);
            }
            else
            {
                deviceName = (new Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation()).FriendlyName;
            }

            var mode = e.Parameter.ToString();

            bool succeed = true;
            FileTransferResult fileTransferResult = FileTransferResult.Successful;
            try
            {
                if (mode == "launchUri")
                {
                    await LaunchUri(rs);
                }
                else if (mode == "text")
                {
                    string text           = SendDataTemporaryStorage.Text;
                    bool   fastSendResult = await TrySendFastClipboard(text, rs, deviceName);

                    if (fastSendResult)
                    {
                        SendTextFinished("");
                    }
                    else
                    {
                        SendTextFinished("Send failed. Text is too long.");
#if !DEBUG
                        App.Tracker.Send(HitBuilder.CreateCustomEvent("SendTextFailed", "TooLong").Build());
#endif
                        //ViewModel.ProgressPercentIndicatorVisibility = Visibility.Visible;
                        //var result = await Connect(rs);
                        //var connectResult = result.Item1;
                        //packageManager = result.Item2;

                        //if (connectResult != RomeAppServiceConnectionStatus.Success)
                        //{
                        //    HideEverything();

                        //    succeed = false;
                        //    string errorMessage;

                        //    if ((connectResult == RomeAppServiceConnectionStatus.RemoteSystemUnavailable) && (packageManager is AndroidRomePackageManager))
                        //    {
                        //        errorMessage = "Can't connect to device. Open Roamit on your Android device and then try again.";
                        //    }
                        //    else
                        //    {
                        //        errorMessage = connectResult.ToString();
                        //    }

                        //    Frame.Navigate(typeof(MainSendFailed), JsonConvert.SerializeObject(new SendFailedViewModel
                        //    {
                        //        ErrorTitle = "Can't connect",
                        //        ErrorDescription = errorMessage,
                        //    }));
                        //    return;
                        //}

                        //ViewModel.UnlockNoticeVisibility = Visibility.Collapsed;

                        //await SendText(packageManager, deviceName, text);
                    }
                }
                else if (mode == "file")
                {
                    ViewModel.ProgressPercentIndicatorVisibility = Visibility.Visible;
                    var result = await Connect(rs, openReceiveFileDialogIfOverCloud : true);

                    var connectResult = result.Item1;
                    packageManager = result.Item2;


                    if (connectResult != RomeAppServiceConnectionStatus.Success)
                    {
                        HideEverything();

                        succeed = false;
                        string errorMessage;

                        if ((connectResult == RomeAppServiceConnectionStatus.RemoteSystemUnavailable) && (packageManager is AndroidRomePackageManager))
                        {
                            errorMessage = "Can't connect to device. Open Roamit on your Android device and then try again.";
                        }
                        else
                        {
                            errorMessage = connectResult.ToString();
                        }

                        Frame.Navigate(typeof(MainSendFailed), JsonConvert.SerializeObject(new SendFailedViewModel
                        {
                            ErrorTitle       = "Can't connect",
                            ErrorDescription = errorMessage,
                        }));
                        return;
                    }

                    ViewModel.UnlockNoticeVisibility = Visibility.Collapsed;
                    if (!isDestinationAndroid)
                    {
                        ViewModel.LeaveScreenOnNoticeVisibility = Visibility.Visible;
                    }

                    fileTransferResult = await SendFile(rs, packageManager, deviceName, preserveFolderStructure);

                    if (fileTransferResult != FileTransferResult.Successful)
                    {
                        succeed = false;
                        return;
                    }

                    if (!isDestinationAndroid)
                    {
                        ViewModel.LeaveScreenOnNoticeVisibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    succeed = false;
                    Frame.Navigate(typeof(MainSendFailed), JsonConvert.SerializeObject(new SendFailedViewModel
                    {
                        ErrorTitle       = "Invalid parameter",
                        ErrorDescription = "[MainSend]",
                    }));
                    return;
                }
            }
            finally
            {
                PersistentDisplay.ReleasePersistentDisplay();
#if !DEBUG
                if (rs is NormalizedRemoteSystem)
                {
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("SendToAndroid", mode, succeed ? "Success" : ((mode == "file") ? fileTransferResult.ToString() : "Failed")).Build());
                }
                else
                {
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("SendToWindows", mode, succeed ? "Success" : ((mode == "file") ? fileTransferResult.ToString() : "Failed")).Build());
                }
#endif
                sendingFile = false;
            }

            if (SendDataTemporaryStorage.IsSharingTarget)
            {
                if (App.ShareOperation == null)
                {
#if !DEBUG
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "UriTarget").Build());
#endif
                    await Task.Delay(TimeSpan.FromSeconds(1.5));

                    App.Current.Exit();
                }
                else
                {
#if !DEBUG
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "ShareTarget").Build());
#endif
                    await Task.Delay(TimeSpan.FromSeconds(1.5));

                    App.ShareOperation.ReportCompleted();
                }
                SendDataTemporaryStorage.IsSharingTarget = false;
                App.ShareOperation = null;
            }
            else
            {
                ViewModel.GoBackButtonVisibility = Visibility.Visible;
                GoBackButtonShowStoryboard.Begin();

                if (succeed)
                {
                    await AskForReviewIfNecessary();
                }

#if !DEBUG
                App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "WithinApp").Build());
#endif
            }
        }
Ejemplo n.º 18
0
        public void TrackScreenView(string screenName)
        {
            var data = HitBuilder.CreateScreenView(screenName).Build();

            tracker.Send(data);
        }
Ejemplo n.º 19
0
 public override void NewPageView(Type pageType)
 {
     // Send a page view
     _tracker.ScreenName = pageType.Name;
     _tracker.Send(HitBuilder.CreateScreenView().Build());
 }
 private void ButtonView_Click(object sender, RoutedEventArgs e)
 {
     App.Tracker.Send(HitBuilder.CreateScreenView().Build());
 }
        public async Task SendScreenView()
        {
            var hit = HitBuilder.CreateScreenView();

            await SendHitAsync(hit);
        }
Ejemplo n.º 22
0
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
#if !DEBUG
            App.Tracker.Send(HitBuilder.CreateScreenView("HistoryPage").Build());
#endif
        }
Ejemplo n.º 23
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

#if !DEBUG
            App.Tracker.Send(HitBuilder.CreateScreenView("Send").Build());
#endif
            PersistentDisplay.ActivatePersistentDisplay();

            if (Frame.BackStackDepth > 0)
            {
                if (Frame.BackStack[Frame.BackStackDepth - 1].SourcePageType == typeof(MainSend))
                {
                    Frame.BackStack.RemoveAt(Frame.BackStackDepth - 1);
                }
            }

            var rs = MainPage.Current.GetSelectedSystem();

            bool isDestinationAndroid;

            IRomePackageManager packageManager;
            if (rs is NormalizedRemoteSystem)
            {
                isDestinationAndroid = true;
                packageManager       = MainPage.Current.AndroidPackageManager;

                var nrs = rs as NormalizedRemoteSystem;

                if ((!string.IsNullOrEmpty(nrs.AppVersion)) &&
                    (Version.TryParse(nrs.AppVersion, out Version remoteAppVersion)) &&
                    (remoteAppVersion < new Version("2.1.4")))
                {
                    MainPage.Current.AndroidPackageManager.Mode = AndroidRomePackageManager.AndroidPackageManagerMode.MessageCarrier;
                }
                else
                {
                    PackageManagerHelper.InitAndroidPackageManagerMode();
                }
            }
            else
            {
                isDestinationAndroid = false;
                packageManager       = MainPage.Current.PackageManager;
            }

            string deviceName = (new Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation()).FriendlyName;
            var    mode       = e.Parameter.ToString();

            if ((mode == "file") && (!(await IsAllowedToSendAsync())))
            {
                ViewModel.SendStatus = "";

                await TrialHelper.AskForUpgradeWhileSending();

                if (!(await IsAllowedToSendAsync()))
                {
#if !DEBUG
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "AskedToUpgrade", "Rejected").Build());
#endif
                    PersistentDisplay.ReleasePersistentDisplay();
                    Frame.GoBack();
                    return;
                }
#if !DEBUG
                App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "AskedToUpgrade", "Accepted").Build());
#endif
                ViewModel.SendStatus = "Connecting...";
            }

            bool succeed = true;
            FileTransferResult fileTransferResult = FileTransferResult.Successful;
            try
            {
                if (mode == "launchUri")
                {
                    await LaunchUri(rs);
                }
                else if (mode == "text")
                {
                    string text           = SendDataTemporaryStorage.Text;
                    bool   fastSendResult = await TrySendFastClipboard(text, rs, deviceName);

                    if (fastSendResult)
                    {
                        SendTextFinished("");
                    }
                    else
                    {
                        ViewModel.ProgressPercentIndicatorVisibility = Visibility.Visible;
                        RomeAppServiceConnectionStatus result = await Connect(rs);

                        if (result != RomeAppServiceConnectionStatus.Success)
                        {
                            HideEverything();

                            succeed = false;
                            string errorMessage;

                            if ((result == RomeAppServiceConnectionStatus.RemoteSystemUnavailable) && (packageManager is AndroidRomePackageManager))
                            {
                                errorMessage = "Can't connect to device. Open Roamit on your Android device and then try again.";
                            }
                            else
                            {
                                errorMessage = result.ToString();
                            }

                            await(new MessageDialog(errorMessage, "Can't connect")).ShowAsync();
                            Frame.GoBack();
                            return;
                        }

                        ViewModel.UnlockNoticeVisibility = Visibility.Collapsed;

                        await SendText(packageManager, deviceName, text);
                    }
                }
                else if (mode == "file")
                {
                    ViewModel.ProgressPercentIndicatorVisibility = Visibility.Visible;
                    RomeAppServiceConnectionStatus result = await Connect(rs);

                    if (result != RomeAppServiceConnectionStatus.Success)
                    {
                        HideEverything();

                        succeed = false;
                        string errorMessage;

                        if ((result == RomeAppServiceConnectionStatus.RemoteSystemUnavailable) && (packageManager is AndroidRomePackageManager))
                        {
                            errorMessage = "Can't connect to device. Open Roamit on your Android device and then try again.";
                        }
                        else
                        {
                            errorMessage = result.ToString();
                        }

                        await(new MessageDialog(errorMessage, "Can't connect")).ShowAsync();
                        Frame.GoBack();
                        return;
                    }

                    ViewModel.UnlockNoticeVisibility = Visibility.Collapsed;
                    if (!isDestinationAndroid)
                    {
                        ViewModel.LeaveScreenOnNoticeVisibility = Visibility.Visible;
                    }

                    fileTransferResult = await SendFile(rs, packageManager, deviceName);

                    if (fileTransferResult != FileTransferResult.Successful)
                    {
                        HideEverything();

                        succeed = false;
                        Frame.GoBack();
                        return;
                    }

                    if (!isDestinationAndroid)
                    {
                        ViewModel.LeaveScreenOnNoticeVisibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    succeed = false;
                    await(new MessageDialog("MainSend::Invalid parameter.")).ShowAsync();
                    Frame.GoBack();
                    return;
                }
            }
            finally
            {
                PersistentDisplay.ReleasePersistentDisplay();
#if !DEBUG
                if (rs is NormalizedRemoteSystem)
                {
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("SendToAndroid", mode, succeed ? "Success" : ((mode == "file") ? fileTransferResult.ToString() : "Failed")).Build());
                }
                else
                {
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("SendToWindows", mode, succeed ? "Success" : ((mode == "file") ? fileTransferResult.ToString() : "Failed")).Build());
                }
#endif
                sendingFile = false;
            }

            if (SendDataTemporaryStorage.IsSharingTarget)
            {
                if (App.ShareOperation == null)
                {
#if !DEBUG
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "UriTarget").Build());
#endif
                    await Task.Delay(TimeSpan.FromSeconds(1.5));

                    App.Current.Exit();
                }
                else
                {
#if !DEBUG
                    App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "ShareTarget").Build());
#endif
                    await Task.Delay(TimeSpan.FromSeconds(1.5));

                    App.ShareOperation.ReportCompleted();
                }
                SendDataTemporaryStorage.IsSharingTarget = false;
                App.ShareOperation = null;
            }
            else
            {
                ViewModel.GoBackButtonVisibility = Visibility.Visible;
                GoBackButtonShowStoryboard.Begin();

                if (succeed)
                {
                    await AskForReviewIfNecessary();
                }

#if !DEBUG
                App.Tracker.Send(HitBuilder.CreateCustomEvent("Send", "WithinApp").Build());
#endif
            }
        }