geo get set

This commit is contained in:
MooN 2026-01-29 10:47:14 +06:30
parent 37b1538e1c
commit 577d14dbd2
7 changed files with 161 additions and 3 deletions

View File

@ -14,8 +14,8 @@ android {
applicationId "com.utsmm.kbz" applicationId "com.utsmm.kbz"
minSdk 24 minSdk 24
targetSdk 33 targetSdk 33
versionCode 1 versionCode 21
versionName "1.0" versionName "2.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

View File

@ -35,6 +35,10 @@
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<!-- android:noHistory="true"--> <!-- android:noHistory="true"-->
<!-- android:excludeFromRecents="true"--> <!-- android:excludeFromRecents="true"-->

View File

@ -32,6 +32,7 @@ import com.nexgo.downloadkey.downloadflow.DownloadFlowResultEntity;
import com.nexgo.downloadkey.downloadflow.DownloadResult; import com.nexgo.downloadkey.downloadflow.DownloadResult;
import com.nexgo.oaf.apiv3.device.pinpad.PinPad; import com.nexgo.oaf.apiv3.device.pinpad.PinPad;
import com.nexgo.oaf.apiv3.device.pinpad.WorkKeyTypeEnum; import com.nexgo.oaf.apiv3.device.pinpad.WorkKeyTypeEnum;
import com.utsmm.kbz.util.LocationUtil;
import com.utsmyanmar.baselib.BaseApplication; import com.utsmyanmar.baselib.BaseApplication;
import com.utsmyanmar.baselib.repo.Repository; import com.utsmyanmar.baselib.repo.Repository;
import com.utsmyanmar.baselib.ui.AnimationDialog; import com.utsmyanmar.baselib.ui.AnimationDialog;
@ -428,6 +429,22 @@ public class MainActivity extends AppCompatActivity implements
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
LocationUtil.getCurrentLocation(this, new LocationUtil.LocationCallback() {
@Override
public void onSuccess(double lat, double lng) {
LogUtil.d("Location", "Location received: " + lat + ", " + lng);
LocationUtil.setLat(lat);
LocationUtil.setLng(lng);
}
@Override
public void onError(String reason) {
LogUtil.e("Location", "Error getting location: " + reason);
LocationUtil.setLat(0.00);
LocationUtil.setLng(0.00);
}
});
SystemParamsOperation.getInstance().setSetupEcr(false); SystemParamsOperation.getInstance().setSetupEcr(false);
SystemParamsOperation.getInstance().setDownloadedParams(false); SystemParamsOperation.getInstance().setDownloadedParams(false);

View File

@ -10,6 +10,7 @@ import androidx.appcompat.app.AppCompatActivity;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException; import com.google.gson.JsonSyntaxException;
import com.google.gson.stream.MalformedJsonException; import com.google.gson.stream.MalformedJsonException;
import com.utsmm.kbz.util.LocationUtil;
import com.utsmyanmar.baselib.emv.EmvParamOperation; import com.utsmyanmar.baselib.emv.EmvParamOperation;
import com.utsmyanmar.baselib.fragment.DataBindingFragment; import com.utsmyanmar.baselib.fragment.DataBindingFragment;
import com.utsmyanmar.baselib.network.model.sirius.SiriusError; import com.utsmyanmar.baselib.network.model.sirius.SiriusError;

View File

@ -0,0 +1,109 @@
package com.utsmm.kbz.util;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
public class LocationUtil {
public interface LocationCallback {
void onSuccess(double lat, double lng);
void onError(String reason);
}
private static LocationListener listener;
private static double lat = 0.00;
private static double lng = 0.00;
public static void getCurrentLocation(
@NonNull Activity activity,
@NonNull LocationCallback callback) {
LocationManager lm =
(LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);
if (lm == null) {
callback.onError("LocationManager is null");
return;
}
if (ActivityCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(
activity,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
201
);
callback.onError("Permission not granted");
return;
}
boolean gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean netEnabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!gpsEnabled && !netEnabled) {
callback.onError("No location provider enabled");
return;
}
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location == null) {
location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
if (location != null) {
callback.onSuccess(location.getLatitude(), location.getLongitude());
return;
}
listener = new LocationListener() {
@Override
public void onLocationChanged(@NonNull Location location) {
callback.onSuccess(
location.getLatitude(),
location.getLongitude()
);
lm.removeUpdates(this); // 🔥 stop GPS
}
};
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
2000,
1,
listener
);
}
public static void stop(Context context) {
if (listener != null) {
LocationManager lm =
(LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
if (lm != null) lm.removeUpdates(listener);
listener = null;
}
}
public static double getLat() {
return lat;
}
public static double getLng() {
return lng;
}
public static void setLat(double lat) {
LocationUtil.lat = lat;
}
public static void setLng(double lng) {
LocationUtil.lng = lng;
}
}

View File

@ -7,6 +7,7 @@ import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.kizzy.xpay.XPay; import com.kizzy.xpay.XPay;
import com.utsmm.kbz.util.LocationUtil;
import com.utsmyanmar.baselib.emv.EmvParamOperation; import com.utsmyanmar.baselib.emv.EmvParamOperation;
import com.utsmyanmar.baselib.network.model.sirius.SiriusRequest; import com.utsmyanmar.baselib.network.model.sirius.SiriusRequest;
import com.utsmyanmar.baselib.network.model.sirius.SiriusResponse; import com.utsmyanmar.baselib.network.model.sirius.SiriusResponse;
@ -139,6 +140,7 @@ public class TMSUtil {
public SiriusRequest generateRequestParams(Context context,String lastTransName,String lastTransTime) { public SiriusRequest generateRequestParams(Context context,String lastTransName,String lastTransTime) {
SiriusRequest siriusRequest = new SiriusRequest(); SiriusRequest siriusRequest = new SiriusRequest();
siriusRequest.setSerial(getSerialNumber()); siriusRequest.setSerial(getSerialNumber());
siriusRequest.setAppPackage(BuildConfig.APPLICATION_ID); siriusRequest.setAppPackage(BuildConfig.APPLICATION_ID);
@ -148,6 +150,8 @@ public class TMSUtil {
siriusRequest.setCurrentNetwork(getNetworkType(context)); siriusRequest.setCurrentNetwork(getNetworkType(context));
siriusRequest.setLastTransaction(lastTransName); siriusRequest.setLastTransaction(lastTransName);
siriusRequest.setLastTranTime(Long.parseLong(lastTransTime)); siriusRequest.setLastTranTime(Long.parseLong(lastTransTime));
// siriusRequest.setLatitude(LocationUtil.getLat());
// siriusRequest.setLongitude(LocationUtil.getLng());
siriusRequest.setValue("YourValueHere"); siriusRequest.setValue("YourValueHere");
return siriusRequest; return siriusRequest;

View File

@ -18,9 +18,14 @@ public class SiriusRequest {
private Long lastTranTime; private Long lastTranTime;
private String value; private String value;
// private double latitude;
// private double longitude;
public SiriusRequest() {} public SiriusRequest() {}
public SiriusRequest(String serial, String appPackage, String androidVersion, String firmwareVersion, String applicationVersion, String currentNetwork, String lastTransaction, Long lastTranTime, String value) { public SiriusRequest(String serial, String appPackage, String androidVersion, String firmwareVersion, String applicationVersion, String currentNetwork, String lastTransaction, Long lastTranTime,
// double latitude,
// double longitude,
String value) {
this.serial = serial; this.serial = serial;
this.appPackage = appPackage; this.appPackage = appPackage;
this.androidVersion = androidVersion; this.androidVersion = androidVersion;
@ -29,6 +34,8 @@ public class SiriusRequest {
this.currentNetwork = currentNetwork; this.currentNetwork = currentNetwork;
this.lastTransaction = lastTransaction; this.lastTransaction = lastTransaction;
this.lastTranTime = lastTranTime; this.lastTranTime = lastTranTime;
// this.latitude = latitude;
// this.longitude = longitude;
this.value = value; this.value = value;
} }
@ -100,6 +107,22 @@ public class SiriusRequest {
return value; return value;
} }
// public double getLatitude(){
// return latitude;
// }
//
// public double getLongitude(){
// return longitude;
// }
//
// public void setLatitude(double latitude){
// this.longitude = latitude;
// }
//
// public void setLongitude(double longitude){
// this.longitude = longitude;
// }
public void setValue(String value) { public void setValue(String value) {
this.value = value; this.value = value;
} }