Пример #1
0
            public static MyPreferences CreatePreferences()
            {
                var preferences = new MyPreferences();

                preferences.Initialize <BoolPref, MyIntPref, StringPref>();
                return(preferences);
            }
Пример #2
0
        private void btnPreferences_Click(object sender, RoutedEventArgs e)
        {
            CloseableTab  tab        = new CloseableTab();
            MyPreferences tabcontent = new MyPreferences();

            tab.Header  = string.Format("{0}: My Preferences", MainTabWindow.Items.Count + 1);
            tab.Content = tabcontent;
            tab.HorizontalContentAlignment = HorizontalAlignment.Left;
            tab.VerticalContentAlignment   = VerticalAlignment.Top;
            tab.IsSelected = true;
            MainTabWindow.Items.Add(tab);
            AdminSettingsSubMenu.IsOpen = false;
        }
Пример #3
0
        void Login()
        {
            var password = MasterPassword.Text;

            if (password.Equals(MyPreferences.GetInstance(this).GetMasterPassword()))
            {
                OnSuccess();
            }
            else
            {
                Toast.MakeText(this, "Password incorrect", ToastLength.Short).Show();
                OnFailure();
            }
            Finish();
        }
Пример #4
0
        public void TestSettingValueUpdatesEditorPrefs()
        {
            EditorPrefs.DeleteKey(k_Prefix + k_ObsoleteName);
            EditorPrefs.DeleteKey(k_Prefix + nameof(MyIntPref.MyPref1));

            var preferences = MyPreferences.CreatePreferences();

            Assert.IsFalse(EditorPrefs.HasKey(k_Prefix + k_ObsoleteName),
                           "Unexpected preference key " + k_Prefix + k_ObsoleteName);
            Assert.IsFalse(EditorPrefs.HasKey(k_Prefix + nameof(MyIntPref.MyPref1)),
                           "Unexpected preference key " + k_Prefix + nameof(MyIntPref.MyPref1));

            preferences.SetInt(MyIntPref.MyPref1, 64);

            Assert.AreEqual(64, EditorPrefs.GetInt(k_Prefix + nameof(MyIntPref.MyPref1)), "Unexpected preference value.");
            Assert.IsFalse(EditorPrefs.HasKey(k_Prefix + k_ObsoleteName), "Unexpected preference key.");
        }
Пример #5
0
        public void TestPreferenceWithObsoleteNameIsLoadedCorrectly()
        {
            EditorPrefs.DeleteKey(k_Prefix + k_ObsoleteName);
            EditorPrefs.DeleteKey(k_Prefix + nameof(MyIntPref.MyPref1));

            EditorPrefs.SetInt(k_Prefix + k_ObsoleteName, 42);
            // Check that the value is in the prefs.
            Assert.IsTrue(EditorPrefs.HasKey(k_Prefix + k_ObsoleteName),
                          "Missing preference key " + k_Prefix + k_ObsoleteName);
            Assert.IsFalse(EditorPrefs.HasKey(k_Prefix + nameof(MyIntPref.MyPref1)),
                           "Unexpected preference key " + k_Prefix + nameof(MyIntPref.MyPref1));
            Assert.AreEqual(-100, EditorPrefs.GetInt(k_Prefix + nameof(MyIntPref.MyPref1), -100), "Unexpected initial value.");
            Assert.AreEqual(42, EditorPrefs.GetInt(k_Prefix + k_ObsoleteName), "Unexpected initial value.");

            var preferences = MyPreferences.CreatePreferences();
            var value       = preferences.GetInt(MyIntPref.MyPref1);

            // In spite of the default value being 21, MyIntPref.MyPref1 should take the value of the obsolete key.
            Assert.AreEqual(42, value, "Value is not the one of the obsolete key.");
        }
Пример #6
0
        public override void OnFillRequest(FillRequest request, CancellationSignal cancellationSignal, FillCallback callback)
        {
            var structure = request.FillContexts[request.FillContexts.Count - 1].Structure;
            var data      = request.ClientState;

            Log.Debug(CommonUtil.Tag, "onFillRequest(): data=" + CommonUtil.BundleToString(data));

            cancellationSignal.CancelEvent += (sender, e) => {
                Log.Warn(CommonUtil.Tag, "Cancel autofill not implemented in this sample.");
            };
            // Parse AutoFill data in Activity
            var parser = new StructureParser(structure);

            parser.ParseForFill();
            AutofillFieldMetadataCollection autofillFields = parser.AutofillFields;
            var responseBuilder = new FillResponse.Builder();
            // Check user's settings for authenticating Responses and Datasets.
            bool responseAuth = MyPreferences.GetInstance(this).IsResponseAuth();
            var  autofillIds  = autofillFields.GetAutofillIds();

            if (responseAuth && !(autofillIds.Length == 0))
            {
                // If the entire Autofill Response is authenticated, AuthActivity is used
                // to generate Response.
                var sender       = AuthActivity.GetAuthIntentSenderForResponse(this);
                var presentation = AutofillHelper
                                   .NewRemoteViews(PackageName, GetString(Resource.String.autofill_sign_in_prompt),
                                                   Resource.Drawable.ic_lock_black_24dp);
                responseBuilder
                .SetAuthentication(autofillIds, sender, presentation);
                callback.OnSuccess(responseBuilder.Build());
            }
            else
            {
                var datasetAuth       = MyPreferences.GetInstance(this).IsDatasetAuth();
                var clientFormDataMap = SharedPrefsAutofillRepository.GetInstance(this).GetFilledAutofillFieldCollection
                                            (autofillFields.FocusedAutofillHints, autofillFields.AllAutofillHints);
                var response = AutofillHelper.NewResponse(this, datasetAuth, autofillFields, clientFormDataMap);
                callback.OnSuccess(response);
            }
        }
Пример #7
0
        public void TestSettingValueOfPrefWithObsoleteNamesRemoveObsoleteKeys()
        {
            EditorPrefs.DeleteKey(k_Prefix + k_ObsoleteName);
            EditorPrefs.DeleteKey(k_Prefix + nameof(MyIntPref.MyPref1));

            EditorPrefs.SetInt(k_Prefix + k_ObsoleteName, 42);
            // Check that the value is in the prefs.
            Assert.IsTrue(EditorPrefs.HasKey(k_Prefix + k_ObsoleteName),
                          "Missing preference key " + k_Prefix + k_ObsoleteName);
            Assert.IsFalse(EditorPrefs.HasKey(k_Prefix + nameof(MyIntPref.MyPref1)),
                           "Unexpected preference key " + k_Prefix + nameof(MyIntPref.MyPref1));
            Assert.AreEqual(42, EditorPrefs.GetInt(k_Prefix + k_ObsoleteName), "Unexpected initial value.");

            var preferences = MyPreferences.CreatePreferences();

            preferences.SetInt(MyIntPref.MyPref1, 28);
            var value = preferences.GetInt(MyIntPref.MyPref1);

            Assert.AreEqual(28, value);

            Assert.IsFalse(EditorPrefs.HasKey(k_Prefix + k_ObsoleteName));
        }
Пример #8
0
        public override void OnFillRequest(FillRequest request, CancellationSignal cancellationSignal,
                                           FillCallback callback)
        {
            var structure   = request.FillContexts[request.FillContexts.Count - 1].Structure;
            var packageName = structure.ActivityComponent.PackageName;

            if (!SharedPrefsPackageVerificationRepository.GetInstance()
                .PutPackageSignatures(ApplicationContext, packageName))
            {
                callback.OnFailure(
                    ApplicationContext.GetString(AutofillService.Resource.String.invalid_package_signature));
                return;
            }

            var data = request.ClientState;

            if (CommonUtil.VERBOSE)
            {
                Log.Verbose(CommonUtil.TAG, "onFillRequest(): data=" + CommonUtil.BundleToString(data));
                CommonUtil.DumpStructure(structure);
            }

            cancellationSignal.SetOnCancelListener(new CancelListener());

            // Parse AutoFill data in Activity
            var parser = new StructureParser(ApplicationContext, structure);

            // TODO: try / catch on other places (onSave, auth activity, etc...)
            try
            {
                parser.ParseForFill();
            }
            catch (SecurityException e)
            {
                // TODO: handle cases where DAL didn't pass by showing a custom UI asking the user
                // to confirm the mapping. Might require subclassing SecurityException.
                Log.Warn(CommonUtil.TAG, "Security exception handling " + request, e);
                callback.OnFailure(e.Message);
                return;
            }

            var autofillFields  = parser.GetAutofillFields();
            var responseBuilder = new FillResponse.Builder();
            // Check user's settings for authenticating Responses and Datasets.
            var responseAuth = MyPreferences.GetInstance(this).IsResponseAuth();
            var autofillIds  = autofillFields.GetAutofillIds();

            if (responseAuth && autofillIds.Length != 0)
            {
                // If the entire Autofill Response is authenticated, AuthActivity is used
                // to generate Response.
                var sender       = AuthActivity.GetAuthIntentSenderForResponse(this);
                var presentation = AutofillHelper.NewRemoteViews(PackageName,
                                                                 GetString(Resource.String.autofill_sign_in_prompt), Resource.Drawable.ic_lock_black_24dp);
                responseBuilder.SetAuthentication(autofillIds, sender, presentation);
                callback.OnSuccess(responseBuilder.Build());
            }
            else
            {
                var datasetAuth       = MyPreferences.GetInstance(this).IsDatasetAuth();
                var clientFormDataMap = SharedPrefsAutofillRepository.GetInstance().GetFilledAutofillFieldCollection(
                    this, autofillFields.GetFocusedHints(), autofillFields.GetAllHints());
                var response = AutofillHelper.NewResponse(this, datasetAuth, autofillFields, clientFormDataMap);
                callback.OnSuccess(response);
            }
        }