public static void PreferredSupportOnResume(PreferenceFragmentCompat Pref)
        {
            if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_servant)) is MultiSelectListPreference pref)
            {
                var entries = Directory
                              .EnumerateFileSystemEntries(ImageLocator.SupportServantImgFolder)
                              .Select(Path.GetFileName)
                              .OrderBy(M => M)
                              .ToArray();

                pref.SetEntryValues(entries);
                pref.SetEntries(entries);
            }

            if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_ce)) is MultiSelectListPreference prefce)
            {
                var entries = Directory
                              .EnumerateFiles(ImageLocator.SupportCeImgFolder)
                              .Select(Path.GetFileName)
                              .OrderBy(M => M)
                              .ToArray();

                prefce.SetEntryValues(entries);
                prefce.SetEntries(entries);
            }
        }
예제 #2
0
        public bool OnPreferenceStartScreen(PreferenceFragmentCompat caller, PreferenceScreen pref)
        {
            var ft = SupportFragmentManager.BeginTransaction();

            PreferenceFragmentCompat fragment;

            if (pref.Key == "leaguesSettings")
            {
                fragment = ChooseLeaguesSettingsFragment.Instance(Leagues);
            }
            else
            {
                fragment = ChooseNotificationsSettingsFragment.Instance();
            }

            Bundle args = new Bundle();

            args.PutString(PreferenceFragmentCompat.ArgPreferenceRoot, pref.Key);
            fragment.Arguments = args;
            ft.Replace(Resource.Id.content_frame, fragment, pref.Key).AddToBackStack(null).Commit();

            SetDrawerState(false);

            return(true);
        }
예제 #3
0
        public bool OnPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref)
        {
            string fragmentQualifiedName = string.Empty;

            //Switch: a Workaround, there's not possible way to get the fragment's qualified name to Start
            //in Xamarin Android.

            //Check first if what we have to start is a fragment replace or start a new activity
            //I've developed a custom convention for this.
            //if the name of the fragment class file contains 'Fragment' then it should do the replace fragment operation
            //if contains 'Activity' then it should start an activity.
            if (pref.Fragment.Contains("Fragment"))
            {
                switch (pref.Fragment)
                {
                case "LockScreenSettingsFragment":
                    fragmentQualifiedName = Java.Lang.Class.FromType(typeof(LockScreenSettingsFragment)).Name;
                    break;

                case "NotificationSettingsFragment":
                    fragmentQualifiedName = Java.Lang.Class.FromType(typeof(NotificationSettingsFragment)).Name;
                    break;

                case "AwakeSettingsFragment":
                    fragmentQualifiedName = Java.Lang.Class.FromType(typeof(AwakeSettingsFragment)).Name;
                    break;

                case "MusicWidgetSettingsFragment":
                    fragmentQualifiedName = Java.Lang.Class.FromType(typeof(MusicWidgetSettingsFragment)).Name;
                    break;

                case "WeatherSettingsFragment":
                    fragmentQualifiedName = Java.Lang.Class.FromType(typeof(WeatherSettingsFragment)).Name;
                    break;

                case "AboutFragment":
                    fragmentQualifiedName = Java.Lang.Class.FromType(typeof(AboutFragment)).Name;
                    break;

                default:
                    break;
                }
                // Instantiate the new Fragment
                var args     = pref.Extras;
                var fragment = SupportFragmentManager.FragmentFactory.Instantiate(
                    ClassLoader,
                    fragmentQualifiedName); //Normally it should be 'pref.Fragment'
                fragment.Arguments = args;
                fragment.SetTargetFragment(caller, 0);
                // Replace the existing Fragment with the new Fragment
                SupportFragmentManager.BeginTransaction()
                .Replace(Resource.Id.content, fragment)
                .AddToBackStack(null)
                .Commit();
            }
            return(true);
        }
예제 #4
0
        public bool OnPreferenceStartScreen(PreferenceFragmentCompat caller, PreferenceScreen pref)
        {
            var fragment = new SettingsView();
            var args     = new Bundle();

            args.PutString(ArgPreferenceRoot, pref.Key);
            fragment.Arguments = args;
            this.Activity.SupportFragmentManager.BeginTransaction().Replace(Resource.Id.frame_schedule, fragment, pref.Key)
            .AddToBackStack(pref.Key).Commit();
            return(true);
        }
예제 #5
0
        public bool OnPreferenceStartFragment(PreferenceFragmentCompat Caller, Preference Pref)
        {
            var args     = Pref.Extras;
            var fragment = SupportFragmentManager
                           .FragmentFactory
                           .Instantiate(ClassLoader, Pref.Fragment);

            fragment.Arguments = args;
            fragment.SetTargetFragment(Caller, 0);

            SupportFragmentManager
            .BeginTransaction()
            .SetCustomAnimations(Android.Resource.Animation.FadeIn,
                                 Android.Resource.Animation.FadeOut,
                                 Android.Resource.Animation.FadeIn,
                                 Android.Resource.Animation.FadeOut)
            .Replace(Resource.Id.main_pref_frame, fragment)
            .AddToBackStack(null)
            .Commit();

            return(true);
        }
        public static void PreferredSupportOnCreate(PreferenceFragmentCompat Pref)
        {
            if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_servant)) is MultiSelectListPreference pref)
            {
                pref.SummaryProvider = new MultiSelectListSummaryProvider();

                if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_servant_clear)) is { } servClear)
                {
                    servClear.PreferenceClick += (S, E) => pref.Values = new List <string>();
                }
            }

            if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_ce)) is MultiSelectListPreference prefce)
            {
                prefce.SummaryProvider = new MultiSelectListSummaryProvider();

                if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_ce_clear)) is { } ceClear)
                {
                    ceClear.PreferenceClick += (S, E) => prefce.Values = new List <string>();
                }
            }
        }
        public static void SetupServantAndCEPrefs(PreferenceFragmentCompat Pref)
        {
            if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_servant)) is MultiSelectListPreference pref)
            {
                var entries = Directory
                              .EnumerateFileSystemEntries(ImageLocator.SupportServantImgFolder)
                              .Select(Path.GetFileName)
                              .OrderBy(M => M)
                              .ToArray();

                pref.SetEntryValues(entries);
                pref.SetEntries(entries);
                pref.SummaryProvider = new MultiSelectListSummaryProvider();

                if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_servant_clear)) is { } servClear)
                {
                    servClear.PreferenceClick += (S, E) => pref.Values = new List <string>();
                }
            }

            if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_ce)) is MultiSelectListPreference prefce)
            {
                var entries = Directory
                              .EnumerateFiles(ImageLocator.SupportCeImgFolder)
                              .Select(Path.GetFileName)
                              .OrderBy(M => M)
                              .ToArray();

                prefce.SetEntryValues(entries);
                prefce.SetEntries(entries);
                prefce.SummaryProvider = new MultiSelectListSummaryProvider();

                if (Pref.FindPreference(Pref.GetString(Resource.String.pref_support_pref_ce_clear)) is { } ceClear)
                {
                    ceClear.PreferenceClick += (S, E) => prefce.Values = new List <string>();
                }
            }
        }