mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-07-17 17:21:58 +00:00
whats new view updates
This commit is contained in:
+155
-95
@@ -16,11 +16,13 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.desktop.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import chat.simplex.common.model.*
|
||||
import chat.simplex.common.model.ChatController.setConditionsNotified
|
||||
import chat.simplex.common.model.ChatModel
|
||||
import chat.simplex.common.model.ServerOperator.Companion.dummyOperatorInfo
|
||||
import chat.simplex.common.platform.*
|
||||
import chat.simplex.common.ui.theme.*
|
||||
import chat.simplex.common.views.helpers.*
|
||||
import chat.simplex.common.views.usersettings.networkAndServers.UsageConditionsView
|
||||
import chat.simplex.res.MR
|
||||
import dev.icerock.moko.resources.ImageResource
|
||||
import dev.icerock.moko.resources.StringResource
|
||||
@@ -28,19 +30,17 @@ import dev.icerock.moko.resources.StringResource
|
||||
@Composable
|
||||
fun ModalData.WhatsNewView(showWhatsNew: MutableState<Boolean> = mutableStateOf(true), updatedConditions: Boolean = false, viaSettings: Boolean = false, close: () -> Unit) {
|
||||
val currentVersion = remember { mutableStateOf(versionDescriptions.lastIndex) }
|
||||
val showOperatorsNoticeModal = remember { stateGetOrPut("showOperatorsNoticeModal") { updatedConditions } }
|
||||
if (showOperatorsNoticeModal.value) {
|
||||
val showUpdatedConditions = remember { stateGetOrPut("updatedConditions") { true } }
|
||||
val rhId = chatModel.remoteHostId()
|
||||
|
||||
if (showUpdatedConditions.value) {
|
||||
LaunchedEffect(Unit) {
|
||||
val conditionsId = chatModel.conditions.value.currentConditions.conditionsId
|
||||
try {
|
||||
setConditionsNotified(rh = chatModel.remoteHostId(), conditionsId = conditionsId)
|
||||
setConditionsNotified(rh = rhId, conditionsId = conditionsId)
|
||||
} catch (e: Exception) {
|
||||
Log.d(TAG, "WhatsNewView setConditionsNotified error: ${e.message}")
|
||||
}
|
||||
showOperatorsNoticeModal.value = false
|
||||
ModalManager.fullscreen.showCustomModal {
|
||||
ChooseServerOperators(onboarding = false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,8 +140,15 @@ fun ModalData.WhatsNewView(showWhatsNew: MutableState<Boolean> = mutableStateOf(
|
||||
AppBarTitle(String.format(generalGetString(MR.strings.new_in_version), v.version), withPadding = false, bottomPadding = DEFAULT_PADDING)
|
||||
|
||||
v.features.forEach { feature ->
|
||||
if (feature.show) {
|
||||
featureDescription(feature.icon, feature.titleId, feature.descrId, feature.link, feature.subfeatures)
|
||||
when (feature) {
|
||||
is VersionFeature.FeatureDescription -> {
|
||||
if (feature.show) {
|
||||
featureDescription(feature.icon, feature.titleId, feature.descrId, feature.link, feature.subfeatures)
|
||||
}
|
||||
}
|
||||
is VersionFeature.FeatureView -> {
|
||||
feature.view()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,13 +156,25 @@ fun ModalData.WhatsNewView(showWhatsNew: MutableState<Boolean> = mutableStateOf(
|
||||
ReadMoreButton(v.post)
|
||||
}
|
||||
|
||||
if (showUpdatedConditions.value) {
|
||||
Text(
|
||||
stringResource(MR.strings.view_updated_conditions),
|
||||
color = MaterialTheme.colors.primary,
|
||||
modifier = Modifier.clickable {
|
||||
ModalManager.start.showModalCloseable {
|
||||
close -> UsageConditionsView(userServers = mutableStateOf(emptyList()), currUserServers = mutableStateOf(emptyList()), close = close, rhId = rhId)
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!viaSettings) {
|
||||
Spacer(Modifier.fillMaxHeight().weight(1f))
|
||||
Box(
|
||||
Modifier.fillMaxWidth(), contentAlignment = Alignment.Center
|
||||
) {
|
||||
Text(
|
||||
if (updatedConditions) generalGetString(MR.strings.server_operators_view_updated_conditions) else generalGetString(MR.strings.ok),
|
||||
if (updatedConditions) generalGetString(MR.strings.view_updated_conditions) else generalGetString(MR.strings.ok),
|
||||
modifier = Modifier.clickable(onClick = {
|
||||
if (updatedConditions) {
|
||||
showWhatsNew.value = false
|
||||
@@ -187,18 +206,26 @@ fun ReadMoreButton(url: String) {
|
||||
}
|
||||
}
|
||||
|
||||
private data class FeatureDescription(
|
||||
val icon: ImageResource?,
|
||||
val titleId: StringResource,
|
||||
val descrId: StringResource?,
|
||||
var subfeatures: List<Pair<ImageResource, StringResource>> = listOf(),
|
||||
val link: String? = null,
|
||||
val show: Boolean = true
|
||||
)
|
||||
private sealed class VersionFeature {
|
||||
class FeatureDescription(
|
||||
val icon: ImageResource?,
|
||||
val titleId: StringResource,
|
||||
val descrId: StringResource?,
|
||||
var subfeatures: List<Pair<ImageResource, StringResource>> = listOf(),
|
||||
val link: String? = null,
|
||||
val show: Boolean = true
|
||||
): VersionFeature()
|
||||
|
||||
class FeatureView(
|
||||
val icon: ImageResource?,
|
||||
val titleId: StringResource,
|
||||
val view: @Composable () -> Unit
|
||||
): VersionFeature()
|
||||
}
|
||||
|
||||
private data class VersionDescription(
|
||||
val version: String,
|
||||
val features: List<FeatureDescription>,
|
||||
val features: List<VersionFeature>,
|
||||
val post: String? = null,
|
||||
)
|
||||
|
||||
@@ -207,18 +234,18 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v4.2",
|
||||
post = "https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_verified_user,
|
||||
titleId = MR.strings.v4_2_security_assessment,
|
||||
descrId = MR.strings.v4_2_security_assessment_desc,
|
||||
link = "https://simplex.chat/blog/20221108-simplex-chat-v4.2-security-audit-new-website.html"
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_group,
|
||||
titleId = MR.strings.v4_2_group_links,
|
||||
descrId = MR.strings.v4_2_group_links_desc
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_check,
|
||||
titleId = MR.strings.v4_2_auto_accept_contact_requests,
|
||||
descrId = MR.strings.v4_2_auto_accept_contact_requests_desc
|
||||
@@ -229,22 +256,22 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v4.3",
|
||||
post = "https://simplex.chat/blog/20221206-simplex-chat-v4.3-voice-messages.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_mic,
|
||||
titleId = MR.strings.v4_3_voice_messages,
|
||||
descrId = MR.strings.v4_3_voice_messages_desc
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_delete_forever,
|
||||
titleId = MR.strings.v4_3_irreversible_message_deletion,
|
||||
descrId = MR.strings.v4_3_irreversible_message_deletion_desc
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_wifi_tethering,
|
||||
titleId = MR.strings.v4_3_improved_server_configuration,
|
||||
descrId = MR.strings.v4_3_improved_server_configuration_desc
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_visibility_off,
|
||||
titleId = MR.strings.v4_3_improved_privacy_and_security,
|
||||
descrId = MR.strings.v4_3_improved_privacy_and_security_desc
|
||||
@@ -255,22 +282,22 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v4.4",
|
||||
post = "https://simplex.chat/blog/20230103-simplex-chat-v4.4-disappearing-messages.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_timer,
|
||||
titleId = MR.strings.v4_4_disappearing_messages,
|
||||
descrId = MR.strings.v4_4_disappearing_messages_desc
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_pending,
|
||||
titleId = MR.strings.v4_4_live_messages,
|
||||
descrId = MR.strings.v4_4_live_messages_desc
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_verified_user,
|
||||
titleId = MR.strings.v4_4_verify_connection_security,
|
||||
descrId = MR.strings.v4_4_verify_connection_security_desc
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v4_4_french_interface,
|
||||
descrId = MR.strings.v4_4_french_interface_descr
|
||||
@@ -281,33 +308,33 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v4.5",
|
||||
post = "https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_manage_accounts,
|
||||
titleId = MR.strings.v4_5_multiple_chat_profiles,
|
||||
descrId = MR.strings.v4_5_multiple_chat_profiles_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_edit_note,
|
||||
titleId = MR.strings.v4_5_message_draft,
|
||||
descrId = MR.strings.v4_5_message_draft_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_safety_divider,
|
||||
titleId = MR.strings.v4_5_transport_isolation,
|
||||
descrId = MR.strings.v4_5_transport_isolation_descr,
|
||||
link = "https://simplex.chat/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html#transport-isolation"
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_task,
|
||||
titleId = MR.strings.v4_5_private_filenames,
|
||||
descrId = MR.strings.v4_5_private_filenames_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_battery_2_bar,
|
||||
titleId = MR.strings.v4_5_reduced_battery_usage,
|
||||
descrId = MR.strings.v4_5_reduced_battery_usage_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v4_5_italian_interface,
|
||||
descrId = MR.strings.v4_5_italian_interface_descr,
|
||||
@@ -318,32 +345,32 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v4.6",
|
||||
post = "https://simplex.chat/blog/20230328-simplex-chat-v4-6-hidden-profiles.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_lock,
|
||||
titleId = MR.strings.v4_6_hidden_chat_profiles,
|
||||
descrId = MR.strings.v4_6_hidden_chat_profiles_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_flag,
|
||||
titleId = MR.strings.v4_6_group_moderation,
|
||||
descrId = MR.strings.v4_6_group_moderation_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_maps_ugc,
|
||||
titleId = MR.strings.v4_6_group_welcome_message,
|
||||
descrId = MR.strings.v4_6_group_welcome_message_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_call,
|
||||
titleId = MR.strings.v4_6_audio_video_calls,
|
||||
descrId = MR.strings.v4_6_audio_video_calls_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_battery_3_bar,
|
||||
titleId = MR.strings.v4_6_reduced_battery_usage,
|
||||
descrId = MR.strings.v4_6_reduced_battery_usage_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v4_6_chinese_spanish_interface,
|
||||
descrId = MR.strings.v4_6_chinese_spanish_interface_descr,
|
||||
@@ -354,17 +381,17 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.0",
|
||||
post = "https://simplex.chat/blog/20230422-simplex-chat-vision-funding-v5-videos-files-passcode.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_upload_file,
|
||||
titleId = MR.strings.v5_0_large_files_support,
|
||||
descrId = MR.strings.v5_0_large_files_support_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_lock,
|
||||
titleId = MR.strings.v5_0_app_passcode,
|
||||
descrId = MR.strings.v5_0_app_passcode_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v5_0_polish_interface,
|
||||
descrId = MR.strings.v5_0_polish_interface_descr,
|
||||
@@ -375,27 +402,27 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.1",
|
||||
post = "https://simplex.chat/blog/20230523-simplex-chat-v5-1-message-reactions-self-destruct-passcode.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_add_reaction,
|
||||
titleId = MR.strings.v5_1_message_reactions,
|
||||
descrId = MR.strings.v5_1_message_reactions_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_chat,
|
||||
titleId = MR.strings.v5_1_better_messages,
|
||||
descrId = MR.strings.v5_1_better_messages_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_light_mode,
|
||||
titleId = MR.strings.v5_1_custom_themes,
|
||||
descrId = MR.strings.v5_1_custom_themes_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_lock,
|
||||
titleId = MR.strings.v5_1_self_destruct_passcode,
|
||||
descrId = MR.strings.v5_1_self_destruct_passcode_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v5_1_japanese_portuguese_interface,
|
||||
descrId = MR.strings.whats_new_thanks_to_users_contribute_weblate,
|
||||
@@ -406,27 +433,27 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.2",
|
||||
post = "https://simplex.chat/blog/20230722-simplex-chat-v5-2-message-delivery-receipts.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_check,
|
||||
titleId = MR.strings.v5_2_message_delivery_receipts,
|
||||
descrId = MR.strings.v5_2_message_delivery_receipts_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_star,
|
||||
titleId = MR.strings.v5_2_favourites_filter,
|
||||
descrId = MR.strings.v5_2_favourites_filter_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_sync_problem,
|
||||
titleId = MR.strings.v5_2_fix_encryption,
|
||||
descrId = MR.strings.v5_2_fix_encryption_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_timer,
|
||||
titleId = MR.strings.v5_2_disappear_one_message,
|
||||
descrId = MR.strings.v5_2_disappear_one_message_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_redeem,
|
||||
titleId = MR.strings.v5_2_more_things,
|
||||
descrId = MR.strings.v5_2_more_things_descr
|
||||
@@ -437,29 +464,29 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.3",
|
||||
post = "https://simplex.chat/blog/20230925-simplex-chat-v5-3-desktop-app-local-file-encryption-directory-service.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_desktop,
|
||||
titleId = MR.strings.v5_3_new_desktop_app,
|
||||
descrId = MR.strings.v5_3_new_desktop_app_descr,
|
||||
link = "https://simplex.chat/downloads/"
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_lock,
|
||||
titleId = MR.strings.v5_3_encrypt_local_files,
|
||||
descrId = MR.strings.v5_3_encrypt_local_files_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_search,
|
||||
titleId = MR.strings.v5_3_discover_join_groups,
|
||||
descrId = MR.strings.v5_3_discover_join_groups_descr,
|
||||
link = "simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion"
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_theater_comedy,
|
||||
titleId = MR.strings.v5_3_simpler_incognito_mode,
|
||||
descrId = MR.strings.v5_3_simpler_incognito_mode_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v5_3_new_interface_languages,
|
||||
descrId = MR.strings.v5_3_new_interface_languages_descr,
|
||||
@@ -470,27 +497,27 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.4",
|
||||
post = "https://simplex.chat/blog/20231125-simplex-chat-v5-4-link-mobile-desktop-quantum-resistant-better-groups.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_desktop,
|
||||
titleId = MR.strings.v5_4_link_mobile_desktop,
|
||||
descrId = MR.strings.v5_4_link_mobile_desktop_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_group,
|
||||
titleId = MR.strings.v5_4_better_groups,
|
||||
descrId = MR.strings.v5_4_better_groups_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_theater_comedy,
|
||||
titleId = MR.strings.v5_4_incognito_groups,
|
||||
descrId = MR.strings.v5_4_incognito_groups_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_back_hand,
|
||||
titleId = MR.strings.v5_4_block_group_members,
|
||||
descrId = MR.strings.v5_4_block_group_members_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_redeem,
|
||||
titleId = MR.strings.v5_2_more_things,
|
||||
descrId = MR.strings.v5_4_more_things_descr
|
||||
@@ -501,28 +528,28 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.5",
|
||||
post = "https://simplex.chat/blog/20240124-simplex-chat-infrastructure-costs-v5-5-simplex-ux-private-notes-group-history.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_folder_pen,
|
||||
titleId = MR.strings.v5_5_private_notes,
|
||||
descrId = MR.strings.v5_5_private_notes_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_link,
|
||||
titleId = MR.strings.v5_5_simpler_connect_ui,
|
||||
descrId = MR.strings.v5_5_simpler_connect_ui_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_forum,
|
||||
titleId = MR.strings.v5_5_join_group_conversation,
|
||||
descrId = MR.strings.v5_5_join_group_conversation_descr,
|
||||
link = "simplex:/contact#/?v=1-4&smp=smp%3A%2F%2Fu2dS9sG8nMNURyZwqASV4yROM28Er0luVTx5X1CsMrU%3D%40smp4.simplex.im%2FeXSPwqTkKyDO3px4fLf1wx3MvPdjdLW3%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAaiv6MkMH44L2TcYrt_CsX3ZvM11WgbMEUn0hkIKTOho%253D%26srv%3Do5vmywmrnaxalvz6wi3zicyftgio6psuvyniis6gco6bp6ekl4cqj4id.onion"
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_battery_3_bar,
|
||||
titleId = MR.strings.v5_5_message_delivery,
|
||||
descrId = MR.strings.v5_5_message_delivery_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v5_5_new_interface_languages,
|
||||
descrId = MR.strings.whats_new_thanks_to_users_contribute_weblate,
|
||||
@@ -533,22 +560,22 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.6",
|
||||
post = "https://simplex.chat/blog/20240323-simplex-network-privacy-non-profit-v5-6-quantum-resistant-e2e-encryption-simple-migration.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_vpn_key_filled,
|
||||
titleId = MR.strings.v5_6_quantum_resistant_encryption,
|
||||
descrId = MR.strings.v5_6_quantum_resistant_encryption_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_ios_share,
|
||||
titleId = MR.strings.v5_6_app_data_migration,
|
||||
descrId = MR.strings.v5_6_app_data_migration_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_call,
|
||||
titleId = MR.strings.v5_6_picture_in_picture_calls,
|
||||
descrId = MR.strings.v5_6_picture_in_picture_calls_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_back_hand,
|
||||
titleId = MR.strings.v5_6_safer_groups,
|
||||
descrId = MR.strings.v5_6_safer_groups_descr
|
||||
@@ -559,32 +586,32 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.7",
|
||||
post = "https://simplex.chat/blog/20240426-simplex-legally-binding-transparency-v5-7-better-user-experience.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_vpn_key_filled,
|
||||
titleId = MR.strings.v5_6_quantum_resistant_encryption,
|
||||
descrId = MR.strings.v5_7_quantum_resistant_encryption_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_forward,
|
||||
titleId = MR.strings.v5_7_forward,
|
||||
descrId = MR.strings.v5_7_forward_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_music_note,
|
||||
titleId = MR.strings.v5_7_call_sounds,
|
||||
descrId = MR.strings.v5_7_call_sounds_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_account_box,
|
||||
titleId = MR.strings.v5_7_shape_profile_images,
|
||||
descrId = MR.strings.v5_7_shape_profile_images_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_wifi_tethering,
|
||||
titleId = MR.strings.v5_7_network,
|
||||
descrId = MR.strings.v5_7_network_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v5_7_new_interface_languages,
|
||||
descrId = MR.strings.whats_new_thanks_to_users_contribute_weblate,
|
||||
@@ -595,27 +622,27 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v5.8",
|
||||
post = "https://simplex.chat/blog/20240604-simplex-chat-v5.8-private-message-routing-chat-themes.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_settings_ethernet,
|
||||
titleId = MR.strings.v5_8_private_routing,
|
||||
descrId = MR.strings.v5_8_private_routing_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_palette,
|
||||
titleId = MR.strings.v5_8_chat_themes,
|
||||
descrId = MR.strings.v5_8_chat_themes_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_security,
|
||||
titleId = MR.strings.v5_8_safe_files,
|
||||
descrId = MR.strings.v5_8_safe_files_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_battery_3_bar,
|
||||
titleId = MR.strings.v5_8_message_delivery,
|
||||
descrId = MR.strings.v5_8_message_delivery_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_translate,
|
||||
titleId = MR.strings.v5_8_persian_ui,
|
||||
descrId = MR.strings.whats_new_thanks_to_users_contribute_weblate
|
||||
@@ -626,7 +653,7 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v6.0",
|
||||
post = "https://simplex.chat/blog/20240814-simplex-chat-vision-funding-v6-private-routing-new-user-experience.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = null,
|
||||
titleId = MR.strings.v6_0_new_chat_experience,
|
||||
descrId = null,
|
||||
@@ -637,7 +664,7 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
MR.images.ic_match_case to MR.strings.v6_0_increase_font_size
|
||||
)
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = null,
|
||||
titleId = MR.strings.v6_0_new_media_options,
|
||||
descrId = null,
|
||||
@@ -646,23 +673,23 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
MR.images.ic_blur_on to MR.strings.v6_0_privacy_blur,
|
||||
)
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_toast,
|
||||
titleId = MR.strings.v6_0_reachable_chat_toolbar,
|
||||
descrId = MR.strings.v6_0_reachable_chat_toolbar_descr,
|
||||
show = appPlatform.isAndroid
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_settings_ethernet,
|
||||
titleId = MR.strings.v5_8_private_routing,
|
||||
descrId = MR.strings.v6_0_private_routing_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_wifi_tethering,
|
||||
titleId = MR.strings.v6_0_connection_servers_status,
|
||||
descrId = MR.strings.v6_0_connection_servers_status_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_upgrade,
|
||||
titleId = MR.strings.v6_0_upgrade_app,
|
||||
descrId = MR.strings.v6_0_upgrade_app_descr,
|
||||
@@ -674,18 +701,18 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
version = "v6.1",
|
||||
post = "https://simplex.chat/blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.html",
|
||||
features = listOf(
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_verified_user,
|
||||
titleId = MR.strings.v6_1_better_security,
|
||||
descrId = MR.strings.v6_1_better_security_descr,
|
||||
link = "https://simplex.chat/blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.html"
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_videocam,
|
||||
titleId = MR.strings.v6_1_better_calls,
|
||||
descrId = MR.strings.v6_1_better_calls_descr
|
||||
),
|
||||
FeatureDescription(
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = null,
|
||||
titleId = MR.strings.v6_1_better_user_experience,
|
||||
descrId = null,
|
||||
@@ -699,6 +726,39 @@ private val versionDescriptions: List<VersionDescription> = listOf(
|
||||
),
|
||||
),
|
||||
),
|
||||
VersionDescription(
|
||||
version = "v6.2 (beta.1)",
|
||||
post = "https://simplex.chat/blog/20241014-simplex-network-v6-1-security-review-better-calls-user-experience.html",
|
||||
features = listOf(
|
||||
VersionFeature.FeatureView(
|
||||
icon = null,
|
||||
titleId = MR.strings.v6_2_network_decentralization,
|
||||
view = {
|
||||
Column {
|
||||
val src = (operatorsInfo[OperatorTag.Flux] ?: dummyOperatorInfo).largeLogo
|
||||
Image(painterResource(src), null, modifier = Modifier.height(48.dp))
|
||||
Text(stringResource(MR.strings.v6_2_network_decentralization_descr), modifier = Modifier.padding(top = 8.dp))
|
||||
Row {
|
||||
Text(
|
||||
stringResource(MR.strings.v6_2_network_decentralization_enable_flux),
|
||||
color = MaterialTheme.colors.primary,
|
||||
modifier = Modifier.clickable {
|
||||
ModalManager.start.showModal { ChooseServerOperators(onboarding = false) }
|
||||
}
|
||||
)
|
||||
Text(" ")
|
||||
Text(stringResource(MR.strings.v6_2_network_decentralization_enable_flux_reason))
|
||||
}
|
||||
}
|
||||
}
|
||||
),
|
||||
VersionFeature.FeatureDescription(
|
||||
icon = MR.images.ic_videocam,
|
||||
titleId = MR.strings.v6_2_improved_chat_navigation,
|
||||
descrId = MR.strings.v6_2_improved_chat_navigation_descr
|
||||
),
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
private val lastVersion = versionDescriptions.last().version
|
||||
|
||||
@@ -2136,7 +2136,13 @@
|
||||
<string name="v6_1_message_dates_descr">Better message dates.</string>
|
||||
<string name="v6_1_forward_many_messages_descr">Forward up to 20 messages at once.</string>
|
||||
<string name="v6_1_delete_many_messages_descr">Delete or moderate up to 200 messages.</string>
|
||||
<string name="server_operators_view_updated_conditions">View updated conditions</string>
|
||||
<string name="v6_2_network_decentralization">Network decentralization</string>
|
||||
<string name="v6_2_network_decentralization_descr">The second preset operator in the app!</string>
|
||||
<string name="v6_2_network_decentralization_enable_flux">Enable flux</string>
|
||||
<string name="v6_2_network_decentralization_enable_flux_reason">for better metadata privacy</string>
|
||||
<string name="v6_2_improved_chat_navigation">Improved chat navigation</string>
|
||||
<string name="v6_2_improved_chat_navigation_descr">- Open chat on the first unread message.\n- Jump to quoted messages.</string>
|
||||
<string name="view_updated_conditions">View updated conditions</string>
|
||||
|
||||
<!-- CustomTimePicker -->
|
||||
<string name="custom_time_unit_seconds">seconds</string>
|
||||
|
||||
Reference in New Issue
Block a user