Commit a5fd849d authored by Ahmad Abi Mulya's avatar Ahmad Abi Mulya
parents e6b3a4f5 9a97bd5e
...@@ -10,11 +10,13 @@ import androidx.recyclerview.widget.LinearLayoutManager; ...@@ -10,11 +10,13 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Application;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.util.Log;
import android.widget.PopupMenu; import android.widget.PopupMenu;
import android.widget.Toast; import android.widget.Toast;
...@@ -24,6 +26,7 @@ import com.example.yourcashiertest.adapters.ProductAdapter; ...@@ -24,6 +26,7 @@ import com.example.yourcashiertest.adapters.ProductAdapter;
import com.example.yourcashiertest.databinding.ActivityMainBinding; import com.example.yourcashiertest.databinding.ActivityMainBinding;
import com.example.yourcashiertest.entities.Cart; import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.Product; import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.repositories.ProductRepository;
import com.example.yourcashiertest.viewmodels.CartViewModel; import com.example.yourcashiertest.viewmodels.CartViewModel;
import com.example.yourcashiertest.viewmodels.ProductViewModel; import com.example.yourcashiertest.viewmodels.ProductViewModel;
...@@ -118,16 +121,16 @@ public class MainActivity extends AppCompatActivity { ...@@ -118,16 +121,16 @@ public class MainActivity extends AppCompatActivity {
binding.rvProducts.setAdapter(adapter); binding.rvProducts.setAdapter(adapter);
viewModel = new ViewModelProvider(this).get(ProductViewModel.class); viewModel = new ViewModelProvider(this).get(ProductViewModel.class);
viewModel.getProducts().observe(this, adapter::setProducts);
viewModel.getProducts().observe(this, products -> { viewModel.getProducts().observe(this, products -> {
adapter.setProducts(products); List<String> category = new ArrayList<>();
List<String> list = new ArrayList<>();
for (int i = 0; i < products.size(); i++){ for (int i = 0; i < products.size(); i++){
list.add(products.get(i).getCategory()); category.add(products.get(i).getCategory().toLowerCase());
} }
categoryAdapter.setCategories(list); categoryAdapter.setCategories(category);
}); });
categoryAdapter.setListener(category -> viewModel.filter(category.toLowerCase()));
categoryAdapter.setListener(category -> viewModel.filter(category));
adapter.setListener(new ProductAdapter.ProductListener() { adapter.setListener(new ProductAdapter.ProductListener() {
@Override @Override
......
...@@ -17,6 +17,9 @@ public interface ProductDao { ...@@ -17,6 +17,9 @@ public interface ProductDao {
@Query("SELECT * FROM products ORDER BY id DESC") @Query("SELECT * FROM products ORDER BY id DESC")
public LiveData<List<Product>> getProducts(); public LiveData<List<Product>> getProducts();
// @Query("SELECT category FROM products")
// public LiveData<List<Product>> getAllCategory();
@Query("SELECT * FROM products WHERE name LIKE :query OR category LIKE:query ORDER BY id DESC") @Query("SELECT * FROM products WHERE name LIKE :query OR category LIKE:query ORDER BY id DESC")
public LiveData<List<Product>> getFilteredProducts(String query); public LiveData<List<Product>> getFilteredProducts(String query);
......
...@@ -37,5 +37,6 @@ public class ProductRepository { ...@@ -37,5 +37,6 @@ public class ProductRepository {
public LiveData<List<Product>> filteredProducts(String s) { public LiveData<List<Product>> filteredProducts(String s) {
return productDao.getFilteredProducts(s); return productDao.getFilteredProducts(s);
} }
} }
...@@ -19,7 +19,6 @@ public class ProductViewModel extends AndroidViewModel { ...@@ -19,7 +19,6 @@ public class ProductViewModel extends AndroidViewModel {
private MutableLiveData<String> photo = new MutableLiveData<>(""); private MutableLiveData<String> photo = new MutableLiveData<>("");
private MutableLiveData<String> query = new MutableLiveData<>("%"); private MutableLiveData<String> query = new MutableLiveData<>("%");
private MutableLiveData<String> category = new MutableLiveData<>("%");
private MutableLiveData<Product> product = new MutableLiveData<>(); private MutableLiveData<Product> product = new MutableLiveData<>();
private LiveData<List<Product>> products; private LiveData<List<Product>> products;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment