package io.github.tslamic.premiumer; import android.app.AlertDialog; import android.app.Dialog; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.View; import android.widget.TextView; import io.github.tslamic.prem.Premiumer; import io.github.tslamic.prem.PremiumerBuilder; import io.github.tslamic.prem.Purchase; import io.github.tslamic.prem.SkuDetails; public class MainActivity extends AppCompatActivity { class AdsListener extends LogPremiumerListener { @Override public void onBillingAvailable() { super.onBillingAvailable(); status.setTextColor(Color.GREEN); status.setText("Billing Available"); } @Override public void onBillingUnavailable() { super.onBillingUnavailable(); status.setTextColor(Color.RED); status.setText("Billing Unavailable"); } @Override public void onShowAds() { super.onShowAds(); ads.setVisibility(View.VISIBLE); } @Override public void onHideAds() { super.onHideAds(); ads.setVisibility(View.GONE); } @Override public void onSkuDetails(@Nullable SkuDetails details) { super.onSkuDetails(details); show("Sku Details", details); } @Override public void onPurchaseDetails(@Nullable Purchase purchase) { super.onPurchaseDetails(purchase); show("Purchase Details", purchase); } private void show(@NonNull String title, @Nullable Object content) { final String c = content == null ? "Not Available" : content.toString(); InfoDialogFragment.newInstance(title, c).show(getSupportFragmentManager(), "tag"); } } private Premiumer premiumer; private TextView status; private View ads; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); status = (TextView) findViewById(R.id.status); ads = findViewById(R.id.ads); premiumer = PremiumerBuilder.with(this) .sku("android.test.purchased") .listener(new AdsListener()) .build(); } //@Override protected void onStart() { // super.onStart(); // premiumer.bind(); //} // //@Override protected void onStop() { // super.onStop(); // premiumer.unbind(); //} @Override protected void onResume() { super.onResume(); premiumer.bind(); } @Override protected void onPause() { super.onPause(); premiumer.unbind(); } public void onPurchase(View v) { premiumer.purchase(this); } public void onConsume(View v) { premiumer.consumeSku(); } public void onSkuDetails(View v) { premiumer.skuDetails(); } public void onPurchaseDetails(View v) { premiumer.purchaseDetails(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (!premiumer.handleActivityResult(requestCode, resultCode, data)) { super.onActivityResult(requestCode, resultCode, data); } } public static class InfoDialogFragment extends DialogFragment { static InfoDialogFragment newInstance(String title, String content) { final Bundle args = new Bundle(2); args.putString("title", title); args.putString("content", TextUtils.isEmpty(content) ? "null" : content); final InfoDialogFragment f = new InfoDialogFragment(); f.setArguments(args); return f; } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Bundle args = getArguments(); final String title = args.getString("title"); final String content = args.getString("content"); return new AlertDialog.Builder(getActivity()).setTitle(title).setMessage(content).create(); } } }