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()
|
}.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()
|
updateLogoutPreferenceVisibility()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
vm.fetchServerVersion(server) {
|
||||||
|
activity?.runOnUiThread {
|
||||||
|
updateStatus()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,11 +126,14 @@ class EndurainPreferencesActivity : AbstractSettingsActivityV2() {
|
|||||||
val server = GBApplication.getPrefs().preferences.getString("endurain_server", null)
|
val server = GBApplication.getPrefs().preferences.getString("endurain_server", null)
|
||||||
val tokenExpiresAt = vm.getTokenExpiresAt()
|
val tokenExpiresAt = vm.getTokenExpiresAt()
|
||||||
|
|
||||||
|
var summaryText = "Not logged in, integration is disabled"
|
||||||
if (vm.isLoggedIn() && server != null) {
|
if (vm.isLoggedIn() && server != null) {
|
||||||
statusPref?.summary = "Logged in to $server\nAuth token expires: $tokenExpiresAt"
|
summaryText = "Logged in to $server\nAuth token expires: $tokenExpiresAt"
|
||||||
} else {
|
|
||||||
statusPref?.summary = "Not logged in, integration is disabled"
|
|
||||||
}
|
}
|
||||||
|
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 localLoginEnabled = false
|
||||||
var ssoEnabled = false
|
var ssoEnabled = false
|
||||||
var pendingMfaUsername: String? = null
|
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
|
* Fetch server capabilities to determine available login methods
|
||||||
|
|||||||
Reference in New Issue
Block a user