From 79c1e4c066011d9f4eb30e35b00e877a6a93a897 Mon Sep 17 00:00:00 2001 From: shenzuqiang Date: Mon, 9 Mar 2026 11:39:28 +0800 Subject: [PATCH] =?UTF-8?q?Dev=EF=BC=9A=201=E3=80=81=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E5=92=8C=E8=A7=A3=E6=9E=90=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E5=B4=A9=E6=BA=83=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/screen/mine/setting/BindScreen.kt | 1 - .../provider/storage/GlobalStateManager.kt | 4 --- .../rabbit/provider/storage/PreferenceUtil.kt | 29 +++++++++++++------ .../img/rabbit/viewmodel/LoginViewModel.kt | 4 +-- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt index bc2afb2..08ae36d 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt @@ -70,7 +70,6 @@ import com.img.rabbit.config.Constants.agreementUrl import com.img.rabbit.config.Constants.privacyUrl import com.img.rabbit.pages.NetworkDisconnectedPage import com.img.rabbit.pages.toolbar.TitleBar -import com.img.rabbit.provider.storage.GlobalStateManager import com.img.rabbit.utils.AgreementTextHelper import com.img.rabbit.utils.AppEventBus import com.img.rabbit.utils.LoginBindEvent diff --git a/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt b/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt index 73d4bd3..5a73090 100644 --- a/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt +++ b/app/src/main/java/com/img/rabbit/provider/storage/GlobalStateManager.kt @@ -5,12 +5,8 @@ import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit -import androidx.datastore.preferences.core.intPreferencesKey -import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.preferencesDataStore import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.map private val Context.storeData: DataStore by preferencesDataStore(name = "global_state") diff --git a/app/src/main/java/com/img/rabbit/provider/storage/PreferenceUtil.kt b/app/src/main/java/com/img/rabbit/provider/storage/PreferenceUtil.kt index e61431e..b5984a1 100644 --- a/app/src/main/java/com/img/rabbit/provider/storage/PreferenceUtil.kt +++ b/app/src/main/java/com/img/rabbit/provider/storage/PreferenceUtil.kt @@ -1,8 +1,6 @@ package com.img.rabbit.provider.storage import android.text.TextUtils -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData import com.google.gson.Gson import com.google.gson.GsonBuilder import com.img.rabbit.bean.response.UserConfigEntity @@ -125,18 +123,31 @@ object PreferenceUtil { } fun getLoginInfos(): MutableList? { - /** - *[{"user_id":"25","name":"手机用户0253","avater":"https://cdn.batiao8.com/jietutu/logo.png","token":"45731e27-d101-4ec3-975c-e665cf86a579"},{"user_id":"25","name":"手机用户0253","avater":"https://cdn.batiao8.com/jietutu/logo.png","token":"45731e27-d101-4ec3-975c-e665cf86a579"}] - */ - return gson.fromJson(mmkv.decodeString(KEY_LOGIN_INFO, "[]"), Array::class.java)?.toMutableList() + return try { + /** + *[{"user_id":"25","name":"手机用户0253","avater":"https://cdn.batiao8.com/jietutu/logo.png","token":"45731e27-d101-4ec3-975c-e665cf86a579"},{"user_id":"25","name":"手机用户0253","avater":"https://cdn.batiao8.com/jietutu/logo.png","token":"45731e27-d101-4ec3-975c-e665cf86a579"}] + */ + gson.fromJson(mmkv.decodeString(KEY_LOGIN_INFO, "[]"), Array::class.java)?.toMutableList() + }catch (e: Exception){ + null + } } - fun saveUserInfo(userInfoEntity: UserInfoEntity) { - mmkv.encode(KEY_USER_INFO, gson.toJson(userInfoEntity)) + fun saveUserInfo(userInfoEntity: UserInfoEntity?) { + if(userInfoEntity == null){ + mmkv.encode(KEY_USER_INFO, gson.toJson("{}")) + }else{ + mmkv.encode(KEY_USER_INFO, gson.toJson(userInfoEntity)) + } } fun getUserInfo(): UserInfoEntity? { - return gson.fromJson(mmkv.decodeString(KEY_USER_INFO, "{}"), UserInfoEntity::class.java) + return try { + gson.fromJson(mmkv.decodeString(KEY_USER_INFO, "{}"), UserInfoEntity::class.java) + }catch (e: Exception){ + null + } + } diff --git a/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt index 8825620..5bc0d11 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/LoginViewModel.kt @@ -34,9 +34,6 @@ import com.tencent.mm.opensdk.modelmsg.SendAuth import com.tencent.mm.opensdk.openapi.IWXAPI import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import kotlinx.serialization.json.Json import okhttp3.RequestBody.Companion.toRequestBody @@ -429,6 +426,7 @@ class LoginViewModel : BaseViewModel() { } fun requestUserInfo(){ + PreferenceUtil.saveUserInfo(null) mLaunch { val response = ApiManager.serviceVo.userInfo() if(response.status){