fixed nexgo-sdklkey lib not included
This commit is contained in:
parent
8b211ca530
commit
1a7e86077c
@ -0,0 +1,193 @@
|
||||
package com.utsmm.kbz.ui.settings;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.nexgo.downloadkey.downloadflow.DownloadFEntity;
|
||||
import com.nexgo.downloadkey.downloadflow.DownloadFlow;
|
||||
import com.nexgo.downloadkey.downloadflow.DownloadFlowProcessListener;
|
||||
import com.nexgo.downloadkey.downloadflow.DownloadFlowResultEntity;
|
||||
import com.nexgo.downloadkey.downloadflow.DownloadResult;
|
||||
import com.utsmyanmar.baselib.fragment.DataBindingFragment;
|
||||
import com.utsmyanmar.baselib.util.DataBindingConfig;
|
||||
import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation;
|
||||
import com.utsmm.kbz.BR;
|
||||
import com.utsmm.kbz.R;
|
||||
import com.utsmm.kbz.databinding.FragmentInjectKeyBinding;
|
||||
import com.utsmyanmar.paylibs.utils.LogUtil;
|
||||
import com.utsmm.kbz.util.tms.TMSUtil;
|
||||
|
||||
public class InjectKeyFragment extends DataBindingFragment {
|
||||
|
||||
private static final String TAG = InjectKeyFragment.class.getSimpleName();
|
||||
|
||||
// Data binding will handle view access automatically
|
||||
private FragmentInjectKeyBinding binding;
|
||||
|
||||
// Key injection variables
|
||||
private DownloadFlow mDownloadFlow;
|
||||
private int keyIndexTmp = 8; // Default key index
|
||||
|
||||
@Override
|
||||
protected void initViewModel() {
|
||||
// No specific viewmodels needed for this fragment
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DataBindingConfig getDataBindingConfig() {
|
||||
// This is the key method that links the XML and fragment properly
|
||||
return new DataBindingConfig(R.layout.fragment_inject_key, 0, null)
|
||||
.addBindingParam(BR.click, new ClickEvent());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int currentId() {
|
||||
return R.id.injectKeyFragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int hostId() {
|
||||
return R.id.nav_host_fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int routeId() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
try {
|
||||
|
||||
// Get the binding from the base class - this is automatically created
|
||||
binding = (FragmentInjectKeyBinding) mBinding;
|
||||
|
||||
updateConfigurationInfo();
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
setToolBarTitleWithBackIcon("Inject Key");
|
||||
|
||||
}
|
||||
|
||||
private void updateConfigurationInfo() {
|
||||
|
||||
String terminalId = SystemParamsOperation.getInstance().getTerminalId();
|
||||
binding.terminalIdValue.setText(terminalId != null && !terminalId.isEmpty() ?
|
||||
terminalId : "Not configured");
|
||||
|
||||
// Update Merchant ID
|
||||
String merchantId = SystemParamsOperation.getInstance().getMerchantId();
|
||||
binding.merchantIdValue.setText(merchantId != null && !merchantId.isEmpty() ?
|
||||
merchantId : "Not configured");
|
||||
|
||||
// Update Serial Number
|
||||
String serialNo = TMSUtil.getInstance().getSerialNumber();
|
||||
binding.serialNumberValue.setText(serialNo != null && !serialNo.isEmpty() ?
|
||||
serialNo : "Not configured");
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void loadKeyFromKeyPOS() {
|
||||
try {
|
||||
if (TextUtils.isEmpty(binding.etKeyIndex.getText())) {
|
||||
Toast.makeText(getContext(), "Please input key index", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
String keyIndexText = binding.etKeyIndex.getText().toString().trim();
|
||||
|
||||
try {
|
||||
keyIndexTmp = Integer.parseInt(keyIndexText);
|
||||
} catch (NumberFormatException e) {
|
||||
Toast.makeText(getContext(), "Invalid key index format", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
showLoadingDialog("Loading key...");
|
||||
|
||||
mDownloadFlow = DownloadFlow.getInstance();
|
||||
|
||||
String terminalId = SystemParamsOperation.getInstance().getTerminalId();
|
||||
String merchantId = SystemParamsOperation.getInstance().getMerchantId();
|
||||
String serialNo = TMSUtil.getInstance().getSerialNumber();
|
||||
|
||||
// Validate configuration
|
||||
if (TextUtils.isEmpty(terminalId) || TextUtils.isEmpty(merchantId) || TextUtils.isEmpty(serialNo)) {
|
||||
dismissLoadingDialog();
|
||||
showDeclineDialog("Please configure Terminal ID, Merchant ID first in TMS Configuration");
|
||||
return;
|
||||
}
|
||||
|
||||
final DownloadFEntity downloadFEntity = new DownloadFEntity();
|
||||
downloadFEntity.setSn(serialNo.getBytes());
|
||||
downloadFEntity.setMid(merchantId.getBytes());
|
||||
downloadFEntity.setTid(terminalId.getBytes());
|
||||
downloadFEntity.setTmkIndex(keyIndexTmp);
|
||||
downloadFEntity.setPort(0);
|
||||
downloadFEntity.setTimeOut(10);
|
||||
|
||||
int result = mDownloadFlow.startLoadKey(getActivity(), downloadFEntity, onDownloadFlowProcessListener);
|
||||
if (result != DownloadResult.Success) {
|
||||
dismissLoadingDialog();
|
||||
showDeclineDialog("Failed to start key injection process");
|
||||
LogUtil.e(TAG, "Failed to start key injection, result: " + result);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
dismissLoadingDialog();
|
||||
LogUtil.e(TAG, "Error in key injection: " + e.getMessage());
|
||||
showDeclineDialog("Error occurred during key injection: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private DownloadFlowProcessListener onDownloadFlowProcessListener = new DownloadFlowProcessListener() {
|
||||
@Override
|
||||
public void onFinish(int ret, DownloadFlowResultEntity downloadFlowResultEntity) {
|
||||
try {
|
||||
dismissLoadingDialog();
|
||||
|
||||
if (ret == DownloadResult.Success) {
|
||||
// Show success dialog with key index
|
||||
showSuccessDialog("Key injection successful!\nKey Index: " + keyIndexTmp);
|
||||
LogUtil.d(TAG, "Key injection successful for index: " + keyIndexTmp);
|
||||
} else {
|
||||
// Show decline dialog
|
||||
showDeclineDialog("Key injection failed!\nError code: " + ret);
|
||||
LogUtil.e(TAG, "Key injection failed with error code: " + ret);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LogUtil.e(TAG, "Error handling injection result: " + e.getMessage());
|
||||
showDeclineDialog("Error processing injection result");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// ClickEvent class for data binding - this is the proper pattern
|
||||
public class ClickEvent {
|
||||
|
||||
public void onInjectKeyClick() {
|
||||
try {
|
||||
LogUtil.d(TAG, "Inject key button clicked");
|
||||
loadKeyFromKeyPOS();
|
||||
} catch (Exception e) {
|
||||
LogUtil.e(TAG, "Error in inject key click: " + e.getMessage());
|
||||
showDeclineDialog("Error occurred: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
nexdlkey-lib/build.gradle
Normal file
2
nexdlkey-lib/build.gradle
Normal file
@ -0,0 +1,2 @@
|
||||
configurations.maybeCreate("default")
|
||||
artifacts.add("default", file('nexgo-sdk-dlkey-1.0.2.aar'))
|
||||
@ -0,0 +1 @@
|
||||
i/jars/classes.jar
|
||||
@ -0,0 +1 @@
|
||||
o/nexgo-sdk-dlkey-1.0.2-runtime
|
||||
Binary file not shown.
@ -0,0 +1 @@
|
||||
o/nexgo-sdk-dlkey-1.0.2
|
||||
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.nexgo.downloadkey"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="21"
|
||||
android:targetSdkVersion="26" />
|
||||
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true" >
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">downloadkey</string>
|
||||
</resources>
|
||||
@ -0,0 +1 @@
|
||||
i/AndroidManifest.xml
|
||||
@ -0,0 +1 @@
|
||||
i/
|
||||
@ -0,0 +1 @@
|
||||
o/nexgo-sdk-dlkey-1.0.2-api.jar
|
||||
Binary file not shown.
@ -0,0 +1 @@
|
||||
o/com.nexgo.downloadkey-r.txt
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
o/com.nexgo.downloadkey
|
||||
@ -0,0 +1 @@
|
||||
i/jni
|
||||
@ -0,0 +1 @@
|
||||
o/nexgo-sdk-dlkey-1.0.2-runtime.jar
|
||||
Binary file not shown.
@ -0,0 +1 @@
|
||||
i/
|
||||
@ -0,0 +1 @@
|
||||
i/res
|
||||
BIN
nexdlkey-lib/nexgo-sdk-dlkey-1.0.2.aar
Normal file
BIN
nexdlkey-lib/nexgo-sdk-dlkey-1.0.2.aar
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user