Skip to content

Commit 55026ac

Browse files
committed
Merge branch 'v2.0.0' into main
2 parents 56054a0 + c6026fd commit 55026ac

17 files changed

Lines changed: 241 additions & 108 deletions

File tree

poolakeyunitysdk-android/.idea/deploymentTargetDropDown.xml

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

poolakeyunitysdk-android/.idea/misc.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

poolakeyunitysdk-android/app/build.gradle

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ android {
1212
versionCode 1
1313
versionName "1.0"
1414

15-
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1615
}
1716

1817
buildTypes {
@@ -32,7 +31,6 @@ dependencies {
3231
implementation 'androidx.appcompat:appcompat:1.4.1'
3332
implementation 'com.google.android.material:material:1.5.0'
3433
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
35-
testImplementation 'junit:junit:4.+'
36-
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
37-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
34+
implementation "com.github.cafebazaar.Poolakey:poolakey:2.0.0"
35+
implementation project(path: ':poolakey')
3836
}

poolakeyunitysdk-android/app/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.sample.android.trivialdrivesample">
4-
54
<application
65
android:allowBackup="true"
76
android:icon="@mipmap/ic_launcher"

poolakeyunitysdk-android/app/src/main/java/com/sample/android/trivialdrivesample/MainActivity.java

Lines changed: 94 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,109 @@
33
import androidx.appcompat.app.AppCompatActivity;
44

55
import android.os.Bundle;
6+
import android.util.Log;
7+
import android.view.View;
8+
import android.widget.TextView;
69

10+
import com.farsitel.bazaar.PaymentActivity;
711
import com.farsitel.bazaar.PoolakeyBridge;
12+
import com.farsitel.bazaar.PoolakeyKotlinBridge;
13+
import com.farsitel.bazaar.callback.ConnectionCallback;
14+
import com.farsitel.bazaar.callback.ConsumeCallback;
15+
import com.farsitel.bazaar.callback.PaymentCallback;
16+
import com.farsitel.bazaar.callback.PurchasesCallback;
17+
import com.farsitel.bazaar.callback.SKUDetailsCallback;
818

9-
public class MainActivity extends AppCompatActivity {
19+
import java.util.Arrays;
20+
import java.util.List;
21+
22+
import ir.cafebazaar.poolakey.entity.SkuDetails;
1023

11-
private PoolakeyBridge bridge;
24+
public class MainActivity extends AppCompatActivity {
25+
private TextView textView;
1226

1327
@Override
1428
protected void onCreate(Bundle savedInstanceState) {
1529
super.onCreate(savedInstanceState);
1630
setContentView(R.layout.activity_main);
1731

18-
bridge = new PoolakeyBridge();
32+
textView = findViewById(R.id.textView);
33+
34+
PoolakeyKotlinBridge.INSTANCE.connect(getApplicationContext(), null, new ConnectionCallback() {
35+
@Override
36+
public void onConnect() {
37+
log("onConnect");
38+
getSKUDetails();
39+
}
40+
41+
@Override
42+
public void onDisconnect() {
43+
log("onDisconnect");
44+
}
45+
46+
@Override
47+
public void onFailure(String message, String stackTrace) {
48+
log("onFailure " + message);
49+
}
50+
});
51+
}
52+
53+
private void getSKUDetails() {
54+
PoolakeyKotlinBridge.INSTANCE.getSkuDetails("inapp", Arrays.asList("gas,premium".split(",")), new SKUDetailsCallback() {
55+
@Override
56+
public void onSuccess(List<SkuDetails> data) {
57+
log("onSkuDetailsSuccess " + data.toString());
58+
}
59+
60+
@Override
61+
public void onFailure(String message, String stackTrace) {
62+
log("onSkuDetailsFailure " + message);
63+
}
64+
});
65+
}
66+
67+
public void purchase(View view) {
68+
PoolakeyKotlinBridge.INSTANCE.startActivity(this, PaymentActivity.Command.PurchaseProduct, new PaymentCallback() {
69+
@Override
70+
public void onStart() {
71+
log("onPurchaseStart");
72+
}
73+
74+
@Override
75+
public void onCancel() {
76+
log("onPurchaseCancel");
77+
}
78+
79+
@Override
80+
public void onSuccess(String orderId, String purchaseToken, String payload, String packageName, int purchaseState, long purchaseTime, String productId, String originalJson, String dataSignature) {
81+
log("onPurchaseSuccess " + orderId);
82+
consume(purchaseToken);
83+
}
84+
85+
@Override
86+
public void onFailure(String message, String stackTrace) {
87+
log("onPurchaseFailure " + message);
88+
}
89+
}, "gas", "", "");
90+
}
91+
92+
public void consume(String purchaseToken) {
93+
PoolakeyKotlinBridge.INSTANCE.consume(purchaseToken, new ConsumeCallback() {
94+
@Override
95+
public void onSuccess() {
96+
log("onConsumeSuccess");
97+
}
98+
99+
@Override
100+
public void onFailure(String message, String stackTrace) {
101+
log("onConsumeFailure " + message);
102+
103+
}
104+
});
105+
}
106+
107+
void log(String message) {
108+
Log.i(PoolakeyBridge.TAG, message);
109+
textView.append(message + "\n");
19110
}
20111
}

poolakeyunitysdk-android/app/src/main/res/layout/activity_main.xml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,24 @@
66
android:layout_height="match_parent"
77
tools:context=".MainActivity">
88

9-
<TextView
9+
<Button
10+
android:id="@+id/button"
1011
android:layout_width="wrap_content"
1112
android:layout_height="wrap_content"
12-
android:text="Hello World!"
13+
android:onClick="purchase"
14+
android:text="Purchase Gas"
15+
app:layout_constraintBottom_toBottomOf="parent"
16+
app:layout_constraintEnd_toEndOf="parent"
17+
app:layout_constraintStart_toStartOf="parent"
18+
app:layout_constraintTop_toTopOf="parent" />
19+
20+
<TextView
21+
android:id="@+id/textView"
22+
android:layout_width="0dp"
23+
android:layout_height="0dp"
1324
app:layout_constraintBottom_toBottomOf="parent"
1425
app:layout_constraintLeft_toLeftOf="parent"
1526
app:layout_constraintRight_toRightOf="parent"
16-
app:layout_constraintTop_toTopOf="parent" />
27+
app:layout_constraintTop_toBottomOf="@+id/button" />
1728

1829
</androidx.constraintlayout.widget.ConstraintLayout>

poolakeyunitysdk-android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
mavenCentral()
66
}
77
dependencies {
8-
classpath "com.android.tools.build:gradle:4.1.3"
8+
classpath "com.android.tools.build:gradle:3.4.3"
99
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
1010
// NOTE: Do not place your application dependencies here; they belong
1111
// in the individual module build.gradle files

poolakeyunitysdk-android/poolakey/build.gradle

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
22
apply plugin: 'kotlin-android'
33
ext {
44
poolakey_version = '2.0.0'
5-
kotlin_version = '1.3.72'
5+
kotlin_version = '1.4.20'
66
}
77
android {
88
compileSdkVersion 29
@@ -24,6 +24,10 @@ android {
2424
}
2525
}
2626

27+
packagingOptions {
28+
exclude("META-INF/*.kotlin_module")
29+
}
30+
2731
compileOptions {
2832
sourceCompatibility JavaVersion.VERSION_1_8
2933
targetCompatibility JavaVersion.VERSION_1_8
@@ -33,7 +37,6 @@ android {
3337
dependencies {
3438
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
3539
implementation "com.github.cafebazaar.Poolakey:poolakey:$poolakey_version"
36-
implementation 'androidx.appcompat:appcompat:1.4.1'
3740
}
3841

3942
/*task deleteJar(type: Delete) {
@@ -47,7 +50,7 @@ task createJar(type: Copy) {
4750
}*/
4851
task updateAAR(type: Copy) {
4952
from('build/outputs/aar')
50-
into('../poolakeyunitysdk-unity/Assets/Bazaar/Poolakey/Plugins/')
53+
into('../../poolakeyunitysdk-unity/Assets/Bazaar/Poolakey/Plugins/')
5154
include(project.name + '-release.aar')
5255
}
5356

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.farsitel.bazaar">
4-
54
<uses-permission android:name="android.permission.INTERNET" />
65

6+
<application>
7+
<activity
8+
android:name="com.farsitel.bazaar.PaymentActivity"
9+
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
10+
</application>
11+
712
</manifest>

poolakeyunitysdk-android/src/main/java/com/farsitel/bazaar/PaymentActivity.kt renamed to poolakeyunitysdk-android/poolakey/src/main/java/com/farsitel/bazaar/PaymentActivity.kt

Lines changed: 48 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -34,30 +34,58 @@ class PaymentActivity : FragmentActivity() {
3434

3535
private fun purchaseProduct() {
3636
PoolakeyKotlinBridge.payment.purchaseProduct(
37-
this@PaymentActivity,
38-
PurchaseRequest(productId!!, REQUEST_CODE, payload, dynamicPriceToken)
37+
activityResultRegistry,
38+
PurchaseRequest(productId!!, payload, dynamicPriceToken)
3939
) {
4040
purchaseFlowBegan {
4141
// Bazaar's billing screen has opened successfully
4242
paymentCallback?.onStart()
4343
}
44-
failedToBeginFlow { throwable ->
44+
failedToBeginFlow {
4545
// Failed to open Bazaar's billing screen
46-
if (throwable is DynamicPriceNotSupportedException) {
46+
if (it is DynamicPriceNotSupportedException) {
4747
dynamicPriceToken = null
4848
purchaseProduct()
4949
} else {
50-
paymentCallback?.onFailure(throwable.message, throwable.stackTrace.joinToString("\n"))
50+
paymentCallback?.onFailure(
51+
it.localizedMessage,
52+
it.stackTrace.joinToString("\n")
53+
)
5154
}
5255
finish()
5356
}
57+
purchaseSucceed {
58+
// User purchased the product
59+
paymentCallback?.onSuccess(
60+
it.orderId,
61+
it.purchaseToken,
62+
it.payload,
63+
it.packageName,
64+
it.purchaseState.ordinal,
65+
it.purchaseTime,
66+
it.productId,
67+
it.originalJson,
68+
it.dataSignature
69+
)
70+
finish()
71+
}
72+
purchaseCanceled {
73+
// User canceled the purchase
74+
paymentCallback?.onCancel()
75+
finish()
76+
77+
}
78+
purchaseFailed {
79+
paymentCallback?.onFailure(it.localizedMessage, it.stackTrace.joinToString("\n"))
80+
finish()
81+
}
5482
}
5583
}
5684

5785
private fun subscribeProduct() {
5886
PoolakeyKotlinBridge.payment.subscribeProduct(
59-
this@PaymentActivity,
60-
PurchaseRequest(productId!!, REQUEST_CODE, payload, dynamicPriceToken)
87+
activityResultRegistry,
88+
PurchaseRequest(productId!!, payload, dynamicPriceToken)
6189
) {
6290
purchaseFlowBegan {
6391
// Bazaar's billing screen has opened successfully
@@ -76,34 +104,29 @@ class PaymentActivity : FragmentActivity() {
76104
finish()
77105
}
78106
}
79-
}
80-
}
81-
82-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
83-
super.onActivityResult(requestCode, resultCode, data)
84-
PoolakeyKotlinBridge.payment.onActivityResult(requestCode, resultCode, data) {
85-
purchaseSucceed { purchaseInfo ->
107+
purchaseSucceed {
86108
// User purchased the product
87109
paymentCallback?.onSuccess(
88-
purchaseInfo.orderId,
89-
purchaseInfo.purchaseToken,
90-
purchaseInfo.payload,
91-
purchaseInfo.packageName,
92-
purchaseInfo.purchaseState.ordinal,
93-
purchaseInfo.purchaseTime,
94-
purchaseInfo.productId,
95-
purchaseInfo.originalJson,
96-
purchaseInfo.dataSignature
110+
it.orderId,
111+
it.purchaseToken,
112+
it.payload,
113+
it.packageName,
114+
it.purchaseState.ordinal,
115+
it.purchaseTime,
116+
it.productId,
117+
it.originalJson,
118+
it.dataSignature
97119
)
98120
finish()
99121
}
100122
purchaseCanceled {
101123
// User canceled the purchase
102124
paymentCallback?.onCancel()
103125
finish()
126+
104127
}
105-
purchaseFailed { throwable ->
106-
paymentCallback?.onFailure(throwable.message, throwable.stackTrace.joinToString("\n"))
128+
purchaseFailed {
129+
paymentCallback?.onFailure(it.localizedMessage, it.stackTrace.joinToString("\n"))
107130
finish()
108131
}
109132
}
@@ -115,7 +138,6 @@ class PaymentActivity : FragmentActivity() {
115138
}
116139

117140
companion object {
118-
119141
private const val REQUEST_CODE: Int = 1000
120142
private const val KEY_PRODUCT_ID = "productId"
121143
private const val KEY_PAYLOAD = "payload"

0 commit comments

Comments
 (0)