package com.rosetta.messenger.data

/**
 * Release notes for "Rosetta Updates" system messages.
 *
 * When releasing a new version, update [RELEASE_NOTICE] below.
 * The text will be sent once to each user after they update the app.
 */
object ReleaseNotes {

    /**
     * Current release notice shown to users after update.
     * [VERSION_PLACEHOLDER] will be replaced with the actual version from BuildConfig.
     */
    const val VERSION_PLACEHOLDER = "{version}"

    val RELEASE_NOTICE = """
        Update v$VERSION_PLACEHOLDER

        Поиск
        - Новый полноценный экран поиска с вкладками: Чаты, Медиа, Загрузки, Файлы
        - Медиа-сетка с загрузкой реальных фотографий из истории чатов
        - Просмотр фото на весь экран со свайпом между ними из вкладки Медиа
        - Вкладка Загрузки — скачанные файлы
        - Вкладка Файлы — файловые вложения из всех чатов

        Группы
        - Приглашения в группу теперь отображаются внутри пузыря сообщения с кнопкой действия
        - Кэширование информации о приглашениях (больше нет загрузки при повторном открытии)
        - Кэширование участников группы для быстрого открытия списка
        - Экран ключа шифрования переработан в стиле Telegram (12×12 identicon)
        - Исправлен онлайн-статус участников — теперь онлайн только те кто реально онлайн
        - Emoji-клавиатура в экране создания группы

        Чат и интерфейс
        - Улучшены индикаторы доставки сообщений
        - Менеджер загрузки файлов с отображением прогресса
        - Открытие файлов в профиле пользователя (локальные, загруженные, из blob)
        - Новые обои для чатов
        - Улучшена работа камеры и управление состоянием UI
    """.trimIndent()

    fun getNotice(version: String): String =
        RELEASE_NOTICE.replace(VERSION_PLACEHOLDER, version)

    /** Hash of current notice text — used to re-send if text changed within the same version */
    val noticeHash: String
        get() = RELEASE_NOTICE.hashCode().toString(16)
}
