|
|
@ -87,19 +87,14 @@ class QQMusicSingleton private constructor() { |
|
|
* 检查是否已登录且未过期 |
|
|
* 检查是否已登录且未过期 |
|
|
*/ |
|
|
*/ |
|
|
fun isLoggedIn(): Boolean { |
|
|
fun isLoggedIn(): Boolean { |
|
|
val loginResult = currentLoginResult ?: return false |
|
|
if (currentLoginResult == null){ |
|
|
|
|
|
loadSavedLoginInfo() |
|
|
try { |
|
|
if (currentLoginResult == null){ |
|
|
val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()) |
|
|
return false |
|
|
val expireDate = dateFormat.parse(loginResult.expireTime) |
|
|
} |
|
|
val currentDate = Date() |
|
|
return true |
|
|
|
|
|
}else{ |
|
|
val isValid = expireDate != null && currentDate.before(expireDate) |
|
|
return true |
|
|
Log.d(TAG, "登录状态检查: ${if (isValid) "有效" else "已过期"}") |
|
|
|
|
|
return isValid |
|
|
|
|
|
} catch (e: Exception) { |
|
|
|
|
|
Log.e(TAG, "解析过期时间失败: ${e.message}") |
|
|
|
|
|
return false |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -118,25 +113,27 @@ class QQMusicSingleton private constructor() { |
|
|
callback(Result.failure(Exception("未安装QQ音乐软件,请先安装QQ音乐软件"))) |
|
|
callback(Result.failure(Exception("未安装QQ音乐软件,请先安装QQ音乐软件"))) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
val currentActivity = activity |
|
|
// 先检查是否已经登录且未过期 |
|
|
// 先检查是否已经登录且未过期 |
|
|
if (isLoggedIn()) { |
|
|
if (isLoggedIn()) { |
|
|
Log.d(TAG, "用户已登录且未过期,直接返回登录信息") |
|
|
Log.d(TAG, "用户已登录且未过期,直接返回登录信息") |
|
|
|
|
|
ensureMusicManager(currentActivity!!) |
|
|
callback(Result.success(currentLoginResult!!)) |
|
|
callback(Result.success(currentLoginResult!!)) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
val currentActivity = activity |
|
|
|
|
|
if (currentActivity == null) { |
|
|
if (currentActivity == null) { |
|
|
callback(Result.failure(Exception("Activity not available"))) |
|
|
callback(Result.failure(Exception("Activity not available"))) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
Log.d(TAG, "开始新的登录流程") |
|
|
Log.d(TAG, "开始新的登录流程") |
|
|
loginManager = QQMusicLoginManager(currentActivity) |
|
|
loginManager = QQMusicLoginManager(currentActivity) |
|
|
loginManager?.startLogin(object : QQMusicLoginManager.LoginCallback { |
|
|
loginManager?.startLogin(object : QQMusicLoginManager.LoginCallback { |
|
|
override fun onSuccess(openId: String, openToken: String, expireTime: String) { |
|
|
override fun onSuccess(openId: String, openToken: String, expireTime: String) { |
|
|
handler.post { |
|
|
handler.post { |
|
|
|
|
|
ensureMusicManager(currentActivity!!) |
|
|
val result = LoginResult(openId, openToken, expireTime) |
|
|
val result = LoginResult(openId, openToken, expireTime) |
|
|
currentLoginResult = result |
|
|
currentLoginResult = result |
|
|
saveLoginInfo(result) |
|
|
saveLoginInfo(result) |
|
|
@ -501,13 +498,6 @@ class QQMusicSingleton private constructor() { |
|
|
if (openId != null && openToken != null && expireTime != null) { |
|
|
if (openId != null && openToken != null && expireTime != null) { |
|
|
currentLoginResult = LoginResult(openId, openToken, expireTime) |
|
|
currentLoginResult = LoginResult(openId, openToken, expireTime) |
|
|
Log.d(TAG, "从本地加载登录信息成功") |
|
|
Log.d(TAG, "从本地加载登录信息成功") |
|
|
|
|
|
|
|
|
// 检查是否过期 |
|
|
|
|
|
if (!isLoggedIn()) { |
|
|
|
|
|
Log.d(TAG, "本地登录信息已过期,清除") |
|
|
|
|
|
clearSavedLoginInfo() |
|
|
|
|
|
currentLoginResult = null |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
} else { |
|
|
Log.d(TAG, "本地无保存的登录信息") |
|
|
Log.d(TAG, "本地无保存的登录信息") |
|
|
} |
|
|
} |
|
|
|