MainActivity.java 5.43 KB
package com.gumptech.loginsdk.sample;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.ClipboardManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.gumptech.sdk.GumpPreference;
import com.gumptech.sdk.GumpSDK;
import com.gumptech.sdk.bean.GumpUser;
import com.gumptech.sdk.bean.PurchaseResult;
import com.gumptech.sdk.callback.InitializeCallback;
import com.gumptech.sdk.callback.LoginStateListener;
import com.gumptech.sdk.callback.PurchaseCallback;
import com.gumpsdk.gp.demo.R;

public class MainActivity extends Activity  implements PurchaseCallback{

    private static final String TAG = "MainActivity";

    private TextView tvVersion;
    private TextView userInfo;

    private Button btnLoginOrLogout;

    private String appId = "10022";
    private String appKey = "93a27b0bd99bac3e68a440b48aa421ab";
    private String sessionKey;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvVersion = (TextView) findViewById(R.id.version);
        userInfo = (TextView) findViewById(R.id.user_info);
        btnLoginOrLogout = (Button) findViewById(R.id.login_or_logout);
        btnLoginOrLogout.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0)
                    GumpSDK.start(MainActivity.this);
                else
                    GumpSDK.logout(MainActivity.this);
            }
        });
        findViewById(R.id.pay).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Bundle payInfo = new Bundle();
                payInfo.putString("nick", "thi");
                payInfo.putString("product", "元宝");
                payInfo.putFloat("amount", 0.1f);
                payInfo.putString("extraInfo", "This is demo!");
                payInfo.putString("serverId", "100");
                payInfo.putString("sessionKey", sessionKey);
                GumpSDK.pay(MainActivity.this, payInfo, MainActivity.this);
            }
        });
        /**
         * 设置否是开启debug模式
         */
        GumpSDK.setDebugState(false);
        /**
         * 设置是否启用facebook登录
         */
        GumpSDK.setFBEnable(true);
        /**
         * 设置是否启用Vk登录
         */
        GumpSDK.setVKEnable(false);
        /**
         * 设置屏幕方向
         */
        GumpSDK.setScreenLandscape(true);
        /**
         * 设置用户登录状态监听器
         */
        
//        GumpSDK.forceFBWithWeb();
        GumpSDK.setUserStateListener(new LoginStateListener() {
            @Override
            public void onLoginSuccess(GumpUser user) {
            	ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
            	cm.setText(user.getSessionKey());
                sessionKey = user.getSessionKey();
                String userType=null;
                switch(user.getAccountType()){
                case GumpPreference.ACCOUNT_TYPE_FB:
                	userType = "Facebook登录";
                	break;
                case GumpPreference.ACCOUNT_TYPE_QUICK_REG:
                	userType = "快速登录";
                	break;
                case GumpPreference.ACCOUNT_TYPE_REG:
                	userType = "gump注册用户";
                	break;
                case GumpPreference.ACCOUNT_TYPE_VK:
                	userType = "vk登录";
                	break;
                }
                userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType()+") "+userType + "\n sessionKey:" + user.getSessionKey());
                btnLoginOrLogout.setText("Logout");
                btnLoginOrLogout.setTag(1);
            }

            @Override
			public void onLoginFailed(int code, String msg) {
                userInfo.setText(msg);
                Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onLoginCanceled() {
                Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onLogout() {
                btnLoginOrLogout.setText("Login");
                btnLoginOrLogout.setTag(0);
                userInfo.setText("User is logout");
            }
        });
        /**
         * 初始化sdk
         */
        GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() {
            @Override
            public void initComplete(int result) {
                if (result == GumpSDK.CODE.OK) {
                    btnLoginOrLogout.setEnabled(true);
                }
            }
        });


        tvVersion.setText("SDK Version:" + GumpSDK.getVersion());
    }

    @Override
    public void onPurchaseCompleted(PurchaseResult result) {
        Log.i(TAG,"purchase completed");
    }

    @Override
    public void onPurchaseError(int code, String msg) {
        Log.i(TAG,"purchase error");
    }

    @Override
    public void onPurchaseCanceled() {
        Log.i(TAG,"purchase canceled");
    }
}