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