diff --git a/CHANGELOG-upstream.md b/CHANGELOG-upstream.md index eeaba80e3..3f270e185 100644 --- a/CHANGELOG-upstream.md +++ b/CHANGELOG-upstream.md @@ -1,6 +1,13 @@ # Delta Chat Android Changelog -## 1.58.4 +## Unreleased + +* Clearer app lists by removing redundant "App" subtitle +* New button for quick access to the apps sent in current chat +* New icon for the in-chat apps button +* Improve hint for app drafts + +## v1.58.4 2025-05 * make in-chat apps properly work when they are not sent yet, in draft mode diff --git a/metadata/de/short_description.txt b/metadata/de/short_description.txt deleted file mode 100644 index 36a005180..000000000 --- a/metadata/de/short_description.txt +++ /dev/null @@ -1 +0,0 @@ -Schreibe Nachrichten mit E-Mails. Retro, Offen. Privatsphäre im Design. diff --git a/metadata/pt-BR/full_description.txt b/metadata/pt-BR/full_description.txt deleted file mode 100644 index cd7a7dc0d..000000000 --- a/metadata/pt-BR/full_description.txt +++ /dev/null @@ -1,12 +0,0 @@ -Delta Chat é um aplicativo de mensagens que é completamente compatível com a infraestrutura de email já existente. -Assim, com o Delta Chat você tem a facilidade de muitos aplicativos de mensagens com o alcance de email. Além disso, você é independente de outras companhias e sercviços -- já que suas informações e dados não estão relacionadas com o Delta Chat, você não vai nem adicionar novas permissões aqui. -Resumo de alguns recursos: -* Seguro com criptografia de ponta a ponta, com suporte ao novo padrão Autocrypt -* Rápido usando Push-IMAP -* Maior base de usuários -- destinatários que não estiverem usando Delta Chat podem ser alcançados também -* Compatívle -- não apenas consigo mesmo -* Interface de usuário elegante e simples -* Sistema distribuído -* Sem spam -- apenas mensages de usuários conhecidos são mostradas por padrão -* Confiável -- pode até ser usado para mensagens comerciais -* Completamente OpenSource e baseado em padrões diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java index 3ab2b0fa4..e40b9bd45 100644 --- a/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ConversationActivity.java @@ -532,6 +532,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } else if (itemId == R.id.menu_show_map) { WebxdcActivity.openMaps(this, chatId); return true; + } else if (itemId == R.id.menu_show_apps) { + handleProfile(true); + return true; } else if (itemId == R.id.menu_search_up) { handleMenuSearchNext(false); return true; @@ -612,10 +615,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } } - private void handleProfile() { + private void handleProfile(boolean showApps) { Intent intent = new Intent(this, ProfileActivity.class); intent.putExtra(ProfileActivity.CHAT_ID_EXTRA, chatId); intent.putExtra(ProfileActivity.FROM_CHAT, true); + if (showApps) { + intent.putExtra(ProfileActivity.FORCE_TAB_EXTRA, ProfileActivity.TAB_WEBXDC); + } startActivity(intent); overridePendingTransition(0, 0); } @@ -873,7 +879,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity buttonToggle.getBackground().invalidateSelf(); }); - titleView.setOnClickListener(v -> handleProfile()); + titleView.setOnClickListener(v -> handleProfile(false)); titleView.setOnBackClickedListener(view -> handleReturnToConversationList()); composeText.setOnKeyListener(composeKeyPressedListener); diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsAdapter.java b/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsAdapter.java index c1fb1e320..424547412 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsAdapter.java +++ b/src/main/java/org/thoughtcrime/securesms/ProfileDocumentsAdapter.java @@ -102,16 +102,18 @@ class ProfileDocumentsAdapter extends StickyHeaderGridAdapter { viewHolder.audioView.setOnLongClickListener(view -> { itemClickListener.onMediaLongClicked(dcMsg); return true; }); viewHolder.audioView.disablePlayer(!selected.isEmpty()); viewHolder.itemView.setOnClickListener(view -> itemClickListener.onMediaClicked(dcMsg)); + viewHolder.date.setVisibility(View.VISIBLE); } else if (slide != null && slide.isWebxdcDocument()) { viewHolder.audioView.setVisibility(View.GONE); viewHolder.documentView.setVisibility(View.GONE); viewHolder.webxdcView.setVisibility(View.VISIBLE); - viewHolder.webxdcView.setWebxdc(dcMsg, context.getString(R.string.webxdc_app)); + viewHolder.webxdcView.setWebxdc(dcMsg, ""); viewHolder.webxdcView.setOnClickListener(view -> itemClickListener.onMediaClicked(dcMsg)); viewHolder.webxdcView.setOnLongClickListener(view -> { itemClickListener.onMediaLongClicked(dcMsg); return true; }); viewHolder.itemView.setOnClickListener(view -> itemClickListener.onMediaClicked(dcMsg)); + viewHolder.date.setVisibility(View.GONE); } else if (slide != null && slide.hasDocument()) { viewHolder.audioView.setVisibility(View.GONE); @@ -122,11 +124,13 @@ class ProfileDocumentsAdapter extends StickyHeaderGridAdapter { viewHolder.documentView.setOnClickListener(view -> itemClickListener.onMediaClicked(dcMsg)); viewHolder.documentView.setOnLongClickListener(view -> { itemClickListener.onMediaLongClicked(dcMsg); return true; }); viewHolder.itemView.setOnClickListener(view -> itemClickListener.onMediaClicked(dcMsg)); + viewHolder.date.setVisibility(View.VISIBLE); } else { viewHolder.documentView.setVisibility(View.GONE); viewHolder.audioView.setVisibility(View.GONE); viewHolder.webxdcView.setVisibility(View.GONE); + viewHolder.date.setVisibility(View.GONE); } viewHolder.itemView.setOnLongClickListener(view -> { itemClickListener.onMediaLongClicked(dcMsg); return true; }); diff --git a/src/main/java/org/thoughtcrime/securesms/components/WebxdcView.java b/src/main/java/org/thoughtcrime/securesms/components/WebxdcView.java index 997ea4cc9..84ced7bbe 100644 --- a/src/main/java/org/thoughtcrime/securesms/components/WebxdcView.java +++ b/src/main/java/org/thoughtcrime/securesms/components/WebxdcView.java @@ -86,7 +86,12 @@ public class WebxdcView extends FrameLayout { if (summary.isEmpty()) { summary = defaultSummary; } - appSubtitle.setText(summary); + if (summary.isEmpty()) { + appSubtitle.setVisibility(View.GONE); + } else { + appSubtitle.setVisibility(View.VISIBLE); + appSubtitle.setText(summary); + } } public String getDescription() { diff --git a/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java b/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java index 7476cf926..c3dbd0e65 100644 --- a/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java +++ b/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java @@ -312,7 +312,7 @@ public class AttachmentManager { } else if (slide.hasDocument()) { if (slide.isWebxdcDocument()) { DcMsg instance = msg != null ? msg : DcHelper.getContext(context).getMsg(slide.dcMsgId); - webxdcView.setWebxdc(instance, context.getString(R.string.videochat_tap_to_open)); + webxdcView.setWebxdc(instance, context.getString(R.string.webxdc_draft_hint)); webxdcView.setWebxdcClickListener((v, s) -> { WebxdcActivity.openWebxdcActivity(context, instance); }); @@ -409,7 +409,7 @@ public class AttachmentManager { if (slide.isPresent()) { if (slide.get().isWebxdcDocument()) { if (webxdcView != null) { - webxdcView.setWebxdc(DcHelper.getContext(context).getMsg(slide.get().dcMsgId), context.getString(R.string.videochat_tap_to_open)); + webxdcView.setWebxdc(DcHelper.getContext(context).getMsg(slide.get().dcMsgId), context.getString(R.string.webxdc_draft_hint)); } } } diff --git a/src/main/res/drawable/baseline_apps_24.xml b/src/main/res/drawable/baseline_apps_24.xml deleted file mode 100644 index 18dae5c30..000000000 --- a/src/main/res/drawable/baseline_apps_24.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/main/res/drawable/ic_apps_24.xml b/src/main/res/drawable/ic_apps_24.xml new file mode 100644 index 000000000..f578daeb2 --- /dev/null +++ b/src/main/res/drawable/ic_apps_24.xml @@ -0,0 +1,3 @@ + + + diff --git a/src/main/res/layout/attachment_type_selector.xml b/src/main/res/layout/attachment_type_selector.xml index 3a790bd33..69668c4ab 100644 --- a/src/main/res/layout/attachment_type_selector.xml +++ b/src/main/res/layout/attachment_type_selector.xml @@ -111,9 +111,9 @@ android:id="@+id/webxdc_button" android:layout_width="53dp" android:layout_height="53dp" - android:src="@drawable/baseline_apps_24" + android:src="@drawable/ic_apps_24" android:scaleType="center" - android:contentDescription="@string/webxdc_apps" + android:contentDescription="@string/webxdc_app" app:circleColor="@color/apps_icon" /> @@ -121,7 +121,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/AttachmentTypeLabel" - android:text="@string/webxdc_apps"/> + android:text="@string/webxdc_app"/> diff --git a/src/main/res/menu/conversation.xml b/src/main/res/menu/conversation.xml index 46be4a3a6..d21b28434 100644 --- a/src/main/res/menu/conversation.xml +++ b/src/main/res/menu/conversation.xml @@ -25,6 +25,11 @@ android:visible="false" app:showAsAction="always"/> + + @@ -34,7 +39,7 @@ + app:showAsAction="never" /> diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml index 95858f5af..adfe95370 100644 --- a/src/main/res/values-cs/strings.xml +++ b/src/main/res/values-cs/strings.xml @@ -202,6 +202,10 @@ Obrázky a videa Soubor Soubory + Odeslat původní soubory a nekomprimované obrázky + + Vybrat ze Souborů + Vybrat z Galerie Aplikace diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 10ee73149..8c378d72d 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -56,6 +56,7 @@ Speichern Chat Medien + Apps & Medien Profil Hauptmenü Chat starten @@ -275,6 +276,7 @@ Datei exportieren Dateien exportieren Alle Medien + Alle Apps & Medien Im Chat zeigen App im Chat zeigen @@ -467,7 +469,7 @@ Nachricht senden an… Echtzeit-Apps - Aktiviert Echtzeitverbindungen für in Chats verwendeten Apps. Wenn aktiviert, können Chat-Partner möglicherweise Ihre IP-Adresse ermitteln, wenn Sie eine App starten. + Aktiviert Echtzeitverbindungen für an Chats angehängte Apps. Wenn aktiviert, können Chat-Partner möglicherweise Ihre IP-Adresse ermitteln, wenn Sie eine App starten. Standorte im Zeitrahmen anzeigen @@ -519,12 +521,12 @@ Dokumente Links Karte - In diesem Chat geteilte Bilder und Videos werden hier angezeigt. - In diesem Chat geteilte Dokumente und Dateien werden hier angezeigt. - In diesem Chat geteilte Bilder werden hier angezeigt. - In diesem Chat geteilte Videos werden hier angezeigt. - In diesem Chat geteilte Audiodateien und Sprachnachrichten werden hier angezeigt. - In diesem Chat geteilte Apps werden hier angezeigt. + Diesem Chat angehängte Bilder und Videos werden hier angezeigt. + Diesem Chat angehängte Dokumente und Dateien werden hier angezeigt. + Diesem Chat angehängte Bilder werden hier angezeigt. + Diesem Chat angehängte Videos werden hier angezeigt. + Diesem Chat angehängte Audiodateien und Sprachnachrichten werden hier angezeigt. + Diesem Chat angehängte Apps werden hier angezeigt. Medien aus allen Chats werden hier angezeigt. Dokumente und Dateien aus allen Chats werden hier angezeigt. Apps aus allen Chats werden hier angezeigt. @@ -1037,7 +1039,7 @@ Weiter Um Fotos oder Videos aufzunehmen, bitte in den System-Einstellungen DeltaChat den Zugriff auf die Kamera erlauben. - Um Audio-Nachrichten zu senden, bitte in den System-Einstellungen DeltaChat den Zugriff auf das Mikrophon erlauben. + Um Audio-Nachrichten zu senden, bitte in den System- oder App-Einstellungen den Zugriff auf das Mikrophon erlauben. Um Dateien zu empfangen oder zu versenden, bitte in den System-Einstellungen Delta Chat den Zugriff auf den Speicher erlauben. Um einen Standort anzuhängen, bitte in den Systemeinstellungen DeltaChat den Zugriff auf \"Standort\" erlauben. Um Benachrichtigungen zu erhalten, öffnen Sie \"Systemeinstellungen / Apps / Delta Chat\" und aktivieren Sie \"Benachrichtigungen\". diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index f192c209e..c616ccaa5 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -550,15 +550,15 @@ Документы Ссылки Карта - Здесь можно просмотреть изображения и видео, отправленные в этом чате. - Здесь можно просмотреть документы и другие файлы, отправленные в этом чате. - Здесь можно просмотреть изображения, отправленные в этом чате. - Здесь можно просмотреть видео, отправленные в этом чате. - Здесь можно просмотреть аудиофайлы и голосовые сообщения, отправленные в этом чате. - Здесь можно просмотреть приложения, отправленные в этом чате. - Здесь можно просмотреть медиафайлы, отправленные в любом чате. - Здесь можно просмотреть документы и другие файлы, отправленные в любом чате. - Здесь можно просмотреть приложения, полученные или отправленные в любом чате. + Изображения и видео, прикреплённые к этому чату, будут показаны здесь. + Документы и прочие файлы, прикреплённые к этому чату, будут показаны здесь. + Изображения, прикреплённые к этому чату, будут показаны здесь. + Видео, прикреплённые к этому чату, будут показаны здесь. + Аудиофайлы и голосовые сообщения, прикреплённые к этому чату, будут показаны здесь. + Приложения, прикреплённые к этому чату, будут показаны здесь. + Медиафайлы, из всех ваших чатов, будут показаны здесь. + Документы и прочие вложения, из всех ваших чатов, будут показаны здесь. + Приложения, из всех ваших чатов, будут показаны здесь. Предпросмотр медиафайлов Сетка с соотношением сторон diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml index faec9af67..62aaedb46 100644 --- a/src/main/res/values-uk/strings.xml +++ b/src/main/res/values-uk/strings.xml @@ -202,6 +202,10 @@ Зображення та відео Файл Файли + Надсилати оригінальні файли та нестиснуті зображення + + Вибрати з Файлів + Вибрати з Галереї Застосунок diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index ac1b711cd..9f49fa5e4 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -450,7 +450,7 @@ 发送消息到... 实时应用 - 为聊天中共享的应用启用实时连接。如果启用,聊天伙伴可能能够在您启动应用时发现您的 IP 地址。 + 为聊天中附加的应用启用实时连接。如果启用,聊天伙伴可能会在您启动应用时发现您的 IP 地址。 显示时间范围内的位置 @@ -502,15 +502,15 @@ 文档 链接 地图 - 在此聊天中分享的图像和视频将显示于此。 - 在此聊天中分享的文档、音乐和其他文件将显示于此。 - 此聊天中分享的图片将显示在这里 - 此聊天中分享的视频将显示在这里 - 此聊天中分享的音频文件和语音消息将显示在这里。 - 在此聊天中分享的私人应用会出现在这里 - 任何聊天中分享的媒体文件都将出现在这里 - 在任何聊天中分享的文档和其他文件会出现在这里。 - 任何聊天中共享的应用都会出现在此处。 + 此聊天附加的图片和视频将显示在此处。 + 此聊天附加的文档和其他文件将显示在此处。 + 此聊天附加的图片将显示在此处。 + 此聊天附加的视频将显示在此处。 + 此聊天附加的音频文件和语音消息将显示在此处。 + 此聊天附加的应用将显示在此处。 + 任何聊天附加的媒体都将显示在此处。 + 任何聊天附加的文档和其他文件都将显示在此处。 + 任何聊天附加的应用都将显示在此处。 媒体预览 宽高比网格 diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index af942a2e0..95caa6473 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -73,6 +73,7 @@ Save Chat Media + Apps & Media Profile Main Menu Start Chat @@ -211,6 +212,7 @@ Apps App Picker URL If set, the URL will be used as the App Picker instead of the default one + Tap \"Send\" to share Home Games Tools @@ -292,6 +294,7 @@ Export Attachment Export Attachments All Media + All Apps & Media Show in Chat Show App in Chat @@ -483,7 +486,7 @@ Send Message to… Real-Time Apps - Enable real-time connections for apps shared in chats. If enabled, chat partners may be able to discover your IP address when you start an app. + Enable real-time connections for apps attached to chats. If enabled, chat partners may be able to discover your IP address when you start an app. Show locations in time frame @@ -535,15 +538,15 @@ Docs Links Map - Images and videos shared in this chat will appear here. - Documents and other files shared in this chat will appear here. - Images shared in this chat will appear here. - Videos shared in this chat will appear here. - Audio files and voice messages shared in this chat will appear here. - Apps shared in this chat will appear here. - Media shared in any chat will appear here. - Documents and other files shared in any chat will appear here. - Apps shared in any chat will appear here. + Images and videos attached to this chat will appear here. + Documents and other files attached to this chat will appear here. + Images attached to this chat will appear here. + Videos attached to this chat will appear here. + Audio files and voice messages attached to this chat will appear here. + Apps attached to this chat will appear here. + Media attached to any chat will appear here. + Documents and other files attached to any chat will appear here. + Apps attached to any chat will appear here. Media Preview Aspect Ratio Grid