导航菜单

页面标题

页面副标题

Mantra Counter v25.01 - SubscriptionViewActivity.java 源代码

正在查看: Mantra Counter v25.01 应用的 SubscriptionViewActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.sweetedge.mantracounter;

import android.os.Bundle;
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 androidx.core.content.ContextCompat;
import com.android.billingclient.api.AcknowledgePurchaseParams;
import com.android.billingclient.api.AcknowledgePurchaseResponseListener;
import com.android.billingclient.api.BillingClient;
import com.android.billingclient.api.BillingClientStateListener;
import com.android.billingclient.api.BillingFlowParams;
import com.android.billingclient.api.BillingResult;
import com.android.billingclient.api.ConsumeParams;
import com.android.billingclient.api.ConsumeResponseListener;
import com.android.billingclient.api.ProductDetails;
import com.android.billingclient.api.ProductDetailsResponseListener;
import com.android.billingclient.api.Purchase;
import com.android.billingclient.api.PurchasesUpdatedListener;
import com.android.billingclient.api.QueryProductDetailsParams;
import com.google.firebase.crashlytics.buildtools.reloc.com.google.common.collect.ImmutableList;
import com.google.firebase.crashlytics.buildtools.reloc.org.apache.commons.cli.HelpFormatter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.Executors;
import sub6.ConnectionClass;
import sub6.Security;
import sweetedge.extra.PLog;
import sweetedge.popup.PToast;
import sweetedge.preference.PSharedPreference;
import sweetedge.statusbar.PStatusBar;

public class SubscriptionViewActivity extends AppCompatActivity {
    private BillingClient billingClient;
    Button btnSub;
    ImageView closeIcon;
    String des;
    String dur;
    String freetxt;
    String pricetxt;
    TextView subDescription;
    String subsName;
    TextView tvBenifit;
    TextView tvSubid;
    TextView tvSubsts;
    TextView txtprice;
    TextView txtpriceFree;
    boolean isSuccess = false;
    AcknowledgePurchaseResponseListener acknowledgePurchaseResponseListener = new AcknowledgePurchaseResponseListener() {
        public void onAcknowledgePurchaseResponse(BillingResult billingResult) {
            if (billingResult.getResponseCode() == 0) {
                SubscriptionViewActivity.this.tvSubsts.setText("Subscribed");
                SubscriptionViewActivity.this.isSuccess = true;
                ConnectionClass.premium = true;
            }
        }
    };
    private final PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
        public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> list) {
            if (billingResult.getResponseCode() == 0 && list != null) {
                Iterator<Purchase> it = list.iterator();
                while (it.hasNext()) {
                    SubscriptionViewActivity.this.handlePurchase(it.next());
                }
                return;
            }
            if (billingResult.getResponseCode() == 7) {
                SubscriptionViewActivity.this.tvSubsts.setText("Already Subscribed");
                SubscriptionViewActivity.this.isSuccess = true;
                ConnectionClass.premium = true;
                SubscriptionViewActivity.this.btnSub.setVisibility(8);
                return;
            }
            if (billingResult.getResponseCode() == -2) {
                SubscriptionViewActivity.this.tvSubsts.setText("FEATURE_NOT_SUPPORTED");
                return;
            }
            if (billingResult.getResponseCode() == 3) {
                SubscriptionViewActivity.this.tvSubsts.setText("BILLING_UNAVAILABLE");
                return;
            }
            if (billingResult.getResponseCode() == 1) {
                SubscriptionViewActivity.this.tvSubsts.setText("USER_CANCELED");
                return;
            }
            if (billingResult.getResponseCode() == 5) {
                SubscriptionViewActivity.this.tvSubsts.setText("DEVELOPER_ERROR");
                return;
            }
            if (billingResult.getResponseCode() == 4) {
                SubscriptionViewActivity.this.tvSubsts.setText("ITEM_UNAVAILABLE");
                return;
            }
            if (billingResult.getResponseCode() == 12) {
                SubscriptionViewActivity.this.tvSubsts.setText("NETWORK_ERROR");
                return;
            }
            if (billingResult.getResponseCode() == -1) {
                SubscriptionViewActivity.this.tvSubsts.setText("SERVICE_DISCONNECTED");
                return;
            }
            Toast.makeText(SubscriptionViewActivity.this.getApplicationContext(), "Error " + billingResult.getDebugMessage(), 0).show();
        }
    };

    protected void onDestroy() {
        super.onDestroy();
        BillingClient billingClient = this.billingClient;
        if (billingClient != null) {
            billingClient.endConnection();
        }
    }

    public void btn_sub_click(View view) {
        PLog.print("Sub Clicked");
        this.billingClient.startConnection(new BillingClientStateListener() {
            public void onBillingServiceDisconnected() {
            }

            public void onBillingSetupFinished(BillingResult billingResult) {
                SubscriptionViewActivity.this.billingClient.queryProductDetailsAsync(QueryProductDetailsParams.newBuilder().setProductList(ImmutableList.of(QueryProductDetailsParams.Product.newBuilder().setProductId(SubscriptionViewActivity.this.getResources().getStringArray(R.array.ProductID)[0]).setProductType("subs").build())).build(), new ProductDetailsResponseListener() {
                    public void onProductDetailsResponse(BillingResult billingResult2, List<ProductDetails> list) {
                        for (ProductDetails productDetails : list) {
                            SubscriptionViewActivity.this.billingClient.launchBillingFlow(SubscriptionViewActivity.this, BillingFlowParams.newBuilder().setProductDetailsParamsList(ImmutableList.of(BillingFlowParams.ProductDetailsParams.newBuilder().setProductDetails(productDetails).setOfferToken(((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getOfferToken()).build())).build());
                        }
                    }
                });
            }
        });
    }

    void handlePurchase(Purchase purchase) {
        this.billingClient.consumeAsync(ConsumeParams.newBuilder().setPurchaseToken(purchase.getPurchaseToken()).build(), new ConsumeResponseListener() {
            public void onConsumeResponse(BillingResult billingResult, String str) {
                billingResult.getResponseCode();
            }
        });
        if (purchase.getPurchaseState() == 1) {
            if (!verifyValidSignature(purchase.getOriginalJson(), purchase.getSignature())) {
                Toast.makeText(getApplicationContext(), "Error : invalid Purchase", 0).show();
                return;
            }
            if (!purchase.isAcknowledged()) {
                this.billingClient.acknowledgePurchase(AcknowledgePurchaseParams.newBuilder().setPurchaseToken(purchase.getPurchaseToken()).build(), this.acknowledgePurchaseResponseListener);
                this.tvSubsts.setText("Subscribed");
                PSharedPreference.setInteger(this, getResources().getStringArray(R.array.ProductID)[0], 1);
                PToast.showT(this, "Subscribed Sucessfully");
                this.isSuccess = true;
            } else {
                this.tvSubsts.setText("Already_Subscribed");
            }
            ConnectionClass.premium = true;
            this.btnSub.setVisibility(8);
            return;
        }
        if (purchase.getPurchaseState() == 2) {
            this.tvSubsts.setText("Subscription PENDING");
        } else if (purchase.getPurchaseState() == 0) {
            this.tvSubsts.setText("UNSPECIFIED_STATE");
        }
    }

    private boolean verifyValidSignature(String str, String str2) {
        try {
            return Security.verifyPurchase("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo4ecYPqNMqJAoVnJ/wyyFhCr+PCrkc1/sSNw0wxgwK/oAEG7jla1byRpwq6hOV8xi4qn6j3l3YjmkgIDpdUMXaYP/Ca/jNO0sJaOzQYWsQ3OMK2svjlXLFThlYtKyGWwcpqkfnmtY7XpZ7VX83oEwHY7wISJpuPmJ56kauKRnKCvxKlp1dqQSBYHEBjtjkW+uwOEbVacNquc6XX0aOwTKGXdxnateFuzQ8n6wsZ8ChkNEJGCHfBSR0LXzCKxZZIffkxFJBSJhqUgHU4W3SBUTrIildBjURyB6aFhaJWvpLYQ7aOIy3iMdnWGPnl3ys+FuSrCXhVSIWOOd+3/Te7vDQIDAQAB", str, str2);
        } catch (IOException unused) {
            return false;
        }
    }

    class AnonymousClass4 implements BillingClientStateListener {
        public void onBillingServiceDisconnected() {
        }

        AnonymousClass4() {
        }

        public void onBillingSetupFinished(BillingResult billingResult) {
            Executors.newSingleThreadExecutor().execute(new Runnable() {
                @Override
                public void run() {
                    SubscriptionViewActivity.this.billingClient.queryProductDetailsAsync(QueryProductDetailsParams.newBuilder().setProductList(ImmutableList.of(QueryProductDetailsParams.Product.newBuilder().setProductId(SubscriptionViewActivity.this.getResources().getStringArray(R.array.ProductID)[0]).setProductType("subs").build())).build(), new ProductDetailsResponseListener() {
                        public void onProductDetailsResponse(BillingResult billingResult2, List<ProductDetails> list) {
                            for (ProductDetails productDetails : list) {
                                ImmutableList.of(BillingFlowParams.ProductDetailsParams.newBuilder().setProductDetails(productDetails).setOfferToken(((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getOfferToken()).build());
                                SubscriptionViewActivity.this.subsName = productDetails.getName();
                                SubscriptionViewActivity.this.des = productDetails.getDescription();
                                PLog.print("des = " + SubscriptionViewActivity.this.des);
                                String formattedPrice = ((ProductDetails.PricingPhase) ((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getPricingPhases().getPricingPhaseList().get(0)).getFormattedPrice();
                                String billingPeriod = ((ProductDetails.PricingPhase) ((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getPricingPhases().getPricingPhaseList().get(0)).getBillingPeriod();
                                int recurrenceMode = ((ProductDetails.PricingPhase) ((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getPricingPhases().getPricingPhaseList().get(0)).getRecurrenceMode();
                                String substring = billingPeriod.substring(1, 2);
                                String substring2 = billingPeriod.substring(2, 3);
                                PLog.print("per = " + substring + " price =" + substring2);
                                if (recurrenceMode == 2) {
                                    if (substring2.equals("M")) {
                                        SubscriptionViewActivity.this.dur = " For " + substring + " Month";
                                    } else if (substring2.equals("Y")) {
                                        SubscriptionViewActivity.this.dur = " For " + substring + " Year";
                                    } else if (substring2.equals("W")) {
                                        SubscriptionViewActivity.this.dur = " For " + substring + " Week";
                                    } else if (substring2.equals("D")) {
                                        SubscriptionViewActivity.this.dur = " For " + substring + " Days";
                                    }
                                } else if (billingPeriod.equals("P1M")) {
                                    SubscriptionViewActivity.this.dur = "/Monthly";
                                } else if (billingPeriod.equals("P6M")) {
                                    SubscriptionViewActivity.this.dur = "/Every 6 Month";
                                } else if (billingPeriod.equals("P1Y")) {
                                    SubscriptionViewActivity.this.dur = "/Yearly";
                                } else if (billingPeriod.equals("P1W")) {
                                    SubscriptionViewActivity.this.dur = "/Weekly";
                                } else if (billingPeriod.equals("P3W")) {
                                    SubscriptionViewActivity.this.dur = "Every /3 Week";
                                }
                                SubscriptionViewActivity.this.freetxt = formattedPrice + HelpFormatter.DEFAULT_LONG_OPT_SEPARATOR + SubscriptionViewActivity.this.dur;
                                for (int i = 0; i <= ((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getPricingPhases().getPricingPhaseList().size(); i++) {
                                    if (i > 0) {
                                        String billingPeriod2 = ((ProductDetails.PricingPhase) ((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getPricingPhases().getPricingPhaseList().get(i)).getBillingPeriod();
                                        String formattedPrice2 = ((ProductDetails.PricingPhase) ((ProductDetails.SubscriptionOfferDetails) productDetails.getSubscriptionOfferDetails().get(0)).getPricingPhases().getPricingPhaseList().get(i)).getFormattedPrice();
                                        PLog.print("per = " + billingPeriod2 + " price =" + formattedPrice2);
                                        if (billingPeriod2.equals("P1M")) {
                                            SubscriptionViewActivity.this.dur = " /Monthly";
                                        } else if (billingPeriod2.equals("P6M")) {
                                            SubscriptionViewActivity.this.dur = " /Every 6 Month";
                                        } else if (billingPeriod2.equals("P1Y")) {
                                            SubscriptionViewActivity.this.dur = " /Yearly";
                                        } else if (billingPeriod2.equals("P1W")) {
                                            SubscriptionViewActivity.this.dur = " /Weekly";
                                        } else if (billingPeriod2.equals("P3W")) {
                                            SubscriptionViewActivity.this.dur = " /-Every 3 Week";
                                        } else if (billingPeriod2.equals("P4W")) {
                                            SubscriptionViewActivity.this.dur = " /- Every 4 Week";
                                        }
                                        SubscriptionViewActivity.this.pricetxt = formattedPrice2 + SubscriptionViewActivity.this.dur;
                                    }
                                }
                            }
                        }
                    });
                }
            });
            SubscriptionViewActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000L);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    SubscriptionViewActivity.this.tvSubid.setText(SubscriptionViewActivity.this.subsName);
                    SubscriptionViewActivity.this.txtpriceFree.setText(SubscriptionViewActivity.this.freetxt + " then");
                    SubscriptionViewActivity.this.txtprice.setText(SubscriptionViewActivity.this.pricetxt);
                    SubscriptionViewActivity.this.tvBenifit.setText(SubscriptionViewActivity.this.des);
                }
            });
        }
    }

    private void getPrice() {
        this.billingClient.startConnection(new AnonymousClass4());
    }

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_subscription_view);
        PStatusBar.changeColor(getWindow(), ContextCompat.getColor(this, R.color.orangeFontColor));
        MainActivity.setLanguage(this);
        this.tvSubsts = (TextView) findViewById(R.id.tv_substs);
        this.btnSub = (Button) findViewById(R.id.btn_sub);
        this.tvSubid = (TextView) findViewById(R.id.tv_subid);
        this.txtpriceFree = (TextView) findViewById(R.id.txtpricefree);
        this.txtprice = (TextView) findViewById(R.id.txtprice);
        this.tvBenifit = (TextView) findViewById(R.id.tv_benifit);
        this.closeIcon = (ImageView) findViewById(R.id.btn_close);
        this.subDescription = (TextView) findViewById(R.id.sub_description);
        this.billingClient = BillingClient.newBuilder(this).setListener(this.purchasesUpdatedListener).enablePendingPurchases().build();
        getPrice();
        if (ConnectionClass.premium.booleanValue()) {
            this.tvSubsts.setText("Already Subscribed");
            this.btnSub.setVisibility(8);
        } else {
            this.tvSubsts.setText("Not Subscribed");
        }
        this.subDescription.setText(getResources().getString(R.string.subscribeDesc));
        this.closeIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SubscriptionViewActivity.this.finish();
            }
        });
    }
}