/*
* Copyright 2014-2015 GameUp
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.gameup.android.test;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.vending.billing.IInAppBillingService;
import org.json.JSONException;
import org.json.JSONObject;
import io.gameup.android.GameUpException;
import io.gameup.android.GameUpLoginListener;
import io.gameup.android.push.Push;
import io.gameup.android.test.entity.AchievementUpdate;
import io.gameup.android.test.entity.LeaderboardAndRankGet;
import io.gameup.android.test.entity.LeaderboardUpdate;
import io.gameup.android.test.entity.MatchIdGet;
import io.gameup.android.test.entity.MatchIdPost;
import io.gameup.android.test.entity.MatchIdTurnGet;
import io.gameup.android.test.entity.MatchIdTurnIdGet;
import io.gameup.android.test.entity.MatchIdTurnPost;
import io.gameup.android.test.entity.MatchPost;
import io.gameup.android.test.entity.PurchaseVerifyProduct;
import io.gameup.android.test.entity.PurchaseVerifySubscription;
import io.gameup.android.test.tasks.AchievementGetTask;
import io.gameup.android.test.tasks.AchievementUpdateTask;
import io.gameup.android.test.tasks.GameGetTask;
import io.gameup.android.test.tasks.GamerGetTask;
import io.gameup.android.test.tasks.LeaderboardAndRankGetTask;
import io.gameup.android.test.tasks.LeaderboardGetTask;
import io.gameup.android.test.tasks.LeaderboardUpdateTask;
import io.gameup.android.test.tasks.MatchGetTask;
import io.gameup.android.test.tasks.MatchIdEndTask;
import io.gameup.android.test.tasks.MatchIdGetTask;
import io.gameup.android.test.tasks.MatchIdLeaveTask;
import io.gameup.android.test.tasks.MatchIdTurnGetTask;
import io.gameup.android.test.tasks.MatchIdTurnIdGetTask;
import io.gameup.android.test.tasks.MatchIdTurnPostTask;
import io.gameup.android.test.tasks.MatchPostTask;
import io.gameup.android.test.tasks.PingTask;
import io.gameup.android.test.tasks.PurchaseVerifyProductTask;
import io.gameup.android.test.tasks.PurchaseVerifySubscriptionTask;
import io.gameup.android.test.tasks.PushTask;
import io.gameup.android.test.tasks.ServerTask;
import io.gameup.android.test.tasks.StorageDeleteTask;
import io.gameup.android.test.tasks.StorageGetTask;
import io.gameup.android.test.tasks.StoragePutTask;
import io.gameup.android.GameUp;
import io.gameup.android.GameUpSession;
public class MainActivity extends Activity implements GameUpLoginListener {
private GameUpSession session;
IInAppBillingService iapService;
ServiceConnection iapServiceConn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
iapService = null;
}
@Override
public void onServiceConnected(ComponentName name,
IBinder service) {
iapService = IInAppBillingService.Stub.asInterface(service);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
bindService(serviceIntent, iapServiceConn, Context.BIND_AUTO_CREATE);
GameUp.init(this, getString(R.string.api_key),
new Push.NotificationOpenedHandler() {
@Override
public void notificationOpened(final String message,
final JSONObject additionalData) {
Toast.makeText(getApplicationContext(),
"HANDLER, message=" + message + ", data=" +
additionalData.toString(),
Toast.LENGTH_LONG).show();
}
});
final SharedPreferences sharedPreferences =
getSharedPreferences("io.gameup.android.test", MODE_PRIVATE);
final String sessionOverride = getString(R.string.session_override);
if(!sessionOverride.isEmpty()) {
sharedPreferences.edit()
.putString("gameUpSession", "{\"api_key\":\"" +
getString(R.string.api_key) + "\",\"token\":\"" +
sessionOverride + "\",\"created_at\":0}")
.commit();
}
if(sharedPreferences.contains("gameUpSession")) {
try {
session = GameUpSession.fromString(
sharedPreferences.getString("gameUpSession", null));
((Button) findViewById(R.id.sessionButton)).setText(
R.string.sessionButtonLabelViewSession);
findViewById(R.id.pingSessionButton).setEnabled(true);
findViewById(R.id.gamerGetButton).setEnabled(true);
findViewById(R.id.pushPutButton).setEnabled(true);
findViewById(R.id.storageGetButton).setEnabled(true);
findViewById(R.id.storagePutButton).setEnabled(true);
findViewById(R.id.storageDeleteButton).setEnabled(true);
findViewById(R.id.achievementGetSessionButton).setEnabled(true);
findViewById(R.id.achievementUpdateButton).setEnabled(true);
findViewById(R.id.leaderboardGetSessionButton).setEnabled(true);
findViewById(R.id.leaderboardUpdateButton).setEnabled(true);
findViewById(R.id.matchGetButton).setEnabled(true);
findViewById(R.id.matchPostButton).setEnabled(true);
findViewById(R.id.matchIdGetButton).setEnabled(true);
findViewById(R.id.matchIdLeaveButton).setEnabled(true);
findViewById(R.id.matchIdEndButton).setEnabled(true);
findViewById(R.id.matchIdTurnGetButton).setEnabled(true);
findViewById(R.id.matchIdTurnIdGetButton).setEnabled(true);
findViewById(R.id.matchIdTurnPostButton).setEnabled(true);
findViewById(R.id.purchaseVerifyProductPostButton).setEnabled(true);
findViewById(R.id.purchaseVerifySubscriptionPostButton).setEnabled(true);
}
catch (final GameUpException e) {
e.printStackTrace();
sharedPreferences.edit().remove("gameUpSession").commit();
}
}
final Activity context = this;
final GameUpLoginListener listener = this;
findViewById(R.id.sessionButton).requestFocus();
findViewById(R.id.sessionButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
if (session == null) {
final View view = context.getLayoutInflater().inflate(R.layout.login_dialog, null);
final AlertDialog loginDialog = new AlertDialog.Builder(context)
.setView(view)
.setNegativeButton("Cancel", null).create();
// view.findViewById(R.id.loginAnonymous).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(final View v) {
// loginDialog.dismiss();
// GameUp.loginAnonymous("TODO");
// }
// });
view.findViewById(R.id.loginFacebook).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
loginDialog.dismiss();
GameUp.loginFacebook(context, listener);
}
});
view.findViewById(R.id.loginGoogle).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
loginDialog.dismiss();
GameUp.loginGoogle(context, listener);
}
});
view.findViewById(R.id.loginTwitter).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
loginDialog.dismiss();
GameUp.loginTwitter(context, listener);
}
});
view.findViewById(R.id.loginGameUp).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
loginDialog.dismiss();
GameUp.loginGameUp(context, listener);
}
});
loginDialog.show();
} else {
new AlertDialog.Builder(context).setMessage(session.toString()).show();
}
}
});
findViewById(R.id.clearButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
session = null;
sharedPreferences.edit().remove("gameUpSession").commit();
((Button) findViewById(R.id.sessionButton)).setText(
R.string.sessionButtonLabelLogin);
findViewById(R.id.pingSessionButton).setEnabled(false);
findViewById(R.id.gamerGetButton).setEnabled(false);
findViewById(R.id.pushPutButton).setEnabled(false);
findViewById(R.id.storageGetButton).setEnabled(false);
findViewById(R.id.storagePutButton).setEnabled(false);
findViewById(R.id.storageDeleteButton).setEnabled(false);
findViewById(R.id.achievementGetSessionButton).setEnabled(false);
findViewById(R.id.achievementUpdateButton).setEnabled(false);
findViewById(R.id.leaderboardGetSessionButton).setEnabled(false);
findViewById(R.id.leaderboardUpdateButton).setEnabled(false);
findViewById(R.id.matchGetButton).setEnabled(false);
findViewById(R.id.matchPostButton).setEnabled(false);
findViewById(R.id.matchIdGetButton).setEnabled(false);
findViewById(R.id.matchIdLeaveButton).setEnabled(false);
findViewById(R.id.matchIdEndButton).setEnabled(false);
findViewById(R.id.matchIdTurnGetButton).setEnabled(false);
findViewById(R.id.matchIdTurnIdGetButton).setEnabled(false);
findViewById(R.id.matchIdTurnPostButton).setEnabled(false);
findViewById(R.id.purchaseVerifyProductPostButton).setEnabled(false);
findViewById(R.id.purchaseVerifySubscriptionPostButton).setEnabled(false);
}
});
findViewById(R.id.pingServiceButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new PingTask(context).execute();
}
});
findViewById(R.id.serverButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new ServerTask(context).execute();
}
});
findViewById(R.id.achievementGetServiceButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new AchievementGetTask(context).execute();
}
});
findViewById(R.id.leaderboardGetServiceButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.leaderboard_get_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String leaderboardId = ((EditText) view.findViewById(R.id.leaderboardId)).getText().toString();
dialog.dismiss();
new LeaderboardGetTask(context).execute(leaderboardId);
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.gameGetButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new GameGetTask(context).execute();
}
});
findViewById(R.id.pingSessionButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new PingTask(context).execute(session);
}
});
findViewById(R.id.gamerGetButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new GamerGetTask(context).execute(session);
}
});
findViewById(R.id.pushPutButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new PushTask(context).execute(session);
}
});
findViewById(R.id.storagePutButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new StoragePutTask(context).execute(session);
}
});
findViewById(R.id.storageGetButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new StorageGetTask(context).execute(session);
}
});
findViewById(R.id.storageDeleteButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new StorageDeleteTask(context).execute(session);
}
});
findViewById(R.id.achievementGetSessionButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new AchievementGetTask(context).execute(session);
}
});
findViewById(R.id.achievementUpdateButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.achievement_update_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String achievementId = ((EditText) view.findViewById(R.id.achievementId)).getText().toString();
final String countInput = ((EditText) view.findViewById(R.id.achievementCount)).getText().toString();
final Integer count = countInput.isEmpty() ? null : Integer.valueOf(countInput);
dialog.dismiss();
new AchievementUpdateTask(context).execute(new AchievementUpdate(session, achievementId, count));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.leaderboardGetSessionButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.leaderboard_get_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String leaderboardId = ((EditText) view.findViewById(R.id.leaderboardId)).getText().toString();
dialog.dismiss();
new LeaderboardAndRankGetTask(context).execute(new LeaderboardAndRankGet(session, leaderboardId));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.leaderboardUpdateButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.leaderboard_update_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String leaderboardId = ((EditText) view.findViewById(R.id.leaderboardId)).getText().toString();
final String scoreInput = ((EditText) view.findViewById(R.id.leaderboardScore)).getText().toString();
final long score = scoreInput.isEmpty() ? 0l : Long.valueOf(scoreInput);
dialog.dismiss();
new LeaderboardUpdateTask(context).execute(new LeaderboardUpdate(session, leaderboardId, score));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.matchGetButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
new MatchGetTask(context).execute(session);
}
});
findViewById(R.id.matchPostButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.match_post_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String playersInput = ((EditText) view.findViewById(R.id.matchPlayers)).getText().toString();
final int players = playersInput.isEmpty() ? 0 : Integer.valueOf(playersInput);
dialog.dismiss();
new MatchPostTask(context).execute(new MatchPost(session, players));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.matchIdGetButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.match_id_get_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String matchId = ((EditText) view.findViewById(R.id.matchId)).getText().toString();
dialog.dismiss();
new MatchIdGetTask(context).execute(new MatchIdGet(session, matchId));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.matchIdLeaveButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.match_id_post_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String matchId = ((EditText) view.findViewById(R.id.matchId)).getText().toString();
dialog.dismiss();
new MatchIdLeaveTask(context).execute(new MatchIdPost(session, matchId));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.matchIdEndButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.match_id_post_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String matchId = ((EditText) view.findViewById(R.id.matchId)).getText().toString();
dialog.dismiss();
new MatchIdEndTask(context).execute(new MatchIdPost(session, matchId));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.matchIdTurnGetButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.match_id_turn_get_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String matchId = ((EditText) view.findViewById(R.id.matchId)).getText().toString();
dialog.dismiss();
new MatchIdTurnGetTask(context).execute(new MatchIdTurnGet(session, matchId));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.matchIdTurnIdGetButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.match_id_turn_id_get_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String matchId = ((EditText) view.findViewById(R.id.matchId)).getText().toString();
final String turnInput = ((EditText) view.findViewById(R.id.matchTurnCount)).getText().toString();
final int turn = turnInput.isEmpty() ? 0 : Integer.valueOf(turnInput);
dialog.dismiss();
new MatchIdTurnIdGetTask(context).execute(new MatchIdTurnIdGet(session, matchId, turn));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.matchIdTurnPostButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
final View view = context.getLayoutInflater().inflate(R.layout.match_id_turn_post_dialog, null);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
final String matchId = ((EditText) view.findViewById(R.id.matchId)).getText().toString();
final String turnInput = ((EditText) view.findViewById(R.id.matchTurnCount)).getText().toString();
final int turn = turnInput.isEmpty() ? 0 : Integer.valueOf(turnInput);
final String nextGamer = ((EditText) view.findViewById(R.id.matchTurnNextGamer)).getText().toString();
final String data = ((EditText) view.findViewById(R.id.matchTurnData)).getText().toString();
dialog.dismiss();
new MatchIdTurnPostTask(context).execute(new MatchIdTurnPost(session, matchId, turn, nextGamer, data));
}
})
.setNegativeButton("Cancel", null)
.show();
}
});
findViewById(R.id.purchaseVerifyProductPostButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
try {
Bundle buyIntentBundle = iapService.getBuyIntent(3, getPackageName(),
"io.gameup.android.test.product1", "inapp",
"io.gameup.android.test.developer_payload.p");
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(),
1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0),
Integer.valueOf(0));
}
catch (final Exception e) {
Log.e("GU IAP", "e", e);
e.printStackTrace();
}
}
});
findViewById(R.id.purchaseVerifySubscriptionPostButton).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(final View v) {
try {
Bundle buyIntentBundle = iapService.getBuyIntent(3, getPackageName(),
"io.gameup.android.test.subscription1", "subs",
"io.gameup.android.test.developer_payload.s");
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(),
1002, new Intent(), Integer.valueOf(0), Integer.valueOf(0),
Integer.valueOf(0));
}
catch (final Exception e) {
Log.e("GU IAP", "e", e);
e.printStackTrace();
}
}
});
}
@Override
public void onLoginComplete(final GameUpSession newSession) {
session = newSession;
final SharedPreferences sharedPreferences =
getSharedPreferences("io.gameup.android.test", MODE_PRIVATE);
sharedPreferences.edit()
.putString("gameUpSession", newSession.toString())
.commit();
runOnUiThread(new Runnable() {
@Override
public void run() {
((Button) findViewById(R.id.sessionButton)).setText(
R.string.sessionButtonLabelViewSession);
findViewById(R.id.pingSessionButton).setEnabled(true);
findViewById(R.id.gamerGetButton).setEnabled(true);
findViewById(R.id.pushPutButton).setEnabled(true);
findViewById(R.id.storageGetButton).setEnabled(true);
findViewById(R.id.storagePutButton).setEnabled(true);
findViewById(R.id.storageDeleteButton).setEnabled(true);
findViewById(R.id.achievementGetSessionButton).setEnabled(true);
findViewById(R.id.achievementUpdateButton).setEnabled(true);
findViewById(R.id.leaderboardGetSessionButton).setEnabled(true);
findViewById(R.id.leaderboardUpdateButton).setEnabled(true);
findViewById(R.id.matchGetButton).setEnabled(true);
findViewById(R.id.matchPostButton).setEnabled(true);
findViewById(R.id.matchIdGetButton).setEnabled(true);
findViewById(R.id.matchIdLeaveButton).setEnabled(true);
findViewById(R.id.matchIdEndButton).setEnabled(true);
findViewById(R.id.matchIdTurnGetButton).setEnabled(true);
findViewById(R.id.matchIdTurnIdGetButton).setEnabled(true);
findViewById(R.id.matchIdTurnPostButton).setEnabled(true);
findViewById(R.id.purchaseVerifyProductPostButton).setEnabled(true);
findViewById(R.id.purchaseVerifySubscriptionPostButton).setEnabled(true);
}
});
}
@Override
public void onLoginCancelled() {
new AlertDialog.Builder(this).setMessage("Login cancelled.").show();
}
@Override
public void onLoginError(final GameUpException error) {
new AlertDialog.Builder(this).setMessage("Login error!").show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {
int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
Log.e("GU IAP", purchaseData);
if (resultCode == RESULT_OK) {
try {
JSONObject jo = new JSONObject(purchaseData);
String productId = jo.getString("productId");
String token = jo.getString("purchaseToken");
new PurchaseVerifyProductTask(this).execute(new PurchaseVerifyProduct(session, token, productId));
}
catch (JSONException e) {
e.printStackTrace();
}
}
}
else if (requestCode == 1002) {
int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
Log.e("GU IAP", purchaseData);
if (resultCode == RESULT_OK) {
try {
JSONObject jo = new JSONObject(purchaseData);
String subscriptionId = jo.getString("productId");
String token = jo.getString("purchaseToken");
new PurchaseVerifySubscriptionTask(this).execute(new PurchaseVerifySubscription(session, token, subscriptionId));
}
catch (JSONException e) {
e.printStackTrace();
}
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (iapService != null) {
unbindService(iapServiceConn);
}
}
}