diff --git a/img/channel.png b/img/channel.png
deleted file mode 100644
index 343fc3b0..00000000
Binary files a/img/channel.png and /dev/null differ
diff --git a/src/config.js b/src/config.js
index 32b63496..b82ccbd4 100644
--- a/src/config.js
+++ b/src/config.js
@@ -157,3 +157,6 @@ export const DEFAULT_TEXT_SIZE = 10;
// MIME type for the legacy Drafty form-response data.
export const DRAFTY_FR_MIME_TYPE_LEGACY = 'application/json'; // Remove in 2026.
+
+// Path to wallpaper images.
+export const WALLPAPER_DEFAULTS = {type: 'patt', index: 0, path:'img/bkg/'};
diff --git a/src/i18n.min/en.json b/src/i18n.min/en.json
index 702e4091..a47d0724 100644
--- a/src/i18n.min/en.json
+++ b/src/i18n.min/en.json
@@ -1 +1 @@
-{"action_block_contact":"Block Contact","action_cancel":"cancel","action_clear_messages":"Clear Messages","action_delete_messages":"Clear Messages for All","action_leave_chat":"Leave Conversation","action_report_chat":"Report Conversation","archived_contacts":"Archived contacts ({count})","badge_danger":"Untrustworthy","badge_owner":"owner","badge_staff":"Staff-managed","badge_verified":"Verified/official","badge_you":"you","block_contact_warning":"Are you sure you want to block this contact?","blocked_contacts_link":"Blocked contacts ({count})","button_add_members":"Add members","button_cancel":"Cancel","button_confirm":"Confirm","button_create":"Create","button_delete_account":"Delete account","button_edit":"Edit","button_logout":"Logout","button_ok":"OK","button_reset":"Reset","button_send_request":"Send request","button_sign_in":"Sign in","button_sign_up":"Sign up","button_subscribe":"Subscribe","button_update":"Update","cannot_initiate_file_upload":"Cannot initiate file upload.","channel":"channel","channel_prompt":"This is a channel","chat_invitation":"You are invited to start a new chat. What would you like to do?","chat_invitation_accept":"Accept","chat_invitation_block":"Block","chat_invitation_ignore":"Ignore","clear_messages_warning":"Are you sure you want to clear all messages? It cannot be undone.","code_doesnot_match":"Code does not match","contacts_not_found":"You have no chats
¯∖_(ツ)_/¯","contacts_not_found_short":"No contacts match ''{query}''","credential_email_prompt":"Your registration email","delete_account":"Delete account","delete_account_warning":"Are you sure you want to delete your account? It cannot be undone.","delete_messages_warning":"Are you sure you want to delete all messages for everyone? It cannot be undone.","download_action":"download","drafty_attachment":"Attachment","drafty_form":"Form:","drafty_image":"Picture","email_dative":"email","email_prompt":"Email, e.g. jdoe@example.com","enable_peers_messaging":"Enable","enter_confirmation_code_prompt":"Confirmation code","error_invalid_id":"Invalid ID","file_attachment_too_large":"The file size {size} exceeds the {limit} limit.","forgot_password_link":"Forgot password?","full_name_prompt":"Full name, e.g. John Doe","granted_permissions":"Granted","group_has_no_members":"No members","group_user_id_prompt":"Group or User ID","image_caption_prompt":"Image caption","invalid_content":"invalid content","invalid_security_token":"Invalid security token","label_client":"Client:","label_content_type":"Content type:","label_default_access_mode":"Default access mode:","label_file_name":"File name:","label_group_members":"Group members:","label_incognito_mode":"Incognito mode:","label_message_sound":"Message sound:","label_muting_topic":"Muted:","label_other_user":"Other","label_password":"Password","label_permissions":"Permissions:","label_private":"Private comment","label_push_notifications":"Notification alerts:","label_push_notifications_disabled":"Notification alerts (requires HTTPS):","label_reset_password":"Send a password reset email:","label_sdk":"SDK:","label_server":"Server:","label_server_address":"Server address:","label_server_to_use":"Server to use:","label_size":"Size:","label_topic_name":"Name","label_user_contacts":"Contacts","label_user_id":"ID:","label_wire_transport":"Wire transport:","label_you":"You:","label_your_name":"Your name","label_your_permissions":"Your permissions:","last_seen_timestamp":"Last seen","leave_chat_warning":"Are you sure you want to leave this conversation?","link_contact_us":"Contact Us","link_privacy_policy":"Privacy Policy","link_terms_of_service":"Terms of Service","login_prompt":"Login","menu_item_archive_topic":"Archive","menu_item_block":"Block","menu_item_clear_messages":"Clear messages","menu_item_clear_messages_for_all":"Clear for All","menu_item_delete":"Delete","menu_item_delete_for_all":"Delete for All","menu_item_delete_topic":"Delete","menu_item_edit_permissions":"Edit permissions","menu_item_info":"Info","menu_item_member_delete":"Remove","menu_item_mute":"Mute","menu_item_reply":"Reply","menu_item_restore_topic":"Restore","menu_item_send_retry":"Retry","menu_item_unblock":"Unblock","menu_item_unmute":"Unmute","message_sending":"sending...","message_sending_failed":"failed","messages_not_readable":"no access to messages","messaging_disabled_prompt":"Messaging disabled","more_online_members":"+{overflow} more","new_message_prompt":"New message","new_password_placeholder":"Enter new password","no_connection":"No connection","no_contacts":"You have no contacts :-(","numeric_confirmation_code_prompt":"Numbers only","online_now":"online now","password_prompt":"Password","password_unchanged_prompt":"Unchanged","peers_messaging_disabled":"Peer's messaging is disabled.","permission_admin":"Approve ({val})","permission_delete":"Delete ({val})","permission_join":"Join ({val})","permission_owner":"Owner ({val})","permission_pres":"Get notified ({val})","permission_read":"Read ({val})","permission_share":"Share ({val})","permission_write":"Write ({val})","phone_dative":"phone","private_editing_placeholder":"Visible to you only","push_init_failed":"Failed to initialize push notifications","reconnect_countdown":"Disconnected. Reconnecting in {seconds}…","reconnect_now":"Try now","reload_update":"Reload","report_chat_warning":"Are you sure you want to block and report this conversation?","requested_permissions":"Requested","save_attachment":"save","search_for_contacts":"Use search to find contacts","search_no_results":"Search returned no results","search_placeholder":"List like email:alice@example.com, tel:17025550003...","sidepanel_title_acc_notifications":"Notifications","sidepanel_title_acc_support":"Support","sidepanel_title_account_settings":"Account Settings","sidepanel_title_archive":"Archived Chats","sidepanel_title_blocked":"Blocked Chats","sidepanel_title_cred":"Confirm Credentials","sidepanel_title_login":"Sign In","sidepanel_title_newtpk":"Start New Chat","sidepanel_title_register":"Create Account","sidepanel_title_reset":"Reset Password","sidepanel_title_settings":"Settings","stay_logged_in":"Stay logged in","tabtitle_find_user":"find","tabtitle_group_by_id":"by id","tabtitle_new_group":"new group","tags_editor_no_tags":"Add some tags","tags_not_found":"No tags defined. Add some.","title_all_contacts":"All Contacts","title_group_members":"Group Members","title_manage_tags":"Manage","title_not_found":"Not found","title_permissions":"Permissions","title_tag_manager":"Tags (search & discovery)","topic_block_warning":"Are you sure you want to block this conversation?","topic_delete_warning":"Are you sure you want to delete this conversation?","topic_name_editing_placeholder":"Freeform name of the group","unnamed_topic":"Unnamed","update_available":"Update available.","upload_finishing":"finishing...","user_not_found":"Not found","description_editing_placeholder":"Optional description","label_description":"Description","button_security":"Security","panel_title_crop":"Drag to Adjust","panel_title_general":"General","panel_title_members":"Members","panel_title_security":"Security","panel_title_info":"Info","permissions_anonymous":"Anonymous","permissions_authenticated":"Authenticated","topic_delete":"Delete Conversation","permissions_user":"User's Permissions","password_reset_email_sent":"An email with security code has been sent.","label_unarchive_topic":"Archived:","menu_item_forward":"Forward","forward_to":"Forward to","forward_to_search_placeholder":"Search contacts","label_new_password":"New password","drafty_unknown":"Unsupported","calls_incoming":"Incoming call","calls_outgoing":"Outgoing call","calls_you_label":"You","menu_item_video_call":"Video call","already_in_call":"You already in an ongoing call!","call_cancelled":"cancelled","call_missed":"missed","call_declined":"declined","call_disconnected":"disconnected","label_use_secure_connection":"Use secure connection","cred_confirmed_successfully":"Confirmed successfully","menu_item_edit":"Edit","editing_message":"Editing","message_edited_marker":", edited","icon_title_add_image":"Add image","icon_title_attach_file":"Attach file","icon_title_delete":"Delete","icon_title_pause":"Pause","icon_title_play":"Play","icon_title_record_voice":"Record voice message","icon_title_resume":"Resume","icon_title_send":"Send message","drag_file":"Drag file here","drafty_video":"Video recording","call_in_progress":"in progress","menu_item_audio_call":"Call","unrecognized_video_format":"Format of this video is not recognized","loading_note":"Loading...","password_i_have_code":"I have code","label_reset_password_tel":"Send a password reset SMS:","mobile_phone_number":"Mobile phone number","password_reset_sms_sent":"A text message with security code has been sent.","mobile_number_required":"Mobile phone number required","current_email":"Current email","current_phone":"Current phone number","new_email":"New email","new_phone_number":"New phone number","change_email":"Change email","change_phone":"Change phone number","call_busy":"busy","failed_to_init_audio":"Failed to initialize audio recording","pin_message":"Pin","unpin_message":"Unpin","password_reset_success":"Password reset successfully","scan_qr_code":"Scan QR Code","self_topic_comment":"Notes, messages, links, files saved for posterity","self_topic_name":"Saved messages","message_not_found":"message not found","message_deleted":"message deleted","alias_editing_placeholder":"Alias (optional)","label_alias":"Alias:","alias_already_taken":"(already taken)","alias_invalid":"(invalid)","label_alias_edit":"Alias","select_country":"Select country","text_copied":"Copied to clipboard","color_schema_dark":"Dark","color_schema_light":"Light","color_schema_system":"System default","label_color_schema":"Theme:","label_text_size":"Text size:","incognito_mode_description":"Hide your online status and typing indicators.","send_command":"Send on {key}","send_command_explained":"Press Enter for new line","send_plain":"Send on Enter","send_plain_explained":"Press Shift + Enter for new line","sidepanel_title_acc_general":"General","label_keyboard":"Keyboard:","pin_chat":"Pin","unpin_chat":"Unpin","subscriber_count":"{count, plural, one {{count, number} subscriber} other {{count, number} subscribers}}","label_member_count":"Members:","label_subscriber_count":"Subscribers:","member_count":"{count, plural, one {{count, number} member} other {{count, number} members}}"}
\ No newline at end of file
+{"action_block_contact":"Block Contact","action_cancel":"cancel","action_clear_messages":"Clear Messages","action_delete_messages":"Clear Messages for All","action_leave_chat":"Leave Conversation","action_report_chat":"Report Conversation","archived_contacts":"Archived contacts ({count})","badge_danger":"Untrustworthy","badge_owner":"owner","badge_staff":"Staff-managed","badge_verified":"Verified/official","badge_you":"you","block_contact_warning":"Are you sure you want to block this contact?","blocked_contacts_link":"Blocked contacts ({count})","button_add_members":"Add members","button_cancel":"Cancel","button_confirm":"Confirm","button_create":"Create","button_delete_account":"Delete account","button_edit":"Edit","button_logout":"Logout","button_ok":"OK","button_reset":"Reset","button_send_request":"Send request","button_sign_in":"Sign in","button_sign_up":"Sign up","button_subscribe":"Subscribe","button_update":"Update","cannot_initiate_file_upload":"Cannot initiate file upload.","channel":"channel","channel_prompt":"This is a channel","chat_invitation":"You are invited to start a new chat. What would you like to do?","chat_invitation_accept":"Accept","chat_invitation_block":"Block","chat_invitation_ignore":"Ignore","clear_messages_warning":"Are you sure you want to clear all messages? It cannot be undone.","code_doesnot_match":"Code does not match","contacts_not_found":"You have no chats
¯∖_(ツ)_/¯","contacts_not_found_short":"No contacts match ''{query}''","credential_email_prompt":"Your registration email","delete_account":"Delete account","delete_account_warning":"Are you sure you want to delete your account? It cannot be undone.","delete_messages_warning":"Are you sure you want to delete all messages for everyone? It cannot be undone.","download_action":"download","drafty_attachment":"Attachment","drafty_form":"Form:","drafty_image":"Picture","email_dative":"email","email_prompt":"Email, e.g. jdoe@example.com","enable_peers_messaging":"Enable","enter_confirmation_code_prompt":"Confirmation code","error_invalid_id":"Invalid ID","file_attachment_too_large":"The file size {size} exceeds the {limit} limit.","forgot_password_link":"Forgot password?","full_name_prompt":"Full name, e.g. John Doe","granted_permissions":"Granted","group_has_no_members":"No members","group_user_id_prompt":"Group or User ID","image_caption_prompt":"Image caption","invalid_content":"invalid content","invalid_security_token":"Invalid security token","label_client":"Client:","label_content_type":"Content type:","label_default_access_mode":"Default access mode:","label_file_name":"File name:","label_group_members":"Group members:","label_incognito_mode":"Incognito mode:","label_message_sound":"Message sound:","label_muting_topic":"Muted:","label_other_user":"Other","label_password":"Password","label_permissions":"Permissions:","label_private":"Private comment","label_push_notifications":"Notification alerts:","label_push_notifications_disabled":"Notification alerts (requires HTTPS):","label_reset_password":"Send a password reset email:","label_sdk":"SDK:","label_server":"Server:","label_server_address":"Server address:","label_server_to_use":"Server to use:","label_size":"Size:","label_topic_name":"Name","label_user_contacts":"Contacts","label_user_id":"ID:","label_wire_transport":"Wire transport:","label_you":"You:","label_your_name":"Your name","label_your_permissions":"Your permissions:","last_seen_timestamp":"Last seen","leave_chat_warning":"Are you sure you want to leave this conversation?","link_contact_us":"Contact Us","link_privacy_policy":"Privacy Policy","link_terms_of_service":"Terms of Service","login_prompt":"Login","menu_item_archive_topic":"Archive","menu_item_block":"Block","menu_item_clear_messages":"Clear messages","menu_item_clear_messages_for_all":"Clear for All","menu_item_delete":"Delete","menu_item_delete_for_all":"Delete for All","menu_item_delete_topic":"Delete","menu_item_edit_permissions":"Edit permissions","menu_item_info":"Info","menu_item_member_delete":"Remove","menu_item_mute":"Mute","menu_item_reply":"Reply","menu_item_restore_topic":"Restore","menu_item_send_retry":"Retry","menu_item_unblock":"Unblock","menu_item_unmute":"Unmute","message_sending":"sending...","message_sending_failed":"failed","messages_not_readable":"no access to messages","messaging_disabled_prompt":"Messaging disabled","more_online_members":"+{overflow} more","new_message_prompt":"New message","new_password_placeholder":"Enter new password","no_connection":"No connection","no_contacts":"You have no contacts :-(","numeric_confirmation_code_prompt":"Numbers only","online_now":"online now","password_prompt":"Password","password_unchanged_prompt":"Unchanged","peers_messaging_disabled":"Peer's messaging is disabled.","permission_admin":"Approve ({val})","permission_delete":"Delete ({val})","permission_join":"Join ({val})","permission_owner":"Owner ({val})","permission_pres":"Get notified ({val})","permission_read":"Read ({val})","permission_share":"Share ({val})","permission_write":"Write ({val})","phone_dative":"phone","private_editing_placeholder":"Visible to you only","push_init_failed":"Failed to initialize push notifications","reconnect_countdown":"Disconnected. Reconnecting in {seconds}…","reconnect_now":"Try now","reload_update":"Reload","report_chat_warning":"Are you sure you want to block and report this conversation?","requested_permissions":"Requested","save_attachment":"save","search_for_contacts":"Use search to find contacts","search_no_results":"Search returned no results","search_placeholder":"List like email:alice@example.com, tel:17025550003...","sidepanel_title_acc_notifications":"Notifications","sidepanel_title_acc_support":"Support","sidepanel_title_account_settings":"Account Settings","sidepanel_title_archive":"Archived Chats","sidepanel_title_blocked":"Blocked Chats","sidepanel_title_cred":"Confirm Credentials","sidepanel_title_login":"Sign In","sidepanel_title_newtpk":"Start New Chat","sidepanel_title_register":"Create Account","sidepanel_title_reset":"Reset Password","sidepanel_title_settings":"Settings","stay_logged_in":"Stay logged in","tabtitle_find_user":"find","tabtitle_group_by_id":"by id","tabtitle_new_group":"new group","tags_editor_no_tags":"Add some tags","tags_not_found":"No tags defined. Add some.","title_all_contacts":"All Contacts","title_group_members":"Group Members","title_manage_tags":"Manage","title_not_found":"Not found","title_permissions":"Permissions","title_tag_manager":"Tags (search & discovery)","topic_block_warning":"Are you sure you want to block this conversation?","topic_delete_warning":"Are you sure you want to delete this conversation?","topic_name_editing_placeholder":"Freeform name of the group","unnamed_topic":"Unnamed","update_available":"Update available.","upload_finishing":"finishing...","user_not_found":"Not found","description_editing_placeholder":"Optional description","label_description":"Description","button_security":"Security","panel_title_crop":"Drag to Adjust","panel_title_general":"General","panel_title_members":"Members","panel_title_security":"Security","panel_title_info":"Info","permissions_anonymous":"Anonymous","permissions_authenticated":"Authenticated","topic_delete":"Delete Conversation","permissions_user":"User's Permissions","password_reset_email_sent":"An email with security code has been sent.","label_unarchive_topic":"Archived:","menu_item_forward":"Forward","forward_to":"Forward to","forward_to_search_placeholder":"Search contacts","label_new_password":"New password","drafty_unknown":"Unsupported","calls_incoming":"Incoming call","calls_outgoing":"Outgoing call","calls_you_label":"You","menu_item_video_call":"Video call","already_in_call":"You already in an ongoing call!","call_cancelled":"cancelled","call_missed":"missed","call_declined":"declined","call_disconnected":"disconnected","label_use_secure_connection":"Use secure connection","cred_confirmed_successfully":"Confirmed successfully","menu_item_edit":"Edit","editing_message":"Editing","message_edited_marker":", edited","icon_title_add_image":"Add image","icon_title_attach_file":"Attach file","icon_title_delete":"Delete","icon_title_pause":"Pause","icon_title_play":"Play","icon_title_record_voice":"Record voice message","icon_title_resume":"Resume","icon_title_send":"Send message","drag_file":"Drag file here","drafty_video":"Video recording","call_in_progress":"in progress","menu_item_audio_call":"Call","unrecognized_video_format":"Format of this video is not recognized","loading_note":"Loading...","password_i_have_code":"I have code","label_reset_password_tel":"Send a password reset SMS:","mobile_phone_number":"Mobile phone number","password_reset_sms_sent":"A text message with security code has been sent.","mobile_number_required":"Mobile phone number required","current_email":"Current email","current_phone":"Current phone number","new_email":"New email","new_phone_number":"New phone number","change_email":"Change email","change_phone":"Change phone number","call_busy":"busy","failed_to_init_audio":"Failed to initialize audio recording","pin_message":"Pin","unpin_message":"Unpin","password_reset_success":"Password reset successfully","scan_qr_code":"Scan QR Code","self_topic_comment":"Notes, messages, links, files saved for posterity","self_topic_name":"Saved messages","message_not_found":"message not found","message_deleted":"message deleted","alias_editing_placeholder":"Alias (optional)","label_alias":"Alias:","alias_already_taken":"(already taken)","alias_invalid":"(invalid)","label_alias_edit":"Alias","select_country":"Select country","text_copied":"Copied to clipboard","color_schema_dark":"Dark","color_schema_light":"Light","color_schema_system":"System default","label_color_schema":"Theme:","label_text_size":"Text size:","incognito_mode_description":"Hide your online status and typing indicators.","send_command":"Send on {key}","send_command_explained":"Press Enter for new line","send_plain":"Send on Enter","send_plain_explained":"Press Shift + Enter for new line","sidepanel_title_acc_general":"General","label_keyboard":"Keyboard:","pin_chat":"Pin","unpin_chat":"Unpin","subscriber_count":"{count, plural, one {{count, number} subscriber} other {{count, number} subscribers}}","label_member_count":"Members:","label_subscriber_count":"Subscribers:","member_count":"{count, plural, one {{count, number} member} other {{count, number} members}}","tabtitle_image":"image","tabtitle_pattern":"pattern","button_restore":"Restore default","wallpapers":"Wallpapers","label_blur_wallpaper":"Blur:"}
\ No newline at end of file
diff --git a/src/i18n/ar.json b/src/i18n/ar.json
index f4002358..6b211ec2 100644
--- a/src/i18n/ar.json
+++ b/src/i18n/ar.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/de.json b/src/i18n/de.json
index 1a2dc58e..e7aad22b 100644
--- a/src/i18n/de.json
+++ b/src/i18n/de.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/en.json b/src/i18n/en.json
index aff7f5bd..0c005348 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -1864,5 +1864,47 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "Wallpapers",
+ "defaultMessage": "Wallpapers",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": false,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "image",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": false,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "pattern",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": false,
+ "obsolete": false
+ },
+ "button_restore": {
+ "translation": "Restore default",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": false,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "Wallpapers",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": false,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "Blur:",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": false,
+ "obsolete": false
}
}
diff --git a/src/i18n/es.json b/src/i18n/es.json
index 60e89b8a..b3108f8b 100644
--- a/src/i18n/es.json
+++ b/src/i18n/es.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/ex/base-en.json b/src/i18n/ex/base-en.json
index e7c861ac..bdce60fb 100644
--- a/src/i18n/ex/base-en.json
+++ b/src/i18n/ex/base-en.json
@@ -107,6 +107,10 @@
"defaultMessage": "Reset",
"description": "Button [Reset]"
},
+ "button_restore": {
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default"
+ },
"button_security": {
"defaultMessage": "Security",
"description": "Navigaton button for security panel."
@@ -406,6 +410,10 @@
"defaultMessage": "Alias",
"description": "Label for editing user or topic alias"
},
+ "label_blur_wallpaper": {
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount"
+ },
"label_client": {
"defaultMessage": "Client:",
"description": "Label for a client version"
@@ -980,10 +988,18 @@
"defaultMessage": "by id",
"description": "Tab title Find topic by ID"
},
+ "tabtitle_image": {
+ "defaultMessage": "image",
+ "description": "Tab title Image"
+ },
"tabtitle_new_group": {
"defaultMessage": "new group",
"description": "Tab title New Group"
},
+ "tabtitle_pattern": {
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern"
+ },
"tags_editor_no_tags": {
"defaultMessage": "Add some tags",
"description": "Tag editor prompt when no tags are found."
@@ -1063,5 +1079,9 @@
"user_not_found": {
"defaultMessage": "Not found",
"description": "In place of a user's full name when the user is not found."
+ },
+ "wallpapers": {
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers."
}
}
diff --git a/src/i18n/fr.json b/src/i18n/fr.json
index 1b651ef4..e60f7d16 100644
--- a/src/i18n/fr.json
+++ b/src/i18n/fr.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/it.json b/src/i18n/it.json
index e41e0239..953f69e0 100644
--- a/src/i18n/it.json
+++ b/src/i18n/it.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/ko.json b/src/i18n/ko.json
index aec8ef40..32699295 100644
--- a/src/i18n/ko.json
+++ b/src/i18n/ko.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/ro.json b/src/i18n/ro.json
index 17a15f2f..7e7e0b8d 100644
--- a/src/i18n/ro.json
+++ b/src/i18n/ro.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/ru.json b/src/i18n/ru.json
index 8c0a3b6e..9ac1764b 100644
--- a/src/i18n/ru.json
+++ b/src/i18n/ru.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/th.json b/src/i18n/th.json
index f3166316..f21604b2 100644
--- a/src/i18n/th.json
+++ b/src/i18n/th.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/uk.json b/src/i18n/uk.json
index fe8a924c..c9c405c9 100644
--- a/src/i18n/uk.json
+++ b/src/i18n/uk.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/zh-TW.json b/src/i18n/zh-TW.json
index ef15282b..144a2458 100644
--- a/src/i18n/zh-TW.json
+++ b/src/i18n/zh-TW.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/i18n/zh.json b/src/i18n/zh.json
index baf4f3bc..41ba2948 100644
--- a/src/i18n/zh.json
+++ b/src/i18n/zh.json
@@ -1864,5 +1864,54 @@
"description": "Count of group topic members",
"missing": false,
"obsolete": false
+ },
+ "label_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers:",
+ "description": "Label for selecting wallpapers in Settings",
+ "missing": true,
+ "obsolete": true
+ },
+ "tabtitle_image": {
+ "translation": "",
+ "defaultMessage": "image",
+ "description": "Tab title Image",
+ "missing": true,
+ "obsolete": false
+ },
+ "tabtitle_pattern": {
+ "translation": "",
+ "defaultMessage": "pattern",
+ "description": "Tab title Pattern",
+ "missing": true,
+ "obsolete": false
+ },
+ "sidepanel_title_wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Sidepanel title for WallpapersView.",
+ "missing": true,
+ "obsolete": true
+ },
+ "button_restore": {
+ "translation": "",
+ "defaultMessage": "Restore default",
+ "description": "Reset setting to default",
+ "missing": true,
+ "obsolete": false
+ },
+ "wallpapers": {
+ "translation": "",
+ "defaultMessage": "Wallpapers",
+ "description": "Link or title for working with wallpapers.",
+ "missing": true,
+ "obsolete": false
+ },
+ "label_blur_wallpaper": {
+ "translation": "",
+ "defaultMessage": "Blur:",
+ "description": "Label adjusting blur amount",
+ "missing": true,
+ "obsolete": false
}
}
diff --git a/src/index.js b/src/index.js
index 2515a204..068fdf24 100644
--- a/src/index.js
+++ b/src/index.js
@@ -29,6 +29,7 @@ const messageLoader = {
'en': _ => import('./i18n.min/en.json'),
'es': _ => import('./i18n.min/es.json'),
'fr': _ => import('./i18n.min/fr.json'),
+ 'it': _ => import('./i18n.min/it.json'),
'ko': _ => import('./i18n.min/ko.json'),
'ro': _ => import('./i18n.min/ro.json'),
'ru': _ => import('./i18n.min/ru.json'),
diff --git a/src/lib/utils.js b/src/lib/utils.js
index 15abe422..681743d6 100644
--- a/src/lib/utils.js
+++ b/src/lib/utils.js
@@ -1,6 +1,7 @@
// Odds and ends
import { Tinode } from 'tinode-sdk';
+import { WALLPAPER_DEFAULTS } from '../config.js';
// Make shortcut icon appear with a green dot + show unread count in title.
export function updateFavicon(count) {
@@ -248,3 +249,8 @@ export function cancelablePromise(promise) {
};
};
+export function defaultWallpaper() {
+ const wallpaperIndex = require('../../img/bkg/index.json');
+ const wp = wallpaperIndex[WALLPAPER_DEFAULTS.type][WALLPAPER_DEFAULTS.index];
+ return {name: `../${WALLPAPER_DEFAULTS.path}${wp.name}`, size: wp.size};
+}
diff --git a/src/views/acc-general-view.jsx b/src/views/acc-general-view.jsx
index 4641cc93..0dade8c1 100644
--- a/src/views/acc-general-view.jsx
+++ b/src/views/acc-general-view.jsx
@@ -39,51 +39,61 @@ export default class AccGeneralView extends React.PureComponent {
render() {
return (
: null}
: null}
+ {this.props.isChannel ? podcasts : null}
{!self ?