UserManager.java 3.68 KB
package com.chudiangameplay.android.manager;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;

import com.chudiangameplay.android.MyApplication;
import com.chudiangameplay.android.bean.UserInfo;
import com.chudiangameplay.android.constant.SPConstants;
import com.chudiangameplay.android.event.Event_LoginStateChange;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.module_im.manager.IM_Manager;
import com.chudiangameplay.android.tool.Log;
import com.chudiangameplay.android.tool.SPUtil;
import com.chudiangameplay.android.ui.activity.LoginActivity;
import com.chudiangameplay.android.ui.activity.MainActivity;

import org.greenrobot.eventbus.EventBus;

/**
 * Created by Administrator on 2018/8/29.
 */

public class UserManager {

    private static UserInfo userInfo;

    public static void saveUserInfo(Context context) {
        SPUtil.putObjectValue(MyApplication.context, SPConstants.UserInfo, userInfo);
    }

    //保存用户信息
    public static void saveUserInfo(Context context, UserInfo info) {
        SPUtil.putObjectValue(MyApplication.context, SPConstants.UserInfo, info);
        userInfo = info;
    }

    //获取用户信息
    public static UserInfo getUserInfo(Context context) {
        if (userInfo == null) {
            userInfo = (UserInfo) SPUtil.getObjectValue(MyApplication.context, UserInfo.class, SPConstants.UserInfo);
        }
        return userInfo;
    }

    public static int getUserNobleCode() {
        if (userInfo == null) {
            userInfo = (UserInfo) SPUtil.getObjectValue(MyApplication.context, UserInfo.class, SPConstants.UserInfo);
        }
        return userInfo.nobleRankCode;
    }

    //是否登陆
    public static boolean isLogin(Context context) {
        return !TextUtils.isEmpty(getToken(context));
    }

    //保存登录token
    public static void saveToken(Context context, String token) {
        SPUtil.putValue(MyApplication.context, SPConstants.Token, token);
        Log.i("保存token:" + token);
    }

    //获取登录token
    public static String getToken(Context context) {
        return SPUtil.getStringValue(MyApplication.context, SPConstants.Token, null);
    }

    //退出登录
    public static void logout(final Context context) {
        if (ChatRoomManager.getInstance().roomInfo != null) {
            ChatRoomManager.getInstance().closeRoom(new CommCallBack() {
                @Override
                public void onResult(Object obj) {
                    logout1(context);
                }
            });
        } else {
            logout1(context);
        }
    }

    public static void logout1(Context context) {
        SPUtil.putObjectValue(MyApplication.context, SPConstants.QiangDan_Info, null);
        userInfo = null;
        saveUserInfo(MyApplication.context);
        saveToken(MyApplication.context, "");
        IM_Manager.loginout();
        EventBus.getDefault().post(new Event_LoginStateChange());

        //跳首页
        if (context instanceof Activity && !(context instanceof MainActivity)) {
            Intent intent = new Intent(MyApplication.context, MainActivity.class);
            context.startActivity(intent);
        }
    }

    //跳登录页
    public static void showLogin(Context context) {
        Intent intent = new Intent(context, LoginActivity.class);
        context.startActivity(intent);
    }

    //uid是否是自己
    public static boolean isSelf(Context context, String uid) {
        if (getUserInfo(context) != null && !TextUtils.isEmpty(uid)) {
            return uid.equals(getUserInfo(context).id);
        } else {
            return false;
        }
    }
}