Commit ba5b42cb authored by fauzi's avatar fauzi

Merge branch 'master' of https://git.mdd.co.id:44195/muhammadsuryono/meser into dev

parents 1811b1dc c2255c83
......@@ -63,4 +63,12 @@ dependencies {
implementation 'com.google.zxing:core:3.3.2'
implementation 'com.github.florent37:expansionpanel:1.2.4'
implementation ('com.alimuzaffar.lib:pinentryedittext:1.3.10') {
// Exclude is only needed if you already have
// any of the following as a dependency in your project.
exclude group: 'com.android.support', module: 'support-v4'
exclude group: 'com.android.support', module: 'appcompat-v7'
exclude group: 'com.android.support', module: 'support-v13'
}
}
\ No newline at end of file
......@@ -23,8 +23,9 @@
<activity android:name=".MethodePayment"/>
<activity android:name=".ScannerNfc"/>
<activity android:name=".TransactionDetail"/>
<activity android:name=".ForgotPasswordActivity"
android:windowSoftInputMode="adjustResize"></activity>
<activity
android:name=".ForgotPasswordActivity"
android:windowSoftInputMode="adjustResize|stateHidden" />
<activity android:name=".RegisterActivity" />
<activity android:name=".TransactionActivity" />
<activity
......
......@@ -168,49 +168,33 @@ public class BottomSheets extends BottomSheetDialogFragment {
if (statusUpdatePayment == 0){
paymentsModels1.setOrderId(sharedPreferences.getString(ORDER_ID, ""));
paymentService.postFromCart(paymentsModels1).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("CASH_0", "onResponse: "+utils.convertGson(response.body()));
if (response.body() != null){
SharedPreferences.Editor editor = PaymentActivity.sharedPreferences.edit();
editor.putBoolean(CHECKOUT, false);
editor.putString(ORDER_ID, "");
if (editor.commit()){
Intent i = new Intent(getActivity(), MainActivity.class);
view.getContext().startActivity(i);
}
}
}
@Override
public void onFailure(Call<DataResponse<PaymentsModels<List<VaNumberModels>>>> call, Throwable t) {
}
});
view.getContext().startActivity(new Intent(getActivity(), TransactionDetail.class)
.putExtra(MethodePayment.VIA_CASH, paymentsModels1));
// paymentsModels1.setOrderId(sharedPreferences.getString(ORDER_ID, ""));
// paymentService.postFromCart(paymentsModels1).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("CASH_0", "onResponse: "+utils.convertGson(response.body()));
// if (response.body() != null){
// SharedPreferences.Editor editor = PaymentActivity.sharedPreferences.edit();
// editor.putBoolean(CHECKOUT, false);
// editor.putString(ORDER_ID, "");
// if (editor.commit()){
// Intent i = new Intent(getActivity(), MainActivity.class);
// view.getContext().startActivity(i);
// }
// }
// }
//
// @Override
// public void onFailure(Call<DataResponse<PaymentsModels<List<VaNumberModels>>>> call, Throwable t) {
//
// }
// });
}else{
paymentsModels.setTransactionStatus("success");
paymentsModels.setPaymentType("cash");
paymentService.postFromCartPending(paymentsModels.getOrderId(), paymentsModels).enqueue(new Callback<DataResponse>() {
@Override
public void onResponse(Call<DataResponse> call, Response<DataResponse> response) {
Log.i("CASH_1", "onResponse: "+utils.convertGson(paymentsModels));
if (response.body() != null){
SharedPreferences.Editor editor = PaymentActivity.sharedPreferences.edit();
editor.putBoolean(CHECKOUT, false);
editor.putString(ORDER_ID, "");
if (editor.commit()){
Intent i = new Intent(getActivity(), MainActivity.class);
view.getContext().startActivity(i);
}
}
}
@Override
public void onFailure(Call<DataResponse> call, Throwable t) {
}
});
}
......
......@@ -173,7 +173,6 @@ public class CartActivity extends AppCompatActivity {
}else{
utils.dialog(CartActivity.this,
true,
getLayoutInflater().inflate(R.layout.alert_dialog, null),
"Warning",
"Item stock does not meet").show();
}
......
......@@ -5,29 +5,43 @@ import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.RelativeLayout;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.alimuzaffar.lib.pin.PinEntryEditText;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.yono.messeripos.api.client.Client;
import com.yono.messeripos.api.service.UsersService;
import com.yono.messeripos.models.ForgotPasswordModels;
import com.yono.messeripos.models.MainViewModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.utils.Utils;
public class ForgotCode extends BottomSheetDialogFragment {
private static final String TAG = "FORGOT CODE";
Utils utils;
BottomSheetBehavior sheetBehavior;
BottomSheetDialog sheetDialog;
RelativeLayout fpCode;
RelativeLayout fpass;
View view;
PinEntryEditText pinEntry;
ForgotPasswordModels forgotPasswordModels;
Context context;
public ForgotCode(Context c) {
context = c;
public ForgotCode(Context context, ForgotPasswordModels forgotPasswordModels) {
this.context = context;
this.forgotPasswordModels = forgotPasswordModels;
}
@NonNull
......@@ -39,7 +53,7 @@ public class ForgotCode extends BottomSheetDialogFragment {
view = View.inflate(getContext(), R.layout.forgot_password_code, null);
// bindUI
fpCode = view.findViewById(R.id.fpCode);
fpass = view.findViewById(R.id.fpasswd);
// utils
utils = new Utils();
......@@ -53,7 +67,28 @@ public class ForgotCode extends BottomSheetDialogFragment {
// set max height
sheetBehavior.setPeekHeight(setHeight);
fpCode.setMinimumHeight(setHeight);
fpass.setMinimumHeight(setHeight);
utils = new Utils();
// Log.d(TAG, "onCreateDialog: "+utils.convertGson(mainViewModels));
pinEntry = view.findViewById(R.id.txt_pin_entry);
if (pinEntry != null) {
pinEntry.setOnPinEnteredListener(new PinEntryEditText.OnPinEnteredListener() {
@Override
public void onPinEntered(CharSequence str) {
if (str.toString().equals(forgotPasswordModels.getMessage())) {
ForgotPassword forgotPassword = new ForgotPassword(context, forgotPasswordModels);
forgotPassword.setCancelable(false);
forgotPassword.show(getActivity().getSupportFragmentManager(), "Forgot Confirm");
} else {
Toast.makeText(context, "FAIL", Toast.LENGTH_SHORT).show();
pinEntry.setText(null);
}
}
});
}
return sheetDialog;
}
......
package com.yono.messeripos;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.yono.messeripos.api.service.UsersService;
import com.yono.messeripos.models.ForgotPasswordModels;
import com.yono.messeripos.models.UsersModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.utils.Utils;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class ForgotPassword extends BottomSheetDialogFragment {
BottomSheetDialog sheetDialog;
BottomSheetBehavior sheetBehavior;
View view;
RelativeLayout resetPassUI;
Utils utils = new Utils();
TextInputEditText newPass, etConfPass;
MaterialButton btnReset;
Context context;
UsersService usersService;
ForgotPasswordModels forgotPasswordModels;
public ForgotPassword(Context context, ForgotPasswordModels forgotPasswordModels) {
this.context = context;
this.forgotPasswordModels = forgotPasswordModels;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
sheetDialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
// inflating layout
view = View.inflate(getContext(), R.layout.forgot_new_password, null);
// bindUI
resetPassUI = view.findViewById(R.id.resetPassword);
newPass = view.findViewById(R.id.etNewPassword);
etConfPass = view.findViewById(R.id.etPasswordConfirmation);
btnReset = view.findViewById(R.id.btnReset);
sheetDialog.setContentView(view);
sheetBehavior = BottomSheetBehavior.from((View) (view.getParent()));
// get Window size
int setHeight = utils.getWindowHeight() - (utils.getWindowHeight() * 5) / 100;
// set max height
sheetBehavior.setPeekHeight(setHeight);
resetPassUI.setMinimumHeight(setHeight);
btnReset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String newPas = newPass.getText().toString();
String conPass = etConfPass.getText().toString();
forgotPasswordModels.setPassword(newPass.getText().toString());
if (newPas.equals(conPass)) {
sheetDialog.dismiss();
usersService.resetPassword(forgotPasswordModels);
startActivity(new Intent(context, LoginActivity.class));
getActivity().finish();
}else {
utils.dialog(context, true, "password does't match", "Your password not match!").show();
}
}
});
return sheetDialog;
}
}
......@@ -3,25 +3,73 @@ package com.yono.messeripos;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.ImageButton;
import com.yono.messeripos.api.client.Client;
import com.yono.messeripos.api.service.UsersService;
import com.yono.messeripos.models.ForgotPasswordModels;
import com.yono.messeripos.models.MainViewModels;
import com.yono.messeripos.response.DataResponse;
import com.yono.messeripos.utils.Utils;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class ForgotPasswordActivity extends AppCompatActivity {
ImageButton btnReset;
ForgotCode forgotCode;
ForgotPasswordModels forgotPasswordModels;
Utils utils = new Utils();
Client client=new Client();
UsersService usersService;
EditText formForgot;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_forgot_password);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
forgotPasswordModels = new ForgotPasswordModels();
// bind UI
btnReset = findViewById(R.id.btn_reset_password);
formForgot = findViewById(R.id.forgotEmail);
btnReset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
forgotCode = new ForgotCode(ForgotPasswordActivity.this);
forgotCode.show(getSupportFragmentManager(), "forgot code");
forgotPasswordModels.setEmail(formForgot.getText().toString());
forgotPasswordModels.setMessage(utils.getRandomNumberString());
usersService = client.Client(UsersService.class);
usersService.postForgotPassword(forgotPasswordModels).enqueue(new Callback<DataResponse>() {
@Override
public void onResponse(Call<DataResponse> call, Response<DataResponse> response) {
forgotCode = new ForgotCode(ForgotPasswordActivity.this, forgotPasswordModels);
forgotCode.setCancelable(false);
forgotCode.show(getSupportFragmentManager(), "forgot code");
}
@Override
public void onFailure(Call<DataResponse> call, Throwable t) {
}
});
}
});
}
......
......@@ -144,19 +144,17 @@ public class LoginState extends BottomSheetDialogFragment {
.observe((LifecycleOwner) context, usersModelsDataResponse -> {
if (usersModelsDataResponse != null) {
final View customLayout = getLayoutInflater()
.inflate(R.layout.alert_dialog, null);
switch (usersModelsDataResponse.getMessageData().toLowerCase()) {
case "invalid username or password":
setAllLayoutToTrue();
errUserPass(customLayout);
errUserPass();
break;
case "please activate your email first":
setAllLayoutToTrue();
activateEmail(customLayout);
activateEmail();
default:
break;
......@@ -206,10 +204,10 @@ public class LoginState extends BottomSheetDialogFragment {
closeBtn.setEnabled(false);
}
private void activateEmail(View customLayout) {
private void activateEmail() {
utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Please Verify Email",
utils = new Utils();
utils.dialog(context, false, "Please Verify Email",
"Please verify your email before login",
"close", "verify")
.show();
......@@ -230,10 +228,10 @@ public class LoginState extends BottomSheetDialogFragment {
});
}
private void errUserPass(View customLayout) {
private void errUserPass() {
utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Wrong Username or Password",
utils = new Utils();
utils.dialog(context, false, "Wrong Username or Password",
"The username or password is incorrect. Please try again!",
"Try Again")
.show();
......
......@@ -7,15 +7,27 @@ import android.nfc.NfcAdapter;
import android.os.Build;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.card.MaterialCardView;
import com.google.gson.Gson;
import com.yono.messeripos.models.MainViewModels;
import com.yono.messeripos.models.MainViewModelsCart;
import com.yono.messeripos.models.PaymentsModels;
import com.yono.messeripos.models.ProductCartModels;
import com.yono.messeripos.utils.Utils;
import java.util.List;
import static com.yono.messeripos.MainActivity.ORDER_ID;
public class MethodePayment extends AppCompatActivity {
......@@ -24,6 +36,12 @@ public class MethodePayment extends AppCompatActivity {
MaterialCardView mcCash, mcBank, mcNfc;
BottomSheets bottomSheet;
NfcAdapter nfcAdapter;
MainViewModelsCart mainViewModels;
private long total = 0;
Utils utils = new Utils();
public static String METHODE_PAYMENT_DATA = "payment_methode_data";
public static String VIA_CASH = "via_cash";
public static String VIA_NFC = "via_nfc";
@Override
public void onCreate(Bundle savedInstanceState) {
......@@ -44,6 +62,7 @@ public class MethodePayment extends AppCompatActivity {
sharedPreferences = getSharedPreferences(MainActivity.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
paymentsModelsIntent = getIntent().getParcelableExtra(CartActivity.CODE_SEND_CHECKOUT_HISTORY);
paymentsModels = new PaymentsModels();
mainViewModels = new ViewModelProvider(MethodePayment.this).get(MainViewModelsCart.class);
MaterialToolbar toolbars = findViewById(R.id.appBarPaymentMethode);
......@@ -61,14 +80,75 @@ public class MethodePayment extends AppCompatActivity {
mcBank.setOnClickListener(view -> bank());
mcNfc.setOnClickListener(view -> nfc());
getdataCheckout();
Log.i("paymentModels", "onCreate: "+utils.convertGson(paymentsModels));
Log.i("paymentModelsIntent", "onCreate: "+utils.convertGson(paymentsModelsIntent));
}
private void getdataCheckout() {
if (paymentsModelsIntent == null){
mainViewModels.getCartById(sharedPreferences.getString(ORDER_ID, "")).observe(this, new Observer<List<ProductCartModels>>() {
@Override
public void onChanged(List<ProductCartModels> productCartModels) {
String js = new Gson().toJson(productCartModels);
Log.i("On payment", "onChanged: "+js);
for (ProductCartModels pd : productCartModels){
total = total + pd.getPrice_orders()*pd.getQuantity_orders();
}
paymentsModels.setOrderId(productCartModels.get(0).getId_orders());
paymentsModels.setGrossAmount(total);
Log.i("paymentModels", "onCreate: "+utils.convertGson(paymentsModels));
}
});
}else{
mainViewModels.getCartById(paymentsModelsIntent.getOrderId()).observe(this, new Observer<List<ProductCartModels>>() {
@Override
public void onChanged(List<ProductCartModels> productCartModels) {
String js = new Gson().toJson(productCartModels);
Log.i("On Intent_CHANGE", "onChanged: "+paymentsModelsIntent.getOrderId());
for (ProductCartModels pd : productCartModels){
total = total + pd.getPrice_orders()*pd.getQuantity_orders();
}
paymentsModelsIntent.setOrderId(productCartModels.get(0).getId_orders());
paymentsModelsIntent.setGrossAmount(total);
Log.i("paymentModelsIntent", "onCreate: "+utils.convertGson(paymentsModelsIntent));
// if (productCartModels.size() != 0){
// getSupportActionBar().setTitle(productCartModels.get(0).getId_orders());
// paymentsModelsIntent.setOrderId(productCartModels.get(0).getId_orders());
// paymentsModelsIntent.setGrossAmount(total);
// checkoutAdapter.setCheckoutAdapter(PaymentActivity.this, productCartModels);
// recyclerView.setLayoutManager(new LinearLayoutManager(PaymentActivity.this, RecyclerView.VERTICAL, false));
// recyclerView.setAdapter(checkoutAdapter);
// recyclerView.addItemDecoration(dividerItemDecoration);
//// grandTotal.setText(utils.convertPrice("Rp. ", total));
// }
}
});
}
}
private void nfc() {
startActivity(new Intent(MethodePayment.this, ScannerNfc.class));
if (paymentsModelsIntent == null){
startActivity(new Intent(MethodePayment.this, ScannerNfc.class)
.putExtra(VIA_NFC, paymentsModels));
}
}
private void bank() {
startActivity(new Intent(MethodePayment.this, PaymentActivity.class));
if (paymentsModelsIntent == null){
paymentsModels.setPaymentType("nfc");
startActivity(new Intent(MethodePayment.this, PaymentActivity.class)
.putExtra(METHODE_PAYMENT_DATA, paymentsModels));
}
}
private void cash() {
......
......@@ -70,6 +70,7 @@ public class PaymentActivity extends AppCompatActivity {
BottomSheetBehavior bottomSheetBank;
RelativeLayout qrcodeLayoutBank;
PaymentsModels paymentsModelsIntent;
public static String PAYMENT_VIA_BANK = "payment_via_bank";
@Override
......@@ -86,7 +87,9 @@ public class PaymentActivity extends AppCompatActivity {
recyclerView = findViewById(R.id.rvPayment);
sharedPreferences = getSharedPreferences(MainActivity.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
paymentsModelsIntent = getIntent().getParcelableExtra(CartActivity.CODE_SEND_CHECKOUT_HISTORY);
paymentsModelsIntent = getIntent().getParcelableExtra(MethodePayment.METHODE_PAYMENT_DATA);
Log.i("OKE", "onCreate: "+utils.convertGson(paymentsModelsIntent));
paymentsModels = new PaymentsModels();
......@@ -173,11 +176,15 @@ public class PaymentActivity extends AppCompatActivity {
PaymentAdapter adapter = new PaymentAdapter(paymentResponses, this);
rvPayment.setAdapter(adapter);
btnPay = findViewById(R.id.btnPay);
// btnPay = findViewById(R.id.btnPay);
adapter.setListener(paymentResponse -> {
methodPay = paymentResponse.getBank();
startActivity(new Intent(PaymentActivity.this, TransactionDetail.class));
paymentsModelsIntent.setBank(methodPay);
paymentsModelsIntent.setPaymentType("bank_transfer");
Log.i("SENDING", "onCreate: "+utils.convertGson(paymentsModelsIntent));
startActivity(new Intent(PaymentActivity.this, TransactionDetail.class)
.putExtra(PAYMENT_VIA_BANK, paymentsModelsIntent));
// btnPay.setEnabled(true);
});
......
......@@ -180,10 +180,8 @@ public class RegisterState extends BottomSheetDialogFragment {
* */
setAllLayoutToFalse();
if (usersModelsDataResponse != null) {
final View customLayout = getLayoutInflater()
.inflate(R.layout.alert_dialog, null);
activateEmail(customLayout);
activateEmail();
setAllLayoutToTrue();
}
}
......@@ -201,9 +199,7 @@ public class RegisterState extends BottomSheetDialogFragment {
return sheetDialog2;
}
private void
setAllLayoutToTrue() {
private void setAllLayoutToTrue() {
pbReg.setVisibility(View.GONE);
registerButton.setText(DEFAULT_REGISTER);
sheetDialog2.setCancelable(true);
......@@ -226,10 +222,10 @@ public class RegisterState extends BottomSheetDialogFragment {
}
private void activateEmail(View customLayout) {
private void activateEmail() {
utils = new Utils(customLayout);
utils.dialog(context, false, customLayout, "Please Verifiy Email",
utils = new Utils();
utils.dialog(context, false, "Please Verifiy Email",
"Please verify your email before login",
"close", "verify")
.show();
......
......@@ -2,7 +2,9 @@ package com.yono.messeripos;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
......@@ -24,8 +26,11 @@ import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProvider;
import com.yono.messeripos.R;
import com.yono.messeripos.models.MainViewModelsCart;
import com.yono.messeripos.models.PaymentsModels;
import com.yono.messeripos.nfc.parser.NdefMessageParser;
import com.yono.messeripos.nfc.record.ParsedNdefRecord;
import com.yono.messeripos.utils.Utils;
......@@ -38,6 +43,12 @@ public class ScannerNfc extends AppCompatActivity {
NfcAdapter nfcAdapter;
Utils utils = new Utils();
ProgressDialog progressDialog;
PaymentsModels paymentsModels;
MainViewModelsCart mainViewModelsCart;
public static final String MY_SHARED_NFC = "shared_nfc";
public static String getMySharedNfc;
public static final String NFC_ID = "nfcId";
SharedPreferences sharedPreferences, sharedPreferencesMain;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
......@@ -48,6 +59,11 @@ public class ScannerNfc extends AppCompatActivity {
progressDialog = new ProgressDialog(ScannerNfc.this);
progressDialog.setMessage("Loading...");
paymentsModels = getIntent().getParcelableExtra(MethodePayment.VIA_NFC);
mainViewModelsCart = new ViewModelProvider(this).get(MainViewModelsCart.class);
sharedPreferences = getSharedPreferences(MY_SHARED_NFC, Context.MODE_PRIVATE);
sharedPreferencesMain = getSharedPreferences(MainActivity.MY_SHARED_PREFERENCES, Context.MODE_PRIVATE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
......@@ -108,8 +124,14 @@ public class ScannerNfc extends AppCompatActivity {
NdefMessage msg = new NdefMessage(new NdefRecord[] {record});
msgs = new NdefMessage[] {msg};
Log.i("DUMPTAG", "resolveIntent: "+toDec(tag.getId()));
/**
* DISINI UNTUK SAVE KE DATABASE*/
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(NFC_ID, ""+toDec(tag.getId()));
if (editor.commit()){
paymentsModels.setOrderId(sharedPreferencesMain.getString(MainActivity.ORDER_ID, ""));
startActivity(new Intent(ScannerNfc.this, TransactionDetail.class)
.putExtra(MethodePayment.VIA_NFC, paymentsModels));
}
progressDialog.dismiss();
}
......
......@@ -18,4 +18,7 @@ public interface UsersService {
@POST(ApiHelper.VERSI_API_1+"forgot-password")
Call<DataResponse> postForgotPassword(@Body ForgotPasswordModels forgotPasswordModels);
@POST(ApiHelper.VERSI_API_1+"reset-password")
Call<DataResponse> resetPassword(@Body ForgotPasswordModels forgotPasswordModels);
}
......@@ -9,6 +9,9 @@ public class ForgotPasswordModels {
@SerializedName("message")
private String message;
@SerializedName("password")
private String password;
public ForgotPasswordModels() {
}
......@@ -32,4 +35,12 @@ public class ForgotPasswordModels {
public void setMessage(String message) {
this.message = message;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
......@@ -8,6 +8,7 @@ import android.graphics.BitmapFactory;
import android.os.Build;
import android.util.Base64;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
......@@ -224,12 +225,13 @@ public class Utils {
* Alert Dialog
* @param context
* @param cancelable
* @param view
* @return
*/
public AlertDialog dialog(Context context, Boolean cancelable, View view) {
public AlertDialog dialog(Context context, Boolean cancelable) {
CardView btCard = view.findViewById(R.id.cvAlertOnClick);
final View view = View.inflate(context, R.layout.alert_dialog, null);
CardView btnCard = view.findViewById(R.id.cvAlertOnClick);
AlertDialog.Builder builder = new AlertDialog.Builder(context)
.setCancelable(cancelable)
......@@ -242,10 +244,14 @@ public class Utils {
}
public AlertDialog dialog(Context context, Boolean cancelable, View view, @Nullable String titles) {
public AlertDialog dialog(Context context,
Boolean cancelable,
@Nullable String titles) {
final View view = View.inflate(context, R.layout.alert_dialog, null);
TextView title = view.findViewById(R.id.alertTitles);
CardView btCard = view.findViewById(R.id.cvAlertOnClick);
CardView btnCard = view.findViewById(R.id.cvAlertOnClick);
// set title and message
if (titles != null){
......@@ -263,7 +269,12 @@ public class Utils {
}
public AlertDialog dialog(Context context, Boolean cancelable, View view, @Nullable String titles, @Nullable String messages) {
public AlertDialog dialog(Context context,
Boolean cancelable,
@Nullable String titles,
@Nullable String messages) {
final View view = View.inflate(context, R.layout.alert_dialog, null);
TextView title = view.findViewById(R.id.alertTitles);
TextView message = view.findViewById(R.id.alertBody);
......@@ -290,16 +301,18 @@ public class Utils {
public AlertDialog dialog(Context context,
Boolean cancelable,
View view,
@Nullable String titles,
@Nullable String messages,
@Nullable String dismiss) {
final View view = View.inflate(context, R.layout.alert_dialog, null);
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);
......@@ -328,7 +341,6 @@ public class Utils {
public AlertDialog dialog(Context context,
Boolean cancelable,
View view,
@Nullable String titles,
@Nullable String messages,
@Nullable String dismiss,
......@@ -339,6 +351,8 @@ public class Utils {
* Button2 untuk link
*/
final View view = View.inflate(context, R.layout.alert_dialog, null);
TextView title = view.findViewById(R.id.alertTitles);
TextView message = view.findViewById(R.id.alertBody);
TextView button = view.findViewById(R.id.tvTextBtn);
......@@ -385,9 +399,9 @@ public class Utils {
// It will generate 6 digit random Number.
// from 0 to 999999
Random rnd = new Random();
int number = rnd.nextInt(999999);
int number = rnd.nextInt(9999);
// this will convert any number sequence into 6 character.
return String.format("%06d", number);
return String.format("%04d", number);
}
}
......@@ -77,7 +77,7 @@
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_mail_outline_black_24dp"
android:layout_marginEnd="20dp"
android:id="@+id/email"
android:id="@+id/forgotEmail"
android:layout_marginStart="20dp"
android:textSize="14sp"
android:drawablePadding="10dp"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
......@@ -16,13 +17,13 @@
app:tabIndicatorHeight="4dp"
app:tabTextColor="@color/colorWhite"
app:tabBackground="@color/colorPrimary"
app:layout_constraintTop_toBottomOf="@id/toolbar"
android:layout_below="@id/toolbar"
app:tabMode="fixed"/>
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tabLayout"/>
android:layout_below="@id/tabLayout"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
</RelativeLayout>
\ No newline at end of file
......@@ -18,7 +18,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/appbar"
android:layout_above="@id/btnPay"
android:overScrollMode="never"
android:scrollingCache="false"
android:fadingEdge="none"
......@@ -42,19 +41,19 @@
</RelativeLayout>
</ScrollView>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnPay"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="pay"
android:padding="15dp"
android:textSize="16sp"
android:enabled="false"
android:layout_margin="10dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
/>
<!-- <com.google.android.material.button.MaterialButton-->
<!-- android:id="@+id/btnPay"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="pay"-->
<!-- android:padding="15dp"-->
<!-- android:textSize="16sp"-->
<!-- android:enabled="false"-->
<!-- android:layout_margin="10dp"-->
<!-- android:layout_alignParentBottom="true"-->
<!-- android:layout_alignParentEnd="true"-->
<!-- android:layout_alignParentStart="true"-->
<!-- />-->
</RelativeLayout>
......
......@@ -21,6 +21,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingVertical="20dp"
android:orientation="vertical">
<TextView
......
......@@ -6,14 +6,14 @@
xmlns:tools="http://schemas.android.com/tools">
<include
android:id="@+id/appbarDetail"
android:id="@+id/appBarDetailTransaction"
layout="@layout/app_bar"/>
<com.google.android.material.card.MaterialCardView
android:id="@+id/methodePayment"
android:id="@+id/cvmethodePayment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/appbarDetail"
app:layout_constraintTop_toBottomOf="@id/appBarDetailTransaction"
app:cardElevation="2dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
......@@ -51,10 +51,88 @@
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/detailTransaksi"
android:id="@+id/cvdetailTransaksi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/methodePayment"
app:layout_constraintTop_toBottomOf="@id/cvmethodePayment"
app:cardElevation="2dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:padding="10dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_margin="10dp">
<TextView
android:id="@+id/titleDetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Transaction Detail"
android:textColor="@android:color/black"
android:textSize="18sp"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/lvDetail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/titleDetail"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/txtAdminFee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/lvDetail"
app:layout_constraintStart_toStartOf="parent"
android:text="Admin Fee"
android:textSize="12sp"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/adminFee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/lvDetail"
app:layout_constraintEnd_toEndOf="parent"
android:text="Rp. 0"
android:textSize="12sp"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/txtGross"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/txtAdminFee"
app:layout_constraintStart_toStartOf="parent"
android:text="Gross Amount"
android:textSize="18sp"
android:layout_marginTop="20dp"/>
<TextView
android:id="@+id/grossAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/adminFee"
app:layout_constraintEnd_toEndOf="parent"
android:text="Rp."
android:textSize="18sp"
android:layout_marginTop="10dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/cvMethodePaymentDetail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/cvdetailTransaksi"
app:cardElevation="2dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
......@@ -66,68 +144,52 @@
android:layout_margin="10dp">
<TextView
android:id="@+id/titleDetail"
android:id="@+id/txtMethode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Transaction Detail"
android:text="Payment Methode"
android:textColor="@android:color/black"
android:textSize="18sp"/>
<ListView
android:id="@+id/lvDetail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/titleDetail"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/txtAdminFee"
android:id="@+id/jenisMethod"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/lvDetail"
app:layout_constraintTop_toBottomOf="@id/txtMethode"
app:layout_constraintStart_toStartOf="parent"
android:text="Admin Fee"
android:textSize="12sp"
android:layout_marginTop="10dp"/>
android:textColor="@android:color/black"
android:layout_marginTop="20dp"
tools:text="@tools:sample/full_names"/>
<TextView
android:id="@+id/adminFee"
android:id="@+id/mtdGrossAmount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/lvDetail"
app:layout_constraintTop_toBottomOf="@id/txtMethode"
app:layout_constraintEnd_toEndOf="parent"
android:text="Admin Fee"
android:text=""
android:textSize="12sp"
android:layout_marginTop="10dp"
tools:ignore="DuplicateIds" />
<TextView
android:id="@+id/txtgrandTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/txtAdminFee"
app:layout_constraintStart_toStartOf="parent"
android:text="Gross Amount"
android:textSize="18sp"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/txtgrandTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/adminFee"
app:layout_constraintEnd_toEndOf="parent"
android:text="Admin Fee"
android:textSize="18sp"
android:layout_marginTop="10dp"
tools:ignore="DuplicateIds" />
android:textColor="@android:color/black"
android:layout_marginTop="20dp"
tools:text="@tools:sample/full_names"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnConfirm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Confirmation"
android:padding="15dp"
android:textSize="16sp"
android:layout_margin="10dp"
app:layout_constraintBottom_toBottomOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfCurrentPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="Current Password"
android:textColor="#fff"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
tools:ignore="MissingConstraints">
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etCurrentPassword"
<RelativeLayout
android:id="@+id/resetPassword"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:inputType="textPassword"
android:imeOptions="actionNext"
android:layout_height="wrap_content" />
android:layout_height="match_parent"
android:fitsSystemWindows="true">
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfNewPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="New Password"
android:textColor="#fff"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfNewPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="New Password"
android:textColor="#fff"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:layout_constraintTop_toBottomOf="@id/tfCurrentPassword">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etNewPassword"
android:layout_width="match_parent"
android:inputType="textPassword"
android:imeOptions="actionNext"
android:layout_height="wrap_content" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etNewPassword"
android:layout_width="match_parent"
android:inputType="textPassword"
android:imeOptions="actionNext"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfPasswordConfirmation"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="Password Confirmation"
android:textColor="#fff"
app:layout_constraintTop_toBottomOf="@id/tfNewPassword"
tools:layout_editor_absoluteX="10dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etPasswordConfirmation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionNext" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tfPasswordConfirmation"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:hint="Password Confirmation"
android:textColor="#fff"
android:layout_below="@id/tfNewPassword">
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etPasswordConfirmation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:imeOptions="actionNext" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnAdd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/add"
android:padding="16dp"
app:layout_constraintTop_toBottomOf="@id/tfPasswordConfirmation"
tools:ignore="MissingConstraints" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnReset"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/btn_reset_password"
android:padding="16dp"
android:layout_below="@id/tfPasswordConfirmation"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
</RelativeLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
\ No newline at end of file
......@@ -8,105 +8,47 @@
android:layout_width="match_parent">
<RelativeLayout
android:id="@+id/fpCode"
android:id="@+id/fpasswd"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<androidx.cardview.widget.CardView
android:id="@+id/verifCode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit_text_1"
android:inputType="number"
android:maxLength="1"
android:maxLines="1"
android:gravity="center"
android:padding="20dp"
android:nextFocusRight="@id/edit_text_2"
android:singleLine="true"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/edit_text_2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:ignore="Autofill,LabelFor"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit_text_2"
android:inputType="number"
android:maxLength="1"
android:maxLines="1"
android:gravity="center"
android:nextFocusRight="@id/edit_text_3"
android:padding="20dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/edit_text_3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edit_text_1"
tools:ignore="Autofill,LabelFor"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit_text_3"
android:inputType="number"
android:maxLength="1"
android:maxLines="1"
android:gravity="center"
android:padding="20dp"
android:nextFocusRight="@id/edit_text_4"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/edit_text_4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edit_text_2"
tools:ignore="Autofill,LabelFor"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit_text_4"
android:inputType="number"
android:maxLength="1"
android:maxLines="1"
android:gravity="center"
android:padding="20dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/edit_text_3"
tools:ignore="Autofill,LabelFor"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<!-- <androidx.cardview.widget.CardView-->
<!-- android:layout_alignParentBottom="true"-->
<!-- android:layout_below="@id/verifCode"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content">-->
<!-- -->
<!-- <GridLayout-->
<!-- android:columnCount="3"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content">-->
<!-- -->
<!-- <com.google.android.material.button.MaterialButton-->
<!-- android:text="1"/>-->
<!-- -->
<!-- </GridLayout>-->
<!-- </androidx.cardview.widget.CardView>-->
</RelativeLayout>
android:paddingHorizontal="70dp"
android:layout_marginTop="100dp"
android:layout_height="match_parent">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/insertCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Insert Code"
android:textStyle="bold"
android:textSize="18sp"
android:layout_marginBottom="20dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"/>
<com.alimuzaffar.lib.pin.PinEntryEditText
android:id="@+id/txt_pin_entry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cursorVisible="false"
android:digits="1234567890"
android:inputType="number"
android:maxLength="4"
android:textIsSelectable="false"
android:textSize="20sp"
android:layout_marginBottom="20dp"
app:pinAnimationType="fromBottom"
app:pinTextBottomPadding="20dp"
android:layoutDirection="ltr"
android:layout_below="@id/insertCode"
/>
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="enter the code that has been sent to the email"
android:layout_below="@id/txt_pin_entry"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>
\ No newline at end of file
......@@ -19,7 +19,7 @@
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_height="50dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......@@ -27,15 +27,14 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp">
android:layout_height="match_parent">
<TextView
android:id="@+id/itemCheckout"
android:layout_width="200dp"
android:layout_height="wrap_content"
tools:text="@tools:sample/full_names"
android:textSize="20sp"
android:textSize="12sp"
android:lines="3"
android:text="@{checkout.product_name_orders.toUpperCase()+` x `+checkout.quantity_orders}"
android:layout_margin="10dp"
......@@ -47,9 +46,8 @@
android:layout_width="200dp"
android:layout_height="wrap_content"
tools:text="@tools:sample/full_names"
android:textSize="20sp"
android:textSize="12sp"
android:text="@{subtotal}"
android:textColor="@android:color/black"
android:layout_margin="10dp"
app:layout_constraintStart_toEndOf="@id/itemCheckout"
app:layout_constraintTop_toTopOf="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