keyboard auto hide and search by trace no fix

This commit is contained in:
MooN 2026-01-15 23:57:04 +06:30
parent fe97613f9b
commit 0ad0bc17b7
4 changed files with 55 additions and 17 deletions

View File

@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.utsmm.kbz.ui.kpay.KPayViewModel; import com.utsmm.kbz.ui.kpay.KPayViewModel;
import com.utsmm.kbz.util.helper.KeyboardHelper;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.network.model.KPayQRQueryRequest; import com.utsmyanmar.baselib.network.model.KPayQRQueryRequest;
import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.baselib.util.DataBindingConfig;
@ -128,7 +129,7 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment {
private void searchByTrace(String trace) { private void searchByTrace(String trace) {
for (PayDetail s : lists) { for (PayDetail s : lists) {
if(s.getVoucherNo().equals(trace)) { if(s.getVoucherNo().contains(trace)) {
searchedLists.add(s); searchedLists.add(s);
} }
} }
@ -151,19 +152,13 @@ public class ReprintAnyTransactionFragment extends DataBindingFragment {
String input = managementViewModel.txtRRNTrace.getValue(); String input = managementViewModel.txtRRNTrace.getValue();
if(input != null && !input.isEmpty()) { if(input != null && !input.isEmpty()) {
if(input.length() == 6) { searchByTrace(input);
searchByTrace(input);
} else if(input.length() == 12) {
searchByRRN(input);
}
} else { } else {
searchedLists.addAll(lists); searchedLists.addAll(lists);
} }
cardViewAdapter.updateList(searchedLists); cardViewAdapter.updateList(searchedLists);
KeyboardHelper.hide(requireActivity());
} }
} }

View File

@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.utsmm.kbz.ui.kpay.KPayViewModel; import com.utsmm.kbz.ui.kpay.KPayViewModel;
import com.utsmm.kbz.util.helper.KeyboardHelper;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.baselib.util.DataBindingConfig;
import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.PayDetail;
@ -225,6 +226,7 @@ public class QRRefundDetailFragment extends DataBindingFragment {
sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND); sharedViewModel.transactionsType.setValue(TransactionsType.MMQR_REFUND);
kPayViewModel.setPayDetail(payDetail); kPayViewModel.setPayDetail(payDetail);
// sharedViewModel.amount.setValue(refundAmountStr); // sharedViewModel.amount.setValue(refundAmountStr);
KeyboardHelper.hide(requireActivity());
routeId = R.id.action_qrRefundDetail_inputPasswordFragment; routeId = R.id.action_qrRefundDetail_inputPasswordFragment;
safeNavigateToRouteId(); safeNavigateToRouteId();
} }

View File

@ -19,6 +19,7 @@ import com.utsmm.kbz.R;
import com.utsmm.kbz.config.Constants; import com.utsmm.kbz.config.Constants;
import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel; import com.utsmm.kbz.ui.core_viewmodel.SharedViewModel;
import com.utsmm.kbz.ui.kpay.KPayViewModel; import com.utsmm.kbz.ui.kpay.KPayViewModel;
import com.utsmm.kbz.util.helper.KeyboardHelper;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.util.DataBindingConfig; import com.utsmyanmar.baselib.util.DataBindingConfig;
import com.utsmyanmar.paylibs.model.PayDetail; import com.utsmyanmar.paylibs.model.PayDetail;
@ -107,7 +108,8 @@ public class QRRefundFragment extends DataBindingFragment {
safeNavigateToRouteId(); safeNavigateToRouteId();
} }
public void onSearch(){ public void onSearch(){
searchById(); searchByTrace();
KeyboardHelper.hide(requireActivity());
} }
} }
@ -118,7 +120,7 @@ public class QRRefundFragment extends DataBindingFragment {
NavHostFragment.findNavController(this).navigate(routeId, bundle); NavHostFragment.findNavController(this).navigate(routeId, bundle);
} }
private void searchById(){ private void searchByTrace(){
EditText editText = getView().findViewById(R.id.rnn_trace_id); EditText editText = getView().findViewById(R.id.rnn_trace_id);
String keyword = editText.getText().toString().trim(); String keyword = editText.getText().toString().trim();
@ -132,12 +134,7 @@ public class QRRefundFragment extends DataBindingFragment {
List<PayDetail> filteredList = new ArrayList<>(); List<PayDetail> filteredList = new ArrayList<>();
for(PayDetail item: originalList){ for(PayDetail item: originalList){
boolean match = item.getVoucherNo() != null && item.getVoucherNo().contains(keyword);
boolean match =
(item.getReferNo() != null && item.getReferNo().contains(keyword)) ||
(item.getInvoiceNo() != null && item.getInvoiceNo().contains(keyword)) ||
(item.getVoucherNo() != null && item.getVoucherNo().contains(keyword));
if(match){ if(match){
filteredList.add(item); filteredList.add(item);
} }

View File

@ -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();
}
}
}