1414
1515import 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 ;
1918import 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 ;
2024import com .mcal .disassembler .nativeapi .Dumper ;
2125import com .mcal .disassembler .util .FileSaver ;
2226import com .mcal .disassembler .view .CenteredToolBar ;
2529
2630import 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 ;
2836import 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 ));
0 commit comments