package mzyw.sdkdemo;

import java.text.SimpleDateFormat;
import java.util.Date;
import mzyw.sdkdemo.R;
import zty.sdk.game.Constants;
import zty.sdk.game.GameSDK;
import zty.sdk.listener.ChangeUsnListener;
import zty.sdk.listener.ExitListener;
import zty.sdk.listener.ExitQuitListener;
import zty.sdk.listener.GameSDKLoginListener;
import zty.sdk.utils.Util_G;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

@SuppressLint("SimpleDateFormat") public class DemoActivity extends Activity {

	private Activity activity = this;
	/** 默认自动登录 */
	private boolean bShowLogin = true;
	private Button login, levelUp, pay, change;
	int k = 00;                                        
	String number;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_demo);
		initView();
		initSDK();
	}
	
	@Override
	protected void onResume() {
		Log.i(Constants.TAG, "***************onResume");
		GameSDK.onResume();
		super.onResume();
		
	}
	
	@Override
	protected void onPause() {
		Log.i(Constants.TAG, "onPause****************");
		GameSDK.onPause();
		super.onPause();
		
	}

	@Override
	public void onBackPressed() {

		//游戏退出回调
		ExitListener exitListener = new ExitListener() {
			@Override
			public void onExit(Object para) {
				// 游戏作清理退出工作
				System.exit(0);
				android.os.Process.killProcess(android.os.Process.myPid());
			}
			
		};
		//游戏退出取消，若游戏在退出时点击取消，可实现该接口恢复游戏，若不需要可不做处理
		ExitQuitListener exitQuitListener = new ExitQuitListener(){

			@Override
			public void onExitQuit(Object param) {
				// 游戏恢复工作
				Toast.makeText(activity, "退出取消", Toast.LENGTH_SHORT).show();
			}
			
		};
		GameSDK.afdfOut(activity, exitListener,exitQuitListener,null);
		
	}

	private void initView() {
		login = (Button) findViewById(R.id.bt_login);
		levelUp = (Button) findViewById(R.id.bt_level);
		pay = (Button) findViewById(R.id.bt_pay);
		change = (Button) findViewById(R.id.bt_change);
		//自动登录，默认为自动登录
		if (bShowLogin) {
		}
		
		//不自动登录的时候，设置登录按钮的点击事件
		login.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				//登录方法
				login();
			}
		});
		//切换账号的点击事件
		change.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				//调用切换账号接口
				GameSDK.ChangeUsn(activity, new ChangeUsnListener() {

					@Override
					public void changeUsnSucc(boolean b) {
						if(b == true){
							Util_G.debug("账号切换成功");
							//先处理完游戏退出后调用此方法打开登录界面
							GameSDK.ChangeLogin(activity);
						}
					}
				}, true);
			}
		});
		//升级按钮的点击事件
		levelUp.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				//升级方法
				levelUp();
				
			}
		});
		//支付方法的点击事件
		pay.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				//支付方法
				pay();
			}
		});
	}
	
	
	/**
	 * 初始化sdk时自动登录，手动登录的话将bShowLogin改为false就ok
	 */
	private void initSDK() {
		GameSDK.initSDK(activity, new GameSDKLoginListener() {
			
			@Override
			public void onLoginSucess(String timestamp, String username, int userId, String sign) {
				//实现悬浮按钮的打开
				GameSDK.showFloat(activity);
				
				//demo登录成功，登录按钮不可用，切换按钮可用；
				//对接中删掉这三行代码
				login.setEnabled(false);
				change.setEnabled(true);
				Util_G.debug_i("时间戳", timestamp);
				Util_G.debug_i(Constants.TAG1, sign);
			}

			
			@Override
			public void onLoginCancelled() {
				Toast.makeText(activity, "登录失败", 0).show();
			}
		}, bShowLogin);
	}
	
	
	
	
	
	/**
	 * 登录方法
	 */
	private void login() {
		//调取登录方法
		GameSDK.Login();
	}
	
	/**
	 * 升级方法
	 */
	protected void levelUp() {
		String serverId = "1";
		int roleLevel = 21;
		String serverName = "雪之痕";
		String palyerName = "赵子龙";
		GameSDK.afdf2Self(serverId,//1 - 游戏服ID，1服为1，2服为2……
		       serverName,//2 - 游戏服名称
		       palyerName,//3 - 玩家角色名称
		       roleLevel//4 - 玩家级别
		      ); 
		
	}
	
	private void pay() {
		// 参数
		// 1 - activity
		// 2 - 游戏服ID，1服为1，2服为2……
		// 3 - 角色等级
		// 4 - 游戏服名称
		// 5 - 玩家角色名称
		// 6 - 游戏厂商的订单号
		// 7 - 支付金额
		// 8 - 游戏的兑换比例 填10就是1人民币兑换10个游戏  套餐时比例传1，（作为后台数据存储，不在sdk中显示）
		// 9 - 游戏币名称“元宝”或“金币”、套餐名称 如 “月卡” 等
		String serverId = "1";
		int roleLevel = 21;
		String serverName = "雪之痕";
		String palyerName = "赵子龙";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		String cpOderId = "m" + sdf.format(new Date());
		int money = 1;
		int ratio = 10;
		String goods = "金币";

		GameSDK.startPay(activity, serverId, roleLevel,serverName, palyerName, cpOderId, money, ratio, goods);
		k++;
	}
	
}