Commit 0caf681a authored by iman Fauzi's avatar iman Fauzi

Merge branch 'dev' into cart

parents c428a177 53a73c15
...@@ -59,7 +59,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -59,7 +59,7 @@ public class FormProductActivity extends AppCompatActivity {
getSupportActionBar().setTitle("Add Product"); getSupportActionBar().setTitle("Add Product");
toolbars.setNavigationOnClickListener(view -> onBackPressed()); toolbars.setNavigationOnClickListener(view -> onBackPressed());
binding.cvProduct.setOnClickListener(view -> takePhoto()); binding.cvProduct.setOnClickListener(view -> openFile());
binding.btnAdd.setOnClickListener(view -> saveProduct()); binding.btnAdd.setOnClickListener(view -> saveProduct());
...@@ -114,18 +114,18 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -114,18 +114,18 @@ public class FormProductActivity extends AppCompatActivity {
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
// if (requestCode == 100 && resultCode == RESULT_OK && data != null) { if (requestCode == 100 && resultCode == RESULT_OK && data != null) {
// Uri selectedImage = data.getData(); Uri selectedImage = data.getData();
//
// Log.d("Get filepath photo", "" + getRealPathFromURI(selectedImage));
// binding.setPhoto(getRealPathFromURI(selectedImage));
// }
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Log.d("Get filepath photo", "" + getRealPathFromURI(selectedImage));
Log.d("Get filepath photo", "" + file.getName()); binding.setPhoto(getRealPathFromURI(selectedImage));
binding.setPhoto(file.getAbsolutePath());
productModels.setImageProduct(file.getName());
} }
// if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
// Log.d("Get filepath photo", "" + file.getName());
// binding.setPhoto(file.getAbsolutePath());
// productModels.setImageProduct(file.getName());
// }
} }
@Override @Override
......
...@@ -15,6 +15,7 @@ import android.widget.RelativeLayout; ...@@ -15,6 +15,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
...@@ -46,6 +47,8 @@ import com.yono.messeripos.response.DataResponse; ...@@ -46,6 +47,8 @@ import com.yono.messeripos.response.DataResponse;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
MaterialToolbar toolbar; MaterialToolbar toolbar;
...@@ -136,6 +139,53 @@ public class MainActivity extends AppCompatActivity { ...@@ -136,6 +139,53 @@ public class MainActivity extends AppCompatActivity {
Log.d("Get data from products", "Response " + js); Log.d("Get data from products", "Response " + js);
} }
}); });
productAdapter.setListener(new ProductAdapter.ProductListener() {
@Override
public void onUpdate(ProductModels product) {
}
@Override
public void onDelete(ProductModels product) {
}
@Override
public void onAddCart(ProductModels product) {
mainViewModelsCart.getCartById(product.getIdProduct()).observe(MainActivity.this, new Observer<List<ProductCartModels>>() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onChanged(List<ProductCartModels> productCartModels) {
String s = new Gson().toJson(productCartModels);
if (productCartModels.isEmpty()){
mainViewModelsCart.insertCart(new ProductCartModels(
1233,
1,
product.getIdProduct(),
product.getProductName(),
product.getPriceProduct(),
0
));
Log.i("Add data cart", "onChanged: Berhasil ditambahkan");
}else{
// ProductCartModels productCartModels2 = (ProductCartModels) productCartModels.stream().map(productCartModels1 -> {
// productCartModels1.setQuantity_orders(productCartModels1.getQuantity_orders()+1);
// return productCartModels1;
// });
productCartModels.stream().map(productCartModels1 -> {
Log.d("click cart", "onChanged: "+s);
productCartModels1.setQuantity_orders(productCartModels1.getQuantity_orders()+1);
// mainViewModelsCart.updateCart(productCartModels1);
return productCartModels1;
}).collect(Collectors.toList());
}
}
});
}
});
} }
@Override @Override
......
...@@ -38,20 +38,22 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo ...@@ -38,20 +38,22 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
Context context; Context context;
MainViewModelsCart mainViewModelsCart; MainViewModelsCart mainViewModelsCart;
public interface CartListener { public interface ProductListener {
void onUpdate(ProductCartModels product); void onUpdate(ProductModels product);
void onDelete(ProductCartModels product); void onDelete(ProductModels product);
void onAddCart(ProductModels product);
} }
private CartListener listener; private ProductListener listener;
public void setListener(CartListener listener) { public void setListener(ProductListener listener) {
this.listener = listener; this.listener = listener;
} }
public void setProduct(Context context, ArrayList<ProductModels> productModels){ public void setProduct(Context context, ArrayList<ProductModels> productModels) {
this.productModels = productModels; this.productModels = productModels;
this.context = context; this.context = context;
mainViewModelsCart = ViewModelProviders.of((FragmentActivity) context).get(MainViewModelsCart.class); mainViewModelsCart = ViewModelProviders.of((FragmentActivity) context).get(MainViewModelsCart.class);
...@@ -107,35 +109,22 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo ...@@ -107,35 +109,22 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
binding.setPrice(rupiah.format(products.getPriceProduct())); binding.setPrice(rupiah.format(products.getPriceProduct()));
binding.setImage(products.getImageProduct()); binding.setImage(products.getImageProduct());
if (!MainActivity.status_update){ if (!MainActivity.status_update) {
binding.btnDelete.setVisibility(View.GONE); binding.btnDelete.setVisibility(View.GONE);
binding.btnEdit.setVisibility(View.GONE); binding.btnEdit.setVisibility(View.GONE);
} }
if (products.getStockProduct() == 0){ if (products.getStockProduct() == 0) {
statusProduct = "Not Available"; statusProduct = "Not Available";
binding.status.setBackgroundColor(0x55FF0000); binding.status.setBackgroundColor(0x55FF0000);
binding.setStatus(statusProduct); binding.setStatus(statusProduct);
}else{ } else {
statusProduct = "Available"; statusProduct = "Available";
binding.status.setBackgroundColor(0xFF12FF45); binding.status.setBackgroundColor(0xFF12FF45);
binding.setStatus(statusProduct); binding.setStatus(statusProduct);
} }
binding.materialBtnAddCart.setOnClickListener(new View.OnClickListener() { binding.materialBtnAddCart.setOnClickListener(view -> listener.onAddCart(products));
@Override
public void onClick(View view) {
Toast.makeText(context, binding.titleProduct.getText() + " adding to cart", Toast.LENGTH_LONG).show();
mainViewModelsCart.insertCart(new ProductCartModels(
2,
1,
products.getIdProduct(),
products.getProductName(),
products.getPriceProduct(),
0
));
}
});
} }
} }
} }
...@@ -18,7 +18,7 @@ public interface CartDaos { ...@@ -18,7 +18,7 @@ public interface CartDaos {
@Query("SELECT * FROM carts ORDER BY id DESC") @Query("SELECT * FROM carts ORDER BY id DESC")
public LiveData<List<ProductCartModels>> getCart(); public LiveData<List<ProductCartModels>> getCart();
@Query("SELECT * FROM carts WHERE id = :idCart") @Query("SELECT * FROM carts WHERE id_product_orders = :idCart")
public LiveData<List<ProductCartModels>> getCartById(long idCart); public LiveData<List<ProductCartModels>> getCartById(long idCart);
......
...@@ -42,6 +42,10 @@ public class MainViewModelsCart extends AndroidViewModel { ...@@ -42,6 +42,10 @@ public class MainViewModelsCart extends AndroidViewModel {
public void deleteCart(ProductCartModels productCartModels){cartRepositories.delete(productCartModels);} public void deleteCart(ProductCartModels productCartModels){cartRepositories.delete(productCartModels);}
public LiveData<List<ProductCartModels>> getCartById(long id){
return cartRepositories.getDataById(id);
}
public MutableLiveData<ProductCartModels> getCart(){ public MutableLiveData<ProductCartModels> getCart(){
// String js = new Gson().toJson(cartRepositories.getDataCart()); // String js = new Gson().toJson(cartRepositories.getDataCart());
// Log.d("Get data cart", "Response "+js); // Log.d("Get data cart", "Response "+js);
......
...@@ -35,6 +35,10 @@ public class CartRepositories { ...@@ -35,6 +35,10 @@ public class CartRepositories {
LocalDatabase.databaseWriterExecutor.execute(() -> cartDaos.deleteProduct(productCartModels)); LocalDatabase.databaseWriterExecutor.execute(() -> cartDaos.deleteProduct(productCartModels));
} }
public LiveData<List<ProductCartModels>> getDataById(long id){
return cartDaos.getCartById(id);
}
public LiveData<List<ProductCartModels>> getDataCart(){ public LiveData<List<ProductCartModels>> getDataCart(){
return products; return products;
} }
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:fontFamily="@font/roboto" android:fontFamily="@font/roboto"
android:text="1" android:text="@{carts.quantity_orders+``}"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="@id/cross" app:layout_constraintBottom_toBottomOf="@id/cross"
app:layout_constraintStart_toEndOf="@id/cross" /> app:layout_constraintStart_toEndOf="@id/cross" />
......
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