diff --git a/EasyUpiPayment/build.gradle b/EasyUpiPayment/build.gradle
index 2a2bb32..d34445e 100644
--- a/EasyUpiPayment/build.gradle
+++ b/EasyUpiPayment/build.gradle
@@ -22,7 +22,6 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
-
}
dependencies {
diff --git a/EasyUpiPayment/src/main/AndroidManifest.xml b/EasyUpiPayment/src/main/AndroidManifest.xml
index 2435544..93af29a 100644
--- a/EasyUpiPayment/src/main/AndroidManifest.xml
+++ b/EasyUpiPayment/src/main/AndroidManifest.xml
@@ -3,7 +3,9 @@
package="com.shreyaspatil.EasyUpiPayment">
-
+
\ No newline at end of file
diff --git a/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/EasyUpiPayment.java b/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/EasyUpiPayment.java
index 81fb005..e24e0ff 100644
--- a/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/EasyUpiPayment.java
+++ b/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/EasyUpiPayment.java
@@ -26,7 +26,6 @@ private EasyUpiPayment(@NonNull final Activity mActivity, @NonNull Payment mPaym
/**
* Starts the payment Transaction. Calling this method launches the Payment Menu
* and shows installed UPI apps in device and let user choose one of them to pay.
- *
*/
public void startPayment() {
Intent payIntent = new Intent(mActivity, PaymentUiActivity.class);
@@ -44,6 +43,13 @@ public void setPaymentStatusListener(@NonNull PaymentStatusListener mListener) {
singleton.setListener(mListener);
}
+ /**
+ * Removes the PaymentStatusListener which is already registered.
+ */
+ public void detachListener() {
+ Singleton.getInstance().detachListener();
+ }
+
/**
* Builder for {@link EasyUpiPayment}.
*/
@@ -167,7 +173,7 @@ public Builder setDescription(@NonNull String description) {
@NonNull
public Builder setAmount(@NonNull String amount) {
if (!amount.contains(".")) {
- throw new IllegalStateException("Amount should be in decimal format XX.XX");
+ throw new IllegalStateException("Amount should be in decimal format XX.XX (For e.g. 100.00)");
}
payment.setAmount(amount);
diff --git a/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/Singleton.java b/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/Singleton.java
index d91a8d5..e65f2fb 100644
--- a/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/Singleton.java
+++ b/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/Singleton.java
@@ -4,7 +4,6 @@
import com.shreyaspatil.EasyUpiPayment.listener.PaymentStatusListener;
-
public final class Singleton {
private static Singleton instance = null;
@@ -19,14 +18,18 @@ public static Singleton getInstance() {
@NonNull
public PaymentStatusListener getListener() {
- return listener;
+ return instance.listener;
+ }
+
+ void setListener(@NonNull PaymentStatusListener listener) {
+ instance.listener = listener;
}
- public void setListener(@NonNull PaymentStatusListener listener) {
- this.listener = listener;
+ public void detachListener() {
+ instance.listener = null;
}
public boolean isListenerRegistered() {
- return (listener != null);
+ return (instance.listener != null);
}
}
diff --git a/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/ui/PaymentUiActivity.java b/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/ui/PaymentUiActivity.java
index 320e889..9ba1a6e 100644
--- a/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/ui/PaymentUiActivity.java
+++ b/EasyUpiPayment/src/main/java/com/shreyaspatil/EasyUpiPayment/ui/PaymentUiActivity.java
@@ -29,6 +29,7 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upipay);
+ // Get instance of Singleton class
singleton = Singleton.getInstance();
//Get Payment Information
@@ -93,21 +94,27 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(response == null) {
callbackTransactionCancelled();
Log.d(TAG, "Response is null");
- finish();
- }
-
- TransactionDetails transactionDetails = getTransactionDetails(response);
- //Update Listener onTransactionCompleted()
- callbackTransactionComplete(transactionDetails);
-
- //Check if success, submitted or failed
- if (transactionDetails.getStatus().toLowerCase().equals("success")) {
- callbackTransactionSuccess();
- } else if (transactionDetails.getStatus().toLowerCase().equals("submitted")) {
- callbackTransactionSubmitted();
} else {
- callbackTransactionFailed();
+
+ TransactionDetails transactionDetails = getTransactionDetails(response);
+
+ //Update Listener onTransactionCompleted()
+ callbackTransactionComplete(transactionDetails);
+
+ //Check if success, submitted or failed
+ try {
+ if (transactionDetails.getStatus().toLowerCase().equals("success")) {
+ callbackTransactionSuccess();
+ } else if (transactionDetails.getStatus().toLowerCase().equals("submitted")) {
+ callbackTransactionSubmitted();
+ } else {
+ callbackTransactionFailed();
+ }
+ } catch (Exception e) {
+ callbackTransactionCancelled();
+ callbackTransactionFailed();
+ }
}
} else {
Log.e(TAG, "Intent Data is null. User cancelled");
@@ -174,7 +181,4 @@ private void callbackTransactionComplete(TransactionDetails transactionDetails)
singleton.getListener().onTransactionCompleted(transactionDetails);
}
}
-
-
-
}
diff --git a/EasyUpiPayment/src/main/res/drawable/ic_close.xml b/EasyUpiPayment/src/main/res/drawable/ic_close.xml
new file mode 100644
index 0000000..f50fd99
--- /dev/null
+++ b/EasyUpiPayment/src/main/res/drawable/ic_close.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/EasyUpiPayment/src/main/res/layout/apps_bottomsheet.xml b/EasyUpiPayment/src/main/res/layout/apps_bottomsheet.xml
index 5034641..652fec4 100644
--- a/EasyUpiPayment/src/main/res/layout/apps_bottomsheet.xml
+++ b/EasyUpiPayment/src/main/res/layout/apps_bottomsheet.xml
@@ -11,9 +11,10 @@
+ android:layout_height="wrap_content"
+ android:paddingBottom="8dp">
-
+ android:layout_marginBottom="8dp"
+ android:background="@android:color/transparent"
+ android:src="@drawable/ic_close" />
diff --git a/README.md b/README.md
index be6fcb5..3bda2a2 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ In your `build.gradle` file of app module, add below dependency to import this l
```gradle
dependencies {
- implementation 'com.shreyaspatil:EasyUpiPayment:1.0'
+ implementation 'com.shreyaspatil:EasyUpiPayment:1.1'
}
```
diff --git a/app/build.gradle b/app/build.gradle
index baff762..515730a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,7 +28,7 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
//EasyUpiPayment Library
- implementation 'com.shreyaspatil:EasyUpiPayment:1.0'
+ implementation 'com.shreyaspatil:EasyUpiPayment:1.1'
//implementation project(path: ':EasyUpiPayment')
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d674563..231ae02 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
+ android:theme="@style/AppTheme"
+ tools:ignore="GoogleAppIndexingWarning">
diff --git a/app/src/main/java/com/example/easyupipayment/MainActivity.java b/app/src/main/java/com/example/easyupipayment/MainActivity.java
index 0ec1198..8959928 100644
--- a/app/src/main/java/com/example/easyupipayment/MainActivity.java
+++ b/app/src/main/java/com/example/easyupipayment/MainActivity.java
@@ -33,12 +33,12 @@ protected void onCreate(Bundle savedInstanceState) {
//Create instance of EasyUpiPayment
final EasyUpiPayment easyUpiPayment = new EasyUpiPayment.Builder()
.with(this)
- .setPayeeVpa("PAYEE_VPA")
+ .setPayeeVpa("example@vpa")
.setPayeeName("PAYEE_NAME")
.setTransactionId("TRANSACTION_ID")
.setTransactionRefId("TRANSACTION_REF_ID")
.setDescription("DESCRIPTION_OR_SHORT_NOTE")
- .setAmount("AMOUNT IN DECIMALS XX.XX IN INR")
+ .setAmount("AMOUNT IN XX.XX DECIMAL FORMAT")
.build();
//Register Listener for Events