Exemplo n.º 1
0
        public void InitializeValues(string advId, string advKey)
        {
            var hardwareId = HardwareIdentification.GetPackageSpecificToken(null).Id;
            var dataReader = DataReader.FromBuffer(hardwareId);

            byte[] bytes = new byte[hardwareId.Length];
            dataReader.ReadBytes(bytes);

            this.parameters = new Parameters(advId, advKey, bytes);

            eventQueue = new MATEventQueue(parameters);

            GetUserAgent();

            // Handles the OnNetworkStatusChange event
            NetworkStatusChangedEventHandler networkStatusCallback = null;

            // Indicates if the connection profile is registered for network status change events. Set the default value to FALSE.
            bool registeredNetworkStatusNotif = false;

            networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);

            // Register for network status change notifications
            if (!registeredNetworkStatusNotif)
            {
                NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                registeredNetworkStatusNotif             = true;
            }

            // Send queued requests
            eventQueue.DumpQueue();
        }
Exemplo n.º 2
0
        public async void InitializeNetworkChanged()
        {
            Debug.WriteLine("testing this: {0}", this.ToString());
            Utility.Log(this, "InitializeNetworkChanged");
            try
            {
                networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
                if (!registeredNetworkStatusNotif)
                {
                    NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                    registeredNetworkStatusNotif             = true; // TODO seems inelagent... Can't I test if it is registered rather than using this boolean flag?
                }

                OnNetworkStatusChange(null); // set initial state of internet connectivity

                //if (internetProfileInfo == "")
                //{
                //    //rootPage.NotifyUser("No network status change. ", NotifyType.StatusMessage);
                //    // RwAppSettings.IsDoSkyDriveBackup = ????????????????????????????????????????????????????????????????????
                //}
                //else
                //{
                //    // rootPage.NotifyUser(internetProfileInfo, NotifyType.StatusMessage);
                //}
            }
            catch (Exception ex)
            {
                // rootPage.NotifyUser("Unexpected exception occurred: " + ex.ToString(), NotifyType.ErrorMessage);
                Debug.WriteLine("networkStatusCallback caught exception: {0}", ex);
            }
        }
Exemplo n.º 3
0
            public async Task StartUntilCompletedAsync()
            {
                SemaphoreSlim semaphoreSlim = new SemaphoreSlim(0, 1);
                NetworkStatusChangedEventHandler statusChangedEventHandler = null;
                bool done = false;

                statusChangedEventHandler = new NetworkStatusChangedEventHandler(() =>
                {
                    if (Status == NetworkStatus.Completed)
                    {
                        if (done)
                        {
                            return;
                        }
                        done           = true;
                        StatusChanged -= statusChangedEventHandler;
                        lock (semaphoreSlim) semaphoreSlim.Release();
                    }
                });
                StatusChanged += statusChangedEventHandler;
                index_Retry :;
                await StartAsync();

                await semaphoreSlim.WaitAsync();

                if (Status != NetworkStatus.Completed)
                {
                    string msg = $"Status: {Status}, failed to StartUntilCompletedAsync";
                    OnMessageAppended(msg);
                    MyLogger.Log(msg);
                    goto index_Retry;
                }
            }
Exemplo n.º 4
0
        /// <summary>
        /// This is the click handler for the 'NetworkStatusChange_Click' button.  You would replace this with your own handler
        /// if you have a button or buttons on this page.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //
        //Register for Network Status Change notifications, and display new Internet Connection Profile information on network status change
        //
        private void NetworkStatusChange_Click(object sender, RoutedEventArgs e)
        {
            // register for network status change notifications
            try
            {
                networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
                if (!registeredNetworkStatusNotif)
                {
                    NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                    registeredNetworkStatusNotif = true;
                }
                if (internetProfileInfo == "")
                {
                    rootPage.NotifyUser("No network status change. ", NotifyType.StatusMessage);
                }
                else
                {
                    rootPage.NotifyUser(internetProfileInfo, NotifyType.StatusMessage);
                }
            }

            catch (Exception ex)
            {
                rootPage.NotifyUser("Unexpected exception occurred: " + ex.ToString(), NotifyType.ErrorMessage);
            }
        }
Exemplo n.º 5
0
        public async void InitializeNetworkChanged()
        {
            Debug.WriteLine("testing this: {0}", this.ToString());
            Utility.Log(this, "InitializeNetworkChanged");
            try
            {
                networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
                if (!registeredNetworkStatusNotif)
                {
                    NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                    registeredNetworkStatusNotif = true; // TODO seems inelagent... Can't I test if it is registered rather than using this boolean flag? 
                }

                OnNetworkStatusChange(null); // set initial state of internet connectivity 

                //if (internetProfileInfo == "")
                //{
                //    //rootPage.NotifyUser("No network status change. ", NotifyType.StatusMessage);
                //    // RwAppSettings.IsDoSkyDriveBackup = ????????????????????????????????????????????????????????????????????
                //}
                //else
                //{
                //    // rootPage.NotifyUser(internetProfileInfo, NotifyType.StatusMessage);
                //}
            }
            catch (Exception ex)
            {
                // rootPage.NotifyUser("Unexpected exception occurred: " + ex.ToString(), NotifyType.ErrorMessage);
                Debug.WriteLine("networkStatusCallback caught exception: {0}", ex);
            }
        }
Exemplo n.º 6
0
        public HTransportManager(HTransport tranpsport)
        {
            this.Transport           = tranpsport;
            this.Transport.onData   += Transport_onData;
            this.Transport.onStatus += Transport_onStatus;
            ConnectionProfile internetConnectProfile = NetworkInformation.GetInternetConnectionProfile();

            if (internetConnectProfile == null)
            {
                this.hasNetwork = false;
            }
            else
            {
                switch (internetConnectProfile.GetNetworkConnectivityLevel())
                {
                case NetworkConnectivityLevel.None:
                    this.hasNetwork = false;
                    break;

                case NetworkConnectivityLevel.LocalAccess:
                case NetworkConnectivityLevel.InternetAccess:
                case NetworkConnectivityLevel.ConstrainedInternetAccess:
                    this.hasNetwork = true;
                    break;
                }
            }
            networkStatusChangedCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChanged);
            if (!registeredNetworkStatusNotif)
            {
                NetworkInformation.NetworkStatusChanged += networkStatusChangedCallback;
                registeredNetworkStatusNotif             = true;
            }
        }
        /// <summary>
        /// This is the click handler for the 'NetworkStatusChange_Click' button.  You would replace this with your own handler
        /// if you have a button or buttons on this page.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //
        //Register for Network Status Change notifications, and display new Internet Connection Profile information on network status change
        //
        private void NetworkStatusChange_Click(object sender, RoutedEventArgs e)
        {
            // register for network status change notifications
            try
            {
                networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
                if (!registeredNetworkStatusNotif)
                {
                    NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                    registeredNetworkStatusNotif             = true;
                }
                if (internetProfileInfo == "")
                {
                    rootPage.NotifyUser("No network status change. ", NotifyType.StatusMessage);
                }
                else
                {
                    rootPage.NotifyUser(internetProfileInfo, NotifyType.StatusMessage);
                }
            }

            catch (Exception ex)
            {
                rootPage.NotifyUser("Unexpected exception occurred: " + ex.ToString(), NotifyType.ErrorMessage);
            }
        }
        public HTransportManager(HTransport tranpsport) 
        {
            this.Transport = tranpsport;
            this.Transport.onData += Transport_onData;
            this.Transport.onStatus += Transport_onStatus;
            ConnectionProfile internetConnectProfile = NetworkInformation.GetInternetConnectionProfile();
            if (internetConnectProfile == null)
                this.hasNetwork = false;
            else
            {
                switch (internetConnectProfile.GetNetworkConnectivityLevel())
                { 
                    case NetworkConnectivityLevel.None:
                        this.hasNetwork = false;
                        break;
                    case NetworkConnectivityLevel.LocalAccess:
                    case NetworkConnectivityLevel.InternetAccess:
                    case NetworkConnectivityLevel.ConstrainedInternetAccess:
                        this.hasNetwork = true;
                        break;
                }
            }
            networkStatusChangedCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChanged);
            if (!registeredNetworkStatusNotif)
            {
                NetworkInformation.NetworkStatusChanged += networkStatusChangedCallback;
                registeredNetworkStatusNotif = true;
            }

        }
Exemplo n.º 9
0
 public NetworkStatusMonitor(Action testIsOnline = null, NetworkStatusChangedEventHandler networkStatusChanged = null)
 {
     TestIsOnline = testIsOnline ?? DefaultTestIsOnline;
     if (networkStatusChanged != null)
         NetworkStatusChanged += networkStatusChanged;
     NetworkChange.NetworkAddressChanged += (s, e) => OnNetworkAddressChanged();
     OnNetworkAddressChanged();
 }
Exemplo n.º 10
0
 public IObservable <NetworkReachability> WhenStatusChanged()
 {
     return(Observable.Create <NetworkReachability>(ob =>
     {
         var handler = new NetworkStatusChangedEventHandler(sender => ob.OnNext(this.InternetReachability));
         NetworkInformation.NetworkStatusChanged += handler;
         return () => NetworkInformation.NetworkStatusChanged -= handler;
     }));
 }
Exemplo n.º 11
0
 private void RegisterNetworkStatusChange()
 {
     try
     {
         var networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
         NetworkInformation.NetworkStatusChanged += networkStatusCallback;
     }
     catch (Exception ex)
     {
         Log("Error when registering for network status change.");
     }
 }
Exemplo n.º 12
0
        public DisplayManager()
        {
            this.display        = new SSD1306Device();
            this.IsDisplayOn    = false;
            this.minutesIdle    = 0;
            this.clockTicked    = new EventWaitHandle(false, EventResetMode.AutoReset);
            this.clock          = new Timer(new TimerCallback(this.ClockTick), null, TimeSpan.Zero, TimeSpan.FromSeconds(1));
            this.DisplayTimeout = TimeSpan.FromMinutes(1);

            // register for network status change notifications
            networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
            NetworkInformation.NetworkStatusChanged += networkStatusCallback;
        }
Exemplo n.º 13
0
        void NetworkStatusChange()
        {
            // register for network status change notifications
            try
            {
                var networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);

                NetworkInformation.NetworkStatusChanged += networkStatusCallback;
            }
            catch (Exception ex)
            {
                //rootPage.NotifyUser("Unexpected exception occured: " + ex.ToString(), NotifyType.ErrorMessage);
            }
        }
        public HTransportManager(HTransport tranpsport)
        {
            this.Transport = tranpsport;
            this.Transport.onData += Transport_onData;
            this.Transport.onStatus += Transport_onStatus;

            if (Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType == NetworkInterfaceType.None)
                this.hasNetwork = false;
            else
                this.hasNetwork = true;

            networkStatusChangedCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChanged);
            if (!registeredNetworkStatusNotif)
            {
                NetworkInformation.NetworkStatusChanged += networkStatusChangedCallback;
                registeredNetworkStatusNotif = true;
            }

        }
Exemplo n.º 15
0
        public MobileAppTracker(string advId, string advKey)
        {
            this.culture = new CultureInfo("en-US");

            this.advertiserId = advId;
            this.advertiserKey = advKey;

            this.localSettings = ApplicationData.Current.LocalSettings;
            this.syncLock = new object();

            this.urlEncrypter = new Encryption(advKey, IV);

            this.matResponse = null;

            // Default values
            this.AllowDuplicates = false;
            this.DebugMode = false;
            this.ExistingUser = false;
            this.AppAdTracking = true;
            this.Gender = MATGender.NONE;

            var version = Package.Current.Id.Version;
            this.AppVersion = String.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision);

            this.PackageName = Package.Current.Id.Name;

            // Get ASHWID
            var hardwareId = HardwareIdentification.GetPackageSpecificToken(null).Id;
            var dataReader = DataReader.FromBuffer(hardwareId);
            byte[] bytes = new byte[hardwareId.Length];
            dataReader.ReadBytes(bytes);
            this.ASHWID = BitConverter.ToString(bytes);

            // Check if we can restore existing MAT ID or should generate new one
            if (localSettings.Values.ContainsKey(SETTINGS_MATID_KEY))
            {
                this.MatId = (string)localSettings.Values[SETTINGS_MATID_KEY];
            }
            else // Don't have MAT ID, generate new guid
            {
                this.MatId = System.Guid.NewGuid().ToString();
                SaveLocalSetting(SETTINGS_MATID_KEY, this.MatId);
            }

            // Handles the OnNetworkStatusChange event
            NetworkStatusChangedEventHandler networkStatusCallback = null;

            // Indicates if the connection profile is registered for network status change events. Set the default value to FALSE.
            bool registeredNetworkStatusNotif = false;

            networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);

            // Register for network status change notifications
            if (!registeredNetworkStatusNotif)
            {
                NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                registeredNetworkStatusNotif = true;
            }

            // Check for internet connectivity and send queued requests
            ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
            if (profile != null && profile.GetNetworkConnectivityLevel() >= NetworkConnectivityLevel.InternetAccess)
                DumpQueue();
        }
Exemplo n.º 16
0
        private DialogResult ShowDialog([CanBeNull] IWin32Window owner, bool isReportable)
        {
            using (var dialog = CreateTaskDialog())
            {
                if (owner != null)
                {
                    dialog.OwnerWindowHandle = owner.Handle;
                }

                if (Title != null)
                {
                    dialog.Caption = Title;
                }

                if (Heading != null)
                {
                    dialog.InstructionText = Heading;
                }

                if (Message != null)
                {
                    dialog.Text = Message;
                }

                if (StackTrace != null)
                {
                    dialog.ExpansionMode         = TaskDialogExpandedDetailsLocation.ExpandFooter;
                    dialog.DetailsCollapsedLabel = "Show &details";
                    dialog.DetailsExpandedLabel  = "Hide &details";
                    dialog.DetailsExpandedText   = StackTrace;
                    dialog.FooterText            = string.Format("<a href=\"{0}\">Copy to clipboard</a>", CopyDetailsHref);
                }

                var linkOnClick = CreateDialogOnHyperlinkClickHandler(dialog, owner);

                dialog.HyperlinkClick += linkOnClick;

                NetworkStatusChangedEventHandler nwStatusOnChanged = null;
                EventHandler dialogOnOpened = null;

                if (isReportable)
                {
                    var submitButton  = CreateSubmitButton(dialog);
                    var declineButton = CreateDeclineButton(dialog);

                    dialog.Controls.Add(submitButton);
                    dialog.Controls.Add(declineButton);

                    if (dialog.FooterText != null)
                    {
                        dialog.FooterText = string.Format("<a href=\"{0}\">View report contents</a> - {1}",
                                                          EditReportHref, dialog.FooterText);
                    }

                    nwStatusOnChanged = CreateNetworkStatusChangedEventHandler(submitButton);
                    _networkStatusMonitor.NetworkStatusChanged += nwStatusOnChanged;

                    dialogOnOpened = CreateDialogOnOpened(submitButton);
                    dialog.Opened += dialogOnOpened;
                }

                var result = dialog.Show().ToDialogResult();

                #region Cleanup

                dialog.HyperlinkClick -= linkOnClick;

                if (nwStatusOnChanged != null)
                {
                    _networkStatusMonitor.NetworkStatusChanged -= nwStatusOnChanged;
                }

                if (dialogOnOpened != null)
                {
                    dialog.Opened -= dialogOnOpened;
                }

                #endregion

                return(result);
            }
        }
Exemplo n.º 17
0
 public OfflinePage()
 {
     this.InitializeComponent();
     NetworkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
     NetworkInformation.NetworkStatusChanged += NetworkStatusCallback;
 }
Exemplo n.º 18
0
        private async void MainPage_OnLoaded(object sender, RoutedEventArgs e)
        {
            var isInternetConnected   = NetworkInformation.GetInternetConnectionProfile() != null;
            var networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChanged);

            _viewModel.ChatsList        = new ObservableCollection <ChatsListItemData>();
            ChatsListView.ItemsSource   = _viewModel.ChatsList;
            _viewModel.InboxesList      = new ObservableCollection <ChatsListItemData>();
            InboxesListView.ItemsSource = _viewModel.InboxesList;
            using (var db = new CacheDbContext())
            {
                foreach (var vkPeer in db.VkPeers)
                {
                    // last is unsupported in ef
                    //var lastMessageText = db.VkMessages.Where(x => x.PeerId == vkPeer.PeerId)
                    //    .OrderByDescending(x => x.ConversationMessageId).FirstOrDefault()?.Text;
                    //if (string.IsNullOrEmpty(vkPeer.LastMessage)) continue;
                    _viewModel.ChatsList.Add(new ChatsListItemData
                    {
                        Avatar     = await ImageUtils.ConvertToImageSource(vkPeer.Avatar),
                        Message    = vkPeer.LastMessage,
                        Name       = vkPeer.ReadableName,
                        PeerId     = vkPeer.PeerId,
                        IsThisUser = false
                    });
                }

                foreach (var inbox in db.Inboxes)
                {
                    _viewModel.InboxesList.Add(new ChatsListItemData
                    {
                        Name   = inbox.ReadableName,
                        Avatar = await ImageUtils.ConvertToImageSource(inbox.Avatar)
                    });
                }
            }

            _viewModel.MessageDict = new Dictionary <long, ObservableCollection <ChatsListItemData> >();
            foreach (var item in _viewModel.ChatsList)
            {
                _viewModel.MessageDict.Add(item.PeerId, new ObservableCollection <ChatsListItemData>());
            }

            using (var db = new CacheDbContext())
            {
                foreach (var vkMessage in db.VkMessages)
                {
                    if (!_viewModel.MessageDict.ContainsKey(vkMessage.PeerId))
                    {
                        _viewModel.MessageDict.Add(vkMessage.PeerId, new ObservableCollection <ChatsListItemData>());
                    }
                    //FromId - because one peer can have several senders
                    var vkPeer = await db.VkPeers.FindAsync(vkMessage.FromId);

                    _viewModel.MessageDict[vkMessage.PeerId].Add(new ChatsListItemData
                    {
                        Avatar     = await ImageUtils.ConvertToImageSource(vkPeer.Avatar),
                        Message    = vkMessage.Text,
                        Name       = vkPeer.ReadableName,
                        PeerId     = vkMessage.PeerId,
                        IsThisUser = vkMessage.FromId == db.SessionInfo.First().UserId
                    });
                }
            }

            if (isInternetConnected)
            {
                _viewModel.InboxesList = await VkDataToClassesUtils.GetInboxesAsItemData();

                _viewModel.ChatsList = await VkDataToClassesUtils.GetChatsListAsItemData();

                ChatsListView.ItemsSource       = _viewModel.ChatsList;
                InboxesListView.ItemsSource     = _viewModel.InboxesList;
                InboxesProgressRing.IsActive    = false;
                InboxesProgressRing.Visibility  = Visibility.Collapsed;
                ChatsListProgressBar.IsEnabled  = false;
                ChatsListProgressBar.Visibility = Visibility.Collapsed;
            }


            if (!isInternetConnected)
            {
                return;
            }
            var vkLongPoll = new VKLongPoll
            {
                NewMessageReceived = OnNewMessageReceived
            };
            await vkLongPoll.FetchHistory();
        }
Exemplo n.º 19
0
        public void InitializeValues(string advId, string advKey)
        {
            var hardwareId = HardwareIdentification.GetPackageSpecificToken(null).Id;
            var dataReader = DataReader.FromBuffer(hardwareId);
            byte[] bytes = new byte[hardwareId.Length];
            dataReader.ReadBytes(bytes);

            this.parameters = new Parameters(advId, advKey, bytes);

            eventQueue = new MATEventQueue(parameters);

            GetUserAgent();

            // Handles the OnNetworkStatusChange event
            NetworkStatusChangedEventHandler networkStatusCallback = null;

            // Indicates if the connection profile is registered for network status change events. Set the default value to FALSE.
            bool registeredNetworkStatusNotif = false;

            networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);

            // Register for network status change notifications
            if (!registeredNetworkStatusNotif)
            {
                NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                registeredNetworkStatusNotif = true;
            }

            // Send queued requests
            eventQueue.DumpQueue();
        }
Exemplo n.º 20
0
        //<DeviceCapability Name="wifiControl" />
        //public IObservable<Unit> ConnectToWifi(string ssid, string password) => Observable.FromAsync(async ct =>
        //{
        //    var wifiAdapter = await this.GetWifiAdapter();
        //    PasswordCredential credentials = null;
        //    if (password != null)
        //        credentials = new PasswordCredential { Password = password };

        //    var network = await this.ScanAvailableNetworks()
        //        .Where(x => x.Ssid.Equals(ssid, StringComparison.CurrentCultureIgnoreCase))
        //        .Take(1)
        //        .ToTask(ct);

        //    await wifiAdapter.ConnectAsync(network, WiFiReconnectionKind.Automatic, credentials);
        //});


        //public IObservable<IWifiScanResult> ScanForWifiNetworks() => this
        //    .ScanAvailableNetworks()
        //    .Select(x => new WifiScanResult
        //    {
        //        Ssid = x.Ssid,
        //        SignalStrength = x.SignalBars,
        //        IsSecure = false
        //});


        public IObservable <NetworkType> WhenNetworkTypeChanged() => Observable.Create <NetworkType>(ob =>
        {
            var handler = new NetworkStatusChangedEventHandler(sender => ob.OnNext(this.InternetNetworkType));
            NetworkInformation.NetworkStatusChanged += handler;
            return(() => NetworkInformation.NetworkStatusChanged -= handler);
        });
Exemplo n.º 21
0
        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.
        /// This parameter is typically used to configure the page.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            HardwareButtons.BackPressed += HardwareButtons_BackPressed;

            dataTransfer = DataTransferManager.GetForCurrentView();
            dataTransfer.DataRequested += dataTransfer_DataRequested;

            statusBar.BackgroundColor = Util.ConvertStringToColor("#FFD25349");
            statusBar.ForegroundColor = Util.ConvertStringToColor("#FFE9E7E3");

            statusBar.BackgroundOpacity = 1;

            if (e.Parameter != null)
            {
                post = (Post)e.Parameter;
            }

            if (NetworkInterface.GetIsNetworkAvailable())
            {
                if (e.Parameter != null)
                {
                    this.FillPost();
                }
            }
            else
            {
                BtnShare.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                content_post.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                internet.Visibility = Windows.UI.Xaml.Visibility.Visible;
            }

            try
            {
                networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);
                if (!registeredNetworkStatusNotif)
                {
                    NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                    registeredNetworkStatusNotif = true;
                }
            }
            catch (Exception ex)
            {

            } 
        }
Exemplo n.º 22
0
        public MobileAppTracker(string advId, string advKey)
        {
            this.culture = new CultureInfo("en-US");

            this.advertiserId  = advId;
            this.advertiserKey = advKey;

            this.localSettings = ApplicationData.Current.LocalSettings;
            this.syncLock      = new object();

            this.urlEncrypter = new Encryption(advKey, IV);

            this.matResponse = null;

            // Default values
            this.AllowDuplicates = false;
            this.DebugMode       = false;
            this.ExistingUser    = false;
            this.AppAdTracking   = true;
            this.Gender          = MATGender.NONE;

            var version = Package.Current.Id.Version;

            this.AppVersion = String.Format("{0}.{1}.{2}.{3}", version.Major, version.Minor, version.Build, version.Revision);

            this.PackageName = Package.Current.Id.Name;

            // Get ASHWID
            var hardwareId = HardwareIdentification.GetPackageSpecificToken(null).Id;
            var dataReader = DataReader.FromBuffer(hardwareId);

            byte[] bytes = new byte[hardwareId.Length];
            dataReader.ReadBytes(bytes);
            this.ASHWID = BitConverter.ToString(bytes);

            // Check if we can restore existing MAT ID or should generate new one
            if (localSettings.Values.ContainsKey(SETTINGS_MATID_KEY))
            {
                this.MatId = (string)localSettings.Values[SETTINGS_MATID_KEY];
            }
            else // Don't have MAT ID, generate new guid
            {
                this.MatId = System.Guid.NewGuid().ToString();
                SaveLocalSetting(SETTINGS_MATID_KEY, this.MatId);
            }

            // Handles the OnNetworkStatusChange event
            NetworkStatusChangedEventHandler networkStatusCallback = null;

            // Indicates if the connection profile is registered for network status change events. Set the default value to FALSE.
            bool registeredNetworkStatusNotif = false;

            networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);

            // Register for network status change notifications
            if (!registeredNetworkStatusNotif)
            {
                NetworkInformation.NetworkStatusChanged += networkStatusCallback;
                registeredNetworkStatusNotif             = true;
            }

            // Check for internet connectivity and send queued requests
            ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();

            if (profile != null && profile.GetNetworkConnectivityLevel() >= NetworkConnectivityLevel.InternetAccess)
            {
                DumpQueue();
            }
        }