whats new view updates

This commit is contained in:
Diogo
2024-11-22 11:02:14 +00:00
parent 09895f022f
commit a5919ca2a2
2 changed files with 162 additions and 96 deletions
@@ -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>