i want to use class that extends realm object as regular class, but there's exception in my getFilter()
ThrowingException 8, Realm accessed from incorrect thread. in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsResults.cpp line 157, . Exception has been thrown: Realm accessed from incorrect thread. in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsResults.cpp line 157
This is my adapter
List<ProductRealm> productsList, productsFiltered;
Context context;
public ProductAdapter(List<ProductRealm> productsList, Context context) {
this.productsList = productsList;
this.context = context;
}
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
if (charString.isEmpty()) {
productsFiltered = productsList;
} else {
List<ProductRealm> filteredList = new ArrayList<>();
for (ProductRealm row : productsList) {
if (row.getName().toLowerCase().contains(charString.toLowerCase())) {
filteredList.add(row);
}
}
productsFiltered = filteredList;
}
FilterResults filterResults = new FilterResults();
filterResults.values = productsFiltered;
return filterResults;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
notifyDataSetChanged();
}
};
return filter;
}
This is in my fragment
viewModel.productsList.observe(this, new Observer<List<ProductRealm>>() {
@Override
public void onChanged(@Nullable List<ProductRealm> productRealms) {
productAdapter = new ProductAdapter(viewModel.productsList.getValue(), getContext());
rvProduct.setAdapter(productAdapter);
}
});
view model
public MutableLiveData<List<ProductRealm>> productsList = new MutableLiveData<>();
RealmResults<ProductRealm> results = realm.where(ProductRealm.class).findAll();
productsList.setValue(results);