Почему не работает поиск по БД (SearchView и room database)?

Не могу понять в чем ошибка. Делаю учебное приложение "Менеджер паролей". Создал несколько записей в БД. В MainActivity с помощью виджета SearchView получаю строку для поиска и передаю строку в метод, который должен осуществлять поиск. Но мне выдаются все записи из БД.

MainActivity.java

mySearchView = findViewById(R.id.mySearchView);
        
        mySearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String searchWords) {
                Log.i("testing_search", searchWords);
                Toast.makeText(MainScreenActivity.this, "You searching:" + "\"" + searchWords + "\"",Toast.LENGTH_LONG).show();
                SearchPasswordInBackGround(searchWords);
                return false;
            }

            @Override
            public boolean onQueryTextChange(String searchWords) {
                return false;
            }
        });

//Метод для поиска в MainActivity

private void SearchPasswordInBackGround(String searchString){
        ExecutorService executor = Executors.newSingleThreadExecutor();
        Handler handler = new Handler(Looper.getMainLooper());

        executor.execute(new Runnable() {
            @Override
            public void run() {
                // Background Work
                passwordArrayList.addAll(passwordsAppDatabase.getPasswordDAO().getSearchedPasswords(searchString));
                Log.i("testing_array", passwordArrayList.toString());

                // Executed after the background work had finished
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        passwordsAdapter.notifyDataSetChanged();
                    }
                });
            }
        });
    }

Adapter.java

package ru.wizand.passwordmanager.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;


import ru.wizand.passwordmanager.MainScreenActivity;
import ru.wizand.passwordmanager.R;
import ru.wizand.passwordmanager.db.entity.Password;

public class PasswordsAdapter extends RecyclerView.Adapter<PasswordsAdapter.MyViewHolder> {

    // 1 - Variables
    private Context context;
    private ArrayList<Password> passwordArrayList;
    private ArrayList<Password> passwordArrayListSearch;
    private MainScreenActivity mainMainScreenActivity;
    private String searchString;

    // 2 - ViewHolder
    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView name;
        public  TextView url;
        public  TextView login;
        public TextView password;
        public TextView additional;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            this.name = itemView.findViewById(R.id.name);
            this.url = itemView.findViewById(R.id.url);
            this.login = itemView.findViewById(R.id.login);
            this.password = itemView.findViewById(R.id.password);
            this.additional = itemView.findViewById(R.id.additional);
        }
    }

    public PasswordsAdapter(Context context, ArrayList<Password> passwords, MainScreenActivity mainMainScreenActivity) {
        this.context = context;
        this.passwordArrayList = passwords;
        this.mainMainScreenActivity = mainMainScreenActivity;
    }


    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext()).
                inflate(R.layout.password_list_item,parent,false);
        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        final Password password = passwordArrayList.get(position);
        holder.name.setText(password.getName());
        holder.url.setText(password.getUrl());
//        holder.login.setText(password.getLogin());
        holder.login.setText(password.getLogin());
        holder.password.setText(password.getPassword());
        holder.additional.setText(password.getAdditional());

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mainMainScreenActivity.addAndEditPasswords(true, password, position);
            }
        });

    }

    @Override
    public int getItemCount() {
        return  passwordArrayList.size();
    }
}

PasswordDAO.java

@Query("select * from passwords where password_name ==:search")
public List<Password> getSearchedPasswords(String search);

В чем может быть ошибка?

Вывод в консоль. И, судя по консоли, просто выводятся все записи из БД:

2024-09-03 10:33:22.501 11864-11864 testing_search
ru.wizand.passwordmanager I erut 2024-09-03 10:33:22.506 11864-11928 testing_array
ru.wizand.passwordmanager I [ru.wizand.passwordmanager.db.entity.Password@9fe9ae2, ru.wizand.passwordmanager.db.entity.Password@164fe73, ru.wizand.passwordmanager.db.entity.Password@d799130, ru.wizand.passwordmanager.db.entity.Password@21fa1a9, ru.wizand.passwordmanager.db.entity.Password@c6f832e] 2024-09-03 10:33:27.993 11864-11864 testing_search
ru.wizand.passwordmanager I eryt 2024-09-03 10:33:28.001 11864-11929 testing_array
ru.wizand.passwordmanager I [ru.wizand.passwordmanager.db.entity.Password@9fe9ae2, ru.wizand.passwordmanager.db.entity.Password@164fe73, ru.wizand.passwordmanager.db.entity.Password@d799130, ru.wizand.passwordmanager.db.entity.Password@21fa1a9, ru.wizand.passwordmanager.db.entity.Password@c6f832e, ru.wizand.passwordmanager.db.entity.Password@5152450]


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