Browse Source

Updated external config

hbw_build
Wong Joon Hui 2 years ago
parent
commit
898ebe0eec
  1. 22
      app/build.gradle
  2. 18
      app/src/main/assets/hwb_build_kiosk002.env
  3. 1
      app/src/main/assets/hwb_build_kiosk002_.env
  4. 26
      app/src/main/java/com/cst/im30/MainApplication.java
  5. 19
      app/src/main/java/com/cst/im30/activity/MainActivity.java
  6. 7
      app/src/main/java/com/cst/im30/activity/SettingActivity.java
  7. 28
      app/src/main/java/com/cst/im30/common/AppConfig.java
  8. 7
      app/src/main/java/com/cst/im30/service/IDVerificationService.java
  9. 7
      app/src/main/java/com/cst/im30/service/PaymentService.java
  10. 7
      app/src/main/java/com/cst/im30/service/UploadTransactionPreAuthPaymentService.java
  11. 7
      app/src/main/java/com/cst/im30/service/UploadTransactionSaleCompletionPaymentService.java
  12. 7
      app/src/main/java/com/cst/im30/service/UploadTransactionSalePaymentService.java
  13. 7
      app/src/main/java/com/cst/im30/utility/CloudWatchLogger.java
  14. 198
      app/src/main/java/com/cst/im30/utility/SetupUtils.java
  15. 21
      gradle.properties

22
app/build.gradle

@ -10,31 +10,13 @@ android {
minSdkVersion 22
//noinspection ExpiredTargetSdkVersion
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
versionCode 2
versionName "1.0.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// Echo Socket
buildConfigField("String", "SERVER_URL", SERVER_URL)
buildConfigField("String", "CLIENT_ID", CLIENT_ID)
buildConfigField("String", "CLIENT_SECRET", CLIENT_SECRET)
buildConfigField("String", "ECHO_SERVER_URL", ECHO_SERVER_URL)
buildConfigField("String", "ECHO_SERVER_PORT", ECHO_SERVER_PORT)
buildConfigField("String", "KIOSK_CODE", KIOSK_CODE)
buildConfigField("String", "SOCKET_PREFIX", SOCKET_PREFIX)
buildConfigField("String", "PAYMENT_CHANNEL_ID", PAYMENT_CHANNEL_ID)
buildConfigField("String", "PAYMENT_EVENT_TYPE", PAYMENT_EVENT_TYPE)
buildConfigField("String", "IC_CHANNEL_ID", IC_CHANNEL_ID)
buildConfigField("String", "IC_EVENT_TYPE", IC_EVENT_TYPE)
// Bugfender
buildConfigField("String", "BUGFENDER_TOKEN", BUGFENDER_TOKEN)
// AWS
buildConfigField("String", "AWS_ACCESS_KEY", AWS_ACCESS_KEY)
buildConfigField("String", "AWS_SECRET_KEY", AWS_SECRET_KEY)
buildConfigField("String", "LOG_GROUP_NAME", LOG_GROUP_NAME)
}
buildTypes {

18
app/src/main/assets/hwb_build_kiosk002.env

@ -0,0 +1,18 @@
# Echo Socket
SERVER_URL="http://hello-world-rewards-booking-api-build.testpigeon.net"
CLIENT_ID="3"
CLIENT_SECRET="w5RJ7bMF6NH39aDVyJJV0M1gOg0nZQcO2atVcXyF"
ECHO_SERVER_URL="http://hello-world-rewards-booking-api-build.testpigeon.net"
ECHO_SERVER_PORT="6001"
KIOSK_CODE="KIOSK002"
SOCKET_PREFIX="HelloBookingApi_"
PAYMENT_CHANNEL_ID="payment#"
PAYMENT_EVENT_TYPE=".makepayment"
IC_CHANNEL_ID="verification#"
IC_EVENT_TYPE=".guestverification"
# AWS
AWS_ACCESS_KEY="AKIAXHWEPPPSPOMSLL5R"
AWS_SECRET_KEY="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"
LOG_GROUP_NAME="hotel-kiosk"

1
app/src/main/assets/hwb_build_kiosk002_.env

@ -0,0 +1 @@
IyBFY2hvIFNvY2tldApTRVJWRVJfVVJMPSJodHRwOi8vaGVsbG8td29ybGQtcmV3YXJkcy1ib29raW5nLWFwaS1idWlsZC50ZXN0cGlnZW9uLm5ldCIKQ0xJRU5UX0lEPSIzIgpDTElFTlRfU0VDUkVUPSJ3NVJKN2JNRjZOSDM5YURWeUpKVjBNMWdPZzBuWlFjTzJhdFZjWHlGIgpFQ0hPX1NFUlZFUl9VUkw9Imh0dHA6Ly9oZWxsby13b3JsZC1yZXdhcmRzLWJvb2tpbmctYXBpLWJ1aWxkLnRlc3RwaWdlb24ubmV0IgpFQ0hPX1NFUlZFUl9QT1JUPSI2MDAxIgpLSU9TS19DT0RFPSJLSU9TSzAwMiIKU09DS0VUX1BSRUZJWD0iSGVsbG9Cb29raW5nQXBpXyIKUEFZTUVOVF9DSEFOTkVMX0lEPSJwYXltZW50IyIKUEFZTUVOVF9FVkVOVF9UWVBFPSIubWFrZXBheW1lbnQiCklDX0NIQU5ORUxfSUQ9InZlcmlmaWNhdGlvbiMiCklDX0VWRU5UX1RZUEU9Ii5ndWVzdHZlcmlmaWNhdGlvbiIKCiMgQVdTCkFXU19BQ0NFU1NfS0VZPSJBS0lBWEhXRVBQUFNQT01TTEw1UiIKQVdTX1NFQ1JFVF9LRVk9Ik5oTzdJR2h3Y1RkV080MWdTMEtURUtnaVo3bWlrbVo0SGRNRzFXMlIiCgpMT0dfR1JPVVBfTkFNRT0iaG90ZWwta2lvc2si

26
app/src/main/java/com/cst/im30/MainApplication.java

@ -15,6 +15,7 @@ import androidx.appcompat.app.AppCompatActivity;
import com.bugfender.sdk.Bugfender;
import com.cst.im30.activity.MainActivity;
import com.cst.im30.common.AppConfig;
import com.cst.im30.model.CancelRequest;
import com.cst.im30.model.CancelResponse;
import com.cst.im30.model.EventLogDetailed;
@ -34,9 +35,10 @@ import com.cst.im30.model.VoidRequest;
import com.cst.im30.model.VoidResponse;
import com.cst.im30.utility.CloudWatchLogger;
import com.cst.im30.utility.Logger;
import com.cst.im30.utility.SetupUtils;
public class MainApplication extends Application {
public static AppConfig config;
public static final int MAX_RETRY = 10;
public static MainApplication instance;
public static AppCompatActivity currentActivity;
@ -70,6 +72,8 @@ public class MainApplication extends Application {
public static String status;
private CloudWatchLogger cloudWatchLogger;
public static boolean setupReady = false;
public static MainApplication getInstance() {
return instance;
}
@ -106,6 +110,12 @@ public class MainApplication extends Application {
super.onCreate();
instance = this;
new SetupUtils().readEnvFile();
if (!setupReady) {
return;
}
this.cloudWatchLogger = new CloudWatchLogger();
initializeBugfender();
@ -114,23 +124,23 @@ public class MainApplication extends Application {
}
public void log(String logStreamName, String message) {
this.cloudWatchLogger.log(BuildConfig.LOG_GROUP_NAME, logStreamName, message);
this.cloudWatchLogger.log(config.getLogGroupName(), logStreamName, message);
}
public void logICScan(String message) {
this.cloudWatchLogger.log(BuildConfig.LOG_GROUP_NAME, "IcScanLog", message);
this.cloudWatchLogger.log(config.getLogGroupName(), "IcScanLog", message);
}
public void logPayment(String message) {
this.cloudWatchLogger.log(BuildConfig.LOG_GROUP_NAME, "Payment", message);
this.cloudWatchLogger.log(config.getLogGroupName(), "Payment", message);
}
public void logError(String message) {
this.cloudWatchLogger.log(BuildConfig.LOG_GROUP_NAME, "Error", message);
this.cloudWatchLogger.log(config.getLogGroupName(), "Error", message);
}
@SuppressLint("MissingPermission")
private void initializeBugfender() {
public void initializeBugfender() {
Bugfender.init(this, BuildConfig.BUGFENDER_TOKEN, BuildConfig.DEBUG);
String serialNumber;
@ -141,8 +151,8 @@ public class MainApplication extends Application {
}
Bugfender.setDeviceString("Stage", BuildConfig.FLAVOR);
Bugfender.setDeviceString("S/N", serialNumber);
Bugfender.setDeviceString("Kiosk Code", BuildConfig.KIOSK_CODE);
Bugfender.setDeviceString("Echo Server", BuildConfig.ECHO_SERVER_URL + ":" + BuildConfig.ECHO_SERVER_PORT);
Bugfender.setDeviceString("Kiosk Code", config.getKioskCode());
Bugfender.setDeviceString("Echo Server", config.getEchoServerUrl() + ":" + config.getEchoServerPort());
Bugfender.enableCrashReporting();

19
app/src/main/java/com/cst/im30/activity/MainActivity.java

@ -79,6 +79,8 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
checkPermissions();
sliderLayout = findViewById(R.id.slider_layout_ma);
sliderLayout.setVisibility(View.INVISIBLE); //todo until get good image
@ -565,13 +567,14 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
}
private void initEchoClientIC() {
Logger.logD("echoClient IC: " + BuildConfig.ECHO_SERVER_URL + ":" + BuildConfig.ECHO_SERVER_PORT);
MainApplication.icClient = new EchoClient(BuildConfig.ECHO_SERVER_URL + ":" + BuildConfig.ECHO_SERVER_PORT);
Logger.logD("echoClient IC: " + MainApplication.config.getEchoServerUrl() + ":" + MainApplication.config.getEchoServerPort());
MainApplication.icClient = new EchoClient(MainApplication.config.getEchoServerUrl() + ":" + MainApplication.config.getEchoServerPort());
}
private void initEchoClientPayment() {
Logger.logD("echoClient Payment: " + BuildConfig.ECHO_SERVER_URL + ":" + BuildConfig.ECHO_SERVER_PORT);
MainApplication.paymentClient = new EchoClient(BuildConfig.ECHO_SERVER_URL + ":" + BuildConfig.ECHO_SERVER_PORT);
Logger.logD("echoClient Payment: " + MainApplication.config.getEchoServerUrl() + ":" + MainApplication.config.getEchoServerPort());
MainApplication.paymentClient = new EchoClient(MainApplication.config.getEchoServerUrl() + ":" + MainApplication.config.getEchoServerPort());
}
private void connectEchoClientIC() {
@ -602,8 +605,8 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
private void onConnectSuccessPayment(Object[] args) {
try {
String channelID = BuildConfig.SOCKET_PREFIX + BuildConfig.PAYMENT_CHANNEL_ID + BuildConfig.KIOSK_CODE;
String eventType = BuildConfig.PAYMENT_EVENT_TYPE;
String channelID = MainApplication.config.getSocketPrefix() + MainApplication.config.getPaymentChannelId() + MainApplication.config.getKioskCode();
String eventType = MainApplication.config.getPaymentEventType();
EchoCallback echoCallback = this::receiveMessagePayment;
MainApplication.paymentClient.channel(channelID).listen(eventType, echoCallback);
Logger.logD("Listening to: " + eventType + " on " + channelID);
@ -635,8 +638,8 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
private void onConnectSuccessIC(Object[] args) {
try {
String channelID = BuildConfig.SOCKET_PREFIX + BuildConfig.IC_CHANNEL_ID + BuildConfig.KIOSK_CODE;
String eventType = BuildConfig.IC_EVENT_TYPE;
String channelID = MainApplication.config.getSocketPrefix() + MainApplication.config.getIcChannelId() + MainApplication.config.getKioskCode();
String eventType = MainApplication.config.getIcEventType();
EchoCallback echoCallback = this::receiveMessageIC;
MainApplication.icClient.channel(channelID).listen(eventType, echoCallback);
Logger.logD("Listening to: " + eventType + " on " + channelID);

7
app/src/main/java/com/cst/im30/activity/SettingActivity.java

@ -16,6 +16,7 @@ import androidx.core.content.ContextCompat;
import com.cst.im30.BuildConfig;
import com.cst.im30.EchoClientSetting;
import com.cst.im30.MainApplication;
import com.cst.im30.R;
import org.json.JSONException;
@ -83,7 +84,7 @@ public class SettingActivity extends AppCompatActivity {
// Create the client
echoClient = new EchoClientSetting(
BuildConfig.ECHO_SERVER_URL + ":" + BuildConfig.ECHO_SERVER_PORT
MainApplication.config.getEchoServerUrl() + ":" + MainApplication.config.getEchoServerPort()
);
}
@ -167,8 +168,8 @@ public class SettingActivity extends AppCompatActivity {
runOnUiThread(() -> Toast.makeText(SettingActivity.this, "Connected!", Toast.LENGTH_SHORT).show());
echoClient.channel(BuildConfig.PAYMENT_CHANNEL_ID + BuildConfig.KIOSK_CODE)
.listen(BuildConfig.PAYMENT_EVENT_TYPE, this::receiveMessage);
echoClient.channel(MainApplication.config.getPaymentChannelId() + MainApplication.config.getKioskCode())
.listen(MainApplication.config.getPaymentEventType(), this::receiveMessage);
}

28
app/src/main/java/com/cst/im30/common/AppConfig.java

@ -0,0 +1,28 @@
package com.cst.im30.common;
import java.io.Serializable;
import lombok.Builder;
import lombok.Data;
@Builder
@Data
public class AppConfig implements Serializable {
private String
serverURL,
clientId,
clientSecret,
echoServerUrl,
echoServerPort,
kioskCode,
socketPrefix,
paymentChannelId,
paymentEventType,
icChannelId,
icEventType,
awsAccessKey,
awsSecretKey,
logGroupName;
}

7
app/src/main/java/com/cst/im30/service/IDVerificationService.java

@ -3,6 +3,7 @@ package com.cst.im30.service;
import androidx.annotation.NonNull;
import com.cst.im30.BuildConfig;
import com.cst.im30.MainApplication;
import com.cst.im30.api.RetrofitAPICollection;
import com.cst.im30.api.RetrofitClient;
import com.cst.im30.common.CallableInterface;
@ -39,9 +40,9 @@ public class IDVerificationService {
public IDVerificationService(CallableInterface callback) {
this.callback = callback;
this.hostUrl = BuildConfig.SERVER_URL;
this.clientId = BuildConfig.CLIENT_ID;
this.clientSecret = BuildConfig.CLIENT_SECRET;
this.hostUrl = MainApplication.config.getServerURL();
this.clientId = MainApplication.config.getClientId();
this.clientSecret = MainApplication.config.getClientSecret();
}
public void getEventLog(String code) {

7
app/src/main/java/com/cst/im30/service/PaymentService.java

@ -3,6 +3,7 @@ package com.cst.im30.service;
import androidx.annotation.NonNull;
import com.cst.im30.BuildConfig;
import com.cst.im30.MainApplication;
import com.cst.im30.api.RetrofitAPICollection;
import com.cst.im30.api.RetrofitClient;
import com.cst.im30.common.CallableInterface;
@ -41,9 +42,9 @@ public class PaymentService {
public PaymentService(CallableInterface callback) {
this.callback = callback;
this.hostUrl = BuildConfig.SERVER_URL;
this.clientId = BuildConfig.CLIENT_ID;
this.clientSecret = BuildConfig.CLIENT_SECRET;
this.hostUrl = MainApplication.config.getServerURL();
this.clientId = MainApplication.config.getClientId();
this.clientSecret = MainApplication.config.getClientSecret();
}
public void getEventLog(String code) {

7
app/src/main/java/com/cst/im30/service/UploadTransactionPreAuthPaymentService.java

@ -3,6 +3,7 @@ package com.cst.im30.service;
import androidx.annotation.NonNull;
import com.cst.im30.BuildConfig;
import com.cst.im30.MainApplication;
import com.cst.im30.api.RetrofitAPICollection;
import com.cst.im30.api.RetrofitClient;
import com.cst.im30.common.CallableInterface;
@ -32,9 +33,9 @@ public class UploadTransactionPreAuthPaymentService {
public UploadTransactionPreAuthPaymentService(CallableInterface callback) {
this.callback = callback;
this.hostUrl = BuildConfig.SERVER_URL;
this.clientId = BuildConfig.CLIENT_ID;
this.clientSecret = BuildConfig.CLIENT_SECRET;
this.hostUrl = MainApplication.config.getServerURL();
this.clientId = MainApplication.config.getClientId();
this.clientSecret = MainApplication.config.getClientSecret();
}
public void call(EventLogDetailed eventLogDetailed, PreAuthRequest request, PreAuthResponse response) {

7
app/src/main/java/com/cst/im30/service/UploadTransactionSaleCompletionPaymentService.java

@ -3,6 +3,7 @@ package com.cst.im30.service;
import androidx.annotation.NonNull;
import com.cst.im30.BuildConfig;
import com.cst.im30.MainApplication;
import com.cst.im30.api.RetrofitAPICollection;
import com.cst.im30.api.RetrofitClient;
import com.cst.im30.common.CallableInterface;
@ -32,9 +33,9 @@ public class UploadTransactionSaleCompletionPaymentService {
public UploadTransactionSaleCompletionPaymentService(CallableInterface callback) {
this.callback = callback;
this.hostUrl = BuildConfig.SERVER_URL;
this.clientId = BuildConfig.CLIENT_ID;
this.clientSecret = BuildConfig.CLIENT_SECRET;
this.hostUrl = MainApplication.config.getServerURL();
this.clientId = MainApplication.config.getClientId();
this.clientSecret = MainApplication.config.getClientSecret();
}
public void call(EventLogDetailed eventLogDetailed, SaleCompletionRequest request, SaleCompletionResponse response) {

7
app/src/main/java/com/cst/im30/service/UploadTransactionSalePaymentService.java

@ -3,6 +3,7 @@ package com.cst.im30.service;
import androidx.annotation.NonNull;
import com.cst.im30.BuildConfig;
import com.cst.im30.MainApplication;
import com.cst.im30.api.RetrofitAPICollection;
import com.cst.im30.api.RetrofitClient;
import com.cst.im30.common.CallableInterface;
@ -32,9 +33,9 @@ public class UploadTransactionSalePaymentService {
public UploadTransactionSalePaymentService(CallableInterface callback) {
this.callback = callback;
this.hostUrl = BuildConfig.SERVER_URL;
this.clientId = BuildConfig.CLIENT_ID;
this.clientSecret = BuildConfig.CLIENT_SECRET;
this.hostUrl = MainApplication.config.getServerURL();
this.clientId = MainApplication.config.getClientId();
this.clientSecret = MainApplication.config.getClientSecret();
}
public void call(EventLogDetailed eventLogDetailed, SaleRequest saleRequest, SaleResponse saleResponse) {

7
app/src/main/java/com/cst/im30/utility/CloudWatchLogger.java

@ -13,6 +13,7 @@ import com.amazonaws.services.logs.model.PutLogEventsRequest;
import com.amazonaws.services.logs.model.PutLogEventsResult;
import com.amazonaws.services.logs.model.ResourceAlreadyExistsException;
import com.cst.im30.BuildConfig;
import com.cst.im30.MainApplication;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@ -35,8 +36,8 @@ public class CloudWatchLogger {
}
private void connect() {
String accessKey = BuildConfig.AWS_ACCESS_KEY;
String secretKey = BuildConfig.AWS_SECRET_KEY;
String accessKey = MainApplication.config.getAwsAccessKey();
String secretKey = MainApplication.config.getAwsSecretKey();
BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient(basicAWSCredentials);
@ -136,7 +137,7 @@ public class CloudWatchLogger {
private String getPrefix() {
String dateString = new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH).format(new Date());
String kioskCode = BuildConfig.KIOSK_CODE;
String kioskCode = MainApplication.config.getKioskCode();
return dateString + "_IM30_" + kioskCode + "_" + BuildConfig.FLAVOR + "_";
}

198
app/src/main/java/com/cst/im30/utility/SetupUtils.java

@ -0,0 +1,198 @@
package com.cst.im30.utility;
import android.content.Context;
import android.os.Environment;
import android.util.Base64;
import com.cst.im30.MainApplication;
import com.cst.im30.common.AppConfig;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Pattern;
public class SetupUtils {
public boolean readEnvFile() {
if (isExternalStorageReadable()) {
File configFile = getFile();
if (configFile == null) { return false; }
long numberOfLines = countLines(configFile);
if (numberOfLines == 1) {
decodeAndParseFile(configFile);
} else {
parseFile(configFile);
}
return true;
} else {
Logger.logD("External Storage Not Readable");
return false;
}
}
private File getFile() {
File appDirectory = new File(Environment.getExternalStorageDirectory() + "/CST");
File[] files = appDirectory.listFiles();
if (files == null || files.length == 0) {
Logger.logD("ENV File Not Found! (Folder Empty)");
return null;
}
for (File file : files) {
String fileName = file.getName().toLowerCase();
if (fileName.endsWith(".env")) {
Logger.logD("Found: " + file.getAbsolutePath());
return file;
}
}
Logger.logD("ENV File Not Found! (Got Files but no ENV)");
return null;
}
private boolean decodeAndParseFile(File file) {
try {
FileInputStream is = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String config;
String base64Line = reader.readLine();
byte[] decodedString = Base64.decode(base64Line.getBytes(StandardCharsets.UTF_8), Base64.DEFAULT);
config = new String(decodedString);
Map<String, String> map = parseDecodedFile(config);
readConfiguration(map);
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
private long countLines(File file) {
long lines = 0;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)))) {
String line;
while ((line = reader.readLine()) != null) {
if (line.trim().isEmpty()) {
continue;
}
lines++;
}
} catch (IOException e) {
e.printStackTrace();
}
return lines;
}
private Map<String, String> parseDecodedFile(String config) {
String[] lines = config.split(Pattern.quote("\n"));
LinkedHashMap<String, String> infoMap = new LinkedHashMap<>();
for (String line : lines) {
if (line.length() > 0 && !line.startsWith("#")) {
String[] value = line.split("=");
String k, v;
k = value[0];
if (value.length == 1) {
v = "";
} else {
// Filter In-Line # Comments
String vStr = value[1];
int commentIndex = vStr.indexOf("#");
if (commentIndex != -1) {
vStr = vStr.substring(0, commentIndex);
}
v = vStr;
}
String key = k.trim().replaceAll("^\"|\"$", "");
String valueMap = v.trim().replaceAll("^\"|\"$", "");
infoMap.put(key, valueMap);
}
}
return infoMap;
}
private boolean parseFile(File file) {
try {
FileInputStream is = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
LinkedHashMap<String, String> infoMap = new LinkedHashMap<>();
String line, k, v;
String[] value;
while ((line = reader.readLine()) != null) {
if (line.length() > 0 && !line.startsWith("#")) {
value = line.split("=");
k = value[0];
if (value.length == 1) {
v = "";
} else {
// Allows # Comments in the line
String vStr = value[1];
int commentIndex = vStr.indexOf("#");
if (commentIndex != -1) {
vStr = vStr.substring(0, commentIndex);
}
v = vStr;
}
String key = k.trim().replaceAll("^\"|\"$", "");
String valueMap = v.trim().replaceAll("^\"|\"$", "");
infoMap.put(key, valueMap);
}
}
if (infoMap.isEmpty()) { return false; }
readConfiguration(infoMap);
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
private void readConfiguration(Map<String, String> map) {
MainApplication.config = AppConfig.builder()
.serverURL(map.get("SERVER_URL"))
.clientId(map.get("CLIENT_ID"))
.clientSecret(map.get("CLIENT_SECRET"))
.echoServerUrl(map.get("ECHO_SERVER_URL"))
.echoServerPort(map.get("ECHO_SERVER_PORT"))
.kioskCode(map.get("KIOSK_CODE"))
.socketPrefix(map.get("SOCKET_PREFIX"))
.paymentChannelId(map.get("PAYMENT_CHANNEL_ID"))
.paymentEventType(map.get("PAYMENT_EVENT_TYPE"))
.icChannelId(map.get("IC_CHANNEL_ID"))
.icEventType(map.get("IC_EVENT_TYPE"))
.awsAccessKey(map.get("AWS_ACCESS_KEY"))
.awsSecretKey(map.get("AWS_SECRET_KEY"))
.logGroupName(map.get("LOG_GROUP_NAME"))
.build();
}
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
return Environment.MEDIA_MOUNTED.equals(state) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
}
}

21
gradle.properties

@ -21,24 +21,5 @@ android.enableJetifier=true
# Terminal Specific Config
# Echo Socket
SERVER_URL="http://hello-world-rewards-booking-api-build.testpigeon.net"
CLIENT_ID="3"
CLIENT_SECRET="w5RJ7bMF6NH39aDVyJJV0M1gOg0nZQcO2atVcXyF"
ECHO_SERVER_URL="http://hello-world-rewards-booking-api-build.testpigeon.net"
ECHO_SERVER_PORT="6001"
KIOSK_CODE="KIOSK002"
SOCKET_PREFIX="HelloBookingApi_"
PAYMENT_CHANNEL_ID="payment#"
PAYMENT_EVENT_TYPE=".makepayment"
IC_CHANNEL_ID="verification#"
IC_EVENT_TYPE=".guestverification"
# Bugfender
BUGFENDER_TOKEN="rocgWcZ0aLZH7s1XqK6PpV3WeyBVb0w0"
# AWS
AWS_ACCESS_KEY="AKIAXHWEPPPSPOMSLL5R"
AWS_SECRET_KEY="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"
LOG_GROUP_NAME="hotel-kiosk"
BUGFENDER_TOKEN="rocgWcZ0aLZH7s1XqK6PpV3WeyBVb0w0"
Loading…
Cancel
Save