From 7e2a58963611aa7f633363c63ae806748500a10e Mon Sep 17 00:00:00 2001 From: MooN <56061215+MgKyawLay@users.noreply.github.com> Date: Mon, 17 Nov 2025 01:41:45 +0630 Subject: [PATCH] ui fix --- .../com/utsmm/kbz/ui/kpay/KPayViewModel.java | 8 + .../utsmm/kbz/ui/qr_pay/QRPayFragment.java | 12 +- .../kbz/ui/qr_pay/QRRefundDetailFragment.java | 27 +- .../utsmm/kbz/ui/qr_pay/QRRefundFragment.java | 15 +- .../ui/qr_pay/QRRefundProcessFragment.java | 2 +- .../res/layout/fragment_dashboard_screen.xml | 279 +++++++-------- .../layout/fragment_dashboard_screen_old.xml | 333 ++++++++++++++++++ app/src/main/res/layout/fragment_qr_pay.xml | 4 +- .../main/res/layout/fragment_qr_refund.xml | 153 ++++++-- .../main/res/layout/item_qr_pay_button.xml | 13 +- app/src/main/res/layout/item_qr_refund.xml | 25 +- .../main/res/navigation/mobile_navigation.xml | 44 +-- app/src/main/res/values/strings.xml | 1 + 13 files changed, 661 insertions(+), 255 deletions(-) create mode 100644 app/src/main/res/layout/fragment_dashboard_screen_old.xml diff --git a/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java b/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java index 2f93a01..4d09479 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java +++ b/app/src/main/java/com/utsmm/kbz/ui/kpay/KPayViewModel.java @@ -13,6 +13,7 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import com.kizzy.xpay.util.Sign; +import com.utsmm.kbz.ui.qr_pay.QRRefund; import com.utsmyanmar.baselib.network.model.DemoQRRequest; import com.utsmyanmar.baselib.network.model.DemoQRResponse; import com.utsmyanmar.baselib.network.model.DemoQRReturnRequest; @@ -296,6 +297,7 @@ public class KPayViewModel extends ViewModel { private TradeData tradeData; private PayDetail payDetail; + private QRRefund qrRefund; public void setTradeData(TradeData tradeData){ this.tradeData = tradeData; @@ -309,6 +311,12 @@ public class KPayViewModel extends ViewModel { public void setPayDetail(PayDetail payDetail) { this.payDetail = payDetail; } + public void setQrRefund(QRRefund qrRefund) { + this.qrRefund = qrRefund; + } + public QRRefund getQrRefund() { + return qrRefund; + } public PayDetail getPayDetail() { return payDetail; } diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java index c11ffb7..b901e53 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRPayFragment.java @@ -42,7 +42,7 @@ public class QRPayFragment extends DataBindingFragment { @Override public void onResume() { super.onResume(); - setToolBarTitleWithBackIcon("QR Pay"); + setToolBarTitleWithBackIcon("MMQR"); } @Override @@ -56,7 +56,7 @@ public class QRPayFragment extends DataBindingFragment { protected DataBindingConfig getDataBindingConfig() { List features = List.of( - new QRPayItem("Generate QR", R.drawable.ic_qr_pay), + new QRPayItem("Sale", R.drawable.ic_qr_pay), new QRPayItem("Refund", R.drawable.ic_refund), new QRPayItem("History", R.drawable.ic_history) ); @@ -64,7 +64,7 @@ public class QRPayFragment extends DataBindingFragment { QRPayAdapter adapter = new QRPayAdapter(features, position -> { QRPayItem selectedBtn = features.get(position); switch (selectedBtn.title){ - case "Generate QR": + case "Sale": onClickQRPay(); break; case "Refund": @@ -82,12 +82,6 @@ public class QRPayFragment extends DataBindingFragment { return config; } - public class ClickEvent { - public void onGenerateQRClick() { onClickQRPay(); } - public void onRefundClick() { onClickRefund(); } - public void onHistoryClick() { onClickHistory(); } - } - @Override protected int currentId() { return currentId; diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java index c724054..92e489f 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundDetailFragment.java @@ -2,6 +2,7 @@ package com.utsmm.kbz.ui.qr_pay; import android.os.Bundle; import android.text.InputFilter; +import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.RadioButton; @@ -24,12 +25,7 @@ import com.utsmm.kbz.config.Constants; import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; import com.utsmm.kbz.util.DecimalDigitsInputFilter; import com.utsmm.kbz.util.TransactionUtil; -import com.utsmm.kbz.util.ecr.CoreUtils; -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; -import io.reactivex.rxjava3.disposables.CompositeDisposable; -import io.reactivex.rxjava3.schedulers.Schedulers; -import com.utsmyanmar.paylibs.utils.LogUtil; public class QRRefundDetailFragment extends DataBindingFragment { @@ -56,6 +52,7 @@ public class QRRefundDetailFragment extends DataBindingFragment { private static final int hostId = Constants.NAV_HOST_ID; private static final int currentId = R.id.qrRefundDetail; + @Override protected void initViewModel() { sharedViewModel = getFragmentScopeViewModel(SharedViewModel.class); @@ -76,7 +73,7 @@ public class QRRefundDetailFragment extends DataBindingFragment { @Override protected int hostId() { - return Constants.NAV_HOST_ID; + return hostId; } @Override @@ -95,12 +92,10 @@ public class QRRefundDetailFragment extends DataBindingFragment { @Override public void onResume() { super.onResume(); - setToolBarTitleWithBackIcon("KPay Refund"); + setToolBarTitleWithBackIcon("QR Refund"); kPayViewModel.invalidAmountMsg.setValue(""); } - - @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); @@ -209,22 +204,18 @@ public class QRRefundDetailFragment extends DataBindingFragment { QRRefund qrRefund = new QRRefund(referenceNo, refundAmountStr, originalAmountStr, refundReason); -// kPayViewModel.setQrRefund(qrRefund); + kPayViewModel.setQrRefund(qrRefund); } else { QRRefund qrRefund = new QRRefund(referenceNo, "0", etOriginalAmount.getText().toString().trim(), refundReason); -// kPayViewModel.setQrRefund(qrRefund); + kPayViewModel.setQrRefund(qrRefund); } - + sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND); kPayViewModel.setPayDetail(payDetail); - - navigateToPassword(); + routeId = R.id.action_qrRefundDetail_inputPasswordFragment; + safeNavigateToRouteId(); } } - public void navigateToPassword(){ - routeId = R.id.action_QRRefundDetail_to_inputPasswordFragment; - safeNavigateToRouteId(); - } } diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundFragment.java index ef23d70..c82c64c 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundFragment.java @@ -3,7 +3,9 @@ package com.utsmm.kbz.ui.qr_pay; import android.os.Bundle; import android.view.View; import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.RadioGroup; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -32,6 +34,7 @@ public class QRRefundFragment extends DataBindingFragment { private QRPayViewModel qrPayViewModel; private SharedViewModel sharedViewModel; private QRRefundViewAdapter adapter; + private LinearLayout emptyStateView; @Override protected int currentId() { @@ -75,6 +78,7 @@ public class QRRefundFragment extends DataBindingFragment { RecyclerView recyclerView = view.findViewById(R.id.qrRefundHistory); recyclerView.setLayoutManager(new LinearLayoutManager(requireContext())); recyclerView.setAdapter(adapter); + emptyStateView = view.findViewById(R.id.emptyStateSectionRefund); observeData(); } @@ -86,7 +90,14 @@ public class QRRefundFragment extends DataBindingFragment { if (adapter == null) { return; } - adapter.setData(list); + if(list == null || list.isEmpty()){ + emptyStateView.setVisibility(View.VISIBLE); + getView().findViewById(R.id.qrRefundHistory).setVisibility(View.GONE); + }else{ + emptyStateView.setVisibility(View.GONE); + getView().findViewById(R.id.qrRefundHistory).setVisibility(View.VISIBLE); + adapter.setData(list); + } } public class ClickEvent { @@ -99,6 +110,6 @@ public class QRRefundFragment extends DataBindingFragment { Bundle bundle = new Bundle(); bundle.putSerializable("payDetail", payDetail); routeId = R.id.action_qrRefundList_to_qrRefundDetail; - NavHostFragment.findNavController(this).navigate(R.id.action_qrRefundList_to_qrRefundDetail, bundle); + NavHostFragment.findNavController(this).navigate(routeId, bundle); } } diff --git a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java index 97fc368..f2e680e 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/qr_pay/QRRefundProcessFragment.java @@ -88,7 +88,7 @@ public class QRRefundProcessFragment extends DataBindingFragment { private void initData() { payDetail = kPayViewModel.getPayDetail(); -// qrRefund = kPayViewModel.getQrRefund(); + qrRefund = kPayViewModel.getQrRefund(); } private void processKPayRefund(String referenceNo, String refundAmount, String originalAmount, String reason) { diff --git a/app/src/main/res/layout/fragment_dashboard_screen.xml b/app/src/main/res/layout/fragment_dashboard_screen.xml index c828425..e188d6a 100644 --- a/app/src/main/res/layout/fragment_dashboard_screen.xml +++ b/app/src/main/res/layout/fragment_dashboard_screen.xml @@ -28,14 +28,14 @@ + android:background="@color/colorPrimary"> - + + /> - + + + - - + + + app:layout_constraintEnd_toStartOf="@id/settlementMenuCard" + app:layout_constraintWidth_percent="0.45" + app:layout_constraintHeight_percent="0.45"> + android:orientation="vertical" + android:padding="12dp" + android:background="@color/white"> + app:tint="@color/colorPrimary" /> - - - - - - - - - - - - - - + + app:layout_constraintWidth_percent="0.45" + app:layout_constraintHeight_percent="0.45"> + android:orientation="vertical" + android:padding="12dp" + android:background="@color/white"> + android:layout_margin="6dp" + app:tint="@color/colorPrimary" /> - - - - + + + app:layout_constraintEnd_toStartOf="@id/otherFeaturesCard" + app:layout_constraintWidth_percent="0.45" + app:layout_constraintHeight_percent="0.45"> + android:orientation="vertical" + android:padding="12dp" + android:background="@color/white"> + android:layout_width="60dp" + android:layout_height="60dp" + android:src="@drawable/ic_signon" + android:layout_margin="6dp" + app:tint="@color/colorPrimary" /> - - - + + + app:layout_constraintWidth_percent="0.45" + app:layout_constraintHeight_percent="0.45"> + android:orientation="vertical" + android:padding="12dp" + android:background="@color/white"> + android:layout_margin="6dp" + app:tint="@color/colorPrimary" /> - - - + + + + + + + + + + + + + - \ No newline at end of file + + + diff --git a/app/src/main/res/layout/fragment_dashboard_screen_old.xml b/app/src/main/res/layout/fragment_dashboard_screen_old.xml new file mode 100644 index 0000000..fad586e --- /dev/null +++ b/app/src/main/res/layout/fragment_dashboard_screen_old.xml @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_qr_pay.xml b/app/src/main/res/layout/fragment_qr_pay.xml index 47caf15..07fb1e4 100644 --- a/app/src/main/res/layout/fragment_qr_pay.xml +++ b/app/src/main/res/layout/fragment_qr_pay.xml @@ -3,8 +3,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:bind="http://schemas.android.com/tools"> - - + android:background="@color/colorPrimary"> + xmlns:tools="http://schemas.android.com/tools"> + - - - - + - + android:layout_height="match_parent" + android:background="@color/white"> - + + + + + + + + + + + + + + + + + - - + + android:orientation="vertical" + android:gravity="center" + android:visibility="@{manageViewModel.reprintLayoutBtmVisibility}" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent"> - + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_qr_pay_button.xml b/app/src/main/res/layout/item_qr_pay_button.xml index d84fe47..1c8bb7f 100644 --- a/app/src/main/res/layout/item_qr_pay_button.xml +++ b/app/src/main/res/layout/item_qr_pay_button.xml @@ -23,14 +23,16 @@ app:cardElevation="6dp" android:foreground="?android:attr/selectableItemBackground" android:clickable="true" - android:focusable="true"> + android:focusable="true" + android:background="@color/white" + > - diff --git a/app/src/main/res/layout/item_qr_refund.xml b/app/src/main/res/layout/item_qr_refund.xml index 9a72782..244506f 100644 --- a/app/src/main/res/layout/item_qr_refund.xml +++ b/app/src/main/res/layout/item_qr_refund.xml @@ -18,10 +18,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="4dp" + android:layout_margin="16dp" android:layout_marginVertical="6dp" app:cardCornerRadius="12dp" app:cardElevation="0dp" - app:cardBackgroundColor="@color/colorPrimary" + app:cardBackgroundColor="@color/white" android:clickable="true" android:focusable="true" android:foreground="?android:attr/selectableItemBackground" @@ -32,16 +33,17 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="2dp" - android:background="@drawable/bg_edittext_primary_border" android:orientation="horizontal" + android:background="@drawable/bg_edittext_primary_border" android:padding="16dp"> + @@ -66,7 +68,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:text="@{POSUtil.getInstance().getTransName(payDetail)}" - android:textColor="@color/white" + android:textColor="@color/colorPrimary" android:textSize="16sp" android:textStyle="bold" android:fontFamily="sans-serif-medium" @@ -77,7 +79,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{POSUtil.getInstance().checkMinusSign(payDetail.transactionType)+POSUtil.getInstance().getDecimalAmountSeparatorFormat(payDetail.amount) + ` `+POSUtil.getInstance().currencyCodeToText(payDetail.currencyCode)}" - android:textColor="@color/white" + android:textColor="@color/colorPrimary" android:textSize="16sp" android:textStyle="bold" android:fontFamily="sans-serif-medium" @@ -90,7 +92,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{POSUtil.getInstance().convertDateFormatByDateString(payDetail.transDate)}" - android:textColor="@color/white" + android:textColor="@color/colorPrimary" android:textSize="14sp" android:alpha="0.8" android:fontFamily="sans-serif" @@ -102,7 +104,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{POSUtil.getInstance().getCardNumMasking(payDetail.cardNo)}" - android:textColor="@color/white" + android:textColor="@color/colorPrimary" android:textSize="14sp" android:alpha="0.8" android:fontFamily="monospace" @@ -121,7 +123,7 @@ android:layout_height="wrap_content" android:layout_weight="1" app:isTrace="@{payDetail}" - android:textColor="@color/white" + android:textColor="@color/colorPrimary" android:textSize="13sp" android:alpha="0.7" android:fontFamily="monospace" @@ -133,15 +135,13 @@ android:layout_height="wrap_content" android:layout_weight="1" android:text="@{`RRN:`+payDetail.referNo}" - android:textColor="@color/white" + android:textColor="@color/colorPrimary" android:textSize="13sp" android:alpha="0.7" android:fontFamily="monospace" android:textAlignment="textEnd" tools:text="RRN:233001786242" /> - - @@ -149,11 +149,10 @@ android:layout_width="16dp" android:layout_height="16dp" android:src="@drawable/ic_right_arrow" - app:tint="@color/white" + app:tint="@color/colorPrimary" android:alpha="0.6" android:layout_gravity="center_vertical" android:layout_marginStart="8dp" /> - diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 48c299f..ec311e3 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -1108,20 +1108,7 @@ android:id="@+id/action_qrFragment_to_qr_refund_list" app:destination="@id/qrRefundList" /> - - - - - - - - - - + - - - - - + + + + - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9f38d88..2da33e3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -516,6 +516,7 @@ Error Occured Error Occured Open navigation drawer + No History yet UTS YOMA Bank