Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bytehamster/searchpreference

Search inside Android Preferences
https://github.com/bytehamster/searchpreference

android android-library android-settings

Last synced: about 2 months ago
JSON representation

Search inside Android Preferences

Awesome Lists containing this project

README

        

# SearchPreference

This is a library for Android apps that allows to search inside Preference xml files. The library provides a subclass of `Preference` that can be integrated into existing apps easily.

## Adding to your app

Add PreferenceSearch to your `app/build.gradle`:

dependencies {
implementation 'com.github.ByteHamster:SearchPreference:v1.0.3'
}

Add PreferenceSearch to your `build.gradle`:

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

Add search bar to your `preferences.xml` file:



Define search index in your `PreferenceFragment`:

public static class PrefsFragment extends PreferenceFragmentCompat {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);

SearchPreference searchPreference = (SearchPreference) findPreference("searchPreference");
SearchConfiguration config = searchPreference.getSearchConfiguration();
config.setActivity((AppCompatActivity) getActivity());
config.index(R.xml.preferences);
}
}

And react to search results in your Activity:

public class MyActivity extends AppCompatActivity implements SearchPreferenceResultListener {
private PrefsFragment prefsFragment;

@Override
public void onSearchResultClicked(SearchPreferenceResult result) {
result.closeSearchPage(this);
result.highlight(prefsFragment);
}
}

## Translations

This library currently contains only a limited number of translations. If you want to translate
the texts shown by the library together with your app's other strings, you can just override
the strings defined in `lib/src/main/res/values/strings.xml` in your own application by copying
those lines to your app's `strings.xml`.