×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Java
Posted by: ehsan ullah khan
Added: Jan 12, 2017 2:03 PM
Modified: Jan 12, 2017 2:04 PM
Views: 2265
Tags: cricket live
  1. package com.astutesol.product.livecricketalpha;
  2.  
  3. import android.app.AlertDialog;
  4. import android.content.ComponentName;
  5. import android.content.Context;
  6. import android.content.DialogInterface;
  7. import android.content.Intent;
  8. import android.content.ServiceConnection;
  9. import android.os.Bundle;
  10. import android.os.Handler;
  11. import android.os.IBinder;
  12. import android.os.RemoteException;
  13. import android.util.Log;
  14. import android.view.LayoutInflater;
  15. import android.view.View;
  16. import android.widget.AdapterView;
  17. import android.widget.ListView;
  18. import android.widget.Toast;
  19.  
  20. import com.android.vending.billing.IInAppBillingService;
  21. import com.android.volley.DefaultRetryPolicy;
  22. import com.android.volley.Request;
  23. import com.android.volley.Response;
  24. import com.android.volley.VolleyError;
  25. import com.android.volley.toolbox.JsonObjectRequest;
  26. import com.android.volley.toolbox.Volley;
  27. import com.astutesol.product.livecricketalpha.Adapters.ScheduleDataAdapter;
  28. import com.astutesol.product.livecricketalpha.DataModel.Schedule_Data_Model;
  29. import com.astutesol.product.livecricketalpha.stats.MyDataSource;
  30. import com.astutesol.product.livecricketalpha.stats.MySharedPreferences;
  31. import com.astutesol.product.livecricketalpha.util.IabHelper;
  32. import com.astutesol.product.livecricketalpha.util.IabResult;
  33. import com.astutesol.product.livecricketalpha.util.Inventory;
  34. import com.astutesol.product.livecricketalpha.util.Purchase;
  35.  
  36. import org.json.JSONException;
  37. import org.json.JSONObject;
  38.  
  39. import java.util.ArrayList;
  40. import java.util.List;
  41.  
  42. public class PslSchedule extends BaseActivity implements AdapterView.OnItemClickListener {
  43.     ListView listSchedule;
  44.     Context context = this;
  45.     Handler mHandler = new Handler();
  46.     public static List<Schedule_Data_Model> scchedule_list;
  47.     AlertDialog.Builder builder;
  48.     IabHelper mHelper;
  49.     private static final String TAG = "LiveCricket";
  50.     static final String ITEM_SKU = "android.test.purchased";
  51.     IInAppBillingService mService;
  52.  
  53.     public boolean REGISTRATION_CHECK_FLAGE;
  54.     //static final String ITEM_SKU = "monthly_subcription";
  55.     // static final String ITEM_SKU = "monthly_subcription";
  56.     //IInAppBillingService mService;
  57.    /* boolean blnBind;
  58.  
  59.     private IInAppBillingService mService;
  60.     private ServiceConnection mServiceConn = new ServiceConnection() {
  61.         @Override
  62.         public void onServiceDisconnected(ComponentName name) {
  63.             mService = null;
  64.         }
  65.  
  66.         @Override
  67.         public void onServiceConnected(ComponentName name, IBinder service) {
  68.             mService = IInAppBillingService.Stub.asInterface(service);
  69.         }
  70.     };
  71. */
  72.  
  73.     int subcribeFlag;
  74.     int adapterPosition;
  75.  
  76.  
  77.     @Override
  78.     protected void onCreate(Bundle savedInstanceState) {
  79.         super.onCreate(savedInstanceState);
  80.         LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  81.         View contentView = inflater.inflate(R.layout.activity_psl_schedule, null, false);
  82.         mDrawerLayout.addView(contentView, 0);
  83.         title_TV.setText("SCHEDULE");
  84.         builder = new AlertDialog.Builder(this);
  85.         // consumeItem();
  86.         //  String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr/eEzQdxiJnicLmCzHiANddeb+6B2JUiOyWQ7kssy81THGhW7JTOu9BaVPRhcw7il/dyUQtjHuJYuGxdvG2Pm7M854Kb3lJTLYs8rrSiXyP0jT2eWhKt1ydN3tc2kOnGRnobra2vB+ZTXfo93of402ZeTnuKNka5GcPLQ374Dk1vNaIpGPp5Tg6PZamLOayZre87JXw8ot+W0LIs5IObaUZyvb1Ehtlw/UssykWnwsI/BK60Tsy8xfd3jwAhBfCHTzi1W7rek1j+UUbvO55SSbbsQJ/wNorQjsTAhW8w35g4KjJZpnhZ1TArd6nzAqlEzzYYw/Y+jwcd/77cN3ChNwIDAQAB";
  87.      /* sohailString */
  88.         String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnq7tmXGWEaMgkljjWDfXheskJD7ZyKaU4F+c9Jt7gfqN3Dh5PeaWUhQCsKI0F2qYjbhpNu5GMaeAwIRudAI97HA1VMQ08ocrFoBvjr2mSe6jRJwXplEykQsumn8sS/n4mCUZvxpq4M7gg1bxmgoAWfOnVWkukyVIICYviPAEQtFcanqefXrqPwopyJ43HJiP0lzyoB5mj/2gdnEgxbbJkUxIAuEP76heVlOONkATXE983Od/d84v3rJb+v84zPq7To782GX6hvCD7OlXmgcMMrS/lnOhH07iHG+zK36tAcRtGnnBg+k3WA7+1R7kuttFxBZ3PdtPBmuuYk2N3q1FBwIDAQAB";
  89.         //requestNewInterstitial();
  90.  
  91.         listSchedule = (ListView) findViewById(R.id.schedule);
  92.         mydata = new MyDataSource(this);
  93.         // LoadData("http://blogswizards.com/restaurant/admin/fetch_classes.php?app_id=100");
  94.         scchedule_list = mydata.GetSchedule();
  95.         String[] colors_list = getResources().getStringArray(R.array.colors_grid_list);
  96.         int colorIdx = 0;
  97.         for (int i = 0; i < scchedule_list.size(); i++) {
  98.             if (colorIdx == colors_list.length) {
  99.                 colorIdx = 0;
  100.             }
  101.             scchedule_list.get(i).gridColor = colors_list[colorIdx];
  102.             colorIdx++;
  103.  
  104.         }
  105.  
  106.         final ScheduleDataAdapter adapter = new ScheduleDataAdapter(this, R.layout.predict_list_item, scchedule_list);
  107.         adapter.notifyDataSetChanged();
  108.         listSchedule.setAdapter(adapter);
  109.         listSchedule.setOnItemClickListener((AdapterView.OnItemClickListener) context);
  110.  
  111. //Add running code
  112.        /* Runnable runnable = new Runnable() {
  113.             public void run() {
  114.                 if (mInterstitialAd.isLoaded()) {
  115.                     mInterstitialAd.show();
  116.                 }
  117.                  mHandler.postDelayed(this, 10000); // to load ad at every 10 sec
  118.             }
  119.         };
  120.         runnable.run();
  121.         mHandler.postDelayed(runnable, 2500);
  122. */
  123.         // mHelper = new IabHelper(this, base64EncodedPublicKey);
  124.  
  125.  
  126.         /**comment start code 11-jan-2017*/
  127.  
  128.      /*   mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
  129.             @Override
  130.             public void onIabSetupFinished(IabResult result) {
  131.                 if (!result.isSuccess()) {
  132.                     Log.d("asda", "hhhh");
  133.  
  134.                     Log.d(TAG, "setUpFail" + result);
  135.                 } else {
  136.                     Log.d(TAG, "setupok");
  137.                 }
  138.             }
  139.         });*/
  140.  
  141. /*comment end code 11-jan-2017*/
  142.  
  143.  
  144.           bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE);
  145.      /*  blnBind = bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE);
  146.         Toast.makeText(context, "bindService - return " + String.valueOf(blnBind), Toast.LENGTH_SHORT).show();
  147.         Log.i(TAG, "bindService - return " + String.valueOf(blnBind));*/
  148.  
  149.  
  150.  
  151.  
  152.     }
  153.  
  154.     @Override
  155.     public void onItemClick(AdapterView<?> adapter, View v, final int position, long arg3) {
  156.         Log.d("SChedule", "postion " + position);
  157. //      http://astutesolhosting.com/cricketApp/service.php?name=subcriber_status&user_id=21
  158.  
  159.  
  160.         // bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE);
  161.         checkRegistration(position);
  162.         //   checkitem();
  163.         String urlsubcription = BaseURL + "name=subcriber_status" + "&user_id=" + mpref.GetUserID();
  164.         Log.d(TAG, "mpref.GetUserID()" + mpref.GetUserID());
  165.         checkSubcription(urlsubcription);
  166.         checkownedItems();
  167.         adapterPosition = position;
  168.  
  169.     }
  170.  
  171.     @Override
  172.     public void onBackPressed() {
  173.  
  174.         mHandler.removeCallbacks(null);
  175.  
  176.         if (mInterstitialAd.isLoaded()) {
  177.             mInterstitialAd.show();
  178.             Log.d("usm_onBackPressed", "ad is loaded already");
  179.         } else {
  180.             Log.d("usm_onBackPressed", "ad is not loaded");
  181.         }
  182.         super.onBackPressed();
  183.     }
  184.  
  185.  
  186.     public void launchPurches() {
  187.         mHelper.launchPurchaseFlow(PslSchedule.this, ITEM_SKU, 10001, mPurchaseFinishedListener, "mypurchasetoken");
  188.     }
  189.  
  190.     public void checkRegistration(int position) {
  191.         String strMatch_id = scchedule_list.get(position).match_id;
  192.         mpref = new MySharedPreferences(context);
  193.         String user_id = mpref.GetUserID();
  194.         Log.d("user id", user_id);
  195.         if (user_id.isEmpty() || user_id.equals("0")) {
  196.  
  197.             builder.setMessage("Not a Registered User").setPositiveButton("Want to Register", new DialogInterface.OnClickListener() {
  198.  
  199.  
  200.                 @Override
  201.                 public void onClick(DialogInterface dialog, int which) {
  202.  
  203.                     Intent intent = new Intent(context, RegistrationActivity.class);
  204.                     // intent.putExtra("match_id", strMatch_id);
  205.                     context.startActivity(intent);
  206.  
  207.  
  208.                 }
  209.             }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  210.                 @Override
  211.                 public void onClick(DialogInterface dialog, int which) {
  212.  
  213.                 }
  214.             });
  215.             AlertDialog alertDialog = builder.create();
  216.             alertDialog.show();
  217.  
  218.  
  219.         } else {
  220.  
  221.  
  222.         }
  223.  
  224.  
  225.     }
  226.  
  227.     /*in app purches methods*/
  228.  
  229.     //=======inappPurches Methods==================
  230.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  231.         if (mHelper == null) return;
  232.  
  233.         if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
  234.             super.onActivityResult(requestCode, resultCode, data);
  235.         }
  236.     }
  237.  
  238.     IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
  239.         public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
  240.             //  Log.i("purchase.getSku()", purchase.getSku());
  241.             //  Log.i("ITEM_SKU", ITEM_SKU);
  242.  
  243.             if (result.isFailure()) {
  244.                 // Handle error
  245.                 return;
  246.             } else if (purchase.getSku().equals(ITEM_SKU)) {
  247.                 Log.d(TAG, "purchase.getSku() ");
  248.  
  249.                 /*09jan17*/
  250.                 int sb = 1;
  251.                 String setSubcribeStatus = BaseURL + "name=update_subcriber_status" + "&user_id=" + mpref.GetUserID() + "&subcribed=" + sb;
  252.                 String strMatch_id = scchedule_list.get(adapterPosition).match_id;
  253.                 mpref = new MySharedPreferences(context);
  254.                 String user_id = mpref.GetUserID();
  255.                 Log.d("user id", user_id);
  256.                 if (user_id.isEmpty() || user_id.equals("0")) {
  257.                     Intent intent = new Intent(context, RegistrationActivity.class);
  258.                     intent.putExtra("match_id", strMatch_id);
  259.                     context.startActivity(intent);
  260.  
  261.                 } else {
  262.  
  263.  
  264.                     Log.d("Match id is:::: ", strMatch_id);
  265.                     setSubcription(setSubcribeStatus);
  266.                     Intent intent = new Intent(context, PredictActivity.class);
  267.                     intent.putExtra("match_id", strMatch_id);
  268.                     intent.putExtra("user_id", user_id);
  269.                     context.startActivity(intent);
  270.  
  271.                 }
  272.  
  273.  
  274.             }
  275.  
  276.         }
  277.     };
  278.  
  279.     public void consumeItem() {
  280.         mHelper.queryInventoryAsync(mReceivedInventoryListener);
  281.     }
  282.  
  283.     IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
  284.         public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
  285.  
  286.             if (result.isFailure()) {
  287.                 // Handle failure
  288.             } else {
  289.                 mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU), mConsumeFinishedListener);
  290.             }
  291.         }
  292.     };
  293.  
  294.     IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
  295.         public void onConsumeFinished(Purchase purchase, IabResult result) {
  296.  
  297.             if (result.isSuccess()) {
  298.                 int sb = 1;
  299.                 String setSubcribeStatus = BaseURL + "name=update_subcriber_status" + "&user_id=" + mpref.GetUserID() + "&subcribed=" + sb;
  300.                 String strMatch_id = scchedule_list.get(adapterPosition).match_id;
  301.                 mpref = new MySharedPreferences(context);
  302.                 String user_id = mpref.GetUserID();
  303.                 Log.d("user id", user_id);
  304.                 if (user_id.isEmpty() || user_id.equals("0")) {
  305.                     Intent intent = new Intent(context, RegistrationActivity.class);
  306.                     intent.putExtra("match_id", strMatch_id);
  307.                     context.startActivity(intent);
  308.                 } else {
  309.                     setSubcription(setSubcribeStatus);
  310.                     Log.d("Match id is:::: ", strMatch_id);
  311.                     Intent intent = new Intent(context, PredictActivity.class);
  312.                     intent.putExtra("match_id", strMatch_id);
  313.                     intent.putExtra("user_id", user_id);
  314.                     context.startActivity(intent);                   // LoadData("http://blogswizards.com/psl/service.php?name=load_prediction&match_id="+match_id1+"&user_id="+user_id);
  315.                 }
  316.  
  317.             } else {
  318.  
  319.  
  320.                 // handle error
  321.             }
  322.         }
  323.     };
  324.  
  325.     public void moveToPridictAndWin() {
  326.  
  327.         String strMatch_id = scchedule_list.get(adapterPosition).match_id;
  328.         mpref = new MySharedPreferences(context);
  329.         String user_id = mpref.GetUserID();
  330.         Intent intent = new Intent(context, PredictActivity.class);
  331.         intent.putExtra("match_id", strMatch_id);
  332.         intent.putExtra("user_id", user_id);
  333.         context.startActivity(intent);
  334.  
  335.     }
  336.  
  337.  
  338.     public void checkSubcription(String url) {
  339.         //   password_et.setFocusable(true);
  340.  
  341.         Log.e("url : ", url);
  342.         JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url,
  343.                 new Response.Listener<JSONObject>() {
  344.                     @Override
  345.                     public void onResponse(JSONObject response1) {
  346.                         Log.d("service_response", response1.toString());
  347.  
  348.                         try {
  349.                             String message = response1.getString("subscribed");
  350.                             String serverSubcribeValue = "0";
  351.                             if (serverSubcribeValue.equals(message)) {
  352.                                 Toast.makeText(context, "You are not subcribe", Toast.LENGTH_SHORT).show();
  353.                                 builder.setMessage("Please Subscribe First")
  354.                                         .setPositiveButton("Want to subscribe", new DialogInterface.OnClickListener() {
  355.                                             @Override
  356.                                             public void onClick(DialogInterface dialog, int which) {
  357.  
  358.                                                 //  bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE);
  359.                                                 //    checkownedItems();
  360.  
  361.  
  362.                                                 launchPurches();
  363.                                             }
  364.                                         }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  365.                                     @Override
  366.                                     public void onClick(DialogInterface dialog, int which) {
  367.  
  368.                                     }
  369.                                 });
  370.                                 AlertDialog alertDialog = builder.create();
  371.                                 alertDialog.show();
  372.  
  373.                             } else {
  374.  
  375.  
  376.                                 String strMatch_id = scchedule_list.get(adapterPosition).match_id;
  377.                                 mpref = new MySharedPreferences(context);
  378.  
  379.                                 Log.d("Match id is:::: ", strMatch_id);
  380.                                 String user_id = mpref.GetUserID();
  381.                                 Log.d("user id", user_id);
  382.                                 Intent intent = new Intent(context, PredictActivity.class);
  383.                                 intent.putExtra("match_id", strMatch_id);
  384.                                 intent.putExtra("user_id", user_id);
  385.  
  386.                                 context.startActivity(intent);
  387.  
  388.                             }
  389.  
  390.                         } catch (JSONException e) {
  391.                             e.printStackTrace();
  392.                         }
  393.  
  394.                     }
  395.                 }, new Response.ErrorListener() {
  396.             @Override
  397.             public void onErrorResponse(VolleyError error) {
  398.  
  399.                 // Error handling
  400.                 System.out.println("Something went wrong!");
  401.                 error.printStackTrace();
  402.  
  403.             }
  404.         });
  405.         jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
  406.                 10000,
  407.                 DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
  408.                 DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
  409.  
  410. // Add the request to the queue
  411.         Volley.newRequestQueue(this).add(jsonObjectRequest);
  412.  
  413.     }
  414.  
  415.     public void setSubcription(String url) {
  416.  
  417.  
  418.         //   password_et.se
  419.         // tFocusable(true);
  420.  
  421.         Log.e("url : ", url);
  422.         JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url,
  423.                 new Response.Listener<JSONObject>() {
  424.                     @Override
  425.                     public void onResponse(JSONObject response1) {
  426.                         Log.d("service_response", response1.toString());
  427.  
  428.                         try {
  429.                             String message = response1.getString("subscribed");
  430.                             String tempSubMessage = "Member Subscribed";
  431.                             if (tempSubMessage.equals(message)) {
  432.  
  433.  
  434.                                 String strMatch_id = scchedule_list.get(adapterPosition).match_id;
  435.                                 mpref = new MySharedPreferences(context);
  436.  
  437.                                 Log.d("Match id is:::: ", strMatch_id);
  438.                                 String user_id = mpref.GetUserID();
  439.                                 Log.d("user id", user_id);
  440.                                 Intent intent = new Intent(context, PredictActivity.class);
  441.                                 intent.putExtra("match_id", strMatch_id);
  442.                                 intent.putExtra("user_id", user_id);
  443.                                 context.startActivity(intent);
  444.  
  445.                             }
  446.  
  447.  
  448.                         } catch (JSONException e) {
  449.                             e.printStackTrace();
  450.                         }
  451.  
  452.                     }
  453.                 }, new Response.ErrorListener() {
  454.             @Override
  455.             public void onErrorResponse(VolleyError error) {
  456.  
  457.                 // Error handling
  458. //                    Toast.makeText(LoginActivity.this, "Error", Toast.LENGTH_LONG).show();
  459.                 System.out.println("Something went wrong!");
  460.                 error.printStackTrace();
  461.  
  462.             }
  463.         });
  464.         jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
  465.                 10000,
  466.                 DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
  467.                 DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
  468.  
  469. // Add the request to the queue
  470.         Volley.newRequestQueue(this).add(jsonObjectRequest);
  471.  
  472.     }
  473.  
  474.  
  475.     /*check owned item*/
  476.     ServiceConnection mServiceConn = new ServiceConnection() {
  477.         @Override
  478.         public void onServiceConnected(ComponentName name, IBinder service) {
  479.             mService = IInAppBillingService.Stub.asInterface(service);
  480.             Log.d("TEST", "mService ready to go!");
  481.             checkownedItems();
  482.         }
  483.  
  484.         @Override
  485.         public void onServiceDisconnected(ComponentName name) {
  486.             mService = null;
  487.         }
  488.     };
  489.  
  490.     private void checkownedItems() {
  491.         try {
  492.             Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);
  493.  
  494.             if (ownedItems.getInt("RESPONSE_CODE") == 0) {
  495.                 ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
  496.                 ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
  497.                 ArrayList<String> signatureList = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE");
  498.                 String continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN");
  499.  
  500.                 if (purchaseDataList.size() > 0) {
  501.                     moveToPridictAndWin();
  502.  
  503.                     Toast.makeText(context, "item already owned", Toast.LENGTH_SHORT).show();   //Item(s) owned
  504.  
  505.                     for(int i=0; i<purchaseDataList.size(); ++i)
  506.                     {
  507.                         String purchaseData = purchaseDataList.get(i);
  508.                         //String signature = signatureList.get(i); //Note signatures do not appear to work with android.test.purchased (silly google)
  509.                        // String sku = ownedSkus.get(i);
  510.                     }
  511.                 } else {
  512.                     //Item(s) not owned
  513.  
  514.                     String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnq7tmXGWEaMgkljjWDfXheskJD7ZyKaU4F+c9Jt7gfqN3Dh5PeaWUhQCsKI0F2qYjbhpNu5GMaeAwIRudAI97HA1VMQ08ocrFoBvjr2mSe6jRJwXplEykQsumn8sS/n4mCUZvxpq4M7gg1bxmgoAWfOnVWkukyVIICYviPAEQtFcanqefXrqPwopyJ43HJiP0lzyoB5mj/2gdnEgxbbJkUxIAuEP76heVlOONkATXE983Od/d84v3rJb+v84zPq7To782GX6hvCD7OlXmgcMMrS/lnOhH07iHG+zK36tAcRtGnnBg+k3WA7+1R7kuttFxBZ3PdtPBmuuYk2N3q1FBwIDAQAB";
  515.  
  516.                     mHelper = new IabHelper(this, base64EncodedPublicKey);
  517.  
  518.                     mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
  519.                         @Override
  520.                         public void onIabSetupFinished(IabResult result) {
  521.                             if (!result.isSuccess()) {
  522.                                 Log.d("TEST", "In-app Billing setup failed: " + result);
  523.                             } else {
  524.                                 Log.d("TEST", "In-app Billing is set up OK");
  525.                             }
  526.                         }
  527.                     });
  528.                 }
  529.             } else {
  530.                 //Error checking owned items
  531.             }
  532.         } catch (RemoteException e) {
  533.             e.printStackTrace();
  534.         }
  535.     }
  536.  
  537.     @Override
  538.     public void onDestroy() {
  539.         super.onDestroy();
  540.         if (mServiceConn != null) {
  541.             unbindService(mServiceConn);
  542.         }
  543.         if (mHelper != null) mHelper.dispose();
  544.         mHelper = null;
  545.     }
  546.  
  547.  
  548.  
  549.     /*private void checkownedItems() {
  550.         try {
  551.             Bundle ownedItems = mService.getPurchases(3, getPackageName(), "subs", null);
  552.  
  553.  
  554.  
  555.             if (ownedItems.getInt("RESPONSE_CODE") == 0) {
  556.                 Log.d(TAG, "checkownedItems: " + ownedItems.getInt("RESPONSE_CODE"));
  557.                 ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
  558.                 ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
  559.                 ArrayList<String> signatureList = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE");
  560.                 String continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN");
  561.                 if (purchaseDataList.size() > 0) {
  562.                     //Item(s) owned
  563.                   moveToPridictAndWin();
  564.  
  565.                     for(int i=0; i<purchaseDataList.size(); ++i)
  566.                     {
  567.                         String purchaseData = purchaseDataList.get(i);
  568.                         String signature = signatureList.get(i); //Note signatures do not appear to work with android.test.purchased (silly google)
  569.                         String sku = ownedSkus.get(i);
  570.                     }
  571.                 } else {
  572.                     //Item(s) not owned
  573.  
  574.                     String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnq7tmXGWEaMgkljjWDfXheskJD7ZyKaU4F+c9Jt7gfqN3Dh5PeaWUhQCsKI0F2qYjbhpNu5GMaeAwIRudAI97HA1VMQ08ocrFoBvjr2mSe6jRJwXplEykQsumn8sS/n4mCUZvxpq4M7gg1bxmgoAWfOnVWkukyVIICYviPAEQtFcanqefXrqPwopyJ43HJiP0lzyoB5mj/2gdnEgxbbJkUxIAuEP76heVlOONkATXE983Od/d84v3rJb+v84zPq7To782GX6hvCD7OlXmgcMMrS/lnOhH07iHG+zK36tAcRtGnnBg+k3WA7+1R7kuttFxBZ3PdtPBmuuYk2N3q1FBwIDAQAB";
  575.  
  576.                     mHelper = new IabHelper(this, base64EncodedPublicKey);
  577.  
  578.                     mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
  579.                         @Override
  580.                         public void onIabSetupFinished(IabResult result) {
  581.                             if (!result.isSuccess()) {
  582.                                 Log.d("TEST", "In-app Billing setup failed: " + result);
  583.                             } else {
  584.                                 Log.d("TEST", "In-app Billing is set up OK");
  585.  
  586.                                *//* String urlsubcription = BaseURL + "name=subcriber_status" + "&user_id=" + mpref.GetUserID();
  587.                                 Log.d(TAG, "mpref.GetUserID()" + mpref.GetUserID());
  588.                                 checkSubcription(urlsubcription);
  589.                                 checkRegistration(adapterPosition);*//*
  590.  
  591.  
  592.                             }
  593.                         }
  594.                     });
  595.                 }
  596.             } else {
  597.                 //Error checking owned items
  598.             }
  599.         } catch (RemoteException e) {
  600.             e.printStackTrace();
  601.         }
  602.     }*/
  603.  
  604.     /*check owned item*/
  605.  
  606.  
  607.     public void checkitem() {
  608.         //   if (!blnBind) return;
  609.         if (mService == null) return;
  610.  
  611.         Bundle ownedItems;
  612.         try {
  613.             ownedItems = mService.getPurchases(3, getPackageName(), "subs", null);
  614.  
  615.             Toast.makeText(context, "getPurchases() - success return Bundle", Toast.LENGTH_SHORT).show();
  616.             Log.i(TAG, "getPurchases() - success return Bundle");
  617.         } catch (RemoteException e) {
  618.             e.printStackTrace();
  619.  
  620.             Toast.makeText(context, "getPurchases - fail!", Toast.LENGTH_SHORT).show();
  621.             Log.w(TAG, "getPurchases() - fail!");
  622.             return;
  623.         }
  624.  
  625.         int response = ownedItems.getInt("RESPONSE_CODE");
  626.         Toast.makeText(context, "getPurchases() - \"RESPONSE_CODE\" return " + String.valueOf(response), Toast.LENGTH_SHORT).show();
  627.         Log.i(TAG, "getPurchases() - \"RESPONSE_CODE\" return " + String.valueOf(response));
  628.  
  629.         if (response != 0) return;
  630.  
  631.         ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
  632.         ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
  633.         ArrayList<String> signatureList = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE");
  634.         String continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN");
  635.  
  636.         Log.i(TAG, "getPurchases() - \"INAPP_PURCHASE_ITEM_LIST\" return " + ownedSkus.toString());
  637.         Log.i(TAG, "getPurchases() - \"INAPP_PURCHASE_DATA_LIST\" return " + purchaseDataList.toString());
  638.         Log.i(TAG, "getPurchases() - \"INAPP_DATA_SIGNATURE\" return " + (signatureList != null ? signatureList.toString() : "null"));
  639.         Log.i(TAG, "getPurchases() - \"INAPP_CONTINUATION_TOKEN\" return " + (continuationToken != null ? continuationToken : "null"));
  640.  
  641.  
  642.     }
  643.  
  644.  
  645. }
  646.  
  647.  
  648.  
  649.  
  650.  
  651.