mirror of
https://codeberg.org/timelimit/timelimit-android.git
synced 2025-10-03 09:49:25 +02:00
Add warning when using old server version
This commit is contained in:
parent
61253a422c
commit
f2e94bce23
7 changed files with 53 additions and 24 deletions
|
@ -45,6 +45,7 @@ android {
|
|||
// get with unzip -p *.apk META-INF/CERT.RSA | keytool -printcert | grep SHA256 | sed -e 's/\s*SHA256: //' -e 's/://g'
|
||||
// set to empty string to disable this check
|
||||
buildConfigField 'String', 'updateServerBuildsCertificate', '"2170068198547F15129DE8CC46E2A8BF1485A6E5030916E26DDE41AE0E81DAC2"'
|
||||
buildConfigField 'int', 'minimumRecommendServerVersion', '5'
|
||||
}
|
||||
buildFeatures {
|
||||
viewBinding true
|
||||
|
|
|
@ -77,6 +77,7 @@ class OverviewFragmentAdapter : RecyclerView.Adapter<OverviewFragmentViewHolder>
|
|||
is OverviewFragmentItemMessage -> OverviewFragmentViewType.ServerMessage
|
||||
is ShowMoreOverviewFragmentItem -> OverviewFragmentViewType.ShowMoreButton
|
||||
is TaskReviewOverviewItem -> OverviewFragmentViewType.TaskReview
|
||||
is OverviewFragmentItemOutdatedServer -> OverviewFragmentViewType.ServerMessage
|
||||
}
|
||||
|
||||
override fun getItemViewType(position: Int) = getItemType(getItem(position)).ordinal
|
||||
|
@ -170,6 +171,7 @@ class OverviewFragmentAdapter : RecyclerView.Adapter<OverviewFragmentViewHolder>
|
|||
}
|
||||
|
||||
override fun onBindViewHolder(holder: OverviewFragmentViewHolder, position: Int) {
|
||||
val context = holder.itemView.context
|
||||
val item = getItem(position)
|
||||
|
||||
when (item) {
|
||||
|
@ -237,6 +239,7 @@ class OverviewFragmentAdapter : RecyclerView.Adapter<OverviewFragmentViewHolder>
|
|||
is OverviewFragmentItemMessage -> {
|
||||
holder as ServerMessageViewHolder
|
||||
|
||||
holder.binding.title = context.getString(R.string.overview_server_message)
|
||||
holder.binding.text = item.message
|
||||
holder.binding.executePendingBindings()
|
||||
}
|
||||
|
@ -277,6 +280,13 @@ class OverviewFragmentAdapter : RecyclerView.Adapter<OverviewFragmentViewHolder>
|
|||
|
||||
holder.binding.executePendingBindings()
|
||||
}
|
||||
is OverviewFragmentItemOutdatedServer -> {
|
||||
holder as ServerMessageViewHolder
|
||||
|
||||
holder.binding.title = context.getString(R.string.overview_server_outdated_title)
|
||||
holder.binding.text = context.getString(R.string.overview_server_outdated_text)
|
||||
holder.binding.executePendingBindings()
|
||||
}
|
||||
}.let { }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ object OverviewFragmentActionAddDevice: OverviewFragmentItem()
|
|||
object OverviewFragmentHeaderIntro: OverviewFragmentItem()
|
||||
object OverviewFragmentHeaderFinishSetup: OverviewFragmentItem()
|
||||
data class OverviewFragmentItemMessage(val message: String): OverviewFragmentItem()
|
||||
object OverviewFragmentItemOutdatedServer: OverviewFragmentItem()
|
||||
sealed class ShowMoreOverviewFragmentItem: OverviewFragmentItem() {
|
||||
object ShowAllUsers: ShowMoreOverviewFragmentItem()
|
||||
data class ShowMoreDevices(val level: DeviceListItemVisibility): ShowMoreOverviewFragmentItem()
|
||||
|
|
|
@ -19,12 +19,10 @@ import android.app.Application
|
|||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import io.timelimit.android.BuildConfig
|
||||
import io.timelimit.android.data.model.HintsToShow
|
||||
import io.timelimit.android.data.model.UserType
|
||||
import io.timelimit.android.livedata.ignoreUnchanged
|
||||
import io.timelimit.android.livedata.liveDataFromFunction
|
||||
import io.timelimit.android.livedata.map
|
||||
import io.timelimit.android.livedata.switchMap
|
||||
import io.timelimit.android.livedata.*
|
||||
import io.timelimit.android.logic.DefaultAppLogic
|
||||
import java.util.*
|
||||
|
||||
|
@ -94,27 +92,29 @@ class OverviewFragmentModel(application: Application): AndroidViewModel(applicat
|
|||
private val isNoUserAssignedLive = logic.deviceUserEntry.map { it == null }.ignoreUnchanged()
|
||||
private val hasShownIntroduction = logic.database.config().wereHintsShown(HintsToShow.OVERVIEW_INTRODUCTION)
|
||||
private val messageLive = logic.database.config().getServerMessage()
|
||||
private val introEntries = isNoUserAssignedLive.switchMap { noUserAssigned ->
|
||||
hasShownIntroduction.switchMap { hasShownIntro ->
|
||||
messageLive.map { message ->
|
||||
val result = mutableListOf<OverviewFragmentItem>()
|
||||
private val serverVersion = logic.serverApiLevelLogic.infoLive
|
||||
private val introEntries = mergeLiveDataWaitForValues(isNoUserAssignedLive, hasShownIntroduction, messageLive, serverVersion)
|
||||
.map { (noUserAssigned, hasShownIntro, message, serverVersion) ->
|
||||
val result = mutableListOf<OverviewFragmentItem>()
|
||||
|
||||
if (noUserAssigned) {
|
||||
result.add(OverviewFragmentHeaderFinishSetup)
|
||||
}
|
||||
|
||||
if (message != null) {
|
||||
result.add(OverviewFragmentItemMessage(message))
|
||||
}
|
||||
|
||||
if (!hasShownIntro) {
|
||||
result.add(OverviewFragmentHeaderIntro)
|
||||
}
|
||||
|
||||
result
|
||||
if (noUserAssigned) {
|
||||
result.add(OverviewFragmentHeaderFinishSetup)
|
||||
}
|
||||
|
||||
if (!serverVersion.hasLevelOrIsOffline(BuildConfig.minimumRecommendServerVersion)) {
|
||||
result.add(OverviewFragmentItemOutdatedServer)
|
||||
}
|
||||
|
||||
if (message != null) {
|
||||
result.add(OverviewFragmentItemMessage(message))
|
||||
}
|
||||
|
||||
if (!hasShownIntro) {
|
||||
result.add(OverviewFragmentHeaderIntro)
|
||||
}
|
||||
|
||||
result
|
||||
}
|
||||
}
|
||||
|
||||
private val hiddenTaskIdsLive = MutableLiveData<Set<String>>().apply { value = emptySet() }
|
||||
private val tasksWithPendingReviewLive = logic.database.childTasks().getPendingTasks()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
TimeLimit Copyright <C> 2019 Jonas Lochmann
|
||||
TimeLimit Copyright <C> 2019 - 2022 Jonas Lochmann
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation version 3 of the License.
|
||||
|
@ -18,6 +18,10 @@
|
|||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
<variable
|
||||
name="title"
|
||||
type="String" />
|
||||
|
||||
<variable
|
||||
name="text"
|
||||
type="String" />
|
||||
|
@ -35,7 +39,8 @@
|
|||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:text="@string/overview_server_message"
|
||||
tools:text="@string/overview_server_message"
|
||||
android:text="@{title}"
|
||||
android:textAppearance="?android:textAppearanceLarge"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
|
|
@ -1209,6 +1209,12 @@
|
|||
|
||||
<string name="overview_server_message">Mitteilung</string>
|
||||
|
||||
<string name="overview_server_outdated_title">alte Serverversion</string>
|
||||
<string name="overview_server_outdated_text">Sie verwenden eine ältere Version
|
||||
des TimeLimit-Servers. Das kann zu einem eingeschränkten Funktionsumfang
|
||||
und Sicherheitspropblemen führen.
|
||||
</string>
|
||||
|
||||
<string name="parent_limit_login_title">Anmeldeverhinderungskategorie</string>
|
||||
<string name="parent_limit_login_help">Hier können Sie eine Kategorie wählen.
|
||||
Sobald diese Kategorie gesperrt ist können Sie sich nicht mehr als Elternteil anmelden, sodass
|
||||
|
|
|
@ -1253,6 +1253,12 @@
|
|||
|
||||
<string name="overview_server_message">Message</string>
|
||||
|
||||
<string name="overview_server_outdated_title">old server version</string>
|
||||
<string name="overview_server_outdated_text">You are using an outdated version
|
||||
of timelimit-server. This can limit the available features and can be
|
||||
a security risk.
|
||||
</string>
|
||||
|
||||
<string name="parent_limit_login_title">Limit login category</string>
|
||||
<string name="parent_limit_login_help">Here you can select a category. As soon as Apps of this
|
||||
category are blocked, you can not sign in with your parent user. This
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue