Merge remote-tracking branch 'upstream/main'

This commit is contained in:
adbenitez
2026-05-26 17:04:57 +02:00
38 changed files with 114 additions and 41 deletions
@@ -23,7 +23,6 @@ import android.content.Context;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -61,7 +60,6 @@ public class ConversationListFragment extends BaseConversationListFragment
private RecyclerView list;
private View emptyState;
private TextView emptySearch;
private final String queryFilter = "";
private boolean archive;
private Timer reloadTimer;
private boolean chatlistJustLoaded;
@@ -285,22 +283,17 @@ public class ConversationListFragment extends BaseConversationListFragment
Log.w(TAG, "Ignoring call to loadChatlist()");
return;
}
DcChatlist chatlist =
DcHelper.getContext(context)
.getChatlist(listflags, queryFilter.isEmpty() ? null : queryFilter, 0);
long startMs = System.currentTimeMillis();
DcChatlist chatlist = DcHelper.getContext(context).getChatlist(listflags, null, 0);
Log.i(TAG, "⏰ getChatlist(): " + (System.currentTimeMillis() - startMs) + "ms");
Util.runOnMain(
() -> {
if (chatlist.getCnt() <= 0 && TextUtils.isEmpty(queryFilter)) {
if (chatlist.getCnt() <= 0) {
list.setVisibility(View.INVISIBLE);
emptyState.setVisibility(View.VISIBLE);
emptySearch.setVisibility(View.INVISIBLE);
fab.startPulse(3 * 1000);
} else if (chatlist.getCnt() <= 0 && !TextUtils.isEmpty(queryFilter)) {
list.setVisibility(View.INVISIBLE);
emptyState.setVisibility(View.GONE);
emptySearch.setVisibility(View.VISIBLE);
emptySearch.setText(getString(R.string.search_no_result_for_x, queryFilter));
} else {
list.setVisibility(View.VISIBLE);
emptyState.setVisibility(View.GONE);
@@ -55,6 +55,7 @@ public class DcHelper {
public static final String CONFIG_PRIVATE_TAG = "private_tag";
public static final String CONFIG_STATS_SENDING = "stats_sending";
public static final String CONFIG_STATS_ID = "stats_id";
public static final String CONFIG_FORCE_ENCRYPTION = "force_encryption";
public static DcContext getContext(@NonNull Context context) {
return ApplicationContext.getInstance(context).getDcContext();
@@ -23,6 +23,7 @@ import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.SwitchCompat;
import androidx.constraintlayout.widget.Group;
import chat.delta.rpc.Rpc;
import chat.delta.rpc.RpcException;
@@ -75,6 +76,7 @@ public class EditRelayActivity extends BaseActionBarActivity
Spinner imapSecurity;
Spinner smtpSecurity;
Spinner certCheck;
private SwitchCompat enforceE2eeSwitch;
Rpc rpc;
int accId;
@@ -110,6 +112,7 @@ public class EditRelayActivity extends BaseActionBarActivity
imapSecurity = findViewById(R.id.imap_security);
smtpSecurity = findViewById(R.id.smtp_security);
certCheck = findViewById(R.id.cert_check);
enforceE2eeSwitch = findViewById(R.id.enforce_e2ee_switch);
String addr = getIntent().getStringExtra(EXTRA_ADDR);
EnteredLoginParam config = null;
@@ -173,6 +176,10 @@ public class EditRelayActivity extends BaseActionBarActivity
boolean expandAdvanced = false;
int intVal;
intVal = getContext(this).getConfigInt(DcHelper.CONFIG_FORCE_ENCRYPTION);
enforceE2eeSwitch.setChecked(intVal == 1);
expandAdvanced = expandAdvanced || intVal == 0;
if (config != null) { // configured
emailInput.setText(config.addr);
if (!TextUtils.isEmpty(config.addr)) {
@@ -500,9 +507,12 @@ public class EditRelayActivity extends BaseActionBarActivity
param.smtpPassword = getParam(R.id.smtp_password_text, false);
param.certificateChecks = certificateChecksFromInt(certCheck.getSelectedItemPosition());
final String forceEncryption = enforceE2eeSwitch.isChecked() ? "1" : "0";
new Thread(
() -> {
try {
rpc.setConfig(accId, DcHelper.CONFIG_FORCE_ENCRYPTION, forceEncryption);
rpc.addOrUpdateTransport(accId, param);
DcHelper.getEventCenter(this).endCaptureNextError();
progressDialog.dismiss();