Endurain: Fetch and show server version string

This commit is contained in:
Arjan Schrijver
2026-06-19 23:31:23 +02:00
parent 692df2e3aa
commit df89cf8bb6
3 changed files with 51 additions and 3 deletions
@@ -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
}
}
} }
@@ -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
} }
} }
} }
@@ -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