mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Endurain: Fetch and show server version string
This commit is contained in:
+20
@@ -282,4 +282,24 @@ class EndurainApiClient(
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch server version string
|
||||
*/
|
||||
fun fetchVersion(): String? {
|
||||
try {
|
||||
val uri = "$baseUrl/api/v1/about".toUri()
|
||||
|
||||
val headers = buildHeaders(AuthType.NONE)
|
||||
|
||||
val result = InternetUtils.doJsonRequest(
|
||||
uri = uri,
|
||||
requestHeaders = headers,
|
||||
)
|
||||
return result?.getString("version")
|
||||
} catch (e: Exception) {
|
||||
LOG.error("Fetching server version error", e)
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
-3
@@ -55,6 +55,11 @@ class EndurainPreferencesActivity : AbstractSettingsActivityV2() {
|
||||
updateLogoutPreferenceVisibility()
|
||||
}
|
||||
}
|
||||
vm.fetchServerVersion(server) {
|
||||
activity?.runOnUiThread {
|
||||
updateStatus()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,11 +126,14 @@ class EndurainPreferencesActivity : AbstractSettingsActivityV2() {
|
||||
val server = GBApplication.getPrefs().preferences.getString("endurain_server", null)
|
||||
val tokenExpiresAt = vm.getTokenExpiresAt()
|
||||
|
||||
var summaryText = "Not logged in, integration is disabled"
|
||||
if (vm.isLoggedIn() && server != null) {
|
||||
statusPref?.summary = "Logged in to $server\nAuth token expires: $tokenExpiresAt"
|
||||
} else {
|
||||
statusPref?.summary = "Not logged in, integration is disabled"
|
||||
summaryText = "Logged in to $server\nAuth token expires: $tokenExpiresAt"
|
||||
}
|
||||
if (vm.serverVersion != null) {
|
||||
summaryText += "\nServer version: ${vm.serverVersion}"
|
||||
}
|
||||
statusPref?.summary = summaryText
|
||||
}
|
||||
}
|
||||
}
|
||||
+20
@@ -43,6 +43,26 @@ class EndurainSetupViewModel(application: Application) : AndroidViewModel(applic
|
||||
var localLoginEnabled = false
|
||||
var ssoEnabled = false
|
||||
var pendingMfaUsername: String? = null
|
||||
var serverVersion: String? = null
|
||||
|
||||
|
||||
/**
|
||||
* Fetch server version
|
||||
*/
|
||||
fun fetchServerVersion(
|
||||
serverUrl: String,
|
||||
callback: (Boolean) -> Unit
|
||||
) {
|
||||
Thread {
|
||||
try {
|
||||
apiClient = EndurainApiClient(serverUrl, tokenManager)
|
||||
serverVersion = apiClient.fetchVersion()
|
||||
} catch (e: Exception) {
|
||||
LOG.error("Fetching server version error", e)
|
||||
callback(true)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch server capabilities to determine available login methods
|
||||
|
||||
Reference in New Issue
Block a user