MainActivity.java 4.49 KB
package com.gump.cohesivesdk.sample;

import android.app.Activity;
import android.app.ProgressDialog;
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.cohesivesdk.CohesiveApi;
import com.gump.cohesivesdk.callback.ExitCallback;
import com.gump.cohesivesdk.callback.InitialCallback;
import com.gump.cohesivesdk.callback.PaymentListener;
import com.gump.cohesivesdk.callback.UserStateListener;
import com.gump.cohesivesdk.model.GPUser;
import com.gump.cohesivesdk.model.Payment;
import com.tencent.tmgp.testgump.R;

public class MainActivity extends Activity implements UserStateListener {
	private static final String TAG = "MainActivity";

	CohesiveApi cohesiveApi;
	private Button btnLogin;
	private Button btnPay;
	private TextView tvInfo;
	private boolean isLogin = false;

	private ProgressDialog prog;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		CohesiveApi.setDebugging(true);
		cohesiveApi = CohesiveApi.build(this);
		cohesiveApi.onCreate(this, getIntent());
		cohesiveApi.init(this, "1002", new InitialCallback() {

			@Override
			public void onInitComplete(int result) {
				Log.d(TAG, "sdk init completed result:" + result);
				if (result == 0)
					setListeners();
			}
		});
		cohesiveApi.setUserListener(this);
		btnLogin = (Button) findViewById(R.id.login);
		btnPay = (Button) findViewById(R.id.pay);
		tvInfo = (TextView) findViewById(R.id.info);
		tvInfo.setText("SDK Version:" + CohesiveApi.getVersion());
	}

	private void setListeners() {
		btnLogin.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				prog = ProgressDialog.show(MainActivity.this, "", isLogin ? "正在注销" : "正在登录");
				if (isLogin)
					cohesiveApi.logout(MainActivity.this);
				else
					cohesiveApi.login(MainActivity.this);
			}
		});
		btnPay.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				Bundle payinfo = new Bundle();
				payinfo.putString("orderId", System.currentTimeMillis() + "");
				payinfo.putString("product", "coin");
				payinfo.putString("extra", "buy 10 coins");
				payinfo.putLong("amount", 1);
				cohesiveApi.goPay(MainActivity.this, payinfo, new PaymentListener() {

					@Override
					public void onPaySuccess(Payment arg0) {
						Log.i(TAG, arg0.toString());
					}

					@Override
					public void onPayError(int code) {
						Log.i(TAG, "pay Error:" + code);
					}
				});
			}
		});
	}

	@Override
	public void onBackPressed() {
		cohesiveApi.exit(this, new ExitCallback() {

			@Override
			public void onNo3rdExiterProvide() {
				// 退出窗口需要游戏自定义,并且实现资源回收,杀死进程等退出逻辑
				// TODO 实现退出窗口
				cohesiveApi.appDestroy(MainActivity.this);
				MainActivity.super.onBackPressed();
			}

			@Override
			public void onExit() {
				// 退出窗口由渠道提供,游戏只须实现资源回收,杀死进程等退出逻辑
				cohesiveApi.appDestroy(MainActivity.this);
				// 调用游戏退出逻辑
				MainActivity.super.onBackPressed();
			}
		});
	}

	@Override
	protected void onNewIntent(Intent intent) {
		super.onNewIntent(intent);
		cohesiveApi.onNewIntent(this, intent);
	}

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

	@Override
	protected void onPause() {
		super.onPause();
		cohesiveApi.onPause(this);
	}

	@Override
	protected void onResume() {
		super.onResume();
		cohesiveApi.onResume(this);
	}

	@Override
	protected void onDestroy() {
		super.onDestroy();
		cohesiveApi.onDestroy(this);
	}

	@Override
	protected void onRestart() {
		super.onRestart();
		cohesiveApi.onRestart(this);
	}

	@Override
	protected void onStop() {
		super.onStop();
		cohesiveApi.onStop(this);
	}

	@Override
	public void onLoginFailed(String arg0) {
		Log.i(TAG, "Login Failed:" + arg0);
		if (prog != null)
			prog.cancel();
	}

	@Override
	public void onLoginSuccess(GPUser arg0) {
		Log.i(TAG, "Login success:" + arg0.toString());
		btnLogin.setText("logout");
		isLogin = true;
		if (prog != null)
			prog.cancel();
	}

	@Override
	public void onLogout() {
		Log.i(TAG, "logout");
		btnLogin.setText("login");
		isLogin = false;
		if (prog != null)
			prog.cancel();
	}

}