Guest User

Untitled

a guest
Feb 18th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. 2019-02-18 16:17:27.584 10742-10742/avocado.droid.room E/AndroidRuntime: FATAL EXCEPTION: main
  2. Process: avocado.droid.room, PID: 10742
  3. java.lang.RuntimeException: Unable to start activity ComponentInfo{avocado.droid.room/avocado.droid.room.ui.MainActivity}: java.lang.RuntimeException: Cannot create an instance of class avocado.droid.room.viewmodel.ProductListViewModel
  4. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3303)
  5. at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)
  6. at android.app.ActivityThread.-wrap12(Unknown Source:0)
  7. at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)
  8. at android.os.Handler.dispatchMessage(Handler.java:108)
  9. at android.os.Looper.loop(Looper.java:166)
  10. at android.app.ActivityThread.main(ActivityThread.java:7529)
  11. at java.lang.reflect.Method.invoke(Native Method)
  12. at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
  13. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
  14. Caused by: java.lang.RuntimeException: Cannot create an instance of class avocado.droid.room.viewmodel.ProductListViewModel
  15. at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:252)
  16. at androidx.lifecycle.ViewModelProvider$FactoryWrapper.create(ViewModelProvider.java:268)
  17. at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:179)
  18. at androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.java:147)
  19. at avocado.droid.room.ui.ProductListFragment.onActivityCreated(ProductListFragment.java:49)
  20.  
  21. public class ProductListViewModel extends AndroidViewModel {
  22.  
  23. private final DataRepository mRepository;
  24. private final MediatorLiveData<List<ProductEntity>> mObservableProducts;
  25.  
  26. public ProductListViewModel(Application application) {
  27. super(application);
  28.  
  29. mObservableProducts = new MediatorLiveData<>();
  30.  
  31. mObservableProducts.setValue(null);
  32. mRepository = ((BasicApp) application).getRepository();
  33. LiveData<List<ProductEntity>> products = mRepository.getProducts();
  34.  
  35. mObservableProducts.addSource(products, mObservableProducts::setValue);
  36. }
  37.  
  38. /**
  39. * Expose the LiveData Products query so the UI can observe it.
  40. */
  41. public LiveData<List<ProductEntity>> getProducts() {
  42. return mObservableProducts;
  43. }
  44.  
  45. public LiveData<List<ProductEntity>> searchProducts(String query) {
  46. return mRepository.searchProducts(query);
  47. }
  48. }
  49.  
  50. public class ProductListFragment extends Fragment {
  51.  
  52. public static final String TAG = "ProductListFragment";
  53.  
  54. private ProductAdapter mProductAdapter;
  55.  
  56. private ListFragmentBinding mBinding;
  57.  
  58. @Nullable
  59. @Override
  60. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
  61. @Nullable Bundle savedInstanceState) {
  62. mBinding = DataBindingUtil.inflate(inflater, R.layout.list_fragment, container, false);
  63.  
  64. mProductAdapter = new ProductAdapter(mProductClickCallback);
  65. mBinding.productsList.setAdapter(mProductAdapter);
  66.  
  67. return mBinding.getRoot();
  68. }
  69.  
  70. @Override
  71. public void onActivityCreated(@Nullable Bundle savedInstanceState) {
  72. super.onActivityCreated(savedInstanceState);
  73. final ProductListViewModel viewModel =
  74. ViewModelProviders.of(this).get(ProductListViewModel.class);
  75.  
  76. mBinding.productsSearchBtn.setOnClickListener(new OnClickListener() {
  77. @Override
  78. public void onClick(View v) {
  79. Editable query = mBinding.productsSearchBox.getText();
  80. if (query == null || query.toString().isEmpty()) {
  81. subscribeUi(viewModel.getProducts());
  82. } else {
  83. subscribeUi(viewModel.searchProducts("*" + query + "*"));
  84. }
  85. }
  86. });
  87.  
  88. subscribeUi(viewModel.getProducts());
  89. }
Add Comment
Please, Sign In to add comment