示例#1
0
            public static KeyEntryPreferenceDialogFragment NewInstance(String API, String key)
            {
                var    fragment = new KeyEntryPreferenceDialogFragment(API);
                Bundle b        = new Bundle(1);

                b.PutString(ArgKey, key);
                fragment.Arguments = b;
                return(fragment);
            }
示例#2
0
            public override void OnDisplayPreferenceDialog(Preference preference)
            {
                const String TAG = nameof(KeyEntryPreferenceDialogFragment);

                if (FragmentManager.FindFragmentByTag(TAG) != null)
                {
                    return;
                }

                if (preference is EditTextPreference && preference.Key == KEY_APIKEY)
                {
                    var fragment = KeyEntryPreferenceDialogFragment.NewInstance(providerPref.Value, preference.Key);
                    fragment.PositiveButtonClick += async(sender, e) =>
                    {
                        String key = fragment.Key;

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

                            Settings.KeyVerified = true;
                            UpdateKeySummary();
                            UpdateAlertPreference(WeatherData.WeatherManager.GetInstance().SupportsAlerts);

                            fragment.Dialog.Dismiss();
                        }
                    };

                    fragment.SetTargetFragment(this, 0);
                    fragment.Show(this.FragmentManager, TAG);
                }
                else
                {
                    base.OnDisplayPreferenceDialog(preference);
                }
            }