MainActivity.java 4.33 KB
package com.gump.inland.sdk.demo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.gump.inland.gamesdk.InlandSDK;
import com.gump.inland.gamesdk.InlandSDKCallback;
import com.gump.inland.gamesdk.InlandSDKException;
import com.gump.inland.gamesdk.bean.GumpUser;
import com.gump.inland.gamesdk.bean.PayRequest;
import com.gump.inland.gamesdk.callback.PurchaseCallback;
import com.gump.inland.gamesdk.passport.Passport;
import com.ninjaonline.R;

public class MainActivity extends Activity {

	private static final String TAG = "MainActivity";
	private TextView tvSDKInfo;
	private TextView tvUserInfo;
	private TextView tvPurchaseResult;
	private Button btnLogin;
	private Button btnPay;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tvSDKInfo = (TextView) findViewById(R.id.sdk_info);
		tvUserInfo = (TextView) findViewById(R.id.user_info);
		tvPurchaseResult = (TextView) findViewById(R.id.purchase_result);
		btnLogin = (Button) findViewById(R.id.login);
		btnPay = (Button) findViewById(R.id.purchase);

		Log.d(TAG, "MainActivity onCreate");
		InlandSDK.setIsDebugEnable(false);
		InlandSDK.setScreenLandscape(true);
		InlandSDK.initializeSDK("10006", "6731f0406495c0a92ea7931f94b307b7");
		Passport.getInstance().registerCallback(new InlandSDKCallback<GumpUser>() {

			@Override
			public void onSuccess(GumpUser result) {
				Log.d(TAG, "gumpUser:" + result.toString());
				btnLogin.setVisibility(View.GONE);
				tvUserInfo.setText(formatUserInfo(result));
				btnPay.setVisibility(View.VISIBLE);
			}

			@Override
			public void onError(InlandSDKException error) {
				Log.d(TAG, "login error:" + error.getMessage());
			}

			@Override
			public void onCancel() {
				Log.d(TAG, "login be canceled");
			}
		});

		tvSDKInfo.setText(getSDKInfo());
		btnLogin.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				Passport.getInstance().login(MainActivity.this);
			}
		});
		btnPay.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				PayRequest payRequest = new PayRequest();
				payRequest.setPrice(1);
				payRequest.setProduct("玄冥剑");
				payRequest.setExtOrder("p100201508311731");
				payRequest.setGumpUid(Passport.getInstance().getGumpUser().getUid());
				InlandSDK.purchase(MainActivity.this, payRequest, new PurchaseCallback() {

					@Override
					public void onPurchaseError(final Exception e) {
						Log.w(TAG, "purchase error:" + e.getMessage());
						runOnUiThread(new Runnable() {

							@Override
							public void run() {
								tvPurchaseResult.setText("purchase occured an error:" + e.getMessage());
							}
						});
					}

					@Override
					public void onPurchaseSuccess(final String gumpTransId, final String extOrder) {
						Log.d(TAG, "purchase success:" + gumpTransId + ",extorder:" + extOrder);
						runOnUiThread(new Runnable() {

							@Override
							public void run() {
								tvPurchaseResult.setText("purchase " + gumpTransId + " success,extorder:" + extOrder);
							}
						});
					}

					@Override
					public void onPurchaseCanceled() {
						Log.d(TAG, "purchase be canceled");
						runOnUiThread(new Runnable() {

							@Override
							public void run() {
								tvPurchaseResult.setText("purchase be canceled");
							}
						});
					}
				});
			}
		});
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (!InlandSDK.onActivityResult(requestCode, resultCode, data))
			super.onActivityResult(requestCode, resultCode, data);
	}

	private String getSDKInfo() {
		StringBuilder str = new StringBuilder();
		str.append("SDK version:");
		str.append(InlandSDK.getVersion());
		str.append("\nappId:");
		str.append(InlandSDK.getAppId());
		str.append("\nappKey:");
		str.append(InlandSDK.getAppKey());
		return str.toString();
	}

	private String formatUserInfo(GumpUser user) {
		StringBuilder str = new StringBuilder();
		str.append("Logined User information:\n");
		str.append("userId:" + user.getUid());
		str.append("\nacccountType:" + user.getAccountType());
		str.append("\nsessionKey:" + user.getSessionKey());
		return str.toString();
	}
}