Поиск в WebView

У меня есть вот такая читалка, подтягивающая ресурс их txt файла (в коде есть элементы для смены тем оформления и запоминания строки, на которой пользователь остановил чтение), не могу подступиться к тому, как сделать поиск по тексту на странице

public class ReadActivity extends AppCompatActivity {

    private float size_coef; //коэффициент увеличения шрифта
    private float color; //цвет фона
    
    private WebView mWebView;

    //получить коэффициент размера шрифта
    public float getSizeCoef() {
        return size_coef;
    }
    //получить цвет фона
    public float getColor() {
        return color;
    }

    private int scrollPosition = 0;
    @Override
    public void onCreate(Bundle savedInstanceState) {

        SharedPreferences settings = getSharedPreferences("MyAppColor", MODE_PRIVATE);
        color= settings.getFloat("color", WHITE);

        if (color == BLACK) {
            setTheme(R.style.AppThemeNight);
        }
        if (color == WHITE) {
            setTheme(R.style.AppTheme);
        }

        super.onCreate(savedInstanceState);
        WebView myWebView = new WebView(this) {

            @Override
            protected void onSizeChanged(int w, int h, int ow, int oh) {
                Intent position = getIntent();
                int positionValue = position.getIntExtra("head", 0);
                SharedPreferences settings = getSharedPreferences("MyScroll", MODE_PRIVATE);
                float position_scroll = settings.getFloat(String.valueOf(positionValue), 0);
                super.onSizeChanged(w, h, ow, oh);
                if (getContentHeight() > 0) scrollTo(0, (int) position_scroll); // осталось отловить высоту прокрутки и подсунуть ее сюда
            }

            @Override
            protected void onScrollChanged(int l, int t, int oldl, int oldt) {
                super.onScrollChanged(l, t, oldl, oldt);
                scrollPosition = t;
            }
        };

        myWebView.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT // <<-- это важный момент
        ));
        setContentView(myWebView);

        Intent intent = getIntent();
        //получаем строку и формируем имя ресурса
        String resName = "n" + intent.getIntExtra("head", 0);
        Log.i("name", resName);
        Context context = getBaseContext(); //получаем контекст

        //читаем текстовый файл из ресурсов по имени
        String text = readRawTextFile(context, getResources().getIdentifier(resName, "raw", "ru.erstendev.ppvsn"));

        mWebView = myWebView;
        settings = getSharedPreferences("MyAppColor", MODE_PRIVATE);
        color= settings.getFloat("color", WHITE);

        if (color == BLACK) {
            text="<font color='white'>" + text + "</font>";
            setTheme(R.style.AppThemeNight);
        }
        if (color == WHITE) {
            text="<font color='black'>" + text + "</font>";
            setTheme(R.style.AppTheme);
        }

        myWebView.loadDataWithBaseURL(null, text, "text/html", "en_US", null);

        WebSettings webSettings = myWebView.getSettings(); // инициируем настройки WebView. После этого элемента следует вставить адаптер, подгружающий настройки из файла

        settings = getSharedPreferences("MyAppSett", MODE_PRIVATE);
        size_coef= settings.getFloat("size_coef", 1f);
        webSettings.setDefaultFontSize((int) (20*size_coef)); // устанавливаем размер текста

        settings = getSharedPreferences("MyAppColor", MODE_PRIVATE);
        color= settings.getFloat("color", WHITE);
        myWebView.setBackgroundColor((int) color); // устанавливаем цвет фона
    }
    private void createWebPrintJob(WebView webView) {

        PrintManager printManager = null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            printManager = (PrintManager) this
                    .getSystemService(Context.PRINT_SERVICE);
        }

        PrintDocumentAdapter printAdapter =
                null;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            printAdapter = webView.createPrintDocumentAdapter("MyDocument");
        }

        String jobName = getString(R.string.app_name) + " Print Test";

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            printManager.print(jobName, printAdapter,
                    new PrintAttributes.Builder().build());
        }
    }

    @Override
    public void onPause() {
        Intent position = getIntent();
        int positionValue = position.getIntExtra("head", 0);
        SharedPreferences settings = getSharedPreferences("MyScroll", MODE_PRIVATE);
        SharedPreferences.Editor value_add = settings.edit();

        super.onPause();
        value_add.putFloat(String.valueOf(positionValue), scrollPosition);
        value_add.commit();
    }

    //читаем текст из raw-ресурсов
    public static String readRawTextFile(Context context, int resId)
    {
        InputStream inputStream = context.getResources().openRawResource(resId);

        InputStreamReader inputReader = new InputStreamReader(inputStream);
        BufferedReader buffReader = new BufferedReader(inputReader);
        String line;
        StringBuilder builder = new StringBuilder();

        try {
            while (( line = buffReader.readLine()) != null) {
                builder.append(line);
                builder.append("\n");
            }
        } catch (IOException e) {
            return null;
        }
        return builder.toString();
    }

Ответы (0 шт):