Skip to content

KnollFrank/SettingsSearch

 
 

Repository files navigation

SettingsSearch

If you have a mess in your app's settings and don't know how to organize them in a more user-friendly way, then SettingsSearch could be your last resort, which is a library for Android apps that allows to search Preferences.

demo.mp4

Add SettingsSearch to your app

Add the JitPack repository to your build.gradle:

allprojects {
    repositories {
        // ...
        maven { url 'https://jitpack.io' }
    }
}

Add the SettingsSearch dependency to your app/build.gradle:

dependencies {
    implementation 'com.github.KnollFrank:SettingsSearch:-SNAPSHOT'
}

Make the Preferences of your PreferenceFragment searchable using a SearchPreference:

public class PreferenceFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
        ...
        getPreferenceScreen().addPreference(createSearchPreference(createSearchPreferenceFragments()));
    }
   
    private SearchPreferenceFragments createSearchPreferenceFragments() {
        return SearchPreferenceFragments
                .builder(
                        new SearchConfiguration(getId(), Optional.empty(), getClass()),
                        getParentFragmentManager())
                .build();
    }

    private SearchPreference createSearchPreference(final SearchPreferenceFragments searchPreferenceFragments) {
        final SearchPreference searchPreference = new SearchPreference(getContext());
        searchPreference.setOrder(-1);
        searchPreferenceFragments.searchConfiguration.queryHint().ifPresent(searchPreference::setQueryHint);
        searchPreference.setOnPreferenceClickListener(
                preference -> {
                    searchPreferenceFragments.showSearchPreferenceFragment();
                    return true;
                });
        return searchPreference;
    }
}

Now, when your app displays the PreferenceScreen defined in your PreferenceFragment to your users, they will see a SearchPreference as the first preference of the PreferenceScreen which they can use to search and find preferences.

For a complete example use the activity de.KnollFrank.settingssearch.PreferenceSearchExampleHavingSearchPreference or de.KnollFrank.settingssearch.PreferenceSearchExample.

About

Search inside Android Preferences

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%