Skip to content

Commit 6d86620

Browse files
committed
Update billing
1 parent 99f50cc commit 6d86620

File tree

11 files changed

+772
-24
lines changed

11 files changed

+772
-24
lines changed

app/build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,19 @@ dependencies {
4343
implementation fileTree(dir: 'libs', include: ['*.jar'])
4444
implementation 'androidx.cardview:cardview:1.0.0'
4545
implementation 'androidx.annotation:annotation:1.2.0'
46-
implementation 'androidx.preference:preference:1.1.1'
46+
implementation 'androidx.preference:preference-ktx:1.1.1'
4747
implementation "androidx.core:core-ktx:1.5.0"
4848
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
4949

5050
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.20"
5151
implementation 'org.jetbrains:annotations:21.0.1'
52+
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0"
53+
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0"
54+
55+
implementation "com.android.billingclient:billing-ktx:4.0.0"
5256

5357
implementation 'com.google.android.material:material:1.3.0'
5458

55-
implementation 'com.anjlab.android.iab.v3:library:1.1.0'
5659
implementation 'com.jakewharton:butterknife:10.2.3'
57-
//annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
5860
implementation 'com.nineoldandroids:library:2.4.0'
5961
}

app/src/main/java/com/mcal/disassembler/activities/MenuActivity.java

Lines changed: 57 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@
1414

1515
import androidx.appcompat.app.AppCompatActivity;
1616

17-
import com.anjlab.android.iab.v3.BillingProcessor;
18-
import com.anjlab.android.iab.v3.TransactionDetails;
17+
import com.mcal.disassembler.BuildConfig;
1918
import com.mcal.disassembler.R;
19+
import com.mcal.disassembler.data.Constants;
20+
import com.mcal.disassembler.iap.DataWrappers;
21+
import com.mcal.disassembler.iap.IapConnector;
22+
import com.mcal.disassembler.iap.PurchaseServiceListener;
23+
import com.mcal.disassembler.iap.SubscriptionServiceListener;
2024
import com.mcal.disassembler.nativeapi.Dumper;
2125
import com.mcal.disassembler.util.FileSaver;
2226
import com.mcal.disassembler.view.CenteredToolBar;
@@ -25,19 +29,23 @@
2529

2630
import org.jetbrains.annotations.NotNull;
2731

32+
import java.util.Arrays;
33+
import java.util.Collections;
34+
import java.util.List;
35+
import java.util.Map;
2836
import java.util.Objects;
2937

30-
public class MenuActivity extends AppCompatActivity implements BillingProcessor.IBillingHandler {
38+
public class MenuActivity extends AppCompatActivity {
3139
private static final String URI_GITHUB = "https://github.com/TimScriptov/Disassembler.git";
3240

3341
private String path;
34-
private BillingProcessor bp;
3542
private ProgressDialog mDialog;
3643
private SnackBar mBar;
3744
private CenteredToolBar toolbar;
45+
private IapConnector iapConnector;
3846

3947
@SuppressLint("HandlerLeak")
40-
private Handler mHandler = new Handler() {
48+
private final Handler mHandler = new Handler() {
4149
@Override
4250
public void handleMessage(Message msg) {
4351
super.handleMessage(msg);
@@ -58,9 +66,50 @@ public void onCreate(Bundle savedInstanceState) {
5866
setupToolbar(getString(R.string.app_settings));
5967
path = Objects.requireNonNull(getIntent().getExtras()).getString("filePath");
6068

61-
bp = new BillingProcessor(this, null, this);
62-
6369
findViewById(R.id.about_view_github_button).setOnClickListener(p1 -> openUri());
70+
71+
List<String> nonConsumablesList = Collections.singletonList("premium");
72+
List<String> consumablesList = Arrays.asList("donate_disassembler", "moderate", "quite", "plenty", "yearly");
73+
List<String> subsList = Collections.singletonList("subscription");
74+
75+
iapConnector = new IapConnector(
76+
this,
77+
nonConsumablesList,
78+
consumablesList,
79+
subsList,
80+
Constants.LK,
81+
BuildConfig.DEBUG
82+
);
83+
84+
iapConnector.addPurchaseListener(new PurchaseServiceListener() {
85+
public void onPricesUpdated(@NotNull Map<String, String> iapKeyPrices) {
86+
87+
}
88+
89+
public void onProductPurchased(DataWrappers.@NotNull PurchaseInfo purchaseInfo) {
90+
if (purchaseInfo.getSku().equals("donate_disassembler")) {
91+
92+
}
93+
}
94+
95+
public void onProductRestored(DataWrappers.@NotNull PurchaseInfo purchaseInfo) {
96+
97+
}
98+
});
99+
iapConnector.addSubscriptionListener(new SubscriptionServiceListener() {
100+
public void onSubscriptionRestored(DataWrappers.@NotNull PurchaseInfo purchaseInfo) {
101+
}
102+
103+
public void onSubscriptionPurchased(DataWrappers.@NotNull PurchaseInfo purchaseInfo) {
104+
if (purchaseInfo.getSku().equals("subscription")) {
105+
106+
}
107+
}
108+
109+
public void onPricesUpdated(@NotNull Map<String, String> iapKeyPrices) {
110+
111+
}
112+
});
64113
}
65114

66115
@SuppressWarnings("ConstantConditions")
@@ -81,22 +130,9 @@ private void openUri() {
81130
}
82131

83132
public void donate(View v) {
84-
bp.purchase(this, "donate_disassembler");
133+
iapConnector.purchase(this, "donate_disassembler");
85134
}
86135

87-
public void onPurchaseHistoryRestored() {
88-
}
89-
90-
public void onBillingError(int p1, Throwable p2) {
91-
}
92-
93-
public void onBillingInitialized() {
94-
}
95-
96-
public void onProductPurchased(String p1, TransactionDetails p2) {
97-
Toast.makeText(this, R.string.thanks, Toast.LENGTH_LONG).show();
98-
bp.consumePurchase(p1);
99-
}
100136

101137
public void toNameDemangler(View view) {
102138
startActivity(new Intent(this, NameDemanglerActivity.class));
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.mcal.disassembler.data;
2+
3+
public class Constants {
4+
public static String LK = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjwVwPnZ+iwu4+dAUMoO+SOY4XKsLIzsE9hCgxcgjZdKY0poUgqcadOAebfW+LkZfced9VaRodxQIXVZcdYruFW9mDMW69/dqnvjY7adYMMBpEh58E6Mq2Yt4AZYbOaquW+I6DmtvlHa34Vh3eyj3RDiaY3bS2yhpeCd5Rdwcnhjk7mE15gY+wM9bSe9AGmqx+FKlU6xww8drqWYR/xnov5seF1NuIQTzWoe0muKB+lnqhOeN9q8cOawoZqlSRagqYe9zrQ0SrfJ7N3e5nT2LpgQ33IC+Tvzkz3TwfFPbVGheuTlcWV0PweXwvaMkf2dYRcfiF4zFhIZnzKmm46aELwIDAQAB";
5+
}

0 commit comments

Comments
 (0)