MCPcopy Index your code
hub / github.com/ByteHamster/SearchPreference

github.com/ByteHamster/SearchPreference @2.7.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.7.3 ↗ · + Follow
209 symbols 468 edges 18 files 32 documented · 15%
What it actually does AI analysis from the code graph — generated when you open this
loading…
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:2.7.0'
}

Add PreferenceSearch to your build.gradle:

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

Add search bar to your preferences.xml file:

<com.bytehamster.lib.preferencesearch.SearchPreference
    android:key="searchPreference" />

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 override the strings in the preference xml file using attributes like search:textNoResults. Refer to attrs.xml for details. You can also overwrite the strings when constructing the SearchConfiguration object.

Extension points exported contracts — how you extend this code

SearchPreferenceResultListener (Interface)
(no doc) [9 implementers]
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceResultListener.java
HistoryClickListener (Interface)
(no doc) [1 implementers]
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceFragment.java
OnDismissedListener (Interface)
(no doc)
lib/src/main/java/com/bytehamster/lib/preferencesearch/ui/AnimationUtils.java

Core symbols most depended-on inside this repo

toString
called by 17
lib/src/main/java/com/bytehamster/lib/preferencesearch/PreferenceItem.java
readString
called by 10
lib/src/main/java/com/bytehamster/lib/preferencesearch/PreferenceParser.java
getAttribute
called by 8
lib/src/main/java/com/bytehamster/lib/preferencesearch/PreferenceParser.java
getKey
called by 7
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceResult.java
equals
called by 6
lib/src/main/java/com/bytehamster/lib/preferencesearch/HistoryItem.java
index
called by 5
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchConfiguration.java
getSearchConfiguration
called by 5
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreference.java
getHeight
called by 5
lib/src/main/java/com/bytehamster/lib/preferencesearch/ui/RevealAnimationSetting.java

Shape

Method 180
Class 25
Interface 4

Languages

Java100%

Modules by API surface

lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchConfiguration.java46 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceFragment.java25 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/PreferenceItem.java20 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceAdapter.java17 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/PreferenceParser.java15 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/ui/RevealAnimationSetting.java11 symbols
app/src/main/java/com/bytehamster/preferencesearch/SearchViewExample.java11 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/ui/AnimationUtils.java10 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceResult.java10 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreferenceActionView.java9 symbols
app/src/main/java/com/bytehamster/preferencesearch/EnhancedExample.java7 symbols
lib/src/main/java/com/bytehamster/lib/preferencesearch/SearchPreference.java6 symbols

For agents

$ claude mcp add SearchPreference \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact