Автоматический Поиск в recyclerview

Моя программа получает данные из firebase в recyclerview и сортирует их. Это таблица рекордов для игры. Каждый игрок добавляет туда своё имя с результатом. Программа должна запоминать имя игрока, чтобы оно выделялось в таблице(и чтобы обновлять его результат). Хочу сделать автоматический поиск своего элемента по имени без ввода в меню. Попытался добавить поиск по видео с youtube. Сейчас выдаёт пустой экран. Подскажите, что нужно исправить

Вот класс моего адаптера. Добавил в нём поиск по name. Теперь пустой экран

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> implements Filterable {

Context context;
ArrayList<User> list;
ArrayList<User> listFull;

public MyAdapter(Context context, ArrayList<User> list) {
    this.context = context;
    this.listFull = list;
    this.list = new ArrayList(listFull);
}

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

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    User user = list.get(position);
    holder.number.setText(position+1+"");
    holder.name.setText(user.getName().substring(0,user.getName().length()-8));
    holder.level.setText(user.getLevel()+"");
    holder.average.setText(String.format("%d.%02d", user.getMiddleResult() / 100, (user.getMiddleResult() % 100)));

    switch (position){
        case 0: holder.itemView.setBackgroundResource(R.drawable.gold_shape);
                break;
        case 1: holder.itemView.setBackgroundResource(R.drawable.silver_shape);
            break;
        case 2: holder.itemView.setBackgroundResource(R.drawable.bronse_shape);
            break;
        default: holder.itemView.setBackgroundResource(R.drawable.white_shape);
            break;
    }
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public int getItemViewType(int position) {
    return position;
}

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

@Override
public Filter getFilter() {
    return userFilter;
}

private final Filter userFilter = new Filter() {
    @Override
    protected FilterResults performFiltering(CharSequence constraint) {
        ArrayList<User> filteredUserList = new ArrayList<>();
        if (constraint==null || constraint.length()==0){
            filteredUserList.addAll(listFull);
        } else{
            String filterPattern = constraint.toString().toLowerCase().trim();
            for(User user:listFull){
                if (user.name.toLowerCase().contains(filterPattern))
                {filteredUserList.add(user);}
            }
        }
        FilterResults results = new FilterResults();
        results.values = filteredUserList;
        results.count = filteredUserList.size();
        return results;
    }

    @Override
    protected void publishResults(CharSequence constraint, FilterResults results) {

        list.clear();
        list.addAll((ArrayList)results.values);
        notifyDataSetChanged();
    }
};

public static class MyViewHolder extends RecyclerView.ViewHolder   {

    TextView name, level, average, number;

    public MyViewHolder(@NonNull View itemView){
        super(itemView);
        number = itemView.findViewById(R.id.tvNumber);
        name = itemView.findViewById(R.id.tvname);
        level = itemView.findViewById(R.id.tvlevel);
        average = itemView.findViewById(R.id.tvaverage);
    }
}

}

Эта форма связана с таблицей recyclerview.

public class userlist extends AppCompatActivity {

RecyclerView recyclerView;
DatabaseReference database;
MyAdapter myAdapter;
ArrayList<User> list, listFull;
private Toast backToast;
FirebaseAuth auth;
FirebaseDatabase db;
Button buttonReg;
TextView textTop, button_close_from_userlist;
public static int alreadyre;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_userlist);

    Window w = getWindow();
    w.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    SharedPreferences save = getSharedPreferences("Save", MODE_PRIVATE);
    final int alreadyReg = save.getInt("alreadyReg", 0);

    textTop = findViewById(R.id.textTop);
    button_close_from_userlist = findViewById(R.id.button_close_from_userlist);

    buttonReg = findViewById(R.id.buttonReg);
    recyclerView = findViewById(R.id.userList);
    database = FirebaseDatabase.getInstance().getReference("users");
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    list = new ArrayList<>();
    listFull = new ArrayList<>();

    myAdapter = new MyAdapter(this, list);
    recyclerView.setAdapter(myAdapter);

    auth = FirebaseAuth.getInstance();
    db = FirebaseDatabase.getInstance();

    database.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {

            listFull.clear();
            for (DataSnapshot dataSnapshot : snapshot.getChildren()) {

                User user = dataSnapshot.getValue(User.class);
                listFull.add(user);

                Collections.sort(list, User.levelSort);

            }
            myAdapter.notifyDataSetChanged();
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

    myAdapter = new MyAdapter(this, listFull);
    recyclerView.setAdapter(myAdapter);

    myAdapter.getFilter().filter("qqq");


    if (alreadyReg == 1) {
        buttonReg.setVisibility(View.INVISIBLE);
    }
    buttonReg.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (alreadyReg == 0 && alreadyre == 0) {
                showRegisterWindows();  //доавить в таблице своё имя (используется один раз)
            }
            myAdapter.notifyDataSetChanged();
        }
    });
} 

Class User

public class User implements Comparable<User> {  // Добавили в заголовок implements Comparable<User> для того чтобы можно было испольовать метод сортировки
public String name, pass;
public int level, middleResult, number, key;

public User() {
}
 public User(String name, String pass, int level, int middleResult) {
    this.name = name;
    this.pass = pass;
    this.level = level;
    this.middleResult = middleResult;
}
public User(String name, int level, int middleResult) {
    this.name = name;
    this.level = level;
    this.middleResult = middleResult;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPass() {
    return pass;
}


public void setPass(String pass) {
    this.pass = pass;
}

public int getLevel() {
    return level;
}

public void setLevel(int level) {
    this.level = level;
}

public int getMiddleResult() {
    return middleResult;
}

public void setMiddleResult(int middleResult) {
    this.middleResult = middleResult;
}

public int getKey() {
    return key;
}

public void setKey(int key) {
    this.key = key;
}

@Override
public int compareTo(User o) {
    return this.level - o.getLevel();
}

//Сравнение по уровням а зетем по времени - начало
public static Comparator<User> levelSort = new Comparator<User>() {
    @Override
    public int compare(User o1, User o2) {
        int result = (int) o2.getLevel() - o1.getLevel();
        if (result !=0){
            return result;
        }else{
            return o1.getMiddleResult() - o2.getMiddleResult();
        }
    }
};
//Сравнение по уровням а затем по времени - конец

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    User item = (User) o;
    return Objects.equals(name, item.name);
}

@Override
public int hashCode() {
    return Objects.hash(name);
}

}


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