Beispiel #1
0
        public HttpResponseMessage UpdatePreferenceCategory(PreferenceCategory updateRecord)
        {
            try
            {
                if (updateRecord == null)
                {
                    return(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }

                // Update the Preference Category record in the Azure SQL DB:
                int preferenceCategoryResult = _preferenceCategoryWorker.UpdateCreate(updateRecord);
                if (preferenceCategoryResult > 0)
                {
                    return(new HttpResponseMessage(HttpStatusCode.OK));
                }
                // Existed already:
                else if (preferenceCategoryResult == 0)
                {
                    return(new HttpResponseMessage(HttpStatusCode.OK));
                }

                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                return(new HttpResponseMessage(HttpStatusCode.BadRequest));
            }
        }
Beispiel #2
0
 private void InitSummary(Preference p)
 {
     if (p is PreferenceCategory)
     {
         PreferenceCategory pCat = (PreferenceCategory)p;
         for (int i = 0; i < pCat.PreferenceCount; i++)
         {
             InitSummary(pCat.GetPreference(i));
         }
     }
     else
     {
         UpdatePrefSummary(p);
     }
 }
Beispiel #3
0
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            AddPreferencesFromResource(Resource.Xml.preferences);

            for (int i = 0; i < PreferenceScreen.PreferenceCount; i++)
            {
                if (PreferenceScreen.GetPreference(i) is PreferenceCategory)
                {
                    PreferenceCategory pc = (PreferenceCategory)PreferenceScreen.GetPreference(i);
                    if (pc.Title.ToString() == "Versions")
                    {
                        ISharedPreferences sp = PreferenceManager.SharedPreferences;
                        Preference         p  = pc.GetPreference(0);
                        p.Summary = sp.GetString("VERSIONNUMBERSCOPE", "SCOPE VERSION NOT FOUND");
                        Preference p2 = pc.GetPreference(1);
                        p2.Summary = sp.GetString("VERSIONNUMBERWIFI", "WIFI VERSION NOT FOUND");
                        Preference p3 = pc.GetPreference(2);
                        p3.Summary = sp.GetString("APPVERSION", "APP VERSION NOT FOUND");
                    }
                    if (pc.Title.ToString() == "Settings")
                    {
                        ISharedPreferences sp = PreferenceManager.SharedPreferences;
                        Preference         p  = pc.GetPreference(0);
                        p.Summary = sp.GetString("WIFINAME", "FAILED TO RETREIVE WIFINAME");
                        Preference p2 = pc.GetPreference(1);
                    }
                    if (pc.Title.ToString() == "Calibration")
                    {
                        ISharedPreferences sp = PreferenceManager.SharedPreferences;
                        Preference         p  = pc.GetPreference(0);
                    }
                }
            }
        }
            public override void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
                AddPreferencesFromResource(Resource.Xml.pref_general);

                apiCategory = (PreferenceCategory)FindPreference(CATEGORY_API);

                FindPreference(KEY_ABOUTAPP).PreferenceClick += (object sender, Preference.PreferenceClickEventArgs e) =>
                {
                    // Display the fragment as the main content.
                    FragmentManager.BeginTransaction()
                    .Replace(Android.Resource.Id.Content, new AboutAppFragment())
                    .AddToBackStack(null)
                    .Commit();
                };

                followGps = (SwitchPreference)FindPreference(KEY_FOLLOWGPS);
                followGps.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    SwitchPreference pref = e.Preference as SwitchPreference;
                    if ((bool)e.NewValue)
                    {
                        if (Activity.CheckSelfPermission(Manifest.Permission.AccessFineLocation) != Permission.Granted &&
                            Activity.CheckSelfPermission(Manifest.Permission.AccessCoarseLocation) != Permission.Granted)
                        {
                            RequestPermissions(new String[] { Manifest.Permission.AccessCoarseLocation, Manifest.Permission.AccessFineLocation },
                                               PERMISSION_LOCATION_REQUEST_CODE);
                            return;
                        }
                    }
                };

                keyEntry = (KeyEntryPreference)FindPreference(KEY_APIKEY);
                keyEntry.BeforeDialogCreated += (object sender, EventArgs e) =>
                {
                    keyEntry?.UpdateAPI(providerPref.Value);
                };

                keyEntry.PositiveButtonClick += async(sender, e) =>
                {
                    String key = keyEntry.APIKey;

                    String API = providerPref.Value;
                    if (await WeatherData.WeatherManager.IsKeyValid(key, API))
                    {
                        Settings.API_KEY = key;
                        Settings.API     = API;

                        Settings.KeyVerified = true;
                        UpdateKeySummary();

                        keyEntry.Dialog.Dismiss();
                    }
                };

                personalKeyPref = (SwitchPreference)FindPreference(KEY_USEPERSONALKEY);
                personalKeyPref.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var pref = e.Preference as SwitchPreference;
                    if ((bool)e.NewValue)
                    {
                        if (apiCategory.FindPreference(KEY_APIKEY) == null)
                        {
                            apiCategory.AddPreference(keyEntry);
                        }
                        if (apiCategory.FindPreference(KEY_APIREGISTER) == null)
                        {
                            apiCategory.AddPreference(registerPref);
                        }
                        keyEntry.Enabled = true;
                    }
                    else
                    {
                        var selectedWProv = WeatherData.WeatherManager.GetProvider(providerPref.Value);

                        if (!String.IsNullOrWhiteSpace(selectedWProv.GetAPIKey()))
                        {
                            // We're using our own (verified) keys
                            Settings.KeyVerified = true;
                            Settings.API         = providerPref.Value;
                        }

                        keyEntry.Enabled = false;
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                    }
                };

                var providers = WeatherData.WeatherAPI.APIs;

                providerPref = (ListPreference)FindPreference(KEY_API);
                providerPref.SetEntries(providers.Select(provider => provider.Display).ToArray());
                providerPref.SetEntryValues(providers.Select(provider => provider.Value).ToArray());
                providerPref.Persistent        = false;
                providerPref.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var pref          = e.Preference as ListPreference;
                    var selectedWProv = WeatherData.WeatherManager.GetProvider(e.NewValue.ToString());

                    if (selectedWProv.KeyRequired)
                    {
                        if (String.IsNullOrWhiteSpace(selectedWProv.GetAPIKey()))
                        {
                            personalKeyPref.Checked = Settings.UsePersonalKey = true;
                            personalKeyPref.Enabled = false;
                            keyEntry.Enabled        = false;
                            apiCategory.RemovePreference(keyEntry);
                            apiCategory.RemovePreference(registerPref);
                        }
                        else
                        {
                            personalKeyPref.Enabled = true;
                        }

                        if (!Settings.UsePersonalKey)
                        {
                            // We're using our own (verified) keys
                            Settings.KeyVerified = true;
                            keyEntry.Enabled     = false;
                            apiCategory.RemovePreference(keyEntry);
                            apiCategory.RemovePreference(registerPref);
                        }
                        else
                        {
                            keyEntry.Enabled = true;

                            if (apiCategory.FindPreference(KEY_APIKEY) == null)
                            {
                                apiCategory.AddPreference(keyEntry);
                            }
                            if (apiCategory.FindPreference(KEY_APIREGISTER) == null)
                            {
                                apiCategory.AddPreference(registerPref);
                            }
                        }

                        if (apiCategory.FindPreference(KEY_USEPERSONALKEY) == null)
                        {
                            apiCategory.AddPreference(personalKeyPref);
                        }

                        // Reset to old value if not verified
                        if (!Settings.KeyVerified)
                        {
                            Settings.API = pref.Value;
                        }
                        else
                        {
                            Settings.API = e.NewValue.ToString();
                        }

                        var providerEntry = providers.Find(provider => provider.Value == e.NewValue.ToString());
                        UpdateKeySummary(providerEntry.Display);
                        UpdateRegisterLink(providerEntry.Value);
                    }
                    else
                    {
                        Settings.KeyVerified    = false;
                        keyEntry.Enabled        = false;
                        personalKeyPref.Enabled = false;

                        Settings.API = e.NewValue.ToString();
                        // Clear API KEY entry to avoid issues
                        Settings.API_KEY = String.Empty;

                        apiCategory.RemovePreference(personalKeyPref);
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                        UpdateKeySummary();
                        UpdateRegisterLink();
                    }
                };

                registerPref = FindPreference(KEY_APIREGISTER);
                registerPref.PreferenceClick += RegisterPref_PreferenceClick;

                // Set key as verified if API Key is req for API and its set
                if (WeatherData.WeatherManager.GetInstance().KeyRequired)
                {
                    keyEntry.Enabled = true;

                    if (!String.IsNullOrWhiteSpace(Settings.API_KEY) && !Settings.KeyVerified)
                    {
                        Settings.KeyVerified = true;
                    }

                    if (String.IsNullOrWhiteSpace(WeatherData.WeatherManager.GetInstance().GetAPIKey()))
                    {
                        personalKeyPref.Checked = Settings.UsePersonalKey = true;
                        personalKeyPref.Enabled = false;
                        keyEntry.Enabled        = false;
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                    }
                    else
                    {
                        personalKeyPref.Enabled = true;
                    }

                    if (!Settings.UsePersonalKey)
                    {
                        // We're using our own (verified) keys
                        Settings.KeyVerified = true;
                        keyEntry.Enabled     = false;
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                    }
                    else
                    {
                        keyEntry.Enabled = true;

                        if (apiCategory.FindPreference(KEY_APIKEY) == null)
                        {
                            apiCategory.AddPreference(keyEntry);
                        }
                        if (apiCategory.FindPreference(KEY_APIREGISTER) == null)
                        {
                            apiCategory.AddPreference(registerPref);
                        }
                    }
                }
                else
                {
                    keyEntry.Enabled        = false;
                    personalKeyPref.Enabled = false;
                    apiCategory.RemovePreference(personalKeyPref);
                    apiCategory.RemovePreference(keyEntry);
                    apiCategory.RemovePreference(registerPref);
                    Settings.KeyVerified = false;
                }

                UpdateKeySummary();
                UpdateRegisterLink();

                syncPreference = (ListPreference)FindPreference(KEY_DATASYNC);
                syncPreference.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    int newValue = int.Parse(e.NewValue.ToString());

                    ListPreference pref = e.Preference as ListPreference;
                    pref.Summary = pref.GetEntries()[newValue];

                    EnableSyncedSettings((WearableDataSync)newValue == WearableDataSync.Off);
                };
                syncPreference.Summary = syncPreference.GetEntries()[int.Parse(syncPreference.Value)];
                EnableSyncedSettings(Settings.DataSync == WearableDataSync.Off);

                connStatusPref     = FindPreference(KEY_CONNSTATUS);
                connStatusReceiver = new ConnectionStatusReceiver();
                connStatusReceiver.ConnectionStatusChanged += (status) =>
                {
                    switch (status)
                    {
                    case WearConnectionStatus.Disconnected:
                        connStatusPref.Summary          = GetString(Resource.String.status_disconnected);
                        connStatusPref.PreferenceClick -= ConnStatusPref_PreferenceClick;
                        break;

                    case WearConnectionStatus.Connecting:
                        connStatusPref.Summary          = GetString(Resource.String.status_connecting);
                        connStatusPref.PreferenceClick -= ConnStatusPref_PreferenceClick;
                        break;

                    case WearConnectionStatus.AppNotInstalled:
                        connStatusPref.Summary          = GetString(Resource.String.status_notinstalled);
                        connStatusPref.PreferenceClick += ConnStatusPref_PreferenceClick;
                        break;

                    case WearConnectionStatus.Connected:
                        connStatusPref.Summary          = GetString(Resource.String.status_connected);
                        connStatusPref.PreferenceClick -= ConnStatusPref_PreferenceClick;
                        break;

                    default:
                        break;
                    }
                };
            }
        protected override T OnBuildElement <T>(XElement element)
        {
            var category = new PreferenceCategory();

            category.FriendlyName = XElementHelper.ReadStringValue(element, "friendlyName");

            // Read the list of Preference tags
            var foundPreferences = XElementHelper.ReadEnumerable(element, "preference");

            // For each preference Tag, store the values into a new Preference object
            foreach (var foundPreference in foundPreferences)
            {
                // Ugly way of reading shared properties without duplicating code.
                Action <IPreference> readSharedProperties = preference =>
                {
                    preference.Name         = XElementHelper.ReadStringValue(foundPreference, "name");
                    preference.FriendlyName = XElementHelper.ReadStringValue(foundPreference, "friendlyName");
                    preference.Description  = XElementHelper.ReadStringValue(foundPreference, "description", false);

                    preference.HasDirectlyEditableValue = XElementHelper.ReadBoolValue(foundPreference,
                                                                                       "hasDirectlyEditableValue", false);

                    preference.useCurlyBraces = XElementHelper.ReadBoolValue(foundPreference,
                                                                             "useCurlyBraces", false);

                    preference.AllowMultipleSelections = XElementHelper.ReadBoolValue(foundPreference, "allowMultipleSelections", false);

                    category.Preferences.Add(preference);
                };

                // Determine preference type
                var isDate    = XElementHelper.ReadBoolValue(foundPreference, "isDate", false);
                var isNumeric = XElementHelper.ReadBoolValue(foundPreference, "isNumeric", false);
                var allowsMultipleSelections = XElementHelper.ReadBoolValue(foundPreference, "allowMultipleSelections", false);

                if (isDate)
                {
                    var preference = new DatePreference();

                    preference.DateFormat = XElementHelper.ReadStringValue(foundPreference, "dateFormat");
                    preference.MinValue   = XElementHelper.ReadDateValue(foundPreference, "minDateValue",
                                                                         preference.DateFormat, false);
                    preference.MaxValue = XElementHelper.ReadDateValue(foundPreference, "maxDateValue",
                                                                       preference.DateFormat, false);
                    preference.Value = XElementHelper.ReadDateValue(foundPreference, "value", preference.DateFormat,
                                                                    true);

                    // Read the list of entryOption tags
                    var foundEntries = XElementHelper.ReadEnumerable(foundPreference, "entryOption", false);

                    // For each tag, read the values into a new PreferenceEntry object
                    foreach (var entry in foundEntries)
                    {
                        preference.Entries.Add(BuildPreferenceEntry <IDatePreferenceEntry>(preference, entry));
                    }

                    readSharedProperties(preference);
                }
                else if (isNumeric)
                {
                    var preference = new NumericPreference();

                    preference.MinValue = XElementHelper.ReadDoubleValue(foundPreference, "minValue", false);
                    preference.MaxValue = XElementHelper.ReadDoubleValue(foundPreference, "maxValue", false);
                    preference.Value    = XElementHelper.ReadDoubleValue(foundPreference, "value", true);

                    // Read the list of entryOption tags
                    var foundEntries = XElementHelper.ReadEnumerable(foundPreference, "entryOption", false);

                    // For each tag, read the values into a new PreferenceEntry object
                    foreach (var entry in foundEntries)
                    {
                        preference.Entries.Add(BuildPreferenceEntry <INumericPreferenceEntry>(preference, entry));
                    }

                    readSharedProperties(preference);
                }
                else if (allowsMultipleSelections)
                {
                    var preference = new StringListPreference();

                    //preference.MinValue = XElementHelper.ReadStringValue(foundPreference, "minValue", false);
                    //preference.MaxValue = XElementHelper.ReadStringValue(foundPreference, "maxValue", false);
                    //preference.Value = XElementHelper.ReadStringValue(foundPreference, "value", false);

                    // Read the list of entryOption tags
                    var foundEntries = XElementHelper.ReadEnumerable(foundPreference, "entryOption", false);

                    // For each tag, read the values into a new PreferenceEntry object
                    foreach (var entry in foundEntries)
                    {
                        preference.Entries.Add(BuildPreferenceEntry <IStringListPreferenceEntry>(preference, entry));
                    }

                    readSharedProperties(preference);
                }
                else
                {
                    var preference = new StringPreference();

                    preference.MinValue = XElementHelper.ReadStringValue(foundPreference, "minValue", false);
                    preference.MaxValue = XElementHelper.ReadStringValue(foundPreference, "maxValue", false);
                    preference.Value    = XElementHelper.ReadStringValue(foundPreference, "value", false);

                    // Read the list of entryOption tags
                    var foundEntries = XElementHelper.ReadEnumerable(foundPreference, "entryOption", false);

                    // For each tag, read the values into a new PreferenceEntry object
                    foreach (var entry in foundEntries)
                    {
                        preference.Entries.Add(BuildPreferenceEntry <IStringPreferenceEntry>(preference, entry));
                    }

                    readSharedProperties(preference);
                }
            }

            return(category as T);
        }
        public override void OnCreate(Bundle savedInstanceState)
        {
            try
            {
                base.OnCreate(savedInstanceState);

                AddPreferencesFromResource(Resource.Xml.SettingsPrefs);

                Wo_Main_Settings.Shared_Data = PreferenceManager.SharedPreferences;

                PreferenceCategory mCategory = (PreferenceCategory)FindPreference("category_General");

                EditProfile         = FindPreference("editprofile_key");
                BlockedUsers        = FindPreference("blocked_key");
                Account_Pref        = FindPreference("editAccount_key");
                Password_Pref       = FindPreference("editpassword_key");
                General_Invite_Pref = FindPreference("invite_key");
                General_Call_Pref   = FindPreference("Call_key");

                if (!AppSettings.Enable_Audio_Video_Call)
                {
                    mCategory.RemovePreference(General_Call_Pref);
                }


                if (!AppSettings.Invitation_System)
                {
                    mCategory.RemovePreference(General_Invite_Pref);
                }


                Support_Report_Pref        = FindPreference("Report_key");
                Support_Help_Pref          = FindPreference("help_key");
                Support_Logout_Pref        = FindPreference("logout_key");
                Support_deleteaccount_Pref = FindPreference("deleteaccount_key");

                Lang_Pref     = (ListPreference)FindPreference("Lang_key");
                About_Me_Pref = (EditTextPreference)FindPreference("about_me_key");

                //Privacy
                Privacy_Follow_Pref   = (ListPreference)FindPreference("whocanfollow_key");
                Privacy_Message_Pref  = (ListPreference)FindPreference("whocanMessage_key");
                Privacy_Birthday_Pref = (ListPreference)FindPreference("whocanseemybirthday_key");

                Notifcation_Popup_Pref     = (SwitchPreference)FindPreference("notifications_key");
                Notifcation_PlaySound_Pref = (CheckBoxPreference)FindPreference("checkBox_PlaySound_key");

                //Add Click event to Preferences
                EditProfile.Intent         = new Intent(Application.Context, typeof(MyProfile_Activity));
                BlockedUsers.Intent        = new Intent(Application.Context, typeof(BlockedUsers_Activity));
                Account_Pref.Intent        = new Intent(Application.Context, typeof(My_Account_Activity));
                Password_Pref.Intent       = new Intent(Application.Context, typeof(Password_Activity));
                General_Invite_Pref.Intent = new Intent(Application.Context, typeof(Invite_Friends_Activity));

                //Update Preferences data on Load
                OnSharedPreferenceChanged(Wo_Main_Settings.Shared_Data, "about_me_key");
                OnSharedPreferenceChanged(Wo_Main_Settings.Shared_Data, "whocanfollow_key");
                OnSharedPreferenceChanged(Wo_Main_Settings.Shared_Data, "whocanMessage_key");
                OnSharedPreferenceChanged(Wo_Main_Settings.Shared_Data, "whocanseemybirthday_key");
                OnSharedPreferenceChanged(Wo_Main_Settings.Shared_Data, "notifications_key");
                OnSharedPreferenceChanged(Wo_Main_Settings.Shared_Data, "checkBox_PlaySound_key");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Beispiel #7
0
            public override void OnCreatePreferences(Bundle savedInstanceState, string rootKey)
            {
                SetPreferencesFromResource(Resource.Xml.pref_general, null);
                HasOptionsMenu = false;

                notCategory = (PreferenceCategory)FindPreference(CATEGORY_NOTIFICATION);
                apiCategory = (PreferenceCategory)FindPreference(CATEGORY_API);

                FindPreference(KEY_ABOUTAPP).PreferenceClick += (object sender, Preference.PreferenceClickEventArgs e) =>
                {
                    // Display the fragment as the main content.
                    FragmentManager.BeginTransaction()
                    .Replace(Android.Resource.Id.Content, new AboutAppFragment())
                    .AddToBackStack(null)
                    .Commit();
                };

                followGps = (SwitchPreferenceCompat)FindPreference(KEY_FOLLOWGPS);
                followGps.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var pref = e.Preference as SwitchPreferenceCompat;
                    if ((bool)e.NewValue)
                    {
                        if (ContextCompat.CheckSelfPermission(Activity, Manifest.Permission.AccessFineLocation) != Permission.Granted &&
                            ContextCompat.CheckSelfPermission(Activity, Manifest.Permission.AccessCoarseLocation) != Permission.Granted)
                        {
                            ActivityCompat.RequestPermissions(this.Activity, new String[] { Manifest.Permission.AccessCoarseLocation, Manifest.Permission.AccessFineLocation },
                                                              PERMISSION_LOCATION_REQUEST_CODE);
                            return;
                        }
                        else
                        {
                            // Reset home location data
                            //Settings.SaveLastGPSLocData(new WeatherData.LocationData());
                        }
                    }
                };

                keyEntry        = (EditTextPreference)FindPreference(KEY_APIKEY);
                personalKeyPref = (SwitchPreferenceCompat)FindPreference(KEY_USEPERSONALKEY);
                personalKeyPref.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var pref = e.Preference as SwitchPreferenceCompat;
                    if ((bool)e.NewValue)
                    {
                        if (apiCategory.FindPreference(KEY_APIKEY) == null)
                        {
                            apiCategory.AddPreference(keyEntry);
                        }
                        if (apiCategory.FindPreference(KEY_APIREGISTER) == null)
                        {
                            apiCategory.AddPreference(registerPref);
                        }
                        keyEntry.Enabled = true;
                    }
                    else
                    {
                        var selectedWProv = WeatherData.WeatherManager.GetProvider(providerPref.Value);

                        if (!String.IsNullOrWhiteSpace(selectedWProv.GetAPIKey()))
                        {
                            // We're using our own (verified) keys
                            Settings.KeyVerified = true;
                            Settings.API         = providerPref.Value;
                        }

                        keyEntry.Enabled = false;
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                    }
                };

                var providers = WeatherData.WeatherAPI.APIs;

                providerPref = (DropDownPreference)FindPreference(KEY_API);
                providerPref.SetEntries(providers.Select(provider => provider.Display).ToArray());
                providerPref.SetEntryValues(providers.Select(provider => provider.Value).ToArray());
                providerPref.Persistent        = false;
                providerPref.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var pref          = e.Preference as ListPreference;
                    var selectedWProv = WeatherData.WeatherManager.GetProvider(e.NewValue.ToString());

                    if (selectedWProv.KeyRequired)
                    {
                        if (String.IsNullOrWhiteSpace(selectedWProv.GetAPIKey()))
                        {
                            personalKeyPref.Checked = Settings.UsePersonalKey = true;
                            personalKeyPref.Enabled = false;
                            keyEntry.Enabled        = false;
                            apiCategory.RemovePreference(keyEntry);
                            apiCategory.RemovePreference(registerPref);
                        }
                        else
                        {
                            personalKeyPref.Enabled = true;
                        }

                        if (!Settings.UsePersonalKey)
                        {
                            // We're using our own (verified) keys
                            Settings.KeyVerified = true;
                            keyEntry.Enabled     = false;
                            apiCategory.RemovePreference(keyEntry);
                            apiCategory.RemovePreference(registerPref);
                        }
                        else
                        {
                            keyEntry.Enabled = true;

                            if (apiCategory.FindPreference(KEY_APIKEY) == null)
                            {
                                apiCategory.AddPreference(keyEntry);
                            }
                            if (apiCategory.FindPreference(KEY_APIREGISTER) == null)
                            {
                                apiCategory.AddPreference(registerPref);
                            }
                        }

                        if (apiCategory.FindPreference(KEY_USEPERSONALKEY) == null)
                        {
                            apiCategory.AddPreference(personalKeyPref);
                        }

                        // Reset to old value if not verified
                        if (!Settings.KeyVerified)
                        {
                            Settings.API = pref.Value;
                        }
                        else
                        {
                            Settings.API = e.NewValue.ToString();
                        }

                        var providerEntry = providers.Find(provider => provider.Value == e.NewValue.ToString());
                        UpdateKeySummary(providerEntry.Display);
                        UpdateRegisterLink(providerEntry.Value);
                    }
                    else
                    {
                        Settings.KeyVerified    = false;
                        keyEntry.Enabled        = false;
                        personalKeyPref.Enabled = false;

                        Settings.API = e.NewValue.ToString();
                        // Clear API KEY entry to avoid issues
                        Settings.API_KEY = String.Empty;

                        apiCategory.RemovePreference(personalKeyPref);
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                        UpdateKeySummary();
                        UpdateRegisterLink();
                    }

                    UpdateAlertPreference(WeatherData.WeatherManager.GetInstance().SupportsAlerts);
                };

                registerPref = FindPreference(KEY_APIREGISTER);

                // Set key as verified if API Key is req for API and its set
                if (WeatherData.WeatherManager.GetInstance().KeyRequired)
                {
                    keyEntry.Enabled = true;

                    if (!String.IsNullOrWhiteSpace(Settings.API_KEY) && !Settings.KeyVerified)
                    {
                        Settings.KeyVerified = true;
                    }

                    if (String.IsNullOrWhiteSpace(WeatherData.WeatherManager.GetInstance().GetAPIKey()))
                    {
                        personalKeyPref.Checked = Settings.UsePersonalKey = true;
                        personalKeyPref.Enabled = false;
                        keyEntry.Enabled        = false;
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                    }
                    else
                    {
                        personalKeyPref.Enabled = true;
                    }

                    if (!Settings.UsePersonalKey)
                    {
                        // We're using our own (verified) keys
                        Settings.KeyVerified = true;
                        keyEntry.Enabled     = false;
                        apiCategory.RemovePreference(keyEntry);
                        apiCategory.RemovePreference(registerPref);
                    }
                    else
                    {
                        keyEntry.Enabled = true;

                        if (apiCategory.FindPreference(KEY_APIKEY) == null)
                        {
                            apiCategory.AddPreference(keyEntry);
                        }
                        if (apiCategory.FindPreference(KEY_APIREGISTER) == null)
                        {
                            apiCategory.AddPreference(registerPref);
                        }
                    }
                }
                else
                {
                    keyEntry.Enabled        = false;
                    personalKeyPref.Enabled = false;
                    apiCategory.RemovePreference(personalKeyPref);
                    apiCategory.RemovePreference(keyEntry);
                    apiCategory.RemovePreference(registerPref);
                    Settings.KeyVerified = false;
                }

                UpdateKeySummary();
                UpdateRegisterLink();

                onGoingNotification = (SwitchPreferenceCompat)FindPreference(KEY_ONGOINGNOTIFICATION);
                onGoingNotification.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var pref    = e.Preference as SwitchPreferenceCompat;
                    var context = App.Context;

                    // On-going notification
                    if ((bool)e.NewValue)
                    {
                        WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService))
                                                         .SetAction(WeatherWidgetService.ACTION_REFRESHNOTIFICATION));

                        if (notCategory.FindPreference(KEY_NOTIFICATIONICON) == null)
                        {
                            notCategory.AddPreference(notificationIcon);
                        }
                    }
                    else
                    {
                        WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService))
                                                         .SetAction(WeatherWidgetService.ACTION_REMOVENOTIFICATION));

                        notCategory.RemovePreference(notificationIcon);
                    }
                };

                notificationIcon = (DropDownPreference)FindPreference(KEY_NOTIFICATIONICON);
                notificationIcon.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var context = App.Context;
                    WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService))
                                                     .SetAction(WeatherWidgetService.ACTION_REFRESHNOTIFICATION));
                };

                // Remove preferences
                if (!onGoingNotification.Checked)
                {
                    notCategory.RemovePreference(notificationIcon);
                }

                alertNotification = (SwitchPreferenceCompat)FindPreference(KEY_USEALERTS);
                alertNotification.PreferenceChange += (object sender, Preference.PreferenceChangeEventArgs e) =>
                {
                    var pref    = e.Preference as SwitchPreferenceCompat;
                    var context = App.Context;

                    // Alert notification
                    if ((bool)e.NewValue)
                    {
                        WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService))
                                                         .SetAction(WeatherWidgetService.ACTION_STARTALARM));
                    }
                    else
                    {
                        WeatherWidgetService.EnqueueWork(context, new Intent(context, typeof(WeatherWidgetService))
                                                         .SetAction(WeatherWidgetService.ACTION_CANCELALARM));
                    }
                };
                UpdateAlertPreference(WeatherData.WeatherManager.GetInstance().SupportsAlerts);
            }
        /// <summary>
        /// Reads the category configuration.
        /// </summary>
        /// <returns></returns>
        private IList <PreferenceCategory> ReadCategoryConfig()
        {
            var categories     = new List <PreferenceCategory>();
            var configFileName = "Configuration.xml";

            var config = XmlHelper.ReadXmlFile(configFileName);

            if (config == null)
            {
                return(null);
            }

            try
            {
                // Read the list of categories from the xml
                var foundCategories = config.Descendants("category");

                // For each category, store the values in a new PreferenceCategory object.
                foreach (var foundCategory in foundCategories)
                {
                    var category = new PreferenceCategory();
                    category.FriendlyName = XElementHelper.ReadStringValue(foundCategory, "friendlyName");
                    categories.Add(category);

                    // Read the list of Preference tags
                    var foundPreferences = XElementHelper.ReadEnumerable(foundCategory, "preference");

                    // For each preference Tag, store the values into a new Preference object
                    foreach (var foundPreference in foundPreferences)
                    {
                        IPreference preference = new Preference();

                        preference.Name                     = XElementHelper.ReadStringValue(foundPreference, "name");
                        preference.FriendlyName             = XElementHelper.ReadStringValue(foundPreference, "friendlyName");
                        preference.Description              = XElementHelper.ReadStringValue(foundPreference, "description", false);
                        preference.MinValue                 = XElementHelper.ReadDoubleValue(foundPreference, "minValue", false);
                        preference.MaxValue                 = XElementHelper.ReadDoubleValue(foundPreference, "maxValue", false);
                        preference.Value                    = XElementHelper.ReadStringValue(foundPreference, "value", false);
                        preference.HasDirectlyEditableValue = XElementHelper.ReadBoolValue(foundPreference, "hasDirectlyEditableValue", false);

                        category.Preferences.Add(preference);

                        // Read the list of entryOption tags
                        var foundEntries = XElementHelper.ReadEnumerable(foundPreference, "entryOption", false);

                        // For each tag, read the values into a new PreferenceEntry object
                        foreach (var entry in foundEntries)
                        {
                            preference.Entries.Add(this.BuildPreferenceEntry(preference, entry));
                        }
                    }
                }
            }
            ////catch (MissingRequiredXMLPropertyException ex)
            ////{
            ////}
            ////catch (MalformedXMLException ex)
            ////{
            ////}
            ////catch (UnParsableDataValueException ex)
            ////{
            ////}
            catch (XMLParseExceptionBase ex)
            {
                this.ShowMalformedOrMissingXMLElementError(configFileName, ex);
            }
            catch (Exception ex)
            {
                this.options.Logger.AddLogEntry(new LogEntry(ex.Message + " - " + ex.InnerException, LogEntrySeverity.Error, LogEntrySource.UI));
            }

            return(categories);
        }
Beispiel #9
0
        private void InitComponent()
        {
            try
            {
                SharedPref.SharedData = PreferenceManager.SharedPreferences;
                PreferenceManager.SharedPreferences.RegisterOnSharedPreferenceChangeListener(this);

                GeneralPref       = FindPreference("general_key");
                MyAccountPref     = FindPreference("myAccount_key");
                PasswordPref      = FindPreference("editPassword_key");
                BlockedUsersPref  = FindPreference("blocked_key");
                NightMode         = (ListPreference)FindPreference("Night_Mode_key");
                InterestPref      = FindPreference("interest_key");
                HelpPref          = FindPreference("help_key");
                AboutPref         = FindPreference("about_key");
                DeleteAccountPref = FindPreference("deleteAccount_key");
                LogoutPref        = FindPreference("logout_key");

                GoProPref       = FindPreference("goPro_key");
                WithdrawalsPref = FindPreference("Withdrawals_key");

                OnSharedPreferenceChanged(SharedPref.SharedData, "Night_Mode_key");

                PreferenceCategory mCategoryAccount = (PreferenceCategory)FindPreference("Account_Profile_key");

                if (!AppSettings.ShowEditPassword)
                {
                    mCategoryAccount.RemovePreference(PasswordPref);
                }

                if (!AppSettings.ShowWithdrawals)
                {
                    mCategoryAccount.RemovePreference(WithdrawalsPref);
                }

                if (!AppSettings.ShowGoPro)
                {
                    mCategoryAccount.RemovePreference(GoProPref);
                }

                if (!AppSettings.ShowBlockedUsers)
                {
                    mCategoryAccount.RemovePreference(BlockedUsersPref);
                }

                GeneralPref.PreferenceClick       += GeneralPrefOnPreferenceClick;
                MyAccountPref.PreferenceClick     += MyAccountPrefOnPreferenceClick;
                PasswordPref.PreferenceClick      += PasswordPrefOnPreferenceClick;
                BlockedUsersPref.PreferenceClick  += BlockedUsersPrefOnPreferenceClick;
                InterestPref.PreferenceClick      += InterestPrefOnPreferenceClick;
                HelpPref.PreferenceClick          += HelpPrefOnPreferenceClick;
                AboutPref.PreferenceClick         += AboutPrefOnPreferenceClick;
                DeleteAccountPref.PreferenceClick += DeleteAccountPrefOnPreferenceClick;
                LogoutPref.PreferenceClick        += LogoutPrefOnPreferenceClick;
                GoProPref.PreferenceClick         += GoProPrefOnPreferenceClick;
                WithdrawalsPref.PreferenceClick   += WithdrawalsPrefOnPreferenceClick;

                NightMode.PreferenceChange += NightModeOnPreferenceChange;

                NightMode.IconSpaceReserved = false;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Beispiel #10
0
        private void InitComponent()
        {
            try
            {
                SharedPref.SharedData = PreferenceManager.SharedPreferences;
                PreferenceManager.SharedPreferences.RegisterOnSharedPreferenceChangeListener(this);

                GeneralPref        = FindPreference("general_key");
                MyAccountPref      = FindPreference("myAccount_key");
                ArticlePref        = FindPreference("article_key");
                PasswordPref       = FindPreference("editPassword_key");
                BlockedUsersPref   = FindPreference("blocked_key");
                TwoFactorPref      = FindPreference("Twofactor_key");
                ManageSessionsPref = FindPreference("ManageSessions_key");
                NightMode          = FindPreference("Night_Mode_key");
                InterestPref       = FindPreference("interest_key");
                HelpPref           = FindPreference("help_key");
                AboutPref          = FindPreference("about_key");
                DeleteAccountPref  = FindPreference("deleteAccount_key");
                LogoutPref         = FindPreference("logout_key");

                GoProPref       = FindPreference("goPro_key");
                WithdrawalsPref = FindPreference("Withdrawals_key");

                OnSharedPreferenceChanged(SharedPref.SharedData, "Night_Mode_key");

                //Delete Preference
                //============== Account_Profile_key ===================
                PreferenceCategory mCategoryAccount = (PreferenceCategory)FindPreference("Account_Profile_key");

                if (!AppSettings.ShowWithdrawals)
                {
                    mCategoryAccount.RemovePreference(WithdrawalsPref);
                }

                if (!AppSettings.ShowGoPro)
                {
                    mCategoryAccount.RemovePreference(GoProPref);
                }

                if (!AppSettings.ShowBlog)
                {
                    mCategoryAccount.RemovePreference(ArticlePref);
                }

                if (!AppSettings.ShowBlockedUsers)
                {
                    mCategoryAccount.RemovePreference(BlockedUsersPref);
                }

                //============== SecurityAccount_key ===================
                var mCategorySecurity = (PreferenceCategory)FindPreference("SecurityAccount_key");
                if (!AppSettings.ShowEditPassword)
                {
                    mCategorySecurity.RemovePreference(PasswordPref);
                }

                if (!AppSettings.ShowSettingsTwoFactor)
                {
                    mCategorySecurity.RemovePreference(TwoFactorPref);
                }

                if (!AppSettings.ShowSettingsManageSessions)
                {
                    mCategorySecurity.RemovePreference(ManageSessionsPref);
                }


                NightMode.IconSpaceReserved = false;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="PreferencesViewModel"/> class.
 /// </summary>
 /// <param name="options">The options.</param>
 /// <param name="view">The view.</param>
 /// <param name="category">The category.</param>
 public PreferencesViewModel(ConverterOptions options, IView view, PreferenceCategory category)
     : base(view, category.FriendlyName, options)
 {
     this.Category = category;
 }
        private void SetDownloadSettings()
        {
            _PinCategory  = (PreferenceCategory)this.FindPreference("Pin");
            _PinEnable    = (SwitchPreference)this.FindPreference("PinActive");
            _DownCategory = (PreferenceCategory)this.FindPreference("Download");
            _DownEnable   = (SwitchPreference)this.FindPreference("DownActive");
            _DownUser     = (Preference)this.FindPreference("DownUsername");
            _DownLogout   = (Preference)this.FindPreference("DownLogout");
            _DownReset    = (Preference)this.FindPreference("DownReset");

            _NotifyCategory = (PreferenceCategory)this.FindPreference("Notifications");
            _NotifyTest     = (Preference)this.FindPreference("NotTest");


            //pin
            _PinCategory.Title = GetString(Resource.String.set_pin);

            //_PinEnable.WidgetLayoutResource = Resource.Layout.CustomSwitch;

            if (DataManager.Get <ISettingsManager>().Settings.PinEnabled)
            {
                _PinEnable.Title             = GetString(Resource.String.set_pinEnabled);
                _PinEnable.Checked           = DataManager.Get <IPreferencesManager>().Preferences.PinEnabled;
                _PinEnable.PreferenceChange += (sender, e) =>
                {
                    if (_PinEnable.Checked != (bool)e.NewValue)
                    {
                        ShowPinDialog((bool)e.NewValue);
                    }
                };
            }
            else
            {
                _PinCategory.RemovePreference(_PinEnable);
                _PinCategory.Enabled           = false;
                _PinCategory.ShouldDisableView = true;
                _PinCategory.Title             = "";
            }

            //download
            //_DownEnable.WidgetLayoutResource = Resource.Layout.CustomSwitch;
            _DownEnable.Title             = GetString(Resource.String.set_downEnabled);
            _DownEnable.Checked           = DataManager.Get <IPreferencesManager>().Preferences.DownloadEnabled;
            _DownEnable.PreferenceChange += (sender, e) =>
            {
                DataManager.Get <IPreferencesManager>().Preferences.DownloadEnabled = (bool)e.NewValue;
                DataManager.Get <IPreferencesManager>().Save();

                _DownUser.Enabled   = (bool)e.NewValue;
                _DownLogout.Enabled = (bool)e.NewValue;
                _DownReset.Enabled  = (bool)e.NewValue;
            };

            //in base al tipo di login setto le impostazioni disponibili
            if (DataManager.Get <ISettingsManager>().Settings.DownloadUtenti || DataManager.Get <ISettingsManager>().Settings.DownloadPassword)
            {
                if (DownloadManager.IsLogged())
                {
                    if (DataManager.Get <ISettingsManager>().Settings.DownloadUtenti)
                    {
                        _DownUser.Summary = DataManager.Get <IPreferencesManager>().Preferences.DownloadUsername;
                    }
                    else
                    {
                        _DownUser.Summary = GetString(Resource.String.set_logged);
                    }

                    _DownCategory.RemovePreference(_DownReset);
                }
                else
                {
                    _DownUser.Summary = GetString(Resource.String.set_notLogged);

                    _DownCategory.RemovePreference(_DownLogout);
                }

                //attivo il popup per il login
                _DownUser.PreferenceClick += (sender, e) =>
                {
                    ShowLoginDialog();
                };
            }
            else
            {
                _DownCategory.RemovePreference(_DownUser);
            }

            //pulsante logout
            if (DataManager.Get <ISettingsManager>().Settings.DownloadUtenti || DataManager.Get <ISettingsManager>().Settings.DownloadPassword)
            {
                _DownLogout.Title            = GetString(Resource.String.set_logout);
                _DownLogout.Summary          = GetString(Resource.String.set_publicAccess);
                _DownLogout.PreferenceClick += (sender, e) =>
                {
                    var dialog = new AlertDialog.Builder(Activity);
                    dialog.SetTitle(_DownCategory.Title);
                    dialog.SetMessage(GetString(Resource.String.set_logoutConfirm));

                    dialog.SetNegativeButton(GetString(Resource.String.gen_cancel), delegate
                    {
                        return;
                    });

                    dialog.SetPositiveButton(GetString(Resource.String.set_logout), delegate
                    {
                        DataManager.Get <IPreferencesManager>().Preferences.DownloadUsername = "";
                        DataManager.Get <IPreferencesManager>().Preferences.DownloadPassword = "";
                        DataManager.Get <IPreferencesManager>().Save();

                        _DownUser.Summary = GetString(Resource.String.set_notLogged);

                        _DownCategory.RemovePreference(_DownLogout);

                        if (DataManager.Get <ISettingsManager>().Settings.DownloadUtenti&& DataManager.Get <ISettingsManager>().Settings.PasswordReset)
                        {
                            _DownCategory.AddPreference(_DownReset);
                        }
                    });

                    dialog.Create();
                    dialog.Show().SetDivider();
                };
            }
            else
            {
                _DownCategory.RemovePreference(_DownLogout);
            }

            //reset password
            if (DataManager.Get <ISettingsManager>().Settings.PasswordReset)
            {
                if (DataManager.Get <ISettingsManager>().Settings.DownloadUtenti)
                {
                    _DownReset.Title            = GetString(Resource.String.set_forgot);
                    _DownReset.Summary          = GetString(Resource.String.set_reset);
                    _DownReset.PreferenceClick += (sender, e) =>
                    {
                        ShowResetDialog();
                    };
                }
            }
            else
            {
                _DownCategory.RemovePreference(_DownReset);
            }

            //notifiche
            if (!Utility.IsMediabookApp)
            {
                _NotifyCategory.RemovePreference(_NotifyTest);
                _NotifyCategory.Enabled           = false;
                _NotifyCategory.ShouldDisableView = true;
                _NotifyCategory.Title             = "";
            }
            else
            {
                _NotifyTest.PreferenceClick += (sender, e) =>
                {
                    Notification noti = new Notification();
                    noti.SendTest(Activity.BaseContext.DeviceInfo(), "Notifica di esempio");
                };
            }
        }
        public override void OnCreatePreferences(Bundle savedInstanceState, string rootKey)
        {
            try
            {
                AddPreferencesFromResource(Resource.Xml.SettingsPrefs);

                MainSettings.SharedData = PreferenceManager.SharedPreferences;

                EditChannel        = FindPreference("editChannal_key");
                EditPassword       = FindPreference("editPassword_key");
                Monetization       = FindPreference("monetization_key");
                Verification       = FindPreference("verification_key");
                GoPro              = FindPreference("goPro_key");
                TwoFactorPref      = FindPreference("Twofactor_key");
                ManageSessionsPref = FindPreference("ManageSessions_key");
                BlockedUsersPref   = FindPreference("blocked_key");

                PictureInPicturePerf = (SwitchPreferenceCompat)FindPreference("picture_in_picture_key");

                ClaerHistory = FindPreference("ClaerHistory_key");

                ClearCache = FindPreference("Clear_Cache_key");
                //Lang = (ListPreference)FindPreference("Lang_key");
                NightMode     = FindPreference("Night_Mode_key");
                Help          = FindPreference("help_key");
                Termsofuse    = FindPreference("Termsofuse_key");
                About         = FindPreference("About_key");
                DeleteAccount = FindPreference("deleteaccount_key");
                Logout        = FindPreference("logout_key");

                OnSharedPreferenceChanged(MainSettings.SharedData, "Night_Mode_key");

                //Delete Preference
                //============== Account_Profile_key ===================
                var mCategoryAccount = (PreferenceCategory)FindPreference("Account_Profile_key");

                if (!AppSettings.ShowMonetization)
                {
                    mCategoryAccount.RemovePreference(Monetization);
                }

                var isPro = ListUtils.MyChannelList.FirstOrDefault()?.IsPro ?? "0";
                if (!AppSettings.ShowGoPro || isPro != "0")
                {
                    mCategoryAccount.RemovePreference(GoPro);
                }

                if (!AppSettings.ShowVerification)
                {
                    mCategoryAccount.RemovePreference(Verification);
                }

                if (!AppSettings.ShowBlockedUsers)
                {
                    mCategoryAccount.RemovePreference(BlockedUsersPref);
                }

                //============== SecurityAccount_key ===================
                var mCategorySecurity = (PreferenceCategory)FindPreference("SecurityAccount_key");
                if (!AppSettings.ShowEditPassword)
                {
                    mCategorySecurity.RemovePreference(EditPassword);
                }

                if (!AppSettings.ShowSettingsTwoFactor)
                {
                    mCategorySecurity.RemovePreference(TwoFactorPref);
                }

                if (!AppSettings.ShowSettingsManageSessions)
                {
                    mCategorySecurity.RemovePreference(ManageSessionsPref);
                }

                //============== CategoryGeneral_key ===================
                PreferenceCategory mCategoryGeneral = (PreferenceCategory)FindPreference("CategoryGeneral_key");
                if ((int)Build.VERSION.SdkInt <= 23)
                {
                    mCategoryGeneral.RemovePreference(PictureInPicturePerf);
                }

                //============== History_Privacy_key ===================
                PreferenceCategory mHistoryPrivacy = (PreferenceCategory)FindPreference("History_Privacy_key");

                if (!AppSettings.ShowClearHistory)
                {
                    mHistoryPrivacy.RemovePreference(ClaerHistory);
                }

                if (!AppSettings.ShowClearCache)
                {
                    mHistoryPrivacy.RemovePreference(ClearCache);
                }

                //============== Support_key ===================
                PreferenceCategory mCategorySupport = (PreferenceCategory)FindPreference("Support_key");

                if (!AppSettings.ShowHelp)
                {
                    mCategorySupport.RemovePreference(Help);
                }

                if (!AppSettings.ShowTermsOfUse)
                {
                    mCategorySupport.RemovePreference(Termsofuse);
                }

                if (!AppSettings.ShowAbout)
                {
                    mCategorySupport.RemovePreference(About);
                }

                if (!AppSettings.ShowDeleteAccount)
                {
                    mCategorySupport.RemovePreference(DeleteAccount);
                }

                NightMode.IconSpaceReserved            = false;
                PictureInPicturePerf.IconSpaceReserved = false;

                PictureInPicturePerf.Checked = UserDetails.PipIsChecked;
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }