UserRouterImp.kt 4.94 KB
Newer Older
1
package com.yidianling.user.route
konghaorui committed
2 3 4 5 6

import android.app.Activity
import android.content.Context
import android.content.Intent
import android.text.TextUtils
7
import com.google.gson.Gson
8
import com.ydl.ydlcommon.base.BaseApp
konghaorui committed
9
import com.yidianling.common.tools.RxAppTool
10 11 12 13
import com.yidianling.router.user.IUserRouter
import com.yidianling.router.user.UserResponse
import com.yidianling.router.user.UserSetting
import com.yidianling.user.UserHelper
14 15
import com.yidianling.user.api.bean.UserResponseBean
import com.yidianling.user.api.bean.UserSettingBean
16 17 18 19 20
import com.yidianling.user.safePrivate.FingerPrintUtil
import com.yidianling.user.safePrivate.PrivacyActivity
import com.yidianling.user.ui.InputPhoneActivity
import com.yidianling.user.ui.login.RegisterAndLoginActivity

konghaorui committed
21 22 23 24 25 26

/**
 * author : Zhangwenchao
 * e-mail : zhangwch@yidianling.com
 * time   : 2018/04/13
 */
27
class UserRouterImp : IUserRouter {
28 29
    val gson: Gson = Gson()

30 31 32 33 34 35
    override fun getUserSetting(): UserSetting? {
        var infoStr = UserHelper.getUserSettingStr()
        if (TextUtils.isEmpty(infoStr)){
            return null
        }
        return gson.fromJson(infoStr, UserSetting::class.java)
konghaorui committed
36 37 38
    }

    override fun updateUserInfoSp(userInfo: UserResponse.UserInfo?) {
39 40 41 42
        if (userInfo==null){
            return
        }
        val info:UserResponseBean.UserInfo = gson.fromJson( gson.toJson(userInfo), UserResponseBean.UserInfo::class.java)
43
        UserHelper.updateUserinfo(info)
konghaorui committed
44 45
    }

46
    override fun updateUserSetingSp(userSetting: UserSetting?) {
47 48 49
        if (userSetting==null){
            return
        }
50 51
        val info:UserSettingBean= gson.fromJson(gson.toJson(userSetting), UserSettingBean::class.java)
        UserHelper.updateUserSetting(info)
konghaorui committed
52 53 54 55 56 57 58
    }

    override fun setChatTeamHisShowed(showed: Boolean) {
        UserHelper.getUsetSetting()?.chatTeamHisShowed = showed
    }

    override fun setUserResponse(userInfo: UserResponse?) {
59 60
        val info:UserResponseBean = gson.fromJson(gson.toJson(userInfo), UserResponseBean::class.java)
        UserHelper.setUserinfo(info)
konghaorui committed
61 62
    }

63 64 65 66 67 68
    override fun getUserResponse(): UserResponse? {
        var infoStr = UserHelper.getUserInfoStr()
        if (TextUtils.isEmpty(infoStr)){
            return null
        }
        return gson.fromJson(infoStr,UserResponse::class.java)
konghaorui committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
    }

    override fun isLogin(): Boolean {
        return UserHelper.isLogin()
    }

    override fun isFirstLogin(): Boolean {
        return UserHelper.getUserInfo()?.firstLogin==1
    }

    override fun setFirstLogin(first: Boolean) {
        var value : Int = if (first) 1 else 2 //1是2否
        UserHelper.getUserInfo()?.firstLogin = value
    }

    override fun isSafePrivacyClicked(): Boolean {
        return UserHelper.getUsetSetting()?.meSafePrivateIsClick?:true
    }

    override fun putSafePrivacyClicked(clicked: Boolean) {
        UserHelper.getUsetSetting()?.meSafePrivateIsClick = clicked
    }

    override fun getUserInfo(): UserResponse.UserInfo? {
93
        return gson.fromJson(UserHelper.getUserInfoStr(), UserResponse::class.java)?.userInfo
konghaorui committed
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
    }

    override fun isBindPhone(): Boolean {
        return !TextUtils.isEmpty(UserHelper.getUserInfo()?.userInfo?.phone)
    }

    override fun putUnlockCheckSuccessTime(time: Long) {
        UserHelper.getUsetSetting()?.unLockCheckSuccessTime = time
    }

    override fun getChatTeamHisShow(): Boolean {
        return UserHelper.getUsetSetting()?.chatTeamHisShowed?:true
    }

    override fun privacyIntent(activity: Activity): Intent {
        return Intent(activity, PrivacyActivity::class.java)
    }

    override fun loginWayIntent(context: Context): Intent {
        return RegisterAndLoginActivity.getIntent(context)
    }

    override fun inputPhoneIntent(activity: Activity, smsAction: String): Intent {
        return InputPhoneActivity.newIntent(activity, smsAction)
    }

    override fun safeTipViewGone(): Boolean {
        //如果是非登录状态 或者 app指纹开启 或者 手势密码不为空 或者 已提示过安全解锁 -> 隐藏 设置密码提示
        return !UserHelper.isLogin() || FingerPrintUtil.instance().fingerPrintIsOpen()
                || !TextUtils.isEmpty(FingerPrintUtil.instance().getHandPass())
                || FingerPrintUtil.instance().getTrendsSafeTip()
    }

    override fun setTrendsSafeTip(status: Boolean) {
        FingerPrintUtil.instance().setTrendsSafeTip(status)
    }

    override fun errorAgainTime(): Long {
        return FingerPrintUtil.errorAgainTime
    }

    override fun isFirstStart(): Boolean {
        val lastVersionCode : Int = UserHelper.getUsetSetting()?.lastVersionCode?:0
137
        val currentVersionCode : Int = RxAppTool.getAppVersionCode(BaseApp.getApp())
konghaorui committed
138 139 140 141 142 143 144 145 146 147 148 149
        if (lastVersionCode < currentVersionCode) {
            UserHelper.getUsetSetting()?.lastVersionCode = currentVersionCode
            return true
        }
        return false
    }

    override fun clearUserInfo() {
        UserHelper.setUserinfo(null)
        UserIn.clearImData()
    }
}