Compare commits

..

15 Commits

Author SHA1 Message Date
adbenitez 836e11ca27 update build.gradle 2025-02-17 00:04:35 +01:00
adbenitez 4fc53a4632 Merge remote-tracking branch 'upstream/adb/issue-3591' 2025-02-16 22:42:13 +01:00
adbenitez 1391a902b0 update core 2025-02-16 22:36:45 +01:00
adbenitez 876bdcacf1 remove apklis store 2025-02-16 22:26:22 +01:00
adbenitez 37e6bbc53c Merge remote-tracking branch 'upstream/main' 2025-02-16 22:22:59 +01:00
adb ab05222c32 Merge pull request #3596 from deltachat/adb/cleanup-ApplicationPreferencesActivity
cleanup ApplicationPreferencesActivity
2025-02-16 22:19:04 +01:00
adbenitez e87a3de296 add "Donate" to settings 2025-02-16 22:18:36 +01:00
adbenitez 9d96d7311c revert removal of comments 2025-02-16 21:47:25 +01:00
adbenitez 52b7f10c1b cleanup ApplicationPreferencesActivity 2025-02-16 21:25:19 +01:00
adbenitez 3ae4bf238e Merge remote-tracking branch 'upstream/main' 2025-02-16 21:03:25 +01:00
adbenitez a630fad9b0 disable broadcast lists for chatmail 2025-02-14 01:50:23 +01:00
adbenitez 6543ad0893 update metadata 2025-02-13 23:54:11 +01:00
adb 3b8a3e10ad Merge pull request #3595 from deltachat/adb/allow-to-add-chat-to-home-screen
allow to add any chat to the home screen
2025-02-12 20:32:44 +01:00
adbenitez 814f892e98 allow to add any chat to the home screen 2025-02-12 18:05:22 +01:00
adbenitez 8a2149b67d hide the Encryption category completed for chatmail accounts 2025-02-11 21:54:50 +01:00
17 changed files with 66 additions and 59 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ jobs:
uses: softprops/action-gh-release@v1
with:
token: "${{ secrets.GITHUB_TOKEN }}"
body: '[<img src="store/get-it-on-gplay.png" alt="Get it on Google Play" height="48">](https://play.google.com/store/apps/details?id=com.github.arcanechat) [<img src="store/get-it-on-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite) [<img src="store/get-it-on-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite) [<img src="store/get-it-on-apklis.png" alt="Disponible en Apklis" height="48">](https://www.apklis.cu/application/chat.delta.lite) [<img src="store/get-it-on-github.png" alt="Get it on GitHub" height="48">](https://github.com/ArcaneChat/android/releases/latest/download/ArcaneChat-gplay.apk)'
body: '[<img src="store/get-it-on-gplay.png" alt="Get it on Google Play" height="48">](https://play.google.com/store/apps/details?id=com.github.arcanechat) [<img src="store/get-it-on-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite) [<img src="store/get-it-on-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite) [<img src="store/get-it-on-github.png" alt="Get it on GitHub" height="48">](https://github.com/ArcaneChat/android/releases/latest/download/ArcaneChat-gplay.apk)'
prerelease: ${{ contains(github.event.ref, '-beta') }}
fail_on_unmatched_files: true
files: build/outputs/apk/foss/release/*.apk
-1
View File
@@ -5,7 +5,6 @@ A [Delta Chat](https://delta.chat/) client for Android. Learn more at: https://a
[<img src="store/get-it-on-gplay.png" alt="Get it on Google Play" height="48">](https://play.google.com/store/apps/details?id=com.github.arcanechat)
[<img src="store/get-it-on-fdroid.png" alt="Get it on F-Droid" height="48">](https://f-droid.org/packages/chat.delta.lite)
[<img src="store/get-it-on-IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height="48">](https://apt.izzysoft.de/fdroid/index/apk/chat.delta.lite)
[<img src="store/get-it-on-apklis.png" alt="Disponible en Apklis" height="48">](https://www.apklis.cu/application/chat.delta.lite)
[<img src="store/get-it-on-github.png" alt="Get it on GitHub" height="48">](https://github.com/ArcaneChat/android/releases/latest/download/ArcaneChat-gplay.apk)
+2 -2
View File
@@ -33,8 +33,8 @@ android {
useLibrary 'org.apache.http.legacy'
defaultConfig {
versionCode 30000710
versionName "1.54.0"
versionCode 30000711
versionName "1.54.1"
applicationId "chat.delta.lite"
multiDexEnabled true
Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 137 KiB

-7
View File
@@ -1,7 +0,0 @@
- nuovo inserimento: puoi creare un nuovo profilo con un tocco su "Crea Nuovo Profilo" - oppure utilizzare un accesso esistente o la configurazione del secondo dispositivo come al solito
i contatti possono essere allegati come "Schede" in "Allega/Contatto"; quando il destinatario tocca le carte, è possibile stabilire la crittografia end-to-end garantita
- aggiungi contatti manualmente in "Nuova Chat / Nuovo Contatto / Aggiungi Contatto Manualmente"
- invia qualsiasi emoji come reazione
- mostrare le reazioni nei riepiloghi
- blocca/archivia/ecc. le chat direttamente dai risultati di ricerca
- Risolti bug e altro ancora
-4
View File
@@ -1,4 +0,0 @@
- aggiungi un'opzione per contrassegnare tutte le chat selezionate come "Lette" (tocca a lungo una chat per avviare la modalità di selezione)
- i nuovi profili chatmail per dispositivo singolo hanno come impostazione predefinita "Elimina Messaggi Dopo il Download"
- quando si utilizza un profilo chatmail su più dispositivi, la cancellazione viene modificata in "Automatica" (la strategia di cancellazione dipende quindi dal server)
- Risolti bug e altro ancora
@@ -17,22 +17,15 @@
*/
package org.thoughtcrime.securesms;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Build.VERSION;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
@@ -52,6 +45,7 @@ import org.thoughtcrime.securesms.preferences.CorrectedPreferenceFragment;
import org.thoughtcrime.securesms.preferences.NotificationsPreferenceFragment;
import org.thoughtcrime.securesms.preferences.widgets.ProfilePreference;
import org.thoughtcrime.securesms.util.DynamicTheme;
import org.thoughtcrime.securesms.util.IntentUtils;
import org.thoughtcrime.securesms.util.Prefs;
import org.thoughtcrime.securesms.qr.BackupTransferActivity;
import org.thoughtcrime.securesms.util.ScreenLockUtil;
@@ -74,6 +68,7 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
private static final String PREFERENCE_CATEGORY_MULTIDEVICE = "preference_category_multidevice";
private static final String PREFERENCE_CATEGORY_ADVANCED = "preference_category_advanced";
private static final String PREFERENCE_CATEGORY_CONNECTIVITY = "preference_category_connectivity";
private static final String PREFERENCE_CATEGORY_DONATE = "preference_category_donate";
private static final String PREFERENCE_CATEGORY_HELP = "preference_category_help";
public static final int REQUEST_CODE_SET_BACKGROUND = 11;
@@ -153,6 +148,9 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
this.findPreference(PREFERENCE_CATEGORY_ADVANCED)
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_ADVANCED));
this.findPreference(PREFERENCE_CATEGORY_DONATE)
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_DONATE));
this.findPreference(PREFERENCE_CATEGORY_HELP)
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_HELP));
@@ -203,38 +201,6 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
.setSummary(AdvancedPreferenceFragment.getVersion(getActivity()));
}
@TargetApi(11)
private void tintIcons(Context context) {
Drawable notifications = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_notifications_white_24dp));
Drawable swap = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_swap_vert_white_24dp));
Drawable appearance = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_brightness_6_white_24dp));
Drawable chats = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_forum_white_24dp));
Drawable privacy = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_lock_white_24dp));
Drawable advanced = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_advanced_white_24dp));
Drawable help = DrawableCompat.wrap(ContextCompat.getDrawable(context, R.drawable.ic_help_white_24dp));
int[] tintAttr = new int[]{R.attr.pref_icon_tint};
TypedArray typedArray = context.obtainStyledAttributes(tintAttr);
int color = typedArray.getColor(0, 0x0);
typedArray.recycle();
DrawableCompat.setTint(notifications, color);
DrawableCompat.setTint(swap, color);
DrawableCompat.setTint(appearance, color);
DrawableCompat.setTint(chats, color);
DrawableCompat.setTint(privacy, color);
DrawableCompat.setTint(advanced, color);
DrawableCompat.setTint(help, color);
this.findPreference(PREFERENCE_CATEGORY_NOTIFICATIONS).setIcon(notifications);
this.findPreference(PREFERENCE_CATEGORY_CONNECTIVITY).setIcon(swap);
this.findPreference(PREFERENCE_CATEGORY_APPEARANCE).setIcon(appearance);
this.findPreference(PREFERENCE_CATEGORY_CHATS).setIcon(chats);
this.findPreference(PREFERENCE_CATEGORY_PRIVACY).setIcon(privacy);
this.findPreference(PREFERENCE_CATEGORY_ADVANCED).setIcon(advanced);
this.findPreference(PREFERENCE_CATEGORY_HELP).setIcon(help);
}
private class CategoryClickListener implements Preference.OnPreferenceClickListener {
private final String category;
@@ -289,6 +255,9 @@ public class ApplicationPreferencesActivity extends PassphraseRequiredActionBarA
case PREFERENCE_CATEGORY_ADVANCED:
fragment = new AdvancedPreferenceFragment();
break;
case PREFERENCE_CATEGORY_DONATE:
IntentUtils.showInBrowser(requireActivity(), "https://arcanechat.me/#contribute");
break;
case PREFERENCE_CATEGORY_HELP:
startActivity(new Intent(getActivity(), LocalHelpActivity.class));
break;
@@ -11,6 +11,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.net.Uri;
import android.os.AsyncTask;
@@ -18,12 +19,16 @@ import android.os.Build;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.view.ActionMode;
import androidx.core.content.ContextCompat;
import androidx.core.content.pm.ShortcutInfoCompat;
import androidx.core.content.pm.ShortcutManagerCompat;
import androidx.core.graphics.drawable.IconCompat;
import androidx.fragment.app.Fragment;
import com.b44t.messenger.DcChat;
@@ -33,6 +38,7 @@ import com.google.android.material.snackbar.Snackbar;
import org.thoughtcrime.securesms.components.registration.PulsingFloatingActionButton;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.connect.DirectShareUtil;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.RelayUtil;
import org.thoughtcrime.securesms.util.SendRelayedMessageUtil;
import org.thoughtcrime.securesms.util.Util;
@@ -316,9 +322,37 @@ public abstract class BaseConversationListFragment extends Fragment implements A
updateActionModeItems(actionMode.getMenu());
}
private void handleAddToHomeScreen() {
final Activity activity = requireActivity();
final DcContext dcContext = DcHelper.getContext(activity);
final Set<Long> selectedChats = getListAdapter().getBatchSelections();
final DcChat chat = dcContext.getChat(selectedChats.iterator().next().intValue());
Intent intent = new Intent(activity, ShareActivity.class);
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(ShareActivity.EXTRA_ACC_ID, dcContext.getAccountId());
intent.putExtra(ShareActivity.EXTRA_CHAT_ID, chat.getId());
Recipient recipient = new Recipient(activity, chat);
Bitmap avatar = DirectShareUtil.getIconForShortcut(activity, recipient);
ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(activity, "chat-" + dcContext.getAccountId() + "-" + chat.getId())
.setShortLabel(chat.getName())
.setIcon(IconCompat.createWithAdaptiveBitmap(avatar))
.setIntent(intent)
.build();
if (!ShortcutManagerCompat.requestPinShortcut(activity, shortcutInfoCompat, null)) {
Toast.makeText(activity, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show();
} else if (actionMode != null) {
actionMode.finish();
actionMode = null;
}
}
private void updateActionModeItems(Menu menu) {
// We do not show action mode icons when relaying (= sharing or forwarding).
if (!isRelayingMessageContent(requireActivity())) {
final int selectedCount = getListAdapter().getBatchSelections().size();
menu.findItem(R.id.menu_add_to_home_screen).setVisible(selectedCount == 1);
MenuItem archiveItem = menu.findItem(R.id.menu_archive_selected);
if (offerToArchive()) {
archiveItem.setIcon(R.drawable.ic_archive_white_24dp);
@@ -383,6 +417,7 @@ public abstract class BaseConversationListFragment extends Fragment implements A
case R.id.menu_archive_selected: handleArchiveAllSelected(); return true;
case R.id.menu_mute_selected: handleMuteAllSelected(); return true;
case R.id.menu_marknoticed_selected: handleMarknoticedSelected(); return true;
case R.id.menu_add_to_home_screen: handleAddToHomeScreen(); return true;
}
return false;
@@ -52,7 +52,8 @@ public class DcContactsLoader extends AsyncLoader<DcContactsLoader.Ret> {
}
if (query == null && addCreateGroupLinks) {
additional_items = Util.appendInt(additional_items, DcContact.DC_CONTACT_ID_NEW_GROUP);
additional_items = Util.appendInt(additional_items, DcContact.DC_CONTACT_ID_NEW_BROADCAST_LIST);
final boolean broadcastsEnabled = !dcContext.isChatmail();
if (broadcastsEnabled) additional_items = Util.appendInt(additional_items, DcContact.DC_CONTACT_ID_NEW_BROADCAST_LIST);
}
int all_ids[] = new int[contact_ids.length + additional_items.length];
System.arraycopy(additional_items, 0, all_ids, 0, additional_items.length);
@@ -144,7 +144,7 @@ public class DirectShareUtil {
return results;
}
private static Bitmap getIconForShortcut(@NonNull Context context, @NonNull Recipient recipient) {
public static Bitmap getIconForShortcut(@NonNull Context context, @NonNull Recipient recipient) {
try {
return getShortcutInfoBitmap(context, recipient);
} catch (ExecutionException | InterruptedException | NullPointerException e) {
@@ -176,7 +176,7 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
}));
if (dcContext.isChatmail()) {
preferE2eeCheckbox.setVisible(false);
this.findPreference("pref_category_encryption").setVisible(false);
bccSelfCheckbox.setVisible(false);
mvboxMoveCheckbox.setVisible(false);
onlyFetchMvboxCheckbox.setVisible(false);
+3
View File
@@ -0,0 +1,3 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/pref_icon_tint" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M13.35,20.13c-0.76,0.69 -1.93,0.69 -2.69,-0.01l-0.11,-0.1C5.3,15.27 1.87,12.16 2,8.28c0.06,-1.7 0.93,-3.33 2.34,-4.29 2.64,-1.8 5.9,-0.96 7.66,1.1 1.76,-2.06 5.02,-2.91 7.66,-1.1 1.41,0.96 2.28,2.59 2.34,4.29 0.14,3.88 -3.3,6.99 -8.55,11.76l-0.1,0.09z"/>
</vector>
+4
View File
@@ -25,6 +25,10 @@
android:id="@+id/menu_marknoticed_selected"
app:showAsAction="never"/>
<item android:title="@string/add_to_home_screen"
android:id="@+id/menu_add_to_home_screen"
app:showAsAction="never"/>
<item android:title="@string/menu_select_all"
android:id="@+id/menu_select_all"
app:showAsAction="never"/>
+5
View File
@@ -40,6 +40,11 @@
android:icon="@drawable/ic_advanced_24dp"
android:layout="@layout/preference_item" />
<Preference android:key="preference_category_donate"
android:title="@string/donate"
android:icon="@drawable/ic_donate_24dp"
android:layout="@layout/preference_item" />
<Preference android:key="preference_category_help"
android:title="@string/menu_help"
android:icon="@drawable/ic_help_24dp"
+3 -1
View File
@@ -38,7 +38,9 @@
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_encryption">
<PreferenceCategory
android:key="pref_category_encryption"
android:title="@string/pref_encryption">
<org.thoughtcrime.securesms.components.SwitchPreferenceCompat
android:defaultValue="true"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB