Skip to content

Commit 1af4edf

Browse files
committed
feat(login): Add support for FN Connect history and automatic FN Connect login
1 parent ca99e18 commit 1af4edf

File tree

6 files changed

+320
-85
lines changed

6 files changed

+320
-85
lines changed

composeApp/src/commonMain/kotlin/com/jankinwu/fntv/client/data/model/LoginHistory.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ data class LoginHistory(
2626
@get:JsonProperty("rememberMe")
2727
@param:JsonProperty("rememberMe")
2828
val rememberMe: Boolean,
29+
30+
@get:JsonProperty("isFnConnect")
31+
@param:JsonProperty("isFnConnect")
32+
val isFnConnect: Boolean = false,
33+
34+
@get:JsonProperty("fnConnectUrl")
35+
@param:JsonProperty("fnConnectUrl")
36+
val fnConnectUrl: String = "",
37+
38+
@get:JsonProperty("fnId")
39+
@param:JsonProperty("fnId")
40+
val fnId: String = "",
2941

3042
@get:JsonProperty("lastLoginTimestamp")
3143
@param:JsonProperty("lastLoginTimestamp")
@@ -35,6 +47,12 @@ data class LoginHistory(
3547
if (this === other) return true
3648
if (other !is LoginHistory) return false
3749

50+
if (isFnConnect) {
51+
return isFnConnect == other.isFnConnect &&
52+
fnId == other.fnId &&
53+
username == other.username
54+
}
55+
3856
return host == other.host &&
3957
port == other.port &&
4058
username == other.username
@@ -44,10 +62,15 @@ data class LoginHistory(
4462
var result = host.hashCode()
4563
result = 31 * result + port
4664
result = 31 * result + username.hashCode()
65+
result = 31 * result + isFnConnect.hashCode()
66+
result = 31 * result + fnId.hashCode()
4767
return result
4868
}
4969

5070
fun getEndpoint(): String {
71+
if (isFnConnect) {
72+
return if (fnId.isNotBlank()) "FN Connect: $fnId" else "FN Connect"
73+
}
5174
return if (port != 0) {
5275
"$host:$port"
5376
} else {

composeApp/src/commonMain/kotlin/com/jankinwu/fntv/client/data/store/AccountDataCache.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ object AccountDataCache {
2626

2727
var rememberMe: Boolean = false
2828

29+
var isFnConnect: Boolean = false
30+
31+
var fnId: String = ""
32+
2933
fun getFnOfficialBaseUrl(): String {
3034
var endpoint = host
3135
if (port != 0) {

composeApp/src/commonMain/kotlin/com/jankinwu/fntv/client/manager/PreferencesManager.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ class PreferencesManager private constructor() {
6262
AccountDataCache.refreshCookie()
6363
}
6464
AccountDataCache.rememberMe = settings.getBoolean("rememberMe", false)
65+
AccountDataCache.isFnConnect = settings.getBoolean("isFnConnect", false)
66+
AccountDataCache.fnId = settings.getString("fnId", "")
6567
}
6668

6769
fun saveAllLoginInfo() {
@@ -75,6 +77,8 @@ class PreferencesManager private constructor() {
7577
val cookie = AccountDataCache.cookieState
7678
settings.putString("cookie", cookie)
7779
settings.putBoolean("rememberMe", AccountDataCache.rememberMe)
80+
settings.putBoolean("isFnConnect", AccountDataCache.isFnConnect)
81+
settings.putString("fnId", AccountDataCache.fnId)
7882
}
7983

8084
fun saveToken(token: String) {

0 commit comments

Comments
 (0)