From 0ad0bc17b75500e9af8eb4b8a6c40867899b8cbf Mon Sep 17 00:00:00 2001 From: MooN <56061215+MgKyawLay@users.noreply.github.com> Date: Thu, 15 Jan 2026 23:57:04 +0630 Subject: [PATCH] keyboard auto hide and search by trace no fix --- .../ReprintAnyTransactionFragment.java | 13 ++---- .../kbz/ui/qr_pay/QRRefundDetailFragment.java | 2 + .../utsmm/kbz/ui/qr_pay/QRRefundFragment.java | 13 +++--- .../utsmm/kbz/util/helper/KeyboardHelper.java | 44 +++++++++++++++++++ 4 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/com/utsmm/kbz/util/helper/KeyboardHelper.java diff --git a/app/src/main/java/com/utsmm/kbz/ui/management/ReprintAnyTransactionFragment.java b/app/src/main/java/com/utsmm/kbz/ui/management/ReprintAnyTransactionFragment.java index a001d97..bb15a74 100644 --- a/app/src/main/java/com/utsmm/kbz/ui/management/ReprintAnyTransactionFragment.java +++ b/app/src/main/java/com/utsmm/kbz/ui/management/ReprintAnyTransactionFragment.java @@ -10,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.utsmm.kbz.ui.kpay.KPayViewModel; +import com.utsmm.kbz.util.helper.KeyboardHelper; import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.network.model.KPayQRQueryRequest; import com.utsmyanmar.baselib.util.DataBindingConfig; @@ -128,7 +129,7 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment { private void searchByTrace(String trace) { for (PayDetail s : lists) { - if(s.getVoucherNo().equals(trace)) { + if(s.getVoucherNo().contains(trace)) { searchedLists.add(s); } } @@ -151,19 +152,13 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment { String input = managementViewModel.txtRRNTrace.getValue(); if(input != null && !input.isEmpty()) { - if(input.length() == 6) { - searchByTrace(input); - } else if(input.length() == 12) { - searchByRRN(input); - } + searchByTrace(input); } else { - searchedLists.addAll(lists); } cardViewAdapter.updateList(searchedLists); - - + KeyboardHelper.hide(requireActivity()); } } 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 53583c0..552ce2d 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 @@ -13,6 +13,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.utsmm.kbz.ui.kpay.KPayViewModel; +import com.utsmm.kbz.util.helper.KeyboardHelper; import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.paylibs.model.PayDetail; @@ -225,6 +226,7 @@ public class QRRefundDetailFragment extends DataBindingFragment { sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND); kPayViewModel.setPayDetail(payDetail); // sharedViewModel.amount.setValue(refundAmountStr); + KeyboardHelper.hide(requireActivity()); routeId = R.id.action_qrRefundDetail_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 1a376c7..a0813e1 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 @@ -19,6 +19,7 @@ import com.utsmm.kbz.R; import com.utsmm.kbz.config.Constants; import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; import com.utsmm.kbz.ui.kpay.KPayViewModel; +import com.utsmm.kbz.util.helper.KeyboardHelper; import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.paylibs.model.PayDetail; @@ -107,7 +108,8 @@ public class QRRefundFragment extends DataBindingFragment { safeNavigateToRouteId(); } public void onSearch(){ - searchById(); + searchByTrace(); + KeyboardHelper.hide(requireActivity()); } } @@ -118,7 +120,7 @@ public class QRRefundFragment extends DataBindingFragment { NavHostFragment.findNavController(this).navigate(routeId, bundle); } - private void searchById(){ + private void searchByTrace(){ EditText editText = getView().findViewById(R.id.rnn_trace_id); String keyword = editText.getText().toString().trim(); @@ -132,12 +134,7 @@ public class QRRefundFragment extends DataBindingFragment { List filteredList = new ArrayList<>(); for(PayDetail item: originalList){ - - boolean match = - (item.getReferNo() != null && item.getReferNo().contains(keyword)) || - (item.getInvoiceNo() != null && item.getInvoiceNo().contains(keyword)) || - (item.getVoucherNo() != null && item.getVoucherNo().contains(keyword)); - + boolean match = item.getVoucherNo() != null && item.getVoucherNo().contains(keyword); if(match){ filteredList.add(item); } diff --git a/app/src/main/java/com/utsmm/kbz/util/helper/KeyboardHelper.java b/app/src/main/java/com/utsmm/kbz/util/helper/KeyboardHelper.java new file mode 100644 index 0000000..1de832b --- /dev/null +++ b/app/src/main/java/com/utsmm/kbz/util/helper/KeyboardHelper.java @@ -0,0 +1,44 @@ +package com.utsmm.kbz.util.helper; + +import android.app.Activity; +import android.content.Context; +import android.view.View; +import android.view.inputmethod.InputMethodManager; + +public class KeyboardHelper { + + private KeyboardHelper() { + // no instance + } + + /** Hide keyboard using a View (Fragment-safe) */ + public static void hide(Context context, View view) { + if (context == null || view == null) return; + + InputMethodManager imm = + (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + + if (imm != null) { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + view.clearFocus(); + } + } + + /** Hide keyboard using Activity (Activity-safe) */ + public static void hide(Activity activity) { + if (activity == null) return; + + View view = activity.getCurrentFocus(); + if (view == null) { + view = activity.getWindow().getDecorView(); + } + + InputMethodManager imm = + (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); + + if (imm != null) { + imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + view.clearFocus(); + } + } +}