Commit 5a2fa6a8 authored by Muhammad Fahrul's avatar Muhammad Fahrul

Merge branch 'master' into forgot-password

parents 0ff95782 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) {
productCartModels.setQuantity_orders(productCartModels.getQuantity_orders() + 1); if (!((productCartModels.getQuantity_orders() + 1) > productCartModels.getQuantity_stock() - 1)){
modelsCart.updateCart(productCartModels); productCartModels.setQuantity_orders(productCartModels.getQuantity_orders() + 1);
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"); str.add("SELECT CATEGORY");
// }else{ }else{
// getCategoryById(productModelsIntent.getIdProduct()); getCategoryById(productModelsIntent.getIdProduct());
// categoryName = "" categorySelect.add(0, productModelsIntent.getCategoryProduct());
// str.add(categoryName); }
// } // str.add("SELECT CATEGORY");
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;
...@@ -41,6 +42,10 @@ public class LoginActivity extends AppCompatActivity { ...@@ -41,6 +42,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;
MaterialTextView tvForgotPassword; MaterialTextView tvForgotPassword;
...@@ -100,6 +105,7 @@ public class LoginActivity extends AppCompatActivity { ...@@ -100,6 +105,7 @@ public class LoginActivity extends AppCompatActivity {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
loginState = new LoginState(LoginActivity.this, mainViewModels); loginState = new LoginState(LoginActivity.this, mainViewModels);
loginState.setCancelable(false);
loginState.show(getSupportFragmentManager(), loginState.getTag()); loginState.show(getSupportFragmentManager(), loginState.getTag());
} }
}); });
...@@ -108,6 +114,7 @@ public class LoginActivity extends AppCompatActivity { ...@@ -108,6 +114,7 @@ public class LoginActivity extends AppCompatActivity {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
registerState = new RegisterState(LoginActivity.this,mainViewModels); registerState = new RegisterState(LoginActivity.this,mainViewModels);
registerState.setCancelable(false);
registerState.show(getSupportFragmentManager(),registerState.getTag()); registerState.show(getSupportFragmentManager(),registerState.getTag());
} }
}); });
......
...@@ -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,6 +112,7 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -112,6 +112,7 @@ 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");
...@@ -121,79 +122,47 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -121,79 +122,47 @@ public class LoginState extends BottomSheetDialogFragment {
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 {
{
/** setAllLayoutToFalse();
* Jika tombol sign in ditekan
*
* nonaktifkan semua form */
bar.setVisibility(View.VISIBLE);
loginButton.setText("");
sheetDialog.setCancelable(false);
username.setEnabled(false);
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);
*/
if (usersModelsDataResponse.getStatusData()) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(SplashScreen.SESSION, true);
if(editor.commit()){
startActivity(new Intent(context, MainActivity.class));
}
// redirect ke home
// set progress bar jadi nonaktif switch (usersModelsDataResponse.getMessageData().toLowerCase()) {
bar.setVisibility(View.GONE);
// munculkan tulisan default di button sign in
loginButton.setText(DEFAULT_LOGIN_NAME);
// ubah sheet dialog jadi tidak bisa di slide atau cancel case "invalid username or password":
sheetDialog.setCancelable(true); setAllLayoutToTrue();
errUserPass(customLayout);
break;
// set form jadi enable case "please activate your email first":
username.setEnabled(true); setAllLayoutToTrue();
password.setEnabled(true); activateEmail(customLayout);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
} else { default:
/** break;
* Jika response atau data tidak cocok }
*/
bar.setVisibility(View.GONE); if (usersModelsDataResponse.getStatusData()) {
loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true); SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(SplashScreen.SESSION, true);
final View customLayout = getLayoutInflater() sheetDialog.dismiss();
.inflate(R.layout.alert_dialog, null); if(editor.commit()){
startActivity(new Intent(context, MainActivity.class));
getActivity().finish();
}
// tampilkan alert dialog setAllLayoutToTrue();
utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Wrong Username or Password",
"The username or password is incorrect. Please try again!",
"Try Again")
.show();
utils.setListener(Dialog::dismiss);
username.setEnabled(true);
password.setEnabled(true);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
} }
} else { } else {
bar.setVisibility(View.VISIBLE); bar.setVisibility(View.VISIBLE);
...@@ -204,4 +173,69 @@ public class LoginState extends BottomSheetDialogFragment { ...@@ -204,4 +173,69 @@ public class LoginState extends BottomSheetDialogFragment {
} }
loginButton.setText(DEFAULT_LOGIN_NAME); loginButton.setText(DEFAULT_LOGIN_NAME);
} }
private void setAllLayoutToTrue() {
bar.setVisibility(View.GONE);
loginButton.setText(DEFAULT_LOGIN_NAME);
sheetDialog.setCancelable(true);
username.setEnabled(true);
password.setEnabled(true);
loginButton.setEnabled(true);
closeBtn.setEnabled(true);
}
private void setAllLayoutToFalse() {
bar.setVisibility(View.VISIBLE);
loginButton.setText("");
sheetDialog.setCancelable(false);
username.setEnabled(false);
password.setEnabled(false);
loginButton.setEnabled(false);
closeBtn.setEnabled(false);
}
private void activateEmail(View customLayout) {
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();
}
@Override
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) {
utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Wrong Username or Password",
"The username or password is incorrect. Please try again!",
"Try Again")
.show();
utils.setListener(new Utils.DialogListener() {
@Override
public void onClickDisimiss(AlertDialog alertDialog) {
alertDialog.dismiss();
}
@Override
public void onClickLink(AlertDialog alertDialog) {
}
});
}
} }
...@@ -201,7 +201,6 @@ public class MainActivity extends AppCompatActivity { ...@@ -201,7 +201,6 @@ public class MainActivity extends AppCompatActivity {
}); });
} }
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
...@@ -339,7 +338,7 @@ public class MainActivity extends AppCompatActivity { ...@@ -339,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);
...@@ -551,4 +550,10 @@ public class MainActivity extends AppCompatActivity { ...@@ -551,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
...@@ -5,6 +5,8 @@ import android.content.Context; ...@@ -5,6 +5,8 @@ import android.content.Context;
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.text.Editable;
import android.text.TextWatcher;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -89,7 +91,9 @@ public class RegisterState extends BottomSheetDialogFragment { ...@@ -89,7 +91,9 @@ public class RegisterState extends BottomSheetDialogFragment {
registerButton.setOnClickListener(new View.OnClickListener() { registerButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
mainViewModels.postRegis(new UsersModels(username.getText().toString(),email.getText().toString(),password.getText().toString(),repassword.getText().toString())); mainViewModels.postRegis(new UsersModels(username.getText().toString(),
email.getText().toString(),password.getText().toString(),
repassword.getText().toString()));
} }
}); });
......
...@@ -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,7 +187,8 @@ public class MainViewModels extends ViewModel { ...@@ -187,7 +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("REGISTER", "onResponse: "+utils.convertGson(response.body()));
usersRegister.setValue(response.body());
} }
@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,22 +45,27 @@ ...@@ -45,22 +45,27 @@
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<View <LinearLayout
android:id="@+id/divider"
android:layout_marginTop="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="wrap_content"
style="@style/Divider.Horizontal" android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@id/cvAlertDialog"/> app:layout_constraintTop_toBottomOf="@id/cvAlertDialog">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/cvAlertOnClick" android:id="@+id/cvAlertOnClick"
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:visibility="gone"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true">
app:layout_constraintTop_toBottomOf="@id/divider">
<View
android:id="@+id/divider"
android:layout_marginTop="10dp"
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/tvTextBtn"
...@@ -68,9 +73,39 @@ ...@@ -68,9 +73,39 @@
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:textColor="#3949AB"
android:textFontWeight="600"
android:paddingVertical="15dp"
android:gravity="center"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvAlertOnClick2"
app:cardCornerRadius="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:visibility="gone"
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
android:id="@+id/tvTextBtn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Coba Lagi"
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