Commit 15980423 authored by Alfansyah Fadlian's avatar Alfansyah Fadlian

register state

parents 09c1bc83 572dbee8
...@@ -167,8 +167,17 @@ public class CartActivity extends AppCompatActivity { ...@@ -167,8 +167,17 @@ public class CartActivity extends AppCompatActivity {
@Override @Override
public void onUpdateQuantityPlus(ProductCartModels productCartModels) { public void onUpdateQuantityPlus(ProductCartModels productCartModels) {
if (!((productCartModels.getQuantity_orders() + 1) > productCartModels.getQuantity_stock() - 1)){
productCartModels.setQuantity_orders(productCartModels.getQuantity_orders() + 1); productCartModels.setQuantity_orders(productCartModels.getQuantity_orders() + 1);
modelsCart.updateCart(productCartModels); modelsCart.updateCart(productCartModels);
}else{
utils.dialog(CartActivity.this,
true,
getLayoutInflater().inflate(R.layout.alert_dialog, null),
"Warning",
"Item stock does not meet").show();
}
} }
@Override @Override
...@@ -239,34 +248,7 @@ public class CartActivity extends AppCompatActivity { ...@@ -239,34 +248,7 @@ public class CartActivity extends AppCompatActivity {
paymentsModels.setOrderId(sharedPreferences.getString(ORDER_ID, "")); paymentsModels.setOrderId(sharedPreferences.getString(ORDER_ID, ""));
paymentsModels.setTransactionStatus("pending"); paymentsModels.setTransactionStatus("pending");
Log.i("Convert Input", "onChanged: "+utils.convertGson(paymentsModels)); Log.i("Convert Input", "onChanged: "+utils.convertGson(paymentsModels));
PaymentService paymentService = client.Client(PaymentService.class);
paymentService.postFromCart(paymentsModels).enqueue(new Callback<DataResponse<PaymentsModels<List<VaNumberModels>>>>() {
@Override
public void onResponse(Call<DataResponse<PaymentsModels<List<VaNumberModels>>>> call, Response<DataResponse<PaymentsModels<List<VaNumberModels>>>> response) {
Log.i("Response simpan_cart", "onResponse: "+utils.convertGson(response.body()));
if (response.body() != null){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(ORDER_ID, "");
if (editor.commit()){
startActivity(new Intent(CartActivity.this, MainActivity.class));
finish();
}
}else{
new AlertDialog.Builder(CartActivity.this)
.setCancelable(false)
.setTitle("Save new Order")
.setMessage("Erorr save!").show();
}
}
@Override
public void onFailure(Call<DataResponse<PaymentsModels<List<VaNumberModels>>>> call, Throwable t) {
new AlertDialog.Builder(CartActivity.this)
.setCancelable(false)
.setTitle("Save new Order")
.setMessage("Add new order failed, try again!").show();
}
});
} }
}); });
......
...@@ -61,6 +61,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -61,6 +61,7 @@ public class FormProductActivity extends AppCompatActivity {
MainViewModels mainViewModels; MainViewModels mainViewModels;
MaterialSpinner spinner; MaterialSpinner spinner;
List<String> categoryModels; List<String> categoryModels;
List<String> str = new ArrayList<>();
private static final int REQUEST_IMAGE_CAPTURE = 1; private static final int REQUEST_IMAGE_CAPTURE = 1;
private static final int REQUEST_PERMISSIONS = 448; private static final int REQUEST_PERMISSIONS = 448;
private boolean isUpdate = false; private boolean isUpdate = false;
...@@ -75,7 +76,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -75,7 +76,7 @@ public class FormProductActivity extends AppCompatActivity {
ProgressDialog progressDialog; ProgressDialog progressDialog;
Client client = new Client(); Client client = new Client();
ProductModels productModelsIntent; ProductModels productModelsIntent;
List<String> categorySelect = new ArrayList<>(); List<Integer> categorySelect = new ArrayList<>();
FormCategory formCategory; FormCategory formCategory;
@RequiresApi(api = Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.N)
...@@ -180,7 +181,8 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -180,7 +181,8 @@ public class FormProductActivity extends AppCompatActivity {
binding.listCategory.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener() { binding.listCategory.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(MaterialSpinner view, int position, long id, Object item) { public void onItemSelected(MaterialSpinner view, int position, long id, Object item) {
categorySelect.add(item.toString()); progressDialog.show();
getCategory(item.toString());
} }
}); });
} }
...@@ -189,17 +191,15 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -189,17 +191,15 @@ public class FormProductActivity extends AppCompatActivity {
private void setSpinner(String s) { private void setSpinner(String s) {
progressDialog.show(); progressDialog.show();
HashSet<String> set = new HashSet<>(); HashSet<String> set = new HashSet<>();
List<String> str = new ArrayList<>();
categoryModels = new ArrayList<>(); categoryModels = new ArrayList<>();
Log.i("GET_CATEGORY", "setSpinner: "+utils.convertGson(productModelsIntent)); Log.i("GET_CATEGORY", "setSpinner: "+utils.convertGson(productModelsIntent));
// if (productModelsIntent == null){ if (productModelsIntent == null){
// str.add("SELECT CATEGORY");
// }else{
// getCategoryById(productModelsIntent.getIdProduct());
// categoryName = ""
// str.add(categoryName);
// }
str.add("SELECT CATEGORY"); str.add("SELECT CATEGORY");
}else{
getCategoryById(productModelsIntent.getIdProduct());
categorySelect.add(0, productModelsIntent.getCategoryProduct());
}
// str.add("SELECT CATEGORY");
mainViewModels.getCategory().observe(this, listDataResponse -> { mainViewModels.getCategory().observe(this, listDataResponse -> {
progressDialog.dismiss(); progressDialog.dismiss();
for (CategoryModels cd: listDataResponse.getData()){ for (CategoryModels cd: listDataResponse.getData()){
...@@ -228,7 +228,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -228,7 +228,7 @@ public class FormProductActivity extends AppCompatActivity {
productModelsSave.setProductName(binding.etName.getText().toString()); productModelsSave.setProductName(binding.etName.getText().toString());
productModelsSave.setPriceProduct(Integer.parseInt(binding.etPrice.getText().toString())); productModelsSave.setPriceProduct(Integer.parseInt(binding.etPrice.getText().toString()));
productModelsSave.setStockProduct(Integer.parseInt(binding.etStock.getText().toString())); productModelsSave.setStockProduct(Integer.parseInt(binding.etStock.getText().toString()));
productModelsSave.setCategoryProduct(getCategory(categorySelect.get(0))); productModelsSave.setCategoryProduct(categorySelect.get(0));
if (productModelsIntent == null){ if (productModelsIntent == null){
productModelsSave.setImageProduct(productModels.getImageProduct()); productModelsSave.setImageProduct(productModels.getImageProduct());
}else{ }else{
...@@ -346,6 +346,8 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -346,6 +346,8 @@ public class FormProductActivity extends AppCompatActivity {
Log.i("CHDJHD", "getCategory: "+utils.convertGson(response.body())); Log.i("CHDJHD", "getCategory: "+utils.convertGson(response.body()));
id = response.body().getData().get(0).getIdCategory(); id = response.body().getData().get(0).getIdCategory();
productModels.setCategoryProduct(id); productModels.setCategoryProduct(id);
categorySelect.add(0, id);
progressDialog.dismiss();
} }
@Override @Override
...@@ -362,9 +364,7 @@ public class FormProductActivity extends AppCompatActivity { ...@@ -362,9 +364,7 @@ public class FormProductActivity extends AppCompatActivity {
@Override @Override
public void onResponse(Call<DataResponse<CategoryModels>> call, Response<DataResponse<CategoryModels>> response) { public void onResponse(Call<DataResponse<CategoryModels>> call, Response<DataResponse<CategoryModels>> response) {
Log.i("ER", "onResponse: "+utils.convertGson(response.body())); Log.i("ER", "onResponse: "+utils.convertGson(response.body()));
if (categoryName.isEmpty()){ str.add(response.body().getData().getNameCategory());
categoryName = response.body().getData().getNameCategory();
}
} }
@Override @Override
......
package com.yono.messeripos; package com.yono.messeripos;
import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
...@@ -40,6 +41,10 @@ public class LoginActivity extends AppCompatActivity { ...@@ -40,6 +41,10 @@ public class LoginActivity extends AppCompatActivity {
MaterialButton btnSignin; MaterialButton btnSignin;
MaterialButton btnSignup, btnSignIn; MaterialButton btnSignup, btnSignIn;
public static View invalidUser;
public static View activateEmail;
Utils utils;
private String TAG = "MainActivity"; private String TAG = "MainActivity";
......
...@@ -10,6 +10,7 @@ import android.content.Intent; ...@@ -10,6 +10,7 @@ import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
...@@ -52,8 +53,7 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -52,8 +53,7 @@ public class LoginState extends BottomSheetDialogFragment {
SharedPreferences sharedPreferences; SharedPreferences sharedPreferences;
Utils utils; Utils utils;
ProgressBar bar; ProgressBar bar;
AlertDialog.Builder builder; View view;
ProgressDialog dialog; ProgressDialog dialog;
public LoginState(Context context, MainViewModels mainViewModels) { public LoginState(Context context, MainViewModels mainViewModels) {
...@@ -70,7 +70,7 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -70,7 +70,7 @@ public class LoginState extends BottomSheetDialogFragment {
dialog = new ProgressDialog(context); dialog = new ProgressDialog(context);
// inflating layout // inflating layout
View view = View.inflate(getContext(), R.layout.login_form, null); view = View.inflate(getContext(), R.layout.login_form, null);
// bindUI // bindUI
loginLayout = view.findViewById(R.id.LoginLayout); loginLayout = view.findViewById(R.id.LoginLayout);
...@@ -112,94 +112,130 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -112,94 +112,130 @@ public class LoginState extends BottomSheetDialogFragment {
} }
private void loginAuth(View v) { private void loginAuth(View v) {
if (TextUtils.isEmpty(username.getText().toString()) && if (TextUtils.isEmpty(username.getText().toString()) &&
TextUtils.isEmpty(password.getText().toString())){ TextUtils.isEmpty(password.getText().toString())){
username.setError("This field can't empty"); username.setError("This field can't empty");
password.setError("This field can't empty"); password.setError("This field can't empty");
}else if (TextUtils.isEmpty(username.getText().toString())){ }else if (TextUtils.isEmpty(username.getText().toString()))
{
username.setError("This field can't empty"); username.setError("This field can't empty");
}else if (TextUtils.isEmpty(password.getText().toString())){ }else if (TextUtils.isEmpty(password.getText().toString())){
password.setError("This field can't empty"); password.setError("This field can't empty");
}else{ }else {
/**
* Jika tombol sign in ditekan
*
* nonaktifkan semua form */
bar.setVisibility(View.VISIBLE);
loginButton.setText("");
sheetDialog.setCancelable(false);
username.setEnabled(false); setAllLayoutToFalse();
password.setEnabled(false);
loginButton.setEnabled(false);
closeBtn.setEnabled(false);
// buat checking login // buat checking login
mainViewModels.checkLogin(new UsersModels(username.getText().toString(), mainViewModels.checkLogin(new UsersModels(username.getText().toString(),
password.getText().toString())) password.getText().toString()))
.observe((LifecycleOwner) context, usersModelsDataResponse -> { .observe((LifecycleOwner) context, usersModelsDataResponse -> {
if (usersModelsDataResponse != null) { if (usersModelsDataResponse != null) {
/** final View customLayout = getLayoutInflater()
* Jika response atau data ada dan cocok .inflate(R.layout.alert_dialog, null);
*/
switch (usersModelsDataResponse.getMessageData().toLowerCase()) {
case "invalid username or password":
setAllLayoutToTrue();
errUserPass(customLayout);
break;
case "please activate your email first":
setAllLayoutToTrue();
activateEmail(customLayout);
default:
break;
}
if (usersModelsDataResponse.getStatusData()) { if (usersModelsDataResponse.getStatusData()) {
SharedPreferences.Editor editor = sharedPreferences.edit(); SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(SplashScreen.SESSION, true); editor.putBoolean(SplashScreen.SESSION, true);
sheetDialog.dismiss();
if(editor.commit()){ if(editor.commit()){
startActivity(new Intent(context, MainActivity.class)); startActivity(new Intent(context, MainActivity.class));
getActivity().finish();
} }
// redirect ke home
setAllLayoutToTrue();
// set progress bar jadi nonaktif }
bar.setVisibility(View.GONE); } else {
// munculkan tulisan default di button sign in bar.setVisibility(View.VISIBLE);
utils.snackBar(v, "Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください").show();
}
});
}
loginButton.setText(DEFAULT_LOGIN_NAME); loginButton.setText(DEFAULT_LOGIN_NAME);
}
// ubah sheet dialog jadi tidak bisa di slide atau cancel private void setAllLayoutToTrue() {
bar.setVisibility(View.GONE);
loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true); sheetDialog.setCancelable(true);
// set form jadi enable
username.setEnabled(true); username.setEnabled(true);
password.setEnabled(true); password.setEnabled(true);
loginButton.setEnabled(true); loginButton.setEnabled(true);
closeBtn.setEnabled(true); closeBtn.setEnabled(true);
}
} else { private void setAllLayoutToFalse() {
/** bar.setVisibility(View.VISIBLE);
* Jika response atau data tidak cocok loginButton.setText("");
*/ sheetDialog.setCancelable(false);
username.setEnabled(false);
password.setEnabled(false);
loginButton.setEnabled(false);
closeBtn.setEnabled(false);
}
bar.setVisibility(View.GONE); private void activateEmail(View customLayout) {
loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true); utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Please Verifiy Email",
"Please verify your email before login",
"close", "verify")
.show();
utils.setListener(new Utils.DialogListener() {
@Override
public void onClickDisimiss(AlertDialog alertDialog) {
alertDialog.dismiss();
}
final View customLayout = getLayoutInflater() @Override
.inflate(R.layout.alert_dialog, null); public void onClickLink(AlertDialog alertDialog) {
Intent pm = getActivity().getPackageManager().getLaunchIntentForPackage("com.google.android.gm");
if (pm != null) {
startActivity(pm);
getActivity().finish();
}
}
});
}
private void errUserPass(View customLayout) {
// tampilkan alert dialog
utils = new Utils(customLayout); utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Wrong Username or Password", utils.dialog(context, false, customLayout, "Wrong Username or Password",
"The username or password is incorrect. Please try again!", "The username or password is incorrect. Please try again!",
"Try Again") "Try Again")
.show(); .show();
utils.setListener(Dialog::dismiss); utils.setListener(new Utils.DialogListener() {
@Override
username.setEnabled(true); public void onClickDisimiss(AlertDialog alertDialog) {
password.setEnabled(true); alertDialog.dismiss();
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
}
} else {
bar.setVisibility(View.VISIBLE);
utils.snackBar(v, "Oppss! ログイン中にエラーが発生しました。しばらくしてからもう一度お試しください").show();
} }
}); @Override
public void onClickLink(AlertDialog alertDialog) {
} }
loginButton.setText(DEFAULT_LOGIN_NAME); });
} }
} }
...@@ -8,6 +8,7 @@ import android.content.Intent; ...@@ -8,6 +8,7 @@ import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.service.controls.actions.ModeAction; import android.service.controls.actions.ModeAction;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
...@@ -18,6 +19,8 @@ import android.view.MenuItem; ...@@ -18,6 +19,8 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
...@@ -68,7 +71,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -68,7 +71,7 @@ public class MainActivity extends AppCompatActivity {
CategoryAdapter categoryAdapter; CategoryAdapter categoryAdapter;
ProductAdapter productAdapter; ProductAdapter productAdapter;
Utils utils = new Utils(); Utils utils = new Utils();
SharedPreferences sharedPreferences; SharedPreferences sharedPreferences, sharedPreferencesLogin;
public static Boolean status_update = false; public static Boolean status_update = false;
MainViewModelsCart mainViewModelsCart; MainViewModelsCart mainViewModelsCart;
public static Boolean cartIsEmpty; public static Boolean cartIsEmpty;
...@@ -108,6 +111,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -108,6 +111,7 @@ public class MainActivity extends AppCompatActivity {
productAdapter = new ProductAdapter(); productAdapter = new ProductAdapter();
mainViewModelsCart = new ViewModelProvider(MainActivity.this).get(MainViewModelsCart.class); mainViewModelsCart = new ViewModelProvider(MainActivity.this).get(MainViewModelsCart.class);
sharedPreferences = getSharedPreferences(MY_SHARED_PREFERENCES, Context.MODE_PRIVATE); sharedPreferences = getSharedPreferences(MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
sharedPreferencesLogin = getSharedPreferences(SplashScreen.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
checkout = sharedPreferences.getBoolean(CHECKOUT,false); checkout = sharedPreferences.getBoolean(CHECKOUT,false);
orderId = sharedPreferences.getString(ORDER_ID,""); orderId = sharedPreferences.getString(ORDER_ID,"");
progressDialog = new ProgressDialog(MainActivity.this); progressDialog = new ProgressDialog(MainActivity.this);
...@@ -178,13 +182,25 @@ public class MainActivity extends AppCompatActivity { ...@@ -178,13 +182,25 @@ public class MainActivity extends AppCompatActivity {
startActivity(new Intent(getApplicationContext(), FormProductActivity.class)); startActivity(new Intent(getApplicationContext(), FormProductActivity.class));
}else if (id == R.id.allTransaction){ }else if (id == R.id.allTransaction){
startActivity(new Intent(getApplicationContext(), TransactionActivity.class)); startActivity(new Intent(getApplicationContext(), TransactionActivity.class));
}else if (id == R.id.logout){
progressDialog.show();
SharedPreferences.Editor editor = sharedPreferencesLogin.edit();
editor.putBoolean(SplashScreen.SESSION, false);
if(editor.commit()){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(MainActivity.this, LoginActivity.class));
finish();
}
}, 700);
}
} }
return true; return true;
} }
}); });
} }
private void mainViewModelsGettCategory() { private void mainViewModelsGettCategory() {
mainViewModels.getCategory().observe(this, new Observer<DataResponse<List<CategoryModels>>>() { mainViewModels.getCategory().observe(this, new Observer<DataResponse<List<CategoryModels>>>() {
@Override @Override
...@@ -322,7 +338,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -322,7 +338,7 @@ public class MainActivity extends AppCompatActivity {
product.getIdProduct(), product.getIdProduct(),
product.getProductName(), product.getProductName(),
product.getPriceProduct(), product.getPriceProduct(),
0 product.getStockProduct()
)); ));
// Log.d("order_id_create", "onChanged: "+orderId); // Log.d("order_id_create", "onChanged: "+orderId);
...@@ -534,4 +550,10 @@ public class MainActivity extends AppCompatActivity { ...@@ -534,4 +550,10 @@ public class MainActivity extends AppCompatActivity {
binding.pbLoading.setVisibility(View.GONE); binding.pbLoading.setVisibility(View.GONE);
} }
} }
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
} }
\ No newline at end of file
...@@ -138,7 +138,7 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo ...@@ -138,7 +138,7 @@ public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.MyViewHo
binding.materialBtnAddCart.setVisibility(View.GONE); binding.materialBtnAddCart.setVisibility(View.GONE);
} }
if (products.getStockProduct() == 0) { if (products.getStockProduct() <= 1) {
statusProduct = "Not Available"; statusProduct = "Not Available";
binding.status.setBackgroundColor(0x55FF0000); binding.status.setBackgroundColor(0x55FF0000);
binding.setStatus(statusProduct); binding.setStatus(statusProduct);
......
...@@ -187,12 +187,8 @@ public class MainViewModels extends ViewModel { ...@@ -187,12 +187,8 @@ public class MainViewModels extends ViewModel {
usersService.postRegister(usersModels).enqueue(new Callback<DataResponse<UsersModels>>() { usersService.postRegister(usersModels).enqueue(new Callback<DataResponse<UsersModels>>() {
@Override @Override
public void onResponse(Call<DataResponse<UsersModels>> call, Response<DataResponse<UsersModels>> response) { public void onResponse(Call<DataResponse<UsersModels>> call, Response<DataResponse<UsersModels>> response) {
Log.i("Check_Registrasi", "onResponse: "+utils.convertGson(response.body())); Log.i("REGISTER", "onResponse: "+utils.convertGson(response.body()));
if(response.body()!=null){
usersRegister.setValue(response.body()); usersRegister.setValue(response.body());
}else{
usersRegister.setValue(null);
}
} }
@Override @Override
......
...@@ -19,6 +19,7 @@ import com.yono.messeripos.api.client.Client; ...@@ -19,6 +19,7 @@ import com.yono.messeripos.api.client.Client;
import com.yono.messeripos.api.service.OrdersService; import com.yono.messeripos.api.service.OrdersService;
import com.yono.messeripos.api.service.PaymentService; import com.yono.messeripos.api.service.PaymentService;
import com.yono.messeripos.repositories.CartRepositories; import com.yono.messeripos.repositories.CartRepositories;
import com.yono.messeripos.repositories.PaymentPendingRepositories;
import com.yono.messeripos.response.DataResponse; import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.response.OrdersResponse; import com.yono.messeripos.response.OrdersResponse;
...@@ -36,6 +37,7 @@ public class MainViewModelsCart extends AndroidViewModel { ...@@ -36,6 +37,7 @@ public class MainViewModelsCart extends AndroidViewModel {
private Client client; private Client client;
private CartRepositories cartRepositories; private CartRepositories cartRepositories;
private PaymentPendingRepositories paymentPendingRepositories;
public void setCart(ProductCartModels product){this.cart.setValue(product);} public void setCart(ProductCartModels product){this.cart.setValue(product);}
...@@ -47,6 +49,7 @@ public class MainViewModelsCart extends AndroidViewModel { ...@@ -47,6 +49,7 @@ public class MainViewModelsCart extends AndroidViewModel {
super(application); super(application);
cartRepositories = new CartRepositories(application); cartRepositories = new CartRepositories(application);
paymentPendingRepositories = new PaymentPendingRepositories(application);
productsLive = cartRepositories.getDataCart(); productsLive = cartRepositories.getDataCart();
client = new Client(); client = new Client();
......
...@@ -20,6 +20,9 @@ public class ProductCartModels implements Parcelable { ...@@ -20,6 +20,9 @@ public class ProductCartModels implements Parcelable {
@SerializedName("quantity") @SerializedName("quantity")
private long quantity_orders; private long quantity_orders;
@SerializedName("quantity_stock")
private long quantity_stock;
@SerializedName("product_id") @SerializedName("product_id")
private int id_product_orders; private int id_product_orders;
...@@ -41,13 +44,13 @@ public class ProductCartModels implements Parcelable { ...@@ -41,13 +44,13 @@ public class ProductCartModels implements Parcelable {
int id_product_orders, int id_product_orders,
String product_name_orders, String product_name_orders,
long price_orders, long price_orders,
int grand_total_orders) { int quantity_stock) {
this.id_orders = id_orders; this.id_orders = id_orders;
this.quantity_orders = quantity_orders; this.quantity_orders = quantity_orders;
this.id_product_orders = id_product_orders; this.id_product_orders = id_product_orders;
this.product_name_orders = product_name_orders; this.product_name_orders = product_name_orders;
this.price_orders = price_orders; this.price_orders = price_orders;
this.grand_total_orders = grand_total_orders; this.quantity_stock = quantity_stock;
} }
protected ProductCartModels(Parcel in) { protected ProductCartModels(Parcel in) {
...@@ -143,4 +146,11 @@ public class ProductCartModels implements Parcelable { ...@@ -143,4 +146,11 @@ public class ProductCartModels implements Parcelable {
this.grand_total_orders = grand_total_orders; this.grand_total_orders = grand_total_orders;
} }
public long getQuantity_stock() {
return quantity_stock;
}
public void setQuantity_stock(long quantity_stock) {
this.quantity_stock = quantity_stock;
}
} }
...@@ -46,6 +46,7 @@ public class Utils { ...@@ -46,6 +46,7 @@ public class Utils {
public interface DialogListener { public interface DialogListener {
void onClickDisimiss(AlertDialog alertDialog); void onClickDisimiss(AlertDialog alertDialog);
void onClickLink(AlertDialog alertDialog);
} }
private DialogListener listener; private DialogListener listener;
...@@ -270,16 +271,67 @@ public class Utils { ...@@ -270,16 +271,67 @@ public class Utils {
AlertDialog dialog = builder.create(); AlertDialog dialog = builder.create();
dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
btnCard.setOnClickListener(view1 -> listener.onClickDisimiss(dialog)); btCard.setOnClickListener(view1 -> listener.onClickDisimiss(dialog));
return dialog; return dialog;
} }
public AlertDialog dialog(Context context, Boolean cancelable, View view, @Nullable String titles, @Nullable String messages, @Nullable String buttons) { public AlertDialog dialog(Context context,
Boolean cancelable,
View view,
@Nullable String titles,
@Nullable String messages,
@Nullable String dismiss) {
TextView title = view.findViewById(R.id.alertTitles);
TextView message = view.findViewById(R.id.alertBody);
TextView button2 = view.findViewById(R.id.tvTextBtn2);
CardView btnCard2 = view.findViewById(R.id.cvAlertOnClick2);
// set title and message
if (titles != null){
title.setText(titles);
}
if (message != null){
message.setText(messages);
}
if (button2 != null){
btnCard2.setVisibility(View.VISIBLE);
button2.setText(dismiss);
}
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setCancelable(cancelable)
.setView(view);
AlertDialog dialog = builder.create();
dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
btnCard2.setOnClickListener(view1 -> listener.onClickDisimiss(dialog));
return dialog;
}
public AlertDialog dialog(Context context,
Boolean cancelable,
View view,
@Nullable String titles,
@Nullable String messages,
@Nullable String dismiss,
@Nullable String link) {
/**
* Button1 untuk dismiss
* Button2 untuk link
*/
TextView title = view.findViewById(R.id.alertTitles); TextView title = view.findViewById(R.id.alertTitles);
TextView message = view.findViewById(R.id.alertBody); TextView message = view.findViewById(R.id.alertBody);
TextView button = view.findViewById(R.id.tvTextBtn); TextView button = view.findViewById(R.id.tvTextBtn);
TextView button2 = view.findViewById(R.id.tvTextBtn2);
CardView btnCard = view.findViewById(R.id.cvAlertOnClick); CardView btnCard = view.findViewById(R.id.cvAlertOnClick);
CardView btnCard2 = view.findViewById(R.id.cvAlertOnClick2);
// set title and message // set title and message
if (titles != null){ if (titles != null){
...@@ -291,7 +343,13 @@ public class Utils { ...@@ -291,7 +343,13 @@ public class Utils {
} }
if (button != null){ if (button != null){
button.setText(buttons); btnCard.setVisibility(View.VISIBLE);
button.setText(link);
}
if (button2 != null) {
btnCard2.setVisibility(View.VISIBLE);
button2.setText(dismiss);
} }
AlertDialog.Builder builder = new AlertDialog.Builder(context) AlertDialog.Builder builder = new AlertDialog.Builder(context)
...@@ -300,7 +358,14 @@ public class Utils { ...@@ -300,7 +358,14 @@ public class Utils {
AlertDialog dialog = builder.create(); AlertDialog dialog = builder.create();
dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
btnCard.setOnClickListener(view1 -> listener.onClickDisimiss(dialog));
btnCard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onClickLink(dialog);
}
});
btnCard2.setOnClickListener(view1 -> listener.onClickDisimiss(dialog));
return dialog; return dialog;
} }
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/divider" app:layout_constraintBottom_toTopOf="@id/cvAlertDialog"
> >
<LinearLayout <LinearLayout
...@@ -45,32 +45,67 @@ ...@@ -45,32 +45,67 @@
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@id/cvAlertDialog">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvAlertOnClick"
app:cardCornerRadius="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:clickable="true"
android:focusable="true">
<View <View
android:id="@+id/divider" android:id="@+id/divider"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
style="@style/Divider.Horizontal" style="@style/Divider.Horizontal"/>
app:layout_constraintTop_toBottomOf="@id/cvAlertDialog"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tvTextBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Coba Lagi"
android:textSize="18sp"
android:textColor="#3949AB"
android:textFontWeight="600"
android:paddingVertical="15dp"
android:gravity="center"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/cvAlertOnClick" android:id="@+id/cvAlertOnClick2"
app:cardCornerRadius="0dp" app:cardCornerRadius="0dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="true" android:clickable="true"
android:focusable="true" android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/divider"> android:focusable="true">
<View
android:id="@+id/divider2"
android:layout_width="match_parent"
android:layout_height="1dp"
style="@style/Divider.Horizontal"/>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tvTextBtn" android:id="@+id/tvTextBtn2"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Coba Lagi" android:text="Coba Lagi"
android:textSize="18sp" android:textSize="18sp"
android:textFontWeight="600"
android:paddingVertical="15dp" android:paddingVertical="15dp"
android:gravity="center"/> android:gravity="center"/>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
android:layout_marginTop="50dp"/> android:layout_marginTop="50dp"/>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/descMesser"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="messer" android:text="messer"
...@@ -30,6 +31,14 @@ ...@@ -30,6 +31,14 @@
android:layout_below="@id/messerLogoDashboardLogin" android:layout_below="@id/messerLogoDashboardLogin"
android:layout_centerHorizontal="true"/> android:layout_centerHorizontal="true"/>
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="messer is a digital cashier application"
android:textColor="@color/colorWhite"
android:layout_below="@id/descMesser"
android:layout_centerHorizontal="true"/>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/signUpButtonDashboardLogin" android:id="@+id/signUpButtonDashboardLogin"
android:layout_width="match_parent" android:layout_width="match_parent"
......
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