Browse Source

Update

- Default Logo
- Removed UDC stuff
hbw_build
Wong Joon Hui 2 years ago
parent
commit
0ec93f78e5
  1. 10
      .idea/misc.xml
  2. 2
      app/src/androidTest/java/com/cst/im30/ExampleInstrumentedTest.java
  3. 8
      app/src/main/AndroidManifest.xml
  4. 4
      app/src/main/java/com/cst/im30/activity/MainActivity.java
  5. 625
      app/src/main/java/com/cst/im30/activity/StatusActivity.java
  6. 170
      app/src/main/res/drawable-v24/ic_udc_launcher_background.xml
  7. 189
      app/src/main/res/layout/activity_status.xml
  8. 5
      app/src/main/res/mipmap-anydpi-v26/ic_udc_launcher.xml
  9. 5
      app/src/main/res/mipmap-anydpi-v26/ic_udc_launcher_round.xml
  10. BIN
      app/src/main/res/mipmap-hdpi/ic_udc_launcher.png
  11. BIN
      app/src/main/res/mipmap-hdpi/ic_udc_launcher_foreground.png
  12. BIN
      app/src/main/res/mipmap-hdpi/ic_udc_launcher_round.png
  13. BIN
      app/src/main/res/mipmap-mdpi/ic_udc_launcher.png
  14. BIN
      app/src/main/res/mipmap-mdpi/ic_udc_launcher_foreground.png
  15. BIN
      app/src/main/res/mipmap-mdpi/ic_udc_launcher_round.png
  16. BIN
      app/src/main/res/mipmap-xhdpi/ic_udc_launcher.png
  17. BIN
      app/src/main/res/mipmap-xhdpi/ic_udc_launcher_foreground.png
  18. BIN
      app/src/main/res/mipmap-xhdpi/ic_udc_launcher_round.png
  19. BIN
      app/src/main/res/mipmap-xxhdpi/ic_udc_launcher.png
  20. BIN
      app/src/main/res/mipmap-xxhdpi/ic_udc_launcher_foreground.png
  21. BIN
      app/src/main/res/mipmap-xxhdpi/ic_udc_launcher_round.png
  22. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_udc_launcher.png
  23. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_udc_launcher_foreground.png
  24. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_udc_launcher_round.png
  25. 2
      app/src/main/res/values-night/themes.xml
  26. 2
      app/src/main/res/values/themes.xml

10
.idea/misc.xml

@ -3,13 +3,23 @@
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable-v24/ic_udc_launcher_background.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable/btn_general_disable_bg.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable/btn_general_enable_bg.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable/ic_baseline_keyboard_return_24.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable/ic_baseline_settings_24.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable/ic_launcher_background.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/drawable/ic_status_fail.xml" value="0.37083333333333335" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/activity_icc.xml" value="0.19739583333333333" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/activity_main.xml" value="0.3546875" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/activity_response.xml" value="0.19739583333333333" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/activity_status.xml" value="0.3546875" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/confirm.xml" value="0.3546875" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/pop_up_message_no_option.xml" value="0.3546875" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/pop_up_message_option.xml" value="0.3546875" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/layout/pop_up_notification.xml" value="0.3546875" />
<entry key="..\:/StudioProjects/kiosk-im30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" value="0.37083333333333335" />
</map>
</option>
</component>

2
app/src/androidTest/java/com/cst/im30/ExampleInstrumentedTest.java

@ -21,6 +21,6 @@ public class ExampleInstrumentedTest {
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.cst.udc_payment_terminal_im30", appContext.getPackageName());
assertEquals("com.cst.im30", appContext.getPackageName());
}
}

8
app/src/main/AndroidManifest.xml

@ -9,9 +9,9 @@
<application
android:name=".MainApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_udc_launcher"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_udc_launcher_round"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
@ -21,10 +21,6 @@
android:name="com.cst.im30.activity.SettingActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity" />
<activity
android:name="com.cst.im30.activity.StatusActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity" />
<activity
android:name="com.cst.im30.activity.ICCActivity"
android:screenOrientation="portrait"

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

@ -172,13 +172,13 @@ public class MainActivity extends AppCompatActivity implements CallableInterface
private void setupTextSlider() {
TextSliderView textSliderView = new TextSliderView(this);
//textSliderView.description("Welcome to UDC.");
//textSliderView.description("Welcome to XXX.");
textSliderView.image(R.drawable.img_front_1);
textSliderView.setScaleType(BaseSliderView.ScaleType.CenterInside);
textSliderView.setOnSliderClickListener(slider -> {
});
textSliderView.bundle(new Bundle());
//textSliderView.getBundle().putString("extra", "Welcome to UDC.");
//textSliderView.getBundle().putString("extra", "Welcome to XXX.");
sliderLayout.addSlider(textSliderView);

625
app/src/main/java/com/cst/im30/activity/StatusActivity.java

@ -1,625 +0,0 @@
package com.cst.im30.activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.bumptech.glide.Glide;
import com.cst.im30.R;
import com.cst.im30.entity.Transaction;
import com.cst.im30.api.RetrofitAPICollection;
import com.cst.im30.api.RetrofitClient;
import org.json.JSONException;
import org.json.JSONObject;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class StatusActivity extends AppCompatActivity {
//Set value to get temp value-RefNum
private static String vRefNum;
//Set value to get temp value-Status
private static String vStatus;
//Set value to get temp value-Amount
private static String vAmount;
private Transaction transaction;
private Button buttonDonationSuccess, buttonRetry, buttonNoRetry;
//private Transaction transaction;
private TextView textStatus, textInfo, textAmount;
private ImageView imageStatus;
private String status, responseCode, responseDesc, referenceNum, amountTransaction;
public static String getRefNum() {
return vRefNum;
}
public static String getStatus() {
return vStatus;
}
public static String getAmount() {
return vAmount;
}
public static void showFinishMessage(final Context context, String title, String message) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogView = inflater.inflate(R.layout.pop_up_message_no_option, null);
TextView textTitle = dialogView.findViewById(R.id.text_title_pop_up_message_no_option);
TextView textMessage = dialogView.findViewById(R.id.text_message_pop_up_message_no_option);
Button buttonOk = dialogView.findViewById(R.id.button_ok_pop_up_message_no_option);
textTitle.setText(title);
textMessage.setText(message);
dialogBuilder.setCancelable(false);
dialogBuilder.setView(dialogView);
final AlertDialog alertDialogFinishMessage = dialogBuilder.create();
alertDialogFinishMessage.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
alertDialogFinishMessage.show();
buttonOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialogFinishMessage.dismiss();
((Activity) context).finish();
}
});
}
private static String encrytThisString(String input) {
try {
// getInstance() method is called with algorithm SHA-512
MessageDigest md = MessageDigest.getInstance("SHA-512");
// digest() method is called
// to calculate message digest of the input string
// returned as array of byte
byte[] messageDigest = md.digest(input.getBytes());
// Convert byte array into signum representation
BigInteger no = new BigInteger(1, messageDigest);
// Convert message digest into hex value
String hashtext = no.toString(16);
// Add preceding 0s to make it 32 bit
while (hashtext.length() < 32) {
hashtext = "0" + hashtext;
}
// return the HashText
return hashtext;
} // For specifying wrong message digest algorithms
catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_status);
/*try {
transaction = (Transaction) getIntent().getSerializableExtra("transaction");
} catch (Exception e) {
//Bugsnag.notify(e);
}*/
buttonDonationSuccess = findViewById(R.id.button_ok_donation_sta);
buttonRetry = findViewById(R.id.button_pay_again_sta);
buttonNoRetry = findViewById(R.id.button_no_pay_again_sta);
textStatus = findViewById(R.id.text_status_sta);
textInfo = findViewById(R.id.text_info_sta);
textAmount = findViewById(R.id.text_info_amount_sta);
imageStatus = findViewById(R.id.image_status_sta);
/*//Get data from StatusActivty - refNum & amount only
String referenceNumber = ResponseActivity.getRefNum();
//get and set again
vRefNum = referenceNumber;
String statusTemp = ResponseActivity.getStatus();
vStatus = statusTemp;
String amount = ResponseActivity.getAmount();
vAmount = amount;*/
//Get status from Response Screen
Intent intentRefNum = getIntent();
Bundle refNumGet = intentRefNum.getExtras();
if (refNumGet != null) {
String refNumSet = (String) refNumGet.get("referenceNumTransaction");
referenceNum = refNumSet;
}
/*Intent intentSign = getIntent();
Bundle signGet = intentSign.getExtras();
String */
Intent intentStatus = getIntent();
Bundle statusGet = intentStatus.getExtras();
if (statusGet != null) {
String statusSet = (String) statusGet.get("statusTransaction");
status = statusSet;
}
Intent intentAmount = getIntent();
Bundle amountGet = intentAmount.getExtras();
if (amountGet != null) {
String amountSet = (String) amountGet.get("amountTransaction");
amountTransaction = amountSet;
}
//Get HLB response from Response Activity
Intent intentResponse = getIntent();
Bundle extra = intentResponse.getExtras();
String payRespCodeTransaction = extra.getString("payRespCodeTransaction");
//transaction.setResponseCode(payRespCodeTransaction);
//all HLB response
String getAllHLBresponse = extra.getString("hlbResponse");
//String payResponseCode = transaction.getResponseCode();
String payRespErrorDescTransaction = extra.getString("payRespErrorDescTransaction");
String payRespIssuerIdTransaction = extra.getString("payRespIssuerIdTransaction");
String payFunctionTransaction = extra.getString("payFunctionTransaction");
//String payFunction = transaction.setFunction(payFunctionTransaction);
String payRespQrTxnIdTransaction = extra.getString("payRespQrTxnIdTransaction");
String payRespInvoiceNoTransaction = extra.getString("payRespInvoiceNoTransaction");
String payRespSchemeTransaction = extra.getString("payRespSchemeTransaction");
String payRespBatchNoTransaction = extra.getString("payRespBatchNoTransaction");
String payRespTxnDateTransaction = extra.getString("payRespTxnDateTransaction");
String payRespTxnTimeTransaction = extra.getString("payRespTxnTimeTransaction");
String payPrintReceiptIdTransaction = extra.getString("payPrintReceiptIdTransaction");
String payRespQrWalletIdTransaction = extra.getString("payRespQrWalletIdTransaction");
String payRespCardAppCryptogramTransaction = extra.getString("payRespCardAppCryptogramTransaction");
String payRespAppLabelTransaction = extra.getString("payRespAppLabelTransaction");
String payRespCardRefNumTransaction = extra.getString("payRespCardRefNumTransaction");
String payCameraModeTransaction = extra.getString("payCameraModeTransaction");
//String payCameraMode = transaction.setCameraMode(payCameraModeTransaction);
String payRespCardAuthCodeTransaction = extra.getString("payRespCardAuthCodeTransaction");
String payRespCardAidTransaction = extra.getString("payRespCardAidTransaction");
String payRespHashPanTransaction = extra.getString("payRespHashPanTransaction");
String payRespMerchInfoTransaction = extra.getString("payRespMerchInfoTransaction");
String payRespMidTransaction = extra.getString("payRespMidTransaction");
String payRespTidTransaction = extra.getString("payRespTidTransaction");
String payRespTvrTransaction = extra.getString("payRespTvrTransaction");
String payRespCustomerIdTransaction = extra.getString("payRespCustomerIdTransaction");
String payTypeTransaction = extra.getString("payTypeTransaction");
//String payType = transaction.setType(payTypeTransaction);
String payRespTraceNoTransaction = extra.getString("payRespTraceNoTransaction");
String payRespCvmDescTransaction = extra.getString("payRespCvmDescTransaction");
String payAddAmountTransaction = extra.getString("payAddAmountTransaction");
String payRespCardNoTransaction = extra.getString("payRespCardNoTransaction");
String payAmountTransaction = extra.getString("payAmountTransaction");
String merchanCode = "MER0001";
//String terminalCode = transaction.getTid();
String secretKey = "Uthos^eY5pfO";
//Signature=merchant_code+secret_key_reference_number+amount+payment_type ->23/08/2021-requery
//String encryptedSign = merchanCode + secretKey + referenceNum + amount + payTypeTransaction;
//String encryptedSignValueRequery = encrytThisString(encryptedSign);
//Signature = merchant_code+secret_key+reference_number+amount+response_code ->23/08/2021-update
//String encryptedSigns = merchanCode + secretKey + referenceNum + amount + payRespCodeTransaction;
//String encryptedSignValueUpdate = encrytThisString(encryptedSigns);
//String paramsResponse = "{\"id\":13,\"merchant_code\":\"MER0001\"}";
//String paramsResponse = {"id":13,"merchant_code":"MER0001","terminal_code":"TER001","reference_number":"PAY0021","response_code":"00","payment_type":"01","amount":"1.00","payment_function":"01","payment_camera_mode":null,"status":"success","created_at":"2021-08-23T03:19:30.000000Z","updated_at":"2021-08-23T06:29:40.000000Z"};
String paramsResponse = getAllHLBresponse;
//if (status.toLowerCase().trim().equals("success") && transaction.getType().toLowerCase().contains("sale")) {
if (status.toLowerCase().trim().equals("success")) {
textStatus.setText(getResources().getString(R.string.txt_success_status));
textInfo.setText(getResources().getString(R.string.txt_info_status));
//textAmount.setText("Donation Amount: " + "RM " + amount);
Glide.with(StatusActivity.this).asBitmap().load(R.drawable.ic_status_success_fancy).into(imageStatus);
/*//direct update the status to server
String refNum = referenceNum;
String finalResultPayRespCodeStatus = status;
String finalAmount = amountTransaction;
//String paymentTypeTransaction = payTypeTransaction;
//String paymentFunctionTransaction = payFunctionTransaction;
//String paymentCameraMode = payCameraModeTransaction;
//TODO: change this hardcoded value later
//String signValue = "testSignature";
//String paramResponse = "HLB params here..";
//JSONObject obj = ((Parcel) ((Bundle) getArguments()).getSerializable("events")).getObj();
//String paramResponse = obj.toString();
String merchanCode = "MER0001";
//String terminalCode = transaction.getTid();
String secretKey = "Uthos^eY5pfO";
//String finalStatus = "fail";
//String amount = realAmount;
//String responseCode = transaction.getResponseCode();
//Signature = merchant_code+secret_key+reference_number+amount+response_code ->23/08/2021-update
String encryptedSign = merchanCode + secretKey + refNum + amount + payRespCodeTransaction;
String encryptedSignValueUpdate = encrytThisString(encryptedSign);
String paramsResponse = "{\"id\":13,\"merchant_code\":\"MER0001\"}";*/
//Signature = merchant_code+secret_key+reference_number+amount+response_code ->23/08/2021-update
//String encryptedSigns = merchanCode + secretKey + referenceNum + amount + payRespCodeTransaction;
String encryptedSignValueUpdate = "";//encrytThisString(encryptedSigns);
//hide button so user won't need to interact with it
//buttonDonationSuccess.setVisibility(View.VISIBLE);
buttonDonationSuccess.setVisibility(View.GONE);
buttonRetry.setVisibility(View.GONE);
buttonNoRetry.setVisibility(View.GONE);
//hold the info from UDC kiosk donation received for 5 second then proceed to HLB app
final Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 5000ms = 5 seconds
//update Status success to server
//updateResponseToApi(String referenceNumber, String status, String merchantCode, String amount, String responseCode,
// String encryptedSignValueUpdate, String paramsResponse)
updateResponseFromhlb(referenceNum, status, merchanCode, amountTransaction, payRespCodeTransaction,
encryptedSignValueUpdate, paramsResponse);
//updateResponseFromhlb(payment);
/*{ //current jSON at API side -UPDATE
"id": 11,
"reference_number": "PAY001",
"payment_type": null,
"payment_function": null,
"payment_camera_mode": null,
"signature": null,
"amount": "1.00",
"status": "success",
"params_response": null,
"created_at": "2021-06-20T13:32:40.000000Z",
"updated_at": "2021-08-19T00:32:17.000000Z"
}*/
Intent i = new Intent(StatusActivity.this, MainActivity.class);
i.putExtra("statusCurrent", status);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
}, 5000);
} else {
textStatus.setText(getResources().getString(R.string.txt_fail_status));
textInfo.setText(getResources().getString(R.string.txt_fail_info_status));
//textAmount.setText("Donation Amount: " + "RM " + amount);
Glide.with(StatusActivity.this).asBitmap().load(R.drawable.ic_status_fail_fancy).into(imageStatus);
buttonDonationSuccess.setVisibility(View.GONE);
buttonRetry.setVisibility(View.VISIBLE);
buttonNoRetry.setVisibility(View.VISIBLE);
}
//button ok ->hide because useless/ no need user to press
/*buttonDonationSuccess.setOnClickListener(view -> {
String refNum = referenceNum;
String finalResultPayRespCodeStatus = status;
String finalAmount = amountTransaction;
//update Status to server
updateResponseFromhlb(refNum, finalResultPayRespCodeStatus, finalAmount);
Intent i = new Intent(StatusActivity.this, MainActivity.class);
i.putExtra("statusCurrent", finalResultPayRespCodeStatus);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
});*/
//button no retry pay again
buttonNoRetry.setOnClickListener(view -> {
String refNum = referenceNum;
String finalResultPayRespCodeStatus = status;
String finalAmount = amountTransaction;
String paymentTypeTransaction = payTypeTransaction;
String paymentFunctionTransaction = payFunctionTransaction;
String paymentCameraMode = payCameraModeTransaction;
//Signature = merchant_code+secret_key+reference_number+amount+response_code ->23/08/2021-update
//String encryptedSigns = merchanCode + secretKey + referenceNum + amount + payRespCodeTransaction;
String encryptedSignValueUpdate ="";// encrytThisString(encryptedSigns);
//updateResponseToApi(String referenceNumber, String status, String merchantCode, String amount, String responseCode,
// String encryptedSignValueUpdate, String paramsResponse)
//update Status = FAIL to server
//updateResponseToApi(String referenceNumber, String status, String merchantCode, String amount, String responseCode,
// String encryptedSignValueUpdate, String paramsResponse)
updateResponseFromhlb(referenceNum, finalResultPayRespCodeStatus, merchanCode, finalAmount, payRespCodeTransaction,
encryptedSignValueUpdate, paramsResponse);
/*updateResponseFromhlb(refNum, paymentTypeTransaction, paymentFunctionTransaction,
paymentCameraMode, signValue, finalAmount, finalResultPayRespCodeStatus, paramResponse);*/
Intent intent = new Intent(StatusActivity.this, MainActivity.class);
intent.putExtra("statusCurrent", finalResultPayRespCodeStatus);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
});
//button retry
//buttonRetry.setOnClickListener(view -> buttonRetryPayment(status));
buttonRetry.setOnClickListener(view -> {
String refNum = referenceNum;
String finalResultPayRespCodeStatus = "pending";
vStatus = finalResultPayRespCodeStatus;
String finalAmount = amountTransaction;
//Signature=merchant_code+secret_key_reference_number+amount+payment_type ->23/08/2021-requery
String encryptedSign ="";// merchanCode + secretKey + referenceNum + amount + payTypeTransaction;
String encryptedSignValueRequery = encrytThisString(encryptedSign);
//Signature = merchant_code+secret_key+reference_number+amount+response_code ->23/08/2021-update
String encryptedSigns ="";// merchanCode + secretKey + referenceNum + amount + payRespCodeTransaction;
String encryptedSignValueUpdate = encrytThisString(encryptedSigns);
//update Status to server ->no need to update 1st, just retry the payment
//updateResponseFromhlb(refNum, finalResultPayRespCodeStatus, finalAmount);
//check the status from server 1st, if pending proceed, if fail sho success show something
//requery + update API
checkStatusPayment(refNum, merchanCode, payTypeTransaction, finalAmount, encryptedSignValueRequery,
paramsResponse, payRespCodeTransaction, encryptedSignValueUpdate);
/*//String transactionStatus = status; ->pending
String transactionReference = refNum;
String transactionStatus = finalResultPayRespCodeStatus;
String transactionAmount = finalAmount;
retryPayment(finalAmount);*/
/*Intent intents = new Intent(StatusActivity.this, MainActivity.class);
intents.putExtra("referenceCurrent", transactionReference);
intents.putExtra("statusCurrent", transactionStatus);
intents.putExtra("amountCurrent", transactionAmount);
intents.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intents);*/
});
}
//refNum, merchanCode, payTypeTransaction, finalAmount, encryptedSignValueRequery
private void checkStatusPayment(String referenceNumber, String merchanCode, String payType, String amount, String encryptedSignValueRequery,
String paramResponse, String payRespCode, String encryptedSignValueUpdate) {
//TODO: Please cleanup and fix afterwards
String tempHostUrl = "http://udcsys-api-build.testpigeon.net";
String buildToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiOTA2ZTNkN2VmNmZkNmNhZjVjYTVkNWEzYjI5ZDRiMWYxZjlmYTc4ZDcxYzYyNGE0N2FmMTYwMGQzZWY3ZGU5OGE5MGY2NzJlNzE4NmVmZGIiLCJpYXQiOjE2MDg1MzYyMTMsIm5iZiI6MTYwODUzNjIxMywiZXhwIjoxNjQwMDcyMjEzLCJzdWIiOiIxMSIsInNjb3BlcyI6W119.i2jDd1Zux2UkoLhzif762ghsJFhQ32Gk6g0Z2pXDRHKWVoK4kHv__Fnxb4XhdJncfzSmMibZGguOEVPNuRotMjhC7a-lgHKItqeamOSxQNONuhea601R3k8QVDA92mnRKBsDiQw6-mcCw-K5t49I1TkkwauQ1EYQU5GI4vttxbdO_irZfQgINfyCmAkqo_IWgc8498pCuI5lMA2vI9X3BETtNt8WS451hU59fy7K_sjiojFG6mvwu7C-z0ZPcqKQ8F7c2JfZq0qphslMrqj0nZh0skGf0Qf6ZmRrftkNONcO9j9jh5eJfEHIEmGqNhDeO9ftQq5BuWfm6FhYVIW1YnBKrNk6lLkk38fuKjk8FevNwH6knVZjb3Q27Kr7K2cbbvlPEp846VrJrwIdJjfpDuAoorjMQAw-yVJQYOrb_v8F1jhnoMC_Qdu5Qc1AjbDrHggrZtkG9f7pw60reoNk01OCVsOD5ecldm05PfJ2NqhdZn1oXXxFOXc8lcBWpYkfhrOzw0fpxH4hFk4j8HSvy4n0EkB5ZfctDYx6JxXfoCsW7zYgm52ZCZISV5Kchkhlk6W2C1pUs8YjtxAU2I8A6wVbJwGVbwsDudgPXMuNH_PVk3YkljWU-zkPbMLWMOc-DNyioE-dAoq1VWPXoNuhaOqMDR4RCiZPhvJg0yxfA68";
//String paymentType = "01"; //01=Card Payment
//Get REQUERY Payment from UDC Laravel Echo Listener Server
RetrofitAPICollection service = RetrofitClient.getRetrofitClient(tempHostUrl).create(RetrofitAPICollection.class);
/*Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://udcsys-api-build.testpigeon.net")
.addConverterFactory(GsonConverterFactory.create())
.build();*/
Call<String> callCardPayStatus = service.requeryCardPayment("Bearer " + buildToken,
referenceNumber,
merchanCode,
payType,
amount,
encryptedSignValueRequery);
callCardPayStatus.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
/*Toast.makeText(StatusActivity.this,"\n" +
"Update data process completed!",Toast.LENGTH_SHORT).show();*/
if (response.isSuccessful()) {
try {
JSONObject responseJSON = new JSONObject(response.body());
String responseStatus = responseJSON.getString("status");
if (responseStatus.toLowerCase().trim().equals("fail")) {
//set the fail info
String refNum = referenceNum;
String finalResultPayRespCodeStatus = status;
String finalAmount = amountTransaction;
String payRespCodeTransaction = payRespCode;
String encryptedSignUpdate = encryptedSignValueUpdate;
//String paymentTypeTransaction = transaction.getType();
//String paymentFunctionTransaction = transaction.getFunction();
//String paymentCameraMode = transaction.getCameraMode();
//TODO: change this hardcoded value later
//String signValue = "testSignature";
//String paramResponse = "HLB params here..";
/*updateResponseFromhlb(refNum, payTypeTransaction, payFunctionTransaction,
payCameraModeTransaction, signValue, finalAmount, finalResultPayRespCodeStatus, paramResponse);*/
//updateResponseToApi(String referenceNumber, String status, String merchantCode, String amount, String responseCode,
// String encryptedSignValueUpdate, String paramsResponse)
//update Status = FAIL to server
//updateResponseToApi(String referenceNumber, String status, String merchantCode, String amount, String responseCode,
// String encryptedSignValueUpdate, String paramsResponse)
updateResponseFromhlb(referenceNum, finalResultPayRespCodeStatus, merchanCode, finalAmount, payRespCodeTransaction,
encryptedSignUpdate, paramResponse);
/*updateResponseFromhlb(refNum, paymentTypeTransaction, paymentFunctionTransaction, paymentCameraMode,
signValue, finalAmount, finalResultPayRespCodeStatus, paramResponse);*/
//show screen/info about cannot retry
setResult(RESULT_OK);
StatusActivity.showFinishMessage(StatusActivity.this, "Payment Fail!", "Payment status : " + responseStatus);
//hold the info from UDC kiosk donation received for 5 second then proceed to HLB app
final Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Do something after 5000ms = 5 seconds
//direct user to main screen
Intent intent = new Intent(StatusActivity.this, MainActivity.class);
intent.putExtra("statusCurrent", finalResultPayRespCodeStatus);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}, 5000);
} else if (responseStatus.toLowerCase().trim().equals("pending")) {
//if status not fail, proceed the retry payment process
String refNum = referenceNum;
String finalResultPayRespCodeStatus = "pending";
vStatus = finalResultPayRespCodeStatus;
String finalAmount = amountTransaction;
//String transactionStatus = status; ->pending
String transactionReference = refNum;
String transactionStatus = finalResultPayRespCodeStatus;
String transactionAmount = finalAmount;
retryPayment(transactionAmount);
}
} catch (JSONException e) {
e.printStackTrace();
}
} //if response is NoSuccessful
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Toast.makeText(StatusActivity.this, "Unsuccessfully update data!\n", Toast.LENGTH_SHORT).show();
}
});
}
private void retryPayment(String finalAmount) {
String amount = finalAmount;
//Get the amount from current screen
String payAmount = amount;
//Convert double value of amount from UDC kiosk app to integer 1st
double doubleValue = Double.parseDouble(payAmount);
double centValue = doubleValue * 100;
//Convert amount to time 100 for HLB to process
int correctAmount = (int) Math.round(centValue);
String pay_amount = "";
Bundle extra = new Bundle();
String pay_function = "01"; //Sale Payment Function
pay_amount = pay_amount.valueOf(correctAmount);
String pay_type = "01"; //Card Payment
String pay_camera_mode = "01"; //Internal Device Back Camera
String pay_print_receipt_id = "N"; //Set Requirement
String pay_resp_code = "";
//Pack Request Message
extra.putString("pay_function", pay_function);
extra.putString("pay_amount", pay_amount);
extra.putString("pay_type", pay_type);
extra.putString("pay_camera_mode", pay_camera_mode);
extra.putString("pay_print_receipt_id", pay_print_receipt_id);
extra.putString("pay_resp_code", pay_resp_code);
//API to call Payment App
Intent intent = new Intent("com.revenue.edc.hlb.pro.app2app");
intent.putExtras(extra);
startActivity(intent);
}
//updateResponseToApi(String referenceNumber, String status, String merchantCode, String amount, String responseCode,
// String encryptedSignValueUpdate, String paramsResponse)
//Signature = merchant_code+secret_key+reference_number+amount+response_code ->23/08/2021-update
private void updateResponseFromhlb(String referenceNumber, String status, String merchantCode, String amount, String responseCode,
String encryptedSignValueUpdate, String paramsResponse) {
String buildToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiOTA2ZTNkN2VmNmZkNmNhZjVjYTVkNWEzYjI5ZDRiMWYxZjlmYTc4ZDcxYzYyNGE0N2FmMTYwMGQzZWY3ZGU5OGE5MGY2NzJlNzE4NmVmZGIiLCJpYXQiOjE2MDg1MzYyMTMsIm5iZiI6MTYwODUzNjIxMywiZXhwIjoxNjQwMDcyMjEzLCJzdWIiOiIxMSIsInNjb3BlcyI6W119.i2jDd1Zux2UkoLhzif762ghsJFhQ32Gk6g0Z2pXDRHKWVoK4kHv__Fnxb4XhdJncfzSmMibZGguOEVPNuRotMjhC7a-lgHKItqeamOSxQNONuhea601R3k8QVDA92mnRKBsDiQw6-mcCw-K5t49I1TkkwauQ1EYQU5GI4vttxbdO_irZfQgINfyCmAkqo_IWgc8498pCuI5lMA2vI9X3BETtNt8WS451hU59fy7K_sjiojFG6mvwu7C-z0ZPcqKQ8F7c2JfZq0qphslMrqj0nZh0skGf0Qf6ZmRrftkNONcO9j9jh5eJfEHIEmGqNhDeO9ftQq5BuWfm6FhYVIW1YnBKrNk6lLkk38fuKjk8FevNwH6knVZjb3Q27Kr7K2cbbvlPEp846VrJrwIdJjfpDuAoorjMQAw-yVJQYOrb_v8F1jhnoMC_Qdu5Qc1AjbDrHggrZtkG9f7pw60reoNk01OCVsOD5ecldm05PfJ2NqhdZn1oXXxFOXc8lcBWpYkfhrOzw0fpxH4hFk4j8HSvy4n0EkB5ZfctDYx6JxXfoCsW7zYgm52ZCZISV5Kchkhlk6W2C1pUs8YjtxAU2I8A6wVbJwGVbwsDudgPXMuNH_PVk3YkljWU-zkPbMLWMOc-DNyioE-dAoq1VWPXoNuhaOqMDR4RCiZPhvJg0yxfA68";
//Get REQUERY Payment from UDC Laravel Echo Listener Server
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://udcsys-api-build.testpigeon.net")
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitAPICollection retrofitAPICollection = retrofit.create(RetrofitAPICollection.class);
Call<String> call = retrofitAPICollection.updateStatusCardPayment("Bearer " + buildToken,
referenceNumber,
status,
merchantCode,
amount,
responseCode,
encryptedSignValueUpdate,
paramsResponse);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, Response<String> response) {
//txtStatus.setText(response.body().getReferenceNumber()+ " ".concat(response.body().getStatus()+ " "));
Toast.makeText(StatusActivity.this, "\n" +
"Update data process completed!", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Toast.makeText(StatusActivity.this, "Unsuccessfully update data!\n", Toast.LENGTH_SHORT).show();
}
});
}
private void buttonRetryPayment(String transactionStatus) {
//Get status from Response Screen , send to MainActivity for retry process
Intent intent = new Intent(StatusActivity.this, MainActivity.class);
//intent.putExtra("transaction", transaction);
intent.putExtra("status", transactionStatus);
startActivity(intent);
//setResult(RESULT_OK);
//finish();
}
}

170
app/src/main/res/drawable-v24/ic_udc_launcher_background.xml

@ -1,170 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#3DDC84"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

189
app/src/main/res/layout/activity_status.xml

@ -1,189 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/white"
android:gravity="center"
android:orientation="vertical"
tools:context=".activity.StatusActivity">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image_status_sta"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerHorizontal="true"
android:contentDescription="@string/txt_image_description"
android:src="@drawable/ic_status_success" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_status_sta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="@string/txt_success_status"
android:textColor="#1d504a"
android:textSize="30sp"
android:textStyle="bold" />
<TextView
android:id="@+id/text_info_sta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/text_status_sta"
android:layout_centerHorizontal="true"
android:paddingLeft="30dp"
android:paddingTop="30dp"
android:paddingRight="30dp"
android:paddingBottom="20dp"
android:text="@string/txt_info_status"
android:textAlignment="center"
android:textColor="@color/grey_8e98a6"
android:textSize="20sp" />
<TextView
android:id="@+id/text_info_amount_sta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/text_info_sta"
android:layout_centerHorizontal="true"
android:paddingLeft="30dp"
android:paddingRight="30dp"
android:text="@string/txt_info_amount_status"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/button_ok_donation_sta"
android:layout_width="200dp"
android:layout_height="70dp"
android:layout_marginStart="40dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="40dp"
android:layout_weight="1"
android:background="@drawable/btn_general_enable_bg"
android:gravity="center"
android:padding="20dp"
android:text="@string/btn_ok_donation_status"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
<Button
android:id="@+id/button_pay_again_sta"
android:layout_width="200dp"
android:layout_height="70dp"
android:layout_below="@id/button_ok_donation_sta"
android:layout_marginStart="40dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="40dp"
android:layout_weight="1"
android:background="@drawable/btn_general_enable_bg"
android:gravity="center"
android:padding="20dp"
android:text="@string/btn_pay_again_status"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="visible" />
<Button
android:id="@+id/button_no_pay_again_sta"
android:layout_width="200dp"
android:layout_height="70dp"
android:layout_below="@id/button_pay_again_sta"
android:layout_marginStart="40dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="40dp"
android:layout_weight="1"
android:background="@drawable/btn_general_disable_bg"
android:gravity="center"
android:padding="20dp"
android:text="@string/btn_no_pay_again_status"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="visible" />
</RelativeLayout>
<!--<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/button_ok_donation_sta"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="80dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="80dp"
android:layout_marginBottom="80dp"
android:layout_weight="1"
android:background="@drawable/btn_general_enable_bg"
android:padding="20dp"
android:text="@string/btn_ok_donation_status"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
<Button
android:id="@+id/button_pay_again_sta"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_marginStart="40dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="40dp"
android:layout_weight="1"
android:background="@drawable/btn_general_enable_bg"
android:padding="20dp"
android:text="@string/btn_pay_again_status"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="visible" />
<Button
android:id="@+id/button_no_pay_again_sta"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_marginStart="40dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="40dp"
android:layout_weight="1"
android:background="@drawable/btn_general_enable_bg"
android:padding="20dp"
android:text="@string/btn_no_pay_again_status"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:visibility="visible" />
</LinearLayout>-->
</LinearLayout>

5
app/src/main/res/mipmap-anydpi-v26/ic_udc_launcher.xml

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_udc_launcher_background" />
<foreground android:drawable="@mipmap/ic_udc_launcher_foreground" />
</adaptive-icon>

5
app/src/main/res/mipmap-anydpi-v26/ic_udc_launcher_round.xml

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_udc_launcher_background" />
<foreground android:drawable="@mipmap/ic_udc_launcher_foreground" />
</adaptive-icon>

BIN
app/src/main/res/mipmap-hdpi/ic_udc_launcher.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

BIN
app/src/main/res/mipmap-hdpi/ic_udc_launcher_foreground.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

BIN
app/src/main/res/mipmap-hdpi/ic_udc_launcher_round.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

BIN
app/src/main/res/mipmap-mdpi/ic_udc_launcher.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

BIN
app/src/main/res/mipmap-mdpi/ic_udc_launcher_foreground.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

BIN
app/src/main/res/mipmap-mdpi/ic_udc_launcher_round.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

BIN
app/src/main/res/mipmap-xhdpi/ic_udc_launcher.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

BIN
app/src/main/res/mipmap-xhdpi/ic_udc_launcher_foreground.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

BIN
app/src/main/res/mipmap-xhdpi/ic_udc_launcher_round.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

BIN
app/src/main/res/mipmap-xxhdpi/ic_udc_launcher.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

BIN
app/src/main/res/mipmap-xxhdpi/ic_udc_launcher_foreground.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

BIN
app/src/main/res/mipmap-xxhdpi/ic_udc_launcher_round.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

BIN
app/src/main/res/mipmap-xxxhdpi/ic_udc_launcher.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

BIN
app/src/main/res/mipmap-xxxhdpi/ic_udc_launcher_foreground.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
app/src/main/res/mipmap-xxxhdpi/ic_udc_launcher_round.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

2
app/src/main/res/values-night/themes.xml

@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Udcpaymentterminalim30" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<style name="Theme.IM30" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryVariant">@color/purple_700</item>

2
app/src/main/res/values/themes.xml

@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Udcpaymentterminalim30" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<style name="Theme.IM30" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>

Loading…
Cancel
Save