Exemple #1
0
        private async void initialSetup()
        {
            var loader = new Windows.ApplicationModel.Resources.ResourceLoader();

            // guardo la pulsera en un singleton global
            MiBand.Band = await MiBand.FirstMatch();

            // pero la asigno localmente para que no de tanto por culo
            band = MiBand.Band;

            if (band != null)
            {
                ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;

                if (localSettings.Containers.ContainsKey("MiBand"))
                {
                    var    miBandSettings = localSettings.Containers["MiBand"];
                    string savedMAC       = (string)miBandSettings.Values["MAC"];
                    string currentMAC     = await band.getAddress();

                    if (savedMAC.Equals(currentMAC))
                    {
                        // misma pulsera
                        Debug.WriteLine("[mainpage] misma pulsera");
                        band.Settings = miBandSettings;
                    }
                    else
                    {
                        // diferente pulsera
                        Debug.WriteLine("[mainpage] diferente pulsera");
                        properties.MACAddress = currentMAC;
                        bool ret = await band.ConfigureAsSettings();

                        if (ret)
                        {
                            Debug.WriteLine("[mainpage] error al configurar como en los ajustes");
                        }
                    }
                }
                else
                {
                    MessageDialog dialog = new MessageDialog(loader.GetString("GreetingText"), loader.GetString("GreetingTitle"));
                    await dialog.ShowAsync();

                    // la aplicacion esta recien instalada?
                    // ir a pagina de configuracion inicial
                    Debug.WriteLine("[mainpage] no hay datos de pulsera");
                    if (await band.CreateSettings())
                    {
                        string currentMAC = await band.getAddress();

                        properties.MACAddress = currentMAC;
                        properties.LoadingV   = Visibility.Collapsed;
                        properties.Loading    = false;
                        this.Frame.Navigate(typeof(Pages.SetUserInfo), "InitialSetup");
                        return;
                    }
                }
                updateInfoFromSettings();
                properties.LoadingV = Visibility.Collapsed;
                properties.Loading  = false;
                Task.Factory.StartNew(() => { finishSetup(); });
            }
            else
            {
                // si no detectamos la pulsera se cierra la aplicacion y fuera
                MessageDialog dialog = new MessageDialog(loader.GetString("MiBandNotFoundText"), loader.GetString("MiBandNotFoundTitle"));
                await dialog.ShowAsync();

                updateInfoFromSettings();
                properties.LoadingV = Visibility.Collapsed;
                properties.Loading  = false;
                //Application.Current.Exit();
            }
        }