diff --git a/CHANGELOG.md b/CHANGELOG.md
index f65430184..02fa2b571 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
# Delta Chat Android Changelog
+## v1.46.14
+2024-09
+
+* add monochrome/themed launcher icon support
+* allow to remove the selected profile in "Switch Profile" dialog
+* improve display of selected profile in "Switch Profile" dialog
+* improve the hit/tap area to open "Switch Profile" dialog in the main screen's toolbar
+* add support for system per-app language and remove in-app language selector
+* remove the experimental "encrypt database" checkbox in classic registration screen
+* fix various bugs
+* update to core 1.142.12
+
+
## v1.46.13
2024-08
diff --git a/jni/deltachat-core-rust b/jni/deltachat-core-rust
index 17bddd60a..2aa5637bf 160000
--- a/jni/deltachat-core-rust
+++ b/jni/deltachat-core-rust
@@ -1 +1 @@
-Subproject commit 17bddd60a80fe19cc4759214b1ebd7497017f9b8
+Subproject commit 2aa5637bf41a7af198b76f3f81d671dc9552bcac
diff --git a/metadata/it/changelogs/6864.txt b/metadata/it/changelogs/6864.txt
new file mode 100644
index 000000000..ab3bcb224
--- /dev/null
+++ b/metadata/it/changelogs/6864.txt
@@ -0,0 +1,7 @@
+- 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
diff --git a/metadata/it/changelogs/6904.txt b/metadata/it/changelogs/6904.txt
new file mode 100644
index 000000000..a6cffadc4
--- /dev/null
+++ b/metadata/it/changelogs/6904.txt
@@ -0,0 +1,4 @@
+- 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
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index cd5d48f9a..b596667e3 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -262,6 +262,11 @@
+
+
= 34) {
- ActionBar supportActionBar = getSupportActionBar();
- if (supportActionBar != null && container.isKeyboardOpen()) {
- PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
- if (!pm.isInteractive()) {
- supportActionBar.hide();
- }
- }
- }
- }
-
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.i(TAG, "onConfigurationChanged(" + newConfig.orientation + ")");
diff --git a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java
index 419b519a1..801fc0c66 100644
--- a/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java
+++ b/src/main/java/org/thoughtcrime/securesms/ConversationListActivity.java
@@ -20,6 +20,7 @@ import static org.thoughtcrime.securesms.ConversationActivity.CHAT_ID_EXTRA;
import static org.thoughtcrime.securesms.ConversationActivity.STARTING_POSITION_EXTRA;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_ADDRESS;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SERVER_FLAGS;
+import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_ENABLED;
import static org.thoughtcrime.securesms.util.RelayUtil.acquireRelayMessageContent;
import static org.thoughtcrime.securesms.util.RelayUtil.getDirectSharingChatId;
import static org.thoughtcrime.securesms.util.RelayUtil.getSharedTitle;
@@ -265,7 +266,7 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
DcContext dcContext = DcHelper.getContext(this);
int accountId = getIntent().getIntExtra(ACCOUNT_ID_EXTRA, dcContext.getAccountId());
if (getIntent().getBooleanExtra(CLEAR_NOTIFICATIONS, false)) {
- DcHelper.getNotificationCenter(this).removeAllNotifiations(accountId);
+ DcHelper.getNotificationCenter(this).removeAllNotifications(accountId);
}
if (accountId != dcContext.getAccountId()) {
AccountManager.getInstance().switchAccountAndStartActivity(this, accountId);
@@ -312,6 +313,8 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
}
public void refreshAvatar() {
+ if (selfAvatarContainer == null) return;
+
if (isRelayingMessageContent(this)) {
selfAvatarContainer.setVisibility(View.GONE);
} else {
@@ -377,19 +380,13 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
if (!isRelayingMessageContent(this)) {
inflater.inflate(R.menu.text_secure_normal, menu);
- MenuItem item = menu.findItem(R.id.menu_global_map);
- if (Prefs.isLocationStreamingEnabled(this)) {
- item.setVisible(true);
- }
-
- if (!Prefs.isLocationStreamingEnabled(this)) {
- menu.findItem(R.id.menu_global_map).setVisible(false);
- }
+ menu.findItem(R.id.menu_global_map).setVisible(Prefs.isLocationStreamingEnabled(this));
+ menu.findItem(R.id.menu_proxy_settings).setVisible(DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED) == 1);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- MenuCompat.setGroupDividerEnabled(menu, true);
- } else{
- menu.setGroupVisible(R.id.extra_services, false);
+ MenuCompat.setGroupDividerEnabled(menu, true);
+ } else {
+ menu.setGroupVisible(R.id.extra_services, false);
}
}
@@ -453,6 +450,9 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit
case R.id.menu_global_map:
WebxdcActivity.openMaps(this, 0);
return true;
+ case R.id.menu_proxy_settings:
+ startActivity(new Intent(this, ProxySettingsActivity.class));
+ return true;
case android.R.id.home:
onBackPressed();
return true;
diff --git a/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java b/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java
index 165212570..d3ec68551 100644
--- a/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java
+++ b/src/main/java/org/thoughtcrime/securesms/InstantOnboardingActivity.java
@@ -13,6 +13,7 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.text.util.Linkify;
import android.util.Log;
+import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
@@ -132,13 +133,29 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
handleIntent();
}
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ menu.clear();
+ getMenuInflater().inflate(R.menu.instant_onboarding_menu, menu);
+ return super.onPrepareOptionsMenu(menu);
+ }
+
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
super.onOptionsItemSelected(item);
- if (item.getItemId() == android.R.id.home) {
+
+ switch (item.getItemId()) {
+ case android.R.id.home:
getOnBackPressedDispatcher().onBackPressed();
return true;
+ case R.id.menu_proxy_settings:
+ startActivity(new Intent(this, ProxySettingsActivity.class));
+ return true;
+ case R.id.menu_view_log:
+ startActivity(new Intent(this, LogViewActivity.class));
+ return true;
}
+
return false;
}
@@ -369,7 +386,7 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
private void progressError(String data2) {
progressDialog.dismiss();
- maybeShowConfigurationError(this, data2);
+ WelcomeActivity.maybeShowConfigurationError(this, data2);
}
private void progressSuccess() {
@@ -382,22 +399,6 @@ public class InstantOnboardingActivity extends BaseActionBarActivity implements
finishAffinity();
}
- public static void maybeShowConfigurationError(Activity activity, String data2) {
- if (data2 != null && !data2.isEmpty()) {
- AlertDialog d = new AlertDialog.Builder(activity)
- .setMessage(data2)
- .setPositiveButton(android.R.string.ok, null)
- .create();
- d.show();
- try {
- //noinspection ConstantConditions
- Linkify.addLinks((TextView) d.findViewById(android.R.id.message), Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES);
- } catch(NullPointerException e) {
- Log.e(TAG, "Linkify failed", e);
- }
- }
- }
-
@SuppressLint("StaticFieldLeak")
private void createProfile() {
if (TextUtils.isEmpty(this.name.getText())) {
diff --git a/src/main/java/org/thoughtcrime/securesms/LogViewFragment.java b/src/main/java/org/thoughtcrime/securesms/LogViewFragment.java
index 89b3b6117..17ce31e42 100644
--- a/src/main/java/org/thoughtcrime/securesms/LogViewFragment.java
+++ b/src/main/java/org/thoughtcrime/securesms/LogViewFragment.java
@@ -17,6 +17,7 @@
package org.thoughtcrime.securesms;
+import android.Manifest;
import android.annotation.TargetApi;
import android.app.ActivityManager;
import android.content.Context;
@@ -35,6 +36,7 @@ import android.view.ViewGroup;
import android.widget.EditText;
import androidx.annotation.NonNull;
+import androidx.core.content.PermissionChecker;
import androidx.fragment.app.Fragment;
import com.b44t.messenger.DcContext;
@@ -256,6 +258,8 @@ public class LogViewFragment extends Fragment {
}
final String token = FcmReceiveService.getToken();
+ boolean notifPermGranted = PermissionChecker.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) == PermissionChecker.PERMISSION_GRANTED;
+ builder.append("post-notifications-granted=").append(notifPermGranted).append("\n");
builder.append("push-enabled=").append(Prefs.isPushEnabled(context)).append("\n");
builder.append("push-token=").append(token == null ? "" : token).append("\n");
} catch (Exception e) {
diff --git a/src/main/java/org/thoughtcrime/securesms/ProxySettingsActivity.java b/src/main/java/org/thoughtcrime/securesms/ProxySettingsActivity.java
new file mode 100644
index 000000000..d88f66073
--- /dev/null
+++ b/src/main/java/org/thoughtcrime/securesms/ProxySettingsActivity.java
@@ -0,0 +1,160 @@
+package org.thoughtcrime.securesms;
+
+import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_ENABLED;
+import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_HOST;
+import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_PASSWORD;
+import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_PORT;
+import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SOCKS5_USER;
+
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Patterns;
+import android.view.MenuItem;
+import android.view.View;
+
+import androidx.annotation.IdRes;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.widget.SwitchCompat;
+import androidx.constraintlayout.widget.Group;
+
+import com.b44t.messenger.DcContext;
+import com.google.android.material.textfield.TextInputEditText;
+
+import org.thoughtcrime.securesms.connect.DcHelper;
+import org.thoughtcrime.securesms.util.DynamicTheme;
+
+public class ProxySettingsActivity extends BaseActionBarActivity {
+
+ private enum VerificationType {
+ SERVER,
+ PORT,
+ }
+
+ private final DynamicTheme dynamicTheme = new DynamicTheme();
+
+ private SwitchCompat proxySwitch;
+ private Group proxyGroup;
+
+ @Override
+ public void onCreate(Bundle bundle) {
+ super.onCreate(bundle);
+ dynamicTheme.onCreate(this);
+ setContentView(R.layout.proxy_settings_activity);
+
+ ActionBar actionBar = getSupportActionBar();
+ if (actionBar != null) {
+ actionBar.setTitle(R.string.proxy_settings);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
+
+ proxyGroup = findViewById(R.id.proxy_group);
+
+ proxySwitch = findViewById(R.id.proxy_switch);
+ proxySwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ proxyGroup.setVisibility(isChecked? View.VISIBLE : View.GONE);
+ });
+ proxySwitch.setChecked(DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED) == 1);
+
+ TextInputEditText proxyHostInput = findViewById(R.id.proxy_host_text);
+ proxyHostInput.setOnFocusChangeListener((view, focused) -> focusListener(view, focused, VerificationType.SERVER));
+ proxyHostInput.setText(DcHelper.get(this, CONFIG_SOCKS5_HOST));
+
+ TextInputEditText proxyPortInput = findViewById(R.id.proxy_port_text);
+ proxyPortInput.setOnFocusChangeListener((view, focused) -> focusListener(view, focused, VerificationType.PORT));
+ proxyPortInput.setText(DcHelper.get(this, CONFIG_SOCKS5_PORT));
+
+ TextInputEditText proxyUserInput = findViewById(R.id.proxy_user_text);
+ proxyUserInput.setText(DcHelper.get(this, CONFIG_SOCKS5_USER));
+
+ TextInputEditText proxyPasswordInput = findViewById(R.id.proxy_password_text);
+ proxyPasswordInput.setText(DcHelper.get(this, CONFIG_SOCKS5_PASSWORD));
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ dynamicTheme.onResume(this);
+ }
+
+ public boolean onOptionsItemSelected(MenuItem item) {
+ int id = item.getItemId();
+ if (id == android.R.id.home) {
+ finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ saveConfig();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ saveConfig();
+ }
+
+ private void focusListener(View view, boolean focused, VerificationType type) {
+
+ if (!focused) {
+ TextInputEditText inputEditText = (TextInputEditText) view;
+ switch (type) {
+ case SERVER:
+ verifyServer(inputEditText);
+ break;
+ case PORT:
+ verifyPort(inputEditText);
+ break;
+ }
+ }
+ }
+
+ private void verifyServer(TextInputEditText view) {
+ String server = view.getText().toString();
+ if (!TextUtils.isEmpty(server) && !Patterns.DOMAIN_NAME.matcher(server).matches()
+ && !Patterns.IP_ADDRESS.matcher(server).matches()
+ && !Patterns.WEB_URL.matcher(server).matches()
+ && !"localhost".equals(server)) {
+ view.setError(getString(R.string.login_error_server));
+ }
+ }
+
+ private void verifyPort(TextInputEditText view) {
+ String portString = view.getText().toString();
+ if (!portString.isEmpty()) {
+ String error = getString(R.string.login_error_port);
+ try {
+ int port = Integer.valueOf(portString);
+ if (port < 1 || port > 65535) {
+ view.setError(error);
+ }
+ } catch (NumberFormatException exception) {
+ view.setError(error);
+ }
+ }
+ }
+
+ private void saveConfig() {
+ DcContext dcContext = DcHelper.getContext(this);
+ dcContext.setConfigInt(CONFIG_SOCKS5_ENABLED, proxySwitch.isChecked()? 1 : 0);
+ setConfig(R.id.proxy_host_text, CONFIG_SOCKS5_HOST, true);
+ setConfig(R.id.proxy_port_text, CONFIG_SOCKS5_PORT, true);
+ setConfig(R.id.proxy_user_text, CONFIG_SOCKS5_USER, true);
+ setConfig(R.id.proxy_password_text, CONFIG_SOCKS5_PASSWORD, false);
+ dcContext.stopIo();
+ dcContext.startIo();
+ }
+
+ private void setConfig(@IdRes int viewId, String configTarget, boolean doTrim) {
+ TextInputEditText view = findViewById(viewId);
+ String value = view.getText().toString();
+ if(doTrim) {
+ value = value.trim();
+ }
+ DcHelper.getContext(this).setConfig(configTarget, value.isEmpty()? null : value);
+ }
+
+}
diff --git a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java
index f41c22896..8a5eb6f9e 100644
--- a/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java
+++ b/src/main/java/org/thoughtcrime/securesms/RegistrationActivity.java
@@ -96,7 +96,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
Spinner certCheck;
private SwitchCompat proxySwitch;
- private Group proxyGroup;
@Override
public void onCreate(Bundle bundle) {
@@ -127,15 +126,11 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
authMethod = findViewById(R.id.auth_method);
certCheck = findViewById(R.id.cert_check);
- proxyGroup = findViewById(R.id.socks5_group);
- proxySwitch = findViewById(R.id.socks5_switch);
- proxySwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
- proxyGroup.setVisibility(isChecked? advancedGroup.getVisibility() : View.GONE);
+ proxySwitch = findViewById(R.id.proxy_settings);
+ proxySwitch.setOnClickListener(l -> {
+ proxySwitch.setChecked(!proxySwitch.isChecked()); // revert toggle
+ startActivity(new Intent(this, ProxySettingsActivity.class));
});
- TextInputEditText proxyHostInput = findViewById(R.id.socks5_host_text);
- TextInputEditText proxyPortInput = findViewById(R.id.socks5_port_text);
- proxyHostInput.setOnFocusChangeListener((view, focused) -> focusListener(view, focused, VerificationType.SERVER));
- proxyPortInput.setOnFocusChangeListener((view, focused) -> focusListener(view, focused, VerificationType.PORT));
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
@@ -161,7 +156,16 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
advancedIcon.setOnClickListener(l -> onAdvancedSettings());
advancedIcon.setRotation(45);
viewLogText.setOnClickListener((view) -> showLog());
+
boolean isConfigured = DcHelper.isConfigured(getApplicationContext());
+ boolean expandAdvanced = false;
+ String strVal;
+ int intVal;
+
+ intVal = DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED);
+ proxySwitch.setChecked(intVal == 1);
+ expandAdvanced = expandAdvanced || intVal == 1;
+
if (isConfigured) {
String email = DcHelper.get(this, CONFIG_ADDRESS);
emailInput.setText(email);
@@ -170,10 +174,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
}
passwordInput.setText(DcHelper.get(this, CONFIG_MAIL_PASSWORD));
- boolean expandAdvanced = false;
- String strVal;
- int intVal;
-
TextInputEditText imapLoginInput = findViewById(R.id.imap_login_text);
strVal = DcHelper.get(this, CONFIG_MAIL_USER);
imapLoginInput.setText(strVal);
@@ -213,17 +213,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
smtpSecurity.setSelection(intVal);
expandAdvanced = expandAdvanced || intVal != 0;
- intVal = DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED);
- proxySwitch.setChecked(intVal == 1);
- expandAdvanced = expandAdvanced || intVal == 1;
-
- proxyHostInput.setText(DcHelper.get(this, CONFIG_SOCKS5_HOST));
- proxyPortInput.setText(DcHelper.get(this, CONFIG_SOCKS5_PORT));
- TextInputEditText proxyUserInput = findViewById(R.id.socks5_user_text);
- TextInputEditText proxyPasswordInput = findViewById(R.id.socks5_password_text);
- proxyUserInput.setText(DcHelper.get(this, CONFIG_SOCKS5_USER));
- proxyPasswordInput.setText(DcHelper.get(this, CONFIG_SOCKS5_PASSWORD));
-
int serverFlags = DcHelper.getInt(this, CONFIG_SERVER_FLAGS);
int sel = 0;
if((serverFlags&DcContext.DC_LP_AUTH_OAUTH2)!=0) {
@@ -242,8 +231,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
int certCheckFlags = DcHelper.getInt(this, "imap_certificate_checks");
certCheck.setSelection(certCheckFlags);
expandAdvanced = expandAdvanced || certCheckFlags != 0;
-
- if (expandAdvanced) { onAdvancedSettings(); }
} else if (getIntent() != null && getIntent().getBundleExtra(ACCOUNT_DATA) != null) {
// Companion app might have sent account data
Bundle b = getIntent().getBundleExtra(ACCOUNT_DATA);
@@ -261,6 +248,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
}
}
+ if (expandAdvanced) { onAdvancedSettings(); }
registerForEvents();
}
@@ -272,6 +260,7 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
public void onResume() {
super.onResume();
dynamicTheme.onResume(this);
+ proxySwitch.setChecked(DcHelper.getInt(this, CONFIG_SOCKS5_ENABLED) == 1);
}
private void showLog() {
@@ -574,12 +563,10 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
private void onAdvancedSettings() {
boolean advancedViewVisible = advancedGroup.getVisibility() == View.VISIBLE;
if (advancedViewVisible) {
- proxyGroup.setVisibility(View.GONE);
advancedGroup.setVisibility(View.GONE);
advancedIcon.setRotation(45);
} else {
advancedGroup.setVisibility(View.VISIBLE);
- if (proxySwitch.isChecked()) proxyGroup.setVisibility(View.VISIBLE);
advancedIcon.setRotation(0);
}
}
@@ -621,15 +608,6 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
setConfig(R.id.smtp_port_text, CONFIG_SEND_PORT, true);
setConfig(R.id.smtp_login_text, CONFIG_SEND_USER, false);
setConfig(R.id.smtp_password_text, CONFIG_SEND_PASSWORD, false);
- if (proxySwitch.isChecked()) {
- DcHelper.getContext(this).setConfigInt(CONFIG_SOCKS5_ENABLED, 1);
- setConfig(R.id.socks5_host_text, CONFIG_SOCKS5_HOST, true);
- setConfig(R.id.socks5_port_text, CONFIG_SOCKS5_PORT, true);
- setConfig(R.id.socks5_user_text, CONFIG_SOCKS5_USER, true);
- setConfig(R.id.socks5_password_text, CONFIG_SOCKS5_PASSWORD, false);
- } else {
- DcHelper.getContext(this).setConfigInt(CONFIG_SOCKS5_ENABLED, 0);
- }
DcHelper.getContext(this).setConfigInt(CONFIG_MAIL_SECURITY, imapSecurity.getSelectedItemPosition());
DcHelper.getContext(this).setConfigInt(CONFIG_SEND_SECURITY, smtpSecurity.getSelectedItemPosition());
diff --git a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java
index df26e9459..82e8ec163 100644
--- a/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java
+++ b/src/main/java/org/thoughtcrime/securesms/WelcomeActivity.java
@@ -279,6 +279,8 @@ public class WelcomeActivity extends BaseActionBarActivity implements DcEventCen
}
public static void maybeShowConfigurationError(Activity activity, String data2) {
+ if (activity.isFinishing()) return; // avoid android.view.WindowManager$BadTokenException
+
if (data2 != null && !data2.isEmpty()) {
AlertDialog d = new AlertDialog.Builder(activity)
.setMessage(data2)
diff --git a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java
index 7f8958250..d81ca5126 100644
--- a/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java
+++ b/src/main/java/org/thoughtcrime/securesms/accounts/AccountSelectionListFragment.java
@@ -4,10 +4,12 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
+import android.text.TextUtils;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
+import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
@@ -16,15 +18,20 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.b44t.messenger.DcAccounts;
+import com.b44t.messenger.DcContact;
import com.b44t.messenger.DcContext;
import com.b44t.messenger.DcEvent;
+import com.b44t.messenger.rpc.Rpc;
+import com.b44t.messenger.rpc.RpcException;
import org.thoughtcrime.securesms.ConnectivityActivity;
import org.thoughtcrime.securesms.R;
+import org.thoughtcrime.securesms.components.AvatarView;
import org.thoughtcrime.securesms.connect.AccountManager;
import org.thoughtcrime.securesms.connect.DcEventCenter;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.mms.GlideApp;
+import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.util.ViewUtil;
@@ -134,13 +141,38 @@ public class AccountSelectionListFragment extends DialogFragment implements DcEv
AccountSelectionListFragment.this.dismiss();
if (activity == null) return;
DcAccounts accounts = DcHelper.getAccounts(activity);
+ Rpc rpc = DcHelper.getRpc(activity);
+
+ View dialogView = View.inflate(activity, R.layout.dialog_delete_profile, null);
+ AvatarView avatar = dialogView.findViewById(R.id.avatar);
+ TextView nameView = dialogView.findViewById(R.id.name);
+ TextView addrView = dialogView.findViewById(R.id.address);
+ TextView sizeView = dialogView.findViewById(R.id.size_label);
+ TextView description = dialogView.findViewById(R.id.description);
+ DcContext dcContext = accounts.getAccount(accountId);
+ String name = dcContext.getConfig("displayname");
+ DcContact contact = dcContext.getContact(DcContact.DC_CONTACT_ID_SELF);
+ if (TextUtils.isEmpty(name)) {
+ name = contact.getAddr();
+ }
+ Recipient recipient = new Recipient(getContext(), contact, name);
+ avatar.setAvatar(GlideApp.with(activity), recipient, false);
+ nameView.setText(name);
+ addrView.setText(contact.getAddr());
+ try {
+ sizeView.setText(Util.getPrettyFileSize(rpc.getAccountFileSize(accountId)));
+ } catch (RpcException e) {
+ e.printStackTrace();
+ }
+ description.setText(activity.getString(R.string.delete_account_explain_with_name, name));
+
AlertDialog dialog = new AlertDialog.Builder(activity)
- .setTitle(accounts.getAccount(accountId).getNameNAddr())
- .setMessage(R.string.forget_login_confirmation_desktop)
+ .setTitle(R.string.delete_account)
+ .setView(dialogView)
.setNegativeButton(R.string.cancel, (d, which) -> AccountManager.getInstance().showSwitchAccountMenu(activity))
.setPositiveButton(R.string.delete, (d2, which2) -> {
boolean selected = accountId == accounts.getSelectedAccount().getAccountId();
- DcHelper.getNotificationCenter(activity).removeAllNotifiations(accountId);
+ DcHelper.getNotificationCenter(activity).removeAllNotifications(accountId);
accounts.removeAccount(accountId);
if (selected) {
DcContext selAcc = accounts.getSelectedAccount();
diff --git a/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java b/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java
index 788dd95ff..7c489a484 100644
--- a/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java
+++ b/src/main/java/org/thoughtcrime/securesms/mms/AttachmentManager.java
@@ -638,14 +638,12 @@ public class AttachmentManager {
private class EditButtonListener implements View.OnClickListener {
@Override
public void onClick(View v) {
- if (Build.VERSION.SDK_INT >= 19) {
+ Uri imgUri = getSlideUri();
+ if (imgUri != null) {
Intent intent = new Intent(context, ScribbleActivity.class);
- intent.setData(getSlideUri());
+ intent.setData(imgUri);
((Activity) context).startActivityForResult(intent, ScribbleActivity.SCRIBBLE_REQUEST_CODE);
}
- else {
- Toast.makeText(context, "Image editing requires Android 4.4 KitKat or newer.", Toast.LENGTH_LONG).show();
- }
}
}
diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java b/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java
index 2001d3d00..3e569c744 100644
--- a/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java
+++ b/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java
@@ -8,6 +8,8 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import com.b44t.messenger.DcContext;
+
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.util.Util;
@@ -16,6 +18,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
public static final String CANCEL_ACTION = "org.thoughtcrime.securesms.notifications.CANCEL";
public static final String ACCOUNT_ID_EXTRA = "account_id";
public static final String CHAT_ID_EXTRA = "chat_id";
+ public static final String MSG_ID_EXTRA = "msg_id";
@Override
public void onReceive(final Context context, Intent intent) {
@@ -26,6 +29,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
final int accountId = intent.getIntExtra(ACCOUNT_ID_EXTRA, 0);
final int chatId = intent.getIntExtra(CHAT_ID_EXTRA, DC_CHAT_NO_CHAT);
+ final int msgId = intent.getIntExtra(MSG_ID_EXTRA, 0);
if (accountId == 0 || chatId == DC_CHAT_NO_CHAT) {
return;
}
@@ -33,7 +37,9 @@ public class MarkReadReceiver extends BroadcastReceiver {
Util.runOnAnyBackgroundThread(() -> {
DcHelper.getNotificationCenter(context).removeNotifications(accountId, chatId);
if (markNoticed) {
- DcHelper.getAccounts(context).getAccount(accountId).marknoticedChat(chatId);
+ DcContext dcContext = DcHelper.getAccounts(context).getAccount(accountId);
+ dcContext.marknoticedChat(chatId);
+ dcContext.markseenMsgs(new int[]{msgId});
}
});
}
diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java
index c926031f9..683ada664 100644
--- a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java
+++ b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java
@@ -128,22 +128,24 @@ public class NotificationCenter {
.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT | IntentUtils.FLAG_MUTABLE());
}
- private PendingIntent getRemoteReplyIntent(ChatData chatData) {
+ private PendingIntent getRemoteReplyIntent(ChatData chatData, int msgId) {
Intent intent = new Intent(RemoteReplyReceiver.REPLY_ACTION);
intent.setClass(context, RemoteReplyReceiver.class);
intent.setData(Uri.parse("custom://"+chatData.accountId+"."+chatData.chatId));
intent.putExtra(RemoteReplyReceiver.ACCOUNT_ID_EXTRA, chatData.accountId);
intent.putExtra(RemoteReplyReceiver.CHAT_ID_EXTRA, chatData.chatId);
+ intent.putExtra(RemoteReplyReceiver.MSG_ID_EXTRA, msgId);
intent.setPackage(context.getPackageName());
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | IntentUtils.FLAG_MUTABLE());
}
- private PendingIntent getMarkAsReadIntent(ChatData chatData, boolean markNoticed) {
+ private PendingIntent getMarkAsReadIntent(ChatData chatData, int msgId, boolean markNoticed) {
Intent intent = new Intent(markNoticed? MarkReadReceiver.MARK_NOTICED_ACTION : MarkReadReceiver.CANCEL_ACTION);
intent.setClass(context, MarkReadReceiver.class);
intent.setData(Uri.parse("custom://"+chatData.accountId+"."+chatData.chatId));
intent.putExtra(MarkReadReceiver.ACCOUNT_ID_EXTRA, chatData.accountId);
intent.putExtra(MarkReadReceiver.CHAT_ID_EXTRA, chatData.chatId);
+ intent.putExtra(MarkReadReceiver.MSG_ID_EXTRA, msgId);
intent.setPackage(context.getPackageName());
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | IntentUtils.FLAG_MUTABLE());
}
@@ -379,7 +381,7 @@ public class NotificationCenter {
.setCategory(NotificationCompat.CATEGORY_MESSAGE)
.setOnlyAlertOnce(!signal)
.setContentText(line)
- .setDeleteIntent(getMarkAsReadIntent(chatData, false))
+ .setDeleteIntent(getMarkAsReadIntent(chatData, msgId, false))
.setContentIntent(getOpenChatIntent(chatData));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
@@ -450,11 +452,11 @@ public class NotificationCenter {
// if privacy options are enabled, the buttons are not added.
if (privacy.isDisplayContact() && privacy.isDisplayMessage()) {
try {
- PendingIntent inNotificationReplyIntent = getRemoteReplyIntent(chatData);
- PendingIntent markReadIntent = getMarkAsReadIntent(chatData, true);
+ PendingIntent inNotificationReplyIntent = getRemoteReplyIntent(chatData, msgId);
+ PendingIntent markReadIntent = getMarkAsReadIntent(chatData, msgId, true);
NotificationCompat.Action markAsReadAction = new NotificationCompat.Action(R.drawable.check,
- context.getString(R.string.notify_dismiss),
+ context.getString(R.string.mark_as_read_short),
markReadIntent);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
@@ -567,7 +569,7 @@ public class NotificationCenter {
} catch (Exception e) { Log.w(TAG, e); }
}
- public void removeAllNotifiations(int accountId) {
+ public void removeAllNotifications(int accountId) {
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
String tag = String.valueOf(accountId);
synchronized (inboxes) {
diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java b/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java
index 3233bd6d3..c010cc917 100644
--- a/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java
+++ b/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java
@@ -27,6 +27,7 @@ import android.os.Bundle;
import androidx.core.app.RemoteInput;
import com.b44t.messenger.DcContext;
+import com.b44t.messenger.DcMsg;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.util.Util;
@@ -41,6 +42,7 @@ public class RemoteReplyReceiver extends BroadcastReceiver {
public static final String REPLY_ACTION = "org.thoughtcrime.securesms.notifications.WEAR_REPLY";
public static final String ACCOUNT_ID_EXTRA = "account_id";
public static final String CHAT_ID_EXTRA = "chat_id";
+ public static final String MSG_ID_EXTRA = "msg_id";
public static final String EXTRA_REMOTE_REPLY = "extra_remote_reply";
@SuppressLint("StaticFieldLeak")
@@ -50,6 +52,7 @@ public class RemoteReplyReceiver extends BroadcastReceiver {
Bundle remoteInput = RemoteInput.getResultsFromIntent(intent);
final int accountId = intent.getIntExtra(ACCOUNT_ID_EXTRA, 0);
final int chatId = intent.getIntExtra(CHAT_ID_EXTRA, DC_CHAT_NO_CHAT);
+ final int msgId = intent.getIntExtra(MSG_ID_EXTRA, 0);
if (remoteInput == null || chatId == DC_CHAT_NO_CHAT || accountId == 0) return;
@@ -58,10 +61,17 @@ public class RemoteReplyReceiver extends BroadcastReceiver {
if (responseText != null) {
Util.runOnAnyBackgroundThread(() -> {
DcContext dcContext = DcHelper.getAccounts(context).getAccount(accountId);
+ dcContext.marknoticedChat(chatId);
+ dcContext.markseenMsgs(new int[]{msgId});
if (dcContext.getChat(chatId).isContactRequest()) {
dcContext.acceptChat(chatId);
}
- dcContext.sendTextMsg(chatId, responseText.toString());
+
+ DcMsg msg = new DcMsg(dcContext, DcMsg.DC_MSG_TEXT);
+ msg.setText(responseText.toString());
+ msg.setQuote(dcContext.getMsg(msgId));
+ dcContext.sendMsg(chatId, msg);
+
DcHelper.getNotificationCenter(context).removeNotifications(accountId, chatId);
});
}
diff --git a/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java
index a787510bc..8fc8cf406 100644
--- a/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java
+++ b/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java
@@ -35,6 +35,7 @@ import com.b44t.messenger.rpc.RpcException;
import org.thoughtcrime.securesms.ApplicationPreferencesActivity;
import org.thoughtcrime.securesms.ConversationActivity;
import org.thoughtcrime.securesms.LogViewActivity;
+import org.thoughtcrime.securesms.ProxySettingsActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.RegistrationActivity;
import org.thoughtcrime.securesms.connect.DcEventCenter;
@@ -157,6 +158,11 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
return true;
}));
+ this.findPreference("proxy_settings_button").setOnPreferenceClickListener((preference) -> {
+ startActivity(new Intent(getActivity(), ProxySettingsActivity.class));
+ return true;
+ });
+
Preference passwordAndAccount = this.findPreference("password_account_settings_button");
passwordAndAccount.setOnPreferenceClickListener(((preference) -> {
boolean result = ScreenLockUtil.applyScreenLock(getActivity(), getString(R.string.pref_password_and_account_settings), getString(R.string.enter_system_secret_to_continue), REQUEST_CODE_CONFIRM_CREDENTIALS_ACCOUNT);
diff --git a/src/main/res/drawable/delete_account_item_background.xml b/src/main/res/drawable/delete_account_item_background.xml
new file mode 100644
index 000000000..583b62b94
--- /dev/null
+++ b/src/main/res/drawable/delete_account_item_background.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/src/main/res/layout/dialog_delete_profile.xml b/src/main/res/layout/dialog_delete_profile.xml
new file mode 100644
index 000000000..2d009ea8b
--- /dev/null
+++ b/src/main/res/layout/dialog_delete_profile.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/res/layout/proxy_settings_activity.xml b/src/main/res/layout/proxy_settings_activity.xml
new file mode 100644
index 000000000..d3660855e
--- /dev/null
+++ b/src/main/res/layout/proxy_settings_activity.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/res/layout/registration_activity.xml b/src/main/res/layout/registration_activity.xml
index 239385314..a8dc34db5 100644
--- a/src/main/res/layout/registration_activity.xml
+++ b/src/main/res/layout/registration_activity.xml
@@ -123,7 +123,7 @@
android:visibility="gone"
tools:visibility="visible"
app:constraint_referenced_ids="inbox, imap_login, imap_server, imap_port, imap_security_label, imap_security, outbox_view_spacer_top,
- outbox, smtp_login, smtp_password, smtp_server, smtp_port, smtp_security_label, smtp_security, auth_method_label, auth_method, cert_check_label, cert_check, view_log_button, socks5_switch" />
+ outbox, smtp_login, smtp_password, smtp_server, smtp_port, smtp_security_label, smtp_security, auth_method_label, auth_method, cert_check_label, cert_check, view_log_button, proxy_settings" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/proxy_settings" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_constraintTop_toBottomOf="@id/cert_check" />
+
+
diff --git a/src/main/res/menu/text_secure_normal.xml b/src/main/res/menu/text_secure_normal.xml
index 13be761bf..df21b4713 100644
--- a/src/main/res/menu/text_secure_normal.xml
+++ b/src/main/res/menu/text_secure_normal.xml
@@ -7,6 +7,11 @@
android:icon="@drawable/baseline_qr_code_24"
app:showAsAction="always"/>
+
+
diff --git a/src/main/res/values-bg/strings.xml b/src/main/res/values-bg/strings.xml
index e2a2b6349..dda9856b5 100644
--- a/src/main/res/values-bg/strings.xml
+++ b/src/main/res/values-bg/strings.xml
@@ -321,6 +321,7 @@
Докоснете, за да отворите
Сървър за видеочат
Вашият сървър за видеочат
+
Примери: https://meet.jit.si/$ROOM или basicwebrtc:https://вашият-сървър
Ако настройката е разрешена, можете да започвате видеочат от всеки чат. Изисква съвместимо приложение или браузър и от двете страни.
Да се използва ли \"%1$s\" за поканване на други към видеочатове?\n\nСлед като тази настройка бъде зададена, ще можете да започвате видеочат от всеки чат. Тя ще замени предишната настройка за видеочатове, ако има такава.
diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml
index 8fd776097..ff76fdccd 100644
--- a/src/main/res/values-ca/strings.xml
+++ b/src/main/res/values-ca/strings.xml
@@ -313,6 +313,7 @@
Toca per obrir-ho
Instància de vídeo xat
La vostra instància de vídeo xat
+
Exemples: https://meet.jit.si/$ROOM o basicwebrtc:https://your-server
Invitació a un vídeo xat
Heu sigut convidats a un vídeo xat, cliqueu %1$s per unir-vos-hi.
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index 58de58cf2..80177c5e4 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -332,6 +332,7 @@
Öffnen
Videochat-Instanz
Videochat-Instanz
+
Beispiele: https://meet.jit.si/$ROOM oder basicwebrtc:https://your-server
Wenn aktiv, können Sie einen Videochat aus jedem Chat starten. Videochats erfordern beidseitig eine kompatible App oder einen kompatiblen Browser.
\"%1$s\" verwenden, um andere zu Videochats einzuladen?\n\nWenn Sie diese Einstellung vornehmen, können Sie von jedem Chat aus einen Videochat starten. Dies überschreibt, falls vorhanden, die bisherige Einstellung zu Videochats.
@@ -605,6 +606,9 @@
SMTP-Port
SMTP-Sicherheit
Autorisierungsmethode
+
+ Proxy
+ Proxy verwenden
SOCKS5
SOCKS5 verwenden
diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml
index 7f916ae40..96a23c5a2 100644
--- a/src/main/res/values-el/strings.xml
+++ b/src/main/res/values-el/strings.xml
@@ -289,6 +289,7 @@
Πατήστε για Άνοιγμα
Παρουσία στη Βιντεοκλήση
Η παρουσία σας στη βιντεοκλήση
+
Παράδειγμα: https://meet.jit.si/$ROOM ή basicwebrtc:https://your-server
Αν είναι ενεργοποιημένο, μπορείτε να ξεκινήσετε μια συνομιλία μέσω βίντεο από κάθε συνομιλία. Απαιτεί μια συμβατή εφαρμογή ή ένα πρόγραμμα περιήγησης και στα δύο άκρα.
Χρήση \"%1$s\" για να προσκαλέσετε άλλους στη βιντεοκλήση;\n\nΑφού ρυθμιστεί, μπορείτε να ξεκινήσετε μια συνομιλία μέσω βίντεο από κάθε συνομιλία. Αυτό αντικαθιστά οποιαδήποτε προηγούμενη ρύθμιση για συνομιλίες μέσω βίντεο.
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index d40c7ae80..19caafa0f 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -173,6 +173,7 @@
Video
Documentos
Contacto
+ Bot
Cámara
Capturar
@@ -281,6 +282,10 @@
Seleccionar chat
Seleccionar más
Editar nombre
+
+ Establece un apodo que se te mostrará en lugar de \"%1$s\". Déjalo en blanco para utilizar el nombre elegido por el contacto.
+
+ Apodo para \"%1$s\"
Ajustes
Avanzado
Ver perfil
@@ -343,6 +348,7 @@
Toca para abrir
Instancia de videollamada
Tu instancia de videollamada
+
Ejemplo: https://tu-servidor.org/$ROOM
Si el videochat está activado, puedes iniciar un videochat desde cada chat. Los chats de vídeo necesitan una aplicación o un navegador compatible en los dos lados.
¿Usa \"%1$s\" para invitar a otros a la videollamada?\n\nUna vez configurado, puedes iniciar una videollamada desde el chat individual. Esto reemplaza la configuración previa de videollamadas. Si la hubiera.
@@ -1176,4 +1182,5 @@
Nueva pantalla de bienvenida 🐣 y más:\n\n⚡️ Regístrese en servidores de chatmail rápidos y seguros (https://delta.chat/chatmail) o use servidores de correo electrónico clásicos\n\n👉 Notificaciones PUSH para cualquier servidor de chatmail\n\n👤 Presenta un amigo a otro de forma segura usando \"Adjuntar Contacto\"\n\n🥰 Reacciona con cualquier emoji\n\n📌 Ancla chats directamente desde los resultados de la búsqueda... y MUCHO más en %1$s
Nueva pantalla inicial 🐣 y más:\n\n⚡️ Regístrese en servidores de chatmail rápidos y seguros (https://delta.chat/chatmail) o use servidores de correo electrónico clásicos\n\n👉 Notificaciones PUSH para cualquier servidor de chatmail\n\n👤 Reciba \"Contactos adjuntos\" y conéctese con sus amigos\n\n🥰 Selección de reacción más rápida... y MÁS en %1$s
-
+ ℹ️ Se movió la opción \"Cambiar perfil\": toca tu imagen de perfil en la esquina superior de la pantalla principal para agregar o cambiar perfiles 💡
+
diff --git a/src/main/res/values-fa/strings.xml b/src/main/res/values-fa/strings.xml
index ee0fd48c6..9b3739314 100644
--- a/src/main/res/values-fa/strings.xml
+++ b/src/main/res/values-fa/strings.xml
@@ -317,6 +317,7 @@
برای باز کردن ضربه بزنید.
جلسه تماس تصویری
جلسه تماس تصویری شما
+
مثال:
https://meet.jit.si/$ROOM
یا
diff --git a/src/main/res/values-fi/strings.xml b/src/main/res/values-fi/strings.xml
index efcb774d6..90922ddf7 100644
--- a/src/main/res/values-fi/strings.xml
+++ b/src/main/res/values-fi/strings.xml
@@ -321,6 +321,7 @@
Napauta avataksesi
Videokeskustelun tarjoaja
Videokeskustelusi tarjoaja
+
Esimerkkejä: https://meet.jit.si/$ROOM tai basicwebrtc:https://sinun-palvelimesi
Jos videokeskustelu on kytketty päälle, voit aloittaa videokeskustelun mistä tahansa keskustelusta. Videokeskustelu vaatii molemmilta yhteensopivan sovelluksen tai selaimen.
Käytä \"%1$s\" videokeskustelupyyntöihin?\n\nTämän jälkeen voit aloittaa videokeskustelun mistä tahansa keskustelusta. Tämä korvaa edellisen videokeskusteluasetuksen, jos sellainen on.
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index ecd43ce81..85c9f3f17 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -326,6 +326,7 @@
Appuyer pour ouvrir
Instance de discussion vidéo
Votre instance de discussion vidéo
+
Par exemple : https://your-server.org/$ROOM
Si vous avez activé les discussions vidéo, vous pouvez démarrer une conversation vidéo dans chacune de vos discussions. Il faut que chaque participant-e ait une application ou un navigateur compatibles pour pouvoir utiliser cette option.
Utiliser « %1$s » pour inviter d\'autres personnes à des discussions vidéo ?\n\nUne fois configuré, vous pouvez discuter en vidéo dans chaque discussion privée. Remplace vos préférences de configurations précédentes pour les discussions vidéos.
diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml
index 515856842..8fa2a9ec4 100644
--- a/src/main/res/values-gl/strings.xml
+++ b/src/main/res/values-gl/strings.xml
@@ -295,6 +295,7 @@
Toca para abrir
Instancia para video chat
A túa instancia para video chat
+
Exemplos: https://meet.jit.si/$ROOM ou basicwebrtc:https://your-server
Se o chat por vídeo está activado, podes iniciar o chat de vídeo desde cada chat. Os chats de vídeo requiren unha app compatible ou un navegador compatible nos dous extremos.
¿Usar \"%1$s\" para convidar a outras a chats de vídeo?\n\nUnha vez establecido podes iniciar o chat desde a conversa un-a-un. Esto restablece o axuste anterior para video chats se existise.
diff --git a/src/main/res/values-hu/strings.xml b/src/main/res/values-hu/strings.xml
index 454c050ef..338302c53 100644
--- a/src/main/res/values-hu/strings.xml
+++ b/src/main/res/values-hu/strings.xml
@@ -44,7 +44,7 @@
Archiválás visszavonása
Némítás
Eltűnő üzenetek
- A csevegés minden tagjára vonatkozik, ha a ArcaneChat-et használják; az üzeneteket továbbra is másolhatják, menthetik és továbbíthatják, vagy más e-mail klienseket használhatnak.
+ A csevegés minden tagjára vonatkozik, ha a ArcaneChat használják; az üzeneteket továbbra is másolhatják, menthetik és továbbíthatják, vagy más e-mail klienseket használhatnak.
Mentés
Csevegés
Média
@@ -85,8 +85,8 @@
%1$s nem található.
Vágólapra másolva.
Névjegyek
- E-mail cím
- Rossz e-mail cím.
+ E-mail-cím
+ Hibás E-mail-cím.
Jelszó
Jelenlegi jelszó
Most
@@ -160,6 +160,7 @@
Videó
Dokumentumok
Névjegy
+ Bot
Kamera
Rögzítés
@@ -180,7 +181,7 @@
Zöld
Piros
Kék
- Narancs
+ Narancssárga
Cián
Lila
Magenta
@@ -232,7 +233,7 @@
Ismerősök meghívása
Lépjen kapcsolatba velem a ArcaneChat-en:\n%1$s
- Kiválasztás másolása
+ Kiválasztott(ak) másolása
Hívatkozás másolása
Szöveg másolása
Kép másolása
@@ -251,7 +252,7 @@
Alkalmazás megjelenítése a csevegésben
Megosztás
- Blokkolás
+ Letiltás
Névjegy letiltása
Tiltás visszavonása
Elfogadás
@@ -266,6 +267,10 @@
Csevegés kiválasztása
Több kiválasztása
Név szerkesztése
+
+ Állítson be egy becenevet a(z) „%1$s” nevű ismerősének. Ha üresen hagyja, akkor az ismerőse által választott név jelenik meg.
+
+ Becenév megadása „%1$s“ számára
Beállítások
Haladó
Profil megtekintése
@@ -274,7 +279,7 @@
Naplófájl mentése
További beállítások
Helyesírás tanulása
- Csevegés ellenőrzési naplófájl
+ Csevegésellenőrzési-naplófájl
Ugrás az üzenetre
JSON másolása
Piszkozat cseréje
@@ -291,13 +296,13 @@
Kitűzés
- Kitűzés visszavonása
+ Kitűzés megszüntetése
Nem található az eredeti üzenet
Válasz privátban
Forráskód
Hozzáadás a kezdőképernyőhöz
- Támogatás
+ Adományozás
Némítás 1 órára
Némítás 2 órára
@@ -321,15 +326,16 @@
Meghívja videócsevegésbe őt: %1$s?
Ehhez mindkét oldalon kompatibilis alkalmazás vagy böngésző szükséges.
%1$s meg lett híva egy videócsevegésbe.
- Ön elküdött egy videócsevegés meghívót.
+ Ön elküdött egy videócsevegés-meghívót.
Koppintson ide a csatlakozáshoz.
Koppintson ide a megnyitáshoz.
- Videócsevegés példány
- Az ön videócsevegés példánya
+ Videócsevegés-példány
+ Az ön videócsevegés-példánya
+
Például: https://your-server.org/$ROOM
Ha engedélyezve van, akkor minden csevegésből indíthat videócsevegést. Kompatibilis alkalmazást vagy böngészőt igényel mindkét oldalon.
„%1$s” használata mások meghívásához a videócsevegésekbe?\n\nAmint beállította, minden egyes csevegésből indíthat videócsevegést. Ez minden korábbi beállítás helyébe lép a videócsevegéseknél.
- Videócsevegés meghívó
+ Videócsevegés-meghívó
Ön meg lett híva egy videócsevegésbe, kattintson ide: %1$s a csatlakozáshoz.
@@ -351,8 +357,8 @@
Továbbítja az üzenetet a számára: %1$s?
Továbbítja az üzenetet a következő csevegésbe: %1$d?
A mellékletek exportálása lehetővé teszi, hogy más alkalmazások is hozzáférjenek azokhoz az eszközön.\n\nFolytatja?
- Blokkolja ezt az ismerősét? Többé nem fog üzeneteket kapni tőle.
- Feloldja ennek az ismerősének a blokkolását? Ezután képes lesz üzeneteket fogadni tőle.
+ Letiltja ezt az ismerősét? Többé nem fog üzeneteket kapni tőle.
+ Feloldja ennek az ismerősének a letiltását? Ezután képes lesz üzeneteket fogadni tőle.
Ismerős törlése?\n\nA folyamatban lévő csevegésekkel rendelkező vagy a rendszer névjegyzékéből származó ismerősök nem törölhetőek véglegesen.
%1$s nevű ismerősének tölése?\n\nA folyamatban lévő csevegésekkel rendelkező vagy a rendszer névjegyzékéből származó ismerősök nem törölhetőek véglegesen.
A folyamatban lévő csevegésekkel rendelkező ismerősök nem törölhetőek.
@@ -367,8 +373,8 @@
Névjegyek
- Adjon meg egy nevet vagy egy e-mail címet
- Írja be a fenti e-mail címet
+ Adjon meg egy nevet vagy egy E-mail-címet
+ Írja be a fenti E-mail-címet
Még nincsenek névjegyek.
@@ -397,10 +403,10 @@
Hangüzenet rögzítéséhez koppintson és tartsa lenyomva; Az elküldéshez engedje el.
Nincsenek csevegések.\nÉrintse meg a „+” gombot egy új csevegés indításához.
Minden csevegés archiválva van.\nÉrintse meg a „+” gombot egy új csevegés indításához.
- Megosztás ezzel
+ Megosztás vele:
Üzenet
Archivált
- Kérelem
+ Kérés
Nincsenek üzenetek.
Magamnak küldött üzenetek
Az archivált csevegések itt fognak megjelenni.
@@ -426,7 +432,7 @@
Indítás...
- Először fogadja el a csevegési kérelmet.
+ Először fogadja el a csevegéskérést.
„%1$s” küldése neki...
@@ -496,7 +502,7 @@
%1$s megváltoztatta a címét erről: %2$s, erre: %3$s
- Ön megváltoztatta a saját e-mail címét erről: %1$s erre: %2$s.\n\nHa most üzenetet küld egy ellenőrzött csoportba, az ottani ismerősei automatikusan lecserélik a z ön régi címét az új címére.\n\nEzért nagyon ajánlott beállítani, hogy a régi e-mail szolgáltatója minden e-mailt továbbítson-e az új e-mail címére. Ellenkező esetben lemaradhat azoknak az ismerőseinek az üzeneteiről, akik még nem kapták meg az új címét.
+ Ön megváltoztatta a saját E-mail-címét erről: %1$s erre: %2$s.\n\nHa most üzenetet küld egy ellenőrzött csoportba, az ottani ismerősei automatikusan lecserélik az ön régi címét az új címére.\n\nEzért nagyon ajánlott beállítani, hogy a régi E-mail szolgáltatója minden E-mailt továbbítson-e az új E-mail-címére. Ellenkező esetben lemaradhat azoknak az ismerőseinek az üzeneteiről, akik még nem kapták meg az új címét.
@@ -506,7 +512,7 @@
Ez egy QR-kódot hoz létre, amelyet a második eszközön beolvashat a profil másolásához.
Telepítse a ArcaneChat-et a másik eszközére (https://get.delta.chat)
- Indítsa el a ArcaneChat-et, koppintson a „Már van bejelentkezésem / Hozzáadás második eszközként” lehetőségre, és olvassa be az itt látható kódot.
+ Indítsa el a ArcaneChat-et, koppintson a „Már van profilom / Hozzáadás második eszközként” lehetőségre, és olvassa be az itt megjelenő kódot.
Második eszköz beállításának beolvasása a(z) %1$s számára
Hozzáadás második eszközként
@@ -607,17 +613,17 @@
SOCKS5 felhasználó
SOCKS5 jelszó
Folytatja az egyszerűsített beállítást?
- A megadott e-mail cím támogatja az egyszerűsített beállítást (OAuth 2.0).\n\nA következő lépésben engedélyezze a ArcaneChat számára, hogy az e-mailen keresztüli csevegés alkalmazásaként működjön.\n\nA ArcaneChat nem gyűjt felhasználói adatokat, minden adat az eszközön marad.
+ A megadott E-mail-cím támogatja az egyszerűsített beállítást (OAuth 2.0).\n\nA következő lépésben engedélyezze a ArcaneChat számára, hogy az E-mailen keresztüli csevegés alkalmazásaként működjön.\n\nA ArcaneChat nem gyűjt felhasználói adatokat, minden adat az eszközön marad.
Tanúsítvány ellenőrzése
- Adjon meg egy érvényes e-mail címet
- Adjon meg egy érvényes kiszolgáló / IP-címet
+ Adjon meg egy érvényes E-mail-címet
+ Adjon meg egy érvényes kiszolgáló- / IP-címet
Adjon meg egy érvényes portot (1-65535)
- Adjon meg egy érvényes e-mail címet és egy jelszót
+ Adjon meg egy érvényes E-mail-címet és egy jelszót
Biztonsági mentés visszaállítása
A biztonsági mentés itt található: „%1$s”.\n\nAz összes adatot és beállítást szeretné importálni és használni belőle?
A biztonsági mentés nem található.\n\nMásolja a biztonsági mentést ide: „%1$s” és próbálja újra. Másik lehetőségként nyomja meg az „Üzenetküldés indítása” gombot a normál beállítási folyamat folytatásához.
- Nem lehetett bejelentkezni ide: „%1$s”. Ellenőrizze, hogy a megadott e-mail cím és a jelszó helyes-e.
+ Nem lehetett bejelentkezni ide: „%1$s”. Ellenőrizze, hogy a megadott E-mail-cím és a jelszó helyes-e.
Érvénytelen tanúsítványok elfogadása
Profilváltás
@@ -667,7 +673,7 @@
Értesítések
Megjelenítés
Prioritás
- Rendszer értesítések engedélyezése az új üzenetekről
+ Rendszerértesítések engedélyezése az új üzenetekről
Üzenet tartalmának megjelenítése az értesítésben
Az értesítésekben megjelenik az üzenet feladója és első szavai
LED színe
@@ -675,7 +681,7 @@
Csendes
Adatvédelem
Csevegések és média
- Alapbeállítás
+ Rendszer alapértelmezett
Világos
Sötét
@@ -712,7 +718,7 @@
%1$s exportálása
Mind a(z) %1$d profil exportálása
- Biztonsági mentés indítása
+ Biztonsági mentés készítése
A biztonsági mentés sikeresen létrehozva itt: „%1$s”.
Privát kulcsok kezelése
Privát kulcsok exportálása
@@ -804,7 +810,7 @@
Ha az egyszeri törlés engedélyezve van, akkor nem használhatja ezt a profilt több eszközről.
Értem, törölje ezeket az üzeneteket
- Egyszer
+ Egyszer a letöltés után
30 másodperc elteltével
1 perc elteltével
5 perc elteltével
@@ -816,19 +822,19 @@
1 év elteltével
- Autocrypt beállító üzenet küldése
- Egy autocrypt beállító üzenet biztonságosan megosztja az ön végpontok közötti beállításait más autocrypt-kompatibilis alkalmazásokkal.\n\nA beállítás titkosítása egy, itt megjelenő beállítási kóddal történik, amelyet a másik eszközön kell begépelni.
- Autocrypt beállító üzenet küldése
+ Autocryptbeállító-üzenet küldése
+ Egy autocryptbeállító-üzenet biztonságosan megosztja az ön végpontok közötti beállításait más autocrypt-kompatibilis alkalmazásokkal.\n\nA beállítás titkosítása egy, itt megjelenő beállítási kóddal történik, amelyet a másik eszközön kell begépelni.
+ Autocryptbeállító-üzenet küldése
A beállításokat elküldtük önnek. Váltson a másik eszközre, és nyissa meg a beállítási üzenetet. Meg kell adnia a beállítási kódot. Írja be a következő számjegyeket:
Végpontok közötti titkosítás előnyben részesítése
- Autocrypt beállító üzenet
- Ez az autocrypt beállító üzenet a végpontok közötti beállítások kliensek közötti átvitelére szolgál.\n\nA beállítások visszafejtéséhez és használatához nyissa meg az üzenetet egy autocrypt-kompatibilis kliensben, és írja be a generáló eszközön megjelenő beállítási kódot.
- Ez az Autocrypt beállító üzenet, amelyet a végpontok közötti titkosítási beállítások átvitelére használnak a kliensek között.\n\n\nA beállítások visszafejtéséhez és használatához koppintson vagy kattintson erre az üzenetre.
- Autocrypt beállító üzenet
+ Autocryptbeállító-üzenet
+ Ez az autocryptbeállító-üzenet a végpontok közötti beállítások kliensek közötti átvitelére szolgál.\n\nA beállítások visszafejtéséhez és használatához nyissa meg az üzenetet egy autocrypt-kompatibilis kliensben, és írja be a generáló eszközön megjelenő beállítási kódot.
+ Ez az Autocryptbeállító-üzenet, amelyet a végpontok közötti titkosítási beállítások átvitelére használnak a kliensek között.\n\n\nA beállítások visszafejtéséhez és használatához koppintson vagy kattintson erre az üzenetre.
+ Autocryptbeállító-üzenet
Adja meg a másik eszközön megjelenő beállítási kódot.
A végpontok közötti beállítások átvitele megtörtént. Ez az eszköz most már készen áll az autocrypt használatára a másik eszközzel megegyező beállításokkal.
Újra
- Rossz beállítási kód. Próbálja újra.\n\nHa nem emlékszik a beállítási kódra, küldjön új Autocrypt Beállítás üzenetet a másik eszközről.
+ Rossz beállítási kód. Próbálja újra.\n\nHa nem emlékszik a beállítási kódra, küldjön új Autocryptbeállító-üzenetet a másik eszközről.
@@ -932,7 +938,7 @@
A QR-kódot nem sikerült értelmezni
Biztosan csatlakozik a(z) „%1$s” nevű szobához?
A beolvasott ujjlenyomat nem egyezik a(z) %1$s utoljára látott ujjlenyomatával.
- Ez a QR-kód tartalmaz egy ujjlenyomatot, de nem tartalmaz e-mail címet.\n\nA sávon kívüli ellenőrzéshez először hozzon létre titkosított kapcsolatot a címzetthez.
+ Ez a QR-kód tartalmaz egy ujjlenyomatot, de nem tartalmaz E-mail-címet.\n\nA sávon kívüli ellenőrzéshez először hozzon létre titkosított kapcsolatot a címzetthez.
A beolvasott QR-kód szövege:\n\n%1$s
A beolvasott QR-kód hivatkozás:\n\n%1$s
Ujjlenyomat
@@ -1059,7 +1065,7 @@
Csoport képének kiválasztása
Biztonsági mentés exportálása
Autocrypt beállítások átvitele.
- Törli ezt a bejelentkezést? Minden törlődik, beleértve a végpontok közötti titkosítási beállításokat, névjegyeket, csevegéseket, üzeneteket és médiát. Ez a művelet nem vonható vissza.
+ Törli ezt a profilt? Minden törlődik, beleértve a végpontok közötti titkosítási beállításokat, névjegyeket, csevegéseket, üzeneteket és médiát. Ez a művelet nem vonható vissza.
elküldött
érkezett
Naplófájlok könyvtárának megnyitása
@@ -1067,7 +1073,7 @@
A tálca ikonja nem kapcsolható ki, mivel a ArcaneChat a --minimized opcióval indult.
Nem találhatóak helyesírási javaslatok.
Ablak megjelenítése
- A SOCKS5 támogatás jelenleg kísérleti jellegű. Használja saját felelősségére. Ha beír egy címet az e-mail mezőbe, akkor lesz olyan DNS lekérés, ami nem fog átjutni a SOCKS5 csatornán.
+ A SOCKS5 támogatás jelenleg kísérleti jellegű. Használja saját felelősségére. Ha beír egy címet az E-mail-mezőbe, akkor lesz olyan DNS lekérés, ami nem fog átjutni a SOCKS5 csatornán.
Billentyűkötések
@@ -1121,7 +1127,7 @@
Válassza a „Hozzáadás a kezdőképernyőhöz” lehetőséget, hogy az alkalmazást hozzáadja a kezdőképernyőhöz.
A ArcaneChat az eszköze kameráját használja fényképek és videók készítésére és küldésére, valamint QR-kódok beolvasására.
- A ArcaneChat a névjegyek segítségével megjeleníti azon e-mail címek listáját, amelyekkel cseveghet. A ArcaneChat-nek nincs központi kiszolgálója, a névjegyeit nem küldjük el sehova.
+ A ArcaneChat a névjegyek segítségével megjeleníti azon E-mail-címek listáját, amelyekkel cseveghet. A ArcaneChat-nek nincs központi kiszolgálója, a névjegyeit nem küldjük el sehova.
A ArcaneChat-nek engedélyre van szüksége ahhoz, hogy megoszthassa az ön tartózkodási helyszínét arra az időtartamra, ameddig engedélyezte a helyszínmegosztást.
A ArcaneChat-nek engedélyre van szüksége ahhoz, hogy megoszthassa az ön tartózkodási helyszínét arra az időtartamra, ameddig engedélyezte a helyszínmegosztást.
A ArcaneChat az eszköze mikrofonját használja a hangüzenetek és a hangos videók rögzítésére, valamint küldésére.
@@ -1134,7 +1140,7 @@
Háttérkapcsolat használata
Figyelmen kívül hagyott akkumulátor-optimalizációt igényel, akkor használja, ha a Push szolgáltatás nem érhető el
Kényszerített háttérkapcsolat
- Állandó értesítést jelenít meg
+ Egy állandó értesítést jelenít meg
Az e-mail kiszolgálóval való kapcsolat fenntartásához és az üzenetek háttérben történő fogadásához hagyja figyelmen kívül az akkumulátor optimalizálását a következő lépésben.\n\nA ArcaneChat kevés erőforrást használ, és ügyel arra, hogy ne merítse az akkumulátort.
@@ -1144,4 +1150,6 @@
Új szolgáltatások 🐣 és további tudnivalók:\n\n⚡️ Regisztráljon biztonságos, gyors chatmail kiszolgálókra (https://delta.chat/chatmail) vagy használja a klasszikus e-mail kiszolgálókat\n\n👉 PUSH értesítések bármely chatmail kiszolgálóra\n\n👤 Kapcsolja össze ismerőseit biztonságosan a „Névjegyek csatolásával”\n\n🥰 Reagáljon bármilyen hangulatjellel\n\n📌 Tűzze ki a csevegéseket közvetlenül a keresésből ... tudjon meg többet itt: %1$s
Új szolgáltatások 🐣 és további tudnivalók:\n\n⚡️ Regisztráljon biztonságos, gyors chatmail kiszolgálókra (https://delta.chat/chatmail) vagy használja a klasszikus e-mail kiszolgálókat\n\n👉 PUSH értesítések bármely chatmail kiszolgálóra\n\n👤 Fogadjon „Csatolt névjegyeket\" és csatlakozzon az ismerőseihez”\n\n🥰 Gyorsabb üzenetreakció kiválasztás ... tudjon meg többet itt: %1$s
-
+ ℹ️ A „Profilváltás” opció át lett helyezve:
+Érintse meg a főképernyő felső sarkában lévő profilképet a profilok hozzáadásához vagy váltásához 💡
+
diff --git a/src/main/res/values-in/strings.xml b/src/main/res/values-in/strings.xml
index 8a2570d98..8653dc478 100644
--- a/src/main/res/values-in/strings.xml
+++ b/src/main/res/values-in/strings.xml
@@ -278,6 +278,7 @@
Anda diundang ke obrolan video.
Ketuk untuk bergabung
Ketuk untuk membuka
+
Contoh: https://your-server.org/$ROOM
Gunakan \"%1$s\" untuk mengundang orang lain ke obrolan video? Setelah diatur, Anda dapat memulai obrolan video dari setiap obrolan. Ini menggantikan pengaturan sebelumnya untuk obrolan video.
Undangan obrolan video
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index 368acf68b..fbb1a30b2 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -341,6 +341,7 @@
Tocca per Aprire
Istanza Video Chat
La Tua Istanza Video Chat
+
Esempi: https://your-server.org/$ROOM
Se la video chat è abilitata, è possibile avviare una video chat da ogni chat. Le video chat richiedono un\'applicazione compatibile o un browser compatibile da entrambe le parti.
Utilizzare \"%1$s\" per invitare altri alla video chat?\n\nUna volta impostato, è possibile avviare una video chat da ogni chat uno a uno. Ciò sostituirà l\'eventuale impostazione precedente per le video chat.
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index ee6deeeda..53f4068cd 100644
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -279,6 +279,7 @@
열기 위해 탭하기
비디오 채팅 인스턴스
당신의 비디오 채팅 인스턴스
+
예시: https://meet.jit.si/$ROOM 또는 basicwebrtc:https://your-server
비디오 채팅을 사용할 수 있는 경우 각 채팅에서 비디오 채팅을 시작할 수 있습니다. 화상 채팅을 하려면 호환되는 앱 또는 호환 가능한 브라우저가 양쪽 끝에 필요합니다.
\"%1$s\"를 사용하여 다른 사람을 화상 채팅에 초대하시겠습니까?\n\n설정되면 각 채팅에서 비디오 채팅을 시작할 수 있습니다. 이것은 비디오 채팅에 대한 이전 설정을 대체합니다.
diff --git a/src/main/res/values-lt/strings.xml b/src/main/res/values-lt/strings.xml
index 2a8df23eb..40c36c1ac 100644
--- a/src/main/res/values-lt/strings.xml
+++ b/src/main/res/values-lt/strings.xml
@@ -287,6 +287,7 @@
Bakstelėkite norėdami atverti
Vaizdo pokalbio egzempliorius
Jūsų vaizdo pokalbio egzempliorius
+
Pavyzdys: https://jūsų-serveris.org/$KAMBARYS
Pakvietimas į vaizdo pokalbį
Jūs esate kviečiami į vaizdo pokalbį. Spustelėkite %1$s jei norite prisijungti.
diff --git a/src/main/res/values-night/colors.xml b/src/main/res/values-night/colors.xml
index d7a7b416d..82e4f5ce0 100644
--- a/src/main/res/values-night/colors.xml
+++ b/src/main/res/values-night/colors.xml
@@ -9,4 +9,6 @@
@color/gray78
#808080
+
+ #222222
diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml
index cb52bbcc6..537629ae0 100644
--- a/src/main/res/values-nl/strings.xml
+++ b/src/main/res/values-nl/strings.xml
@@ -331,7 +331,8 @@
Druk om te openen
Videogespreksinstantie
Mijn videogespreksinstantie
- Voorbeeld: https://meet.jit.si/$KAMER
+
+ Voorbeeld: https://your-server.org/$ROOM
Schakel in om een videogesprek te starten vanuit een een-op-eengesprek. Zowel jij als je gesprekspartner hebben hiervoor een compatibele app of webbrowser nodig.
Wil je ‘%1$s’, gebruiken om anderen uit te nodigen voor videogesprekken?\n\nNa het instellen kun je een videogesprek starten vanuit elk een-op-eengesprek. Deze instelling vervangt de vorige videogespreksinstelling.
Uitnodiging voor videogesprek
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index 88eb41c29..fb8ee2efb 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -283,6 +283,10 @@
Zaznacz czat
Zaznacz więcej
Edytuj nazwę
+
+ Ustaw nazwę, która będzie wyświetlana zamiast „%1$s”. Pozostaw puste pole, aby użyć wybranej nazwy kontaktu.
+
+ Nazwa dla „%1$s”
Ustawienia
Zaawansowane
Pokaż profil
@@ -345,6 +349,7 @@
Dotknij, aby otworzyć
Instancja czatu wideo
Twoja instancja czatu wideo
+
Przykład: https://meet.jit.si/$ROOM lub basicwebrtc:https://your-server
Jeśli czat wideo jest włączony, możesz rozpocząć rozmowę wideo z każdego czatu indywidualnego. Czaty wideo wymagają kompatybilnej aplikacji lub kompatybilnej przeglądarki po obu stronach.
Czy użyć „%1$s”, aby zaprosić innych do czatów wideo?\n\nPo ustawieniu możesz rozpocząć czat wideo z każdego czatu indywidualnego. Spowoduje to zastąpienie poprzedniego ustawienia czatów wideo, jeśli takie istnieją.
diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml
index db7eb51be..e4876a580 100644
--- a/src/main/res/values-pt-rBR/strings.xml
+++ b/src/main/res/values-pt-rBR/strings.xml
@@ -310,6 +310,7 @@
Clique para abrir
Instância de conversa de vídeo
Sua instância de conversa de vídeo
+
Exemplos: https://meet.jit.si/$ROOM o basicwebrtc:https://your-server
Se o video chat estiver habilitado, você pode iniciar uma ligação de video a partir de cada chat. Os bate-papos de vídeo exigem um aplicativo compatível ou um navegador compatível nos dos lados.
Use \"%1$s\" para convidar outros para a conversas de vídeo?\n\nUma vez configurado, você pode iniciar uma conversa de vídeo para cada conversa um-para-um. Isto irá substituir os ajustes prévios para conversas de vídeo, caso existam.
diff --git a/src/main/res/values-ro/strings.xml b/src/main/res/values-ro/strings.xml
index fdb7b7734..c6b96e7f7 100644
--- a/src/main/res/values-ro/strings.xml
+++ b/src/main/res/values-ro/strings.xml
@@ -306,6 +306,7 @@
Atingeți pentru a deschide
Instanță de Videochat
Instanța Dumneavoastră de Videochat
+
Exemple: https://meet.jit.si/$ROOM ori basicwebrtc:https://your-server
Dacă este activată, puteți începe un chat video din fiecare chat. Necesită un app compatibil sau un browser la ambele capete.
Folosiți \"%1$s\" pentru a invita alte persoane la chat-uri video?\n\nOnce setat, puteți începe un chat video din fiecare chat. Acest lucru înlocuiește orice setare anterioară pentru chat-urile video.
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index ca121ffc1..b2aaa6829 100644
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -339,6 +339,7 @@
Нажмите, чтобы открыть.
Инстанс видеочатов
Ваш инстанс видеочатов
+
Пример: https://your-server.org/$ROOM
Если функция видеочата активирована, вы можете запустить видеочат из любого чата. Для видеочата требуется совместимое приложение или браузер у всех участников.
Использовать \"%1$s\" чтобы приглашать других в видеочаты?\n\nНастроив один раз, вы можете начинать видеочат из каждого чата. Это заменит предыдущие настройки видеочатов, если они были.
diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml
index ca963264f..d9ffe3827 100644
--- a/src/main/res/values-sk/strings.xml
+++ b/src/main/res/values-sk/strings.xml
@@ -307,7 +307,8 @@
Otvoríte klepnutím
Inštancia videohovoru
Vaša inštancia videohovoru
- Príklady: https://meet.jit.si/$MIESTNOST alebo basicwebrtc:https://vas-server
+
+ Príklady: https://your-server.org/$ROOM
Ak to zapnete, môžete začať video rozhovor z každej konverzácie. Vyžaduje kompatibilnú aplikáciu alebo prehliadač na oboch stranách.
Použiť „%1$s“ na odoslanie pozvánky na videohovor?\n\nPo nastavení môžete začať videohovor z každej jednotlivej konverzácie. Toto nahradí predchádzajúce nastavenie pre videohovory, ak existujú.
Pozvánka na videohovor
diff --git a/src/main/res/values-sq/strings.xml b/src/main/res/values-sq/strings.xml
index f34d7943a..4d8ae0d21 100644
--- a/src/main/res/values-sq/strings.xml
+++ b/src/main/res/values-sq/strings.xml
@@ -328,6 +328,7 @@
Prekeni që të Hapet
Instancë Fjalosjeje me Video
Instanca juaj e Fjalosjes me Video
+
Shembull: https://shërbyesi-juaj.org/$ROOM
Nëse është aktivizuar, mund të nisni një fjalosje me video prej secilës fjalosje. Kjo lyp në të dy skajet një aplikacion të përputhshëm, ose një shfletues të përputhshëm.
Të përdoret “%1$s” për të ftuar të tjerë në fjalosje me video?\n\nPasi të ujdiset kjo, mund të filloni një fjalosje me video që prej një fjalosjeje tek-për-tek. Kështu do të zëvendësohet rregullimi i mëparshëm për fjalosje video, në pastë.
diff --git a/src/main/res/values-sr/strings.xml b/src/main/res/values-sr/strings.xml
index d5a1fd0e0..887351249 100644
--- a/src/main/res/values-sr/strings.xml
+++ b/src/main/res/values-sr/strings.xml
@@ -309,6 +309,7 @@
Додирни да отвориш
Инстанца видео ћаскања
Ваша инстанца видео ћаскања
+
Примери: https://meet.jit.si/$ROOM или basicwebrtc:https://your-server
Ако је омогућено, можете започети видео ћаскање из сваког ћаскања. Ово захтева компатибилну апликацију или прегледач на оба краја.
Да ли желите да користите „%1$s“ да позовете друге у видео ћаскање?\n\nКада ово поставите, можете да започнете видео ћаскање из сваког ћаскања. Ово замењује све претходне поставке за видео ћаскање.
diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml
index 1bb3688ea..9b809166d 100644
--- a/src/main/res/values-sv/strings.xml
+++ b/src/main/res/values-sv/strings.xml
@@ -327,6 +327,7 @@
Tryck för att öppna
Videochattinstans
Din videochattinstans
+
Exempel: https://din-server.org/$RUM
Om det är aktiverat kan du starta en videochatt från varje chatt. Kräver en kompatibel app eller en webbläsare på båda sidor.
Vill du använda \"%1$s\" för att bjuda in andra till videochattar?\n\nNär det väl är inställt kan du starta en videochatt från vilken en-till-en-chatt som helst. Detta ersätter den tidigare inställningen för eventuella videochattar.
diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml
index 1e733852a..b5f158642 100644
--- a/src/main/res/values-tr/strings.xml
+++ b/src/main/res/values-tr/strings.xml
@@ -331,6 +331,7 @@
Açmak için Dokunun
Video Sohbeti Örneği
Video Sohbeti Örneğiniz
+
Örnek: https://your-server.org/$ROOM
Etkinleştirilirse, her sohbetten video sohbeti başlatabilirsiniz. Her iki uçta da uyumlu bir uygulama ya da bir tarayıcı gerektirir.
\"%1$s\" diğerlerini video sohbetlerine çağırmak için kullanılsın mı?\n\nBir kez ayarlandığında, her sohbetten video sohbeti başlatabilirsiniz. Bu, video sohbetleri için herhangi bir önceki ayarın yerini alır.
@@ -400,7 +401,7 @@
Diğerleri, yalnızca siz bir ilk ileti gönderdikten sonra bu öbeği görecek.
İptal etmek için kaydırın
Bir sesli ileti kaydetmek için dokunun ve basılı tutun, göndermek için bırakın
- Sohbet yok.\nYeni bir sohbet başlatmak için \"+\" tuşuna basın.
+ Sohbet yok.\nYeni bir sohbet başlatmak için \"+\" simgesine basın.
Tüm sohbetler arşivlendi.\nYeni bir sohbet başlatmak için \"+\" simgesine basın.
Paylaş
İleti
@@ -579,7 +580,7 @@
%1$s ile sohbet etmek için bir profil oluşturun.
- Yeni bir profil oluşturmak ve %1$s ile sohbet etmeye başlamak istiyor musunuz?
+ Yeni bir profil oluşturmak ve %1$s ile sohbet başlatmak istiyor musunuz?
Yeni bir profil oluşturmak ve \"%1$s\" sohbet öbeğine katılmak istiyor musunuz?
@@ -620,7 +621,7 @@
Lütfen geçerli bir e-posta adresi ve bir parola girin
Yedekten Geri Yükle
\"%1$s\" üzerinde yedek bulundu.\n\nİçe aktarmak ve ondan gelen tüm verileri ve ayarları kullanmak istiyor musunuz?
- Yedek bulunamadı.\n\nYedeği \"%1$s\" üzerine kopyalayın ve yeniden deneyin. Ek olarak, normal ayarlama işlemiyle sürdürmek için \"İletileşmeyi başlat\"a basın.
+ Yedek bulunamadı.\n\nYedeği \"%1$s\" üzerine kopyalayın ve yeniden deneyin. Ek olarak, normal ayarlama işlemiyle sürdürmek için \"İletileşmeye başla\"ya basın.
\"%1$s\" olarak giriş yapılamıyor. Lütfen e-posta adresinin ve parolanın doğru olup olmadığını denetleyin.
@@ -667,7 +668,7 @@
Titret
Ekran Güvenliği
- En yeniler listesinde ve uygulamanın içinde ekran görüntülerinin engellenmesini iste
+ Son listesinde ve uygulamanın içinde ekran görüntülerinin engellenmesini iste
Ekran güvenliği ayarını uygulamak için lütfen uygulamayı yeniden başlatın.
Bildirimler
Göster
@@ -739,7 +740,7 @@
DeltaChat Klasörüne Otomatik Olarak Taşı
Sohbet görüşmeleri, Gelen Kutusu\'ndaki dağınıklığı önlemek için taşınır
Yalnızca DeltaChat Klasöründen Getir
- Diğer klasörleri yoksayar. Sunucunuzun sohbet iletilerini DeltaChat klasörüne taşımasını gerektirir.
+ Diğer klasörleri yok sayar. Sunucunuzun sohbet iletilerini DeltaChat klasörüne taşımasını gerektirir.
Klasik E-Postaları Göster
Hayır, yalnızca sohbetler
Kabul edilen kişiler için
@@ -809,7 +810,7 @@
Bir kerede silmeyi etkinleştirirseniz, bu profilde çoklu aygıtları kullanamazsınız.
Anladım, tüm bu iletileri sil
- İndirdikten Sonra Bir Kerede
+ İndirdikten sonra bir kerede
30 saniye sonra
1 dakika sonra
5 dakika sonra
@@ -1137,11 +1138,11 @@
Anında Teslimat
Arka Plan Bağlantısı Kullan
- Pil iyileştirmelerinin yoksayılmasını gerektirir, bildirimler zamanında gelmezse kullanın
+ Pil iyileştirmelerinin yok sayılmasını gerektirir, bildirimler zamanında gelmezse kullanın
Arka Plan Bağlantısını Zorla
Kalıcı bir bildirime neden olur
- E-posta sunucunuza bağlantıyı sürdürmek ve arka planda iletileri almak için sonraki adımda pil iyileştirmelerini yoksayın.\n\nArcaneChat, az kaynak kullanır ve pilinizi boşaltmamaya özen gösterir.
+ E-posta sunucunuza bağlantıyı sürdürmek ve arka planda iletileri almak için sonraki adımda pil iyileştirmelerini yok sayın.\n\nArcaneChat, az kaynak kullanır ve pilinizi boşaltmamaya özen gösterir.
ArcaneChat arka plandayken iletileri almak için buraya dokunun.
ArcaneChat\'in arka planda iletileri almasına zaten izin verdiniz.\n\nİletiler arka planda hâlâ gelmiyorsa, lütfen sistem ayarlarınızı da denetleyin.
diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml
index 64cb01db9..ddb44e4cf 100644
--- a/src/main/res/values-uk/strings.xml
+++ b/src/main/res/values-uk/strings.xml
@@ -176,6 +176,7 @@
Відео
Документи
Контакт
+ Бот
Камера
Захопити
@@ -244,6 +245,10 @@
Видалити це місце?
Інформація про повідомлення
Копіювати в буфер обміну
+ Поділитися посиланням на запрошення
+ Запросити друзів
+
+ Зв\'яжіться зі мною в Delta Chat:\n%1$s
Скопіювати позначене
Скопіювати посилання
Копіювати текст
@@ -278,6 +283,10 @@
Оберіть чат
Вибрати ще
Редагувати ім\'я
+
+ Задайте нікнейм, який буде відображатись для вас замість \"%1$s\". Залиште порожнім, щоб використовувати вибране ім\'я контакту.
+
+ Нік для \"%1$s\"
Налаштування
Додатково
Переглянути профіль
@@ -340,6 +349,7 @@
Торкніться, щоб відкрити
Відео чат
Ваш відео чат
+
Приклади: https://meet.jit.si/$ROOM або basicwebrtc:https://your-server
Якщо ввімкнено, Ви можете почати відеочат із кожного чату. Обидві сторони повинні встановити сумісний додаток або браузер.
Використовувати \"%1$s\" аби запросити інших у відеочат?\n\nПісля встановлення Ви можете розпочати відеочат із кожного індивідуального чату. Це замінить попереднє налаштування для відеочату, якщо воно є.
@@ -354,7 +364,7 @@
- Видалити %d чатів? Вони більше не будуть відображатися у списку чатів, їх повідомлення залишаться на сервері.
- Видалити %d чатів? Вони більше не будуть відображатися у списку чатів, їх повідомлення залишаться на сервері.
- Ви впевнені, що хочете видалити \"%1$s\"?
+ Видалити чат \"%1$s\"? Він більше не буде відображатися у списку чату, але його повідомлення залишаться на сервері.
Ви впевнені, що хочете видалити це повідомлення?
- Видалити %d повідомлення тут і на сервері?
@@ -936,6 +946,7 @@
Наскрізне шифрування більше не гарантується, імовірно, через те, що %1$s перевстановив (-ла) ArcaneChat або надіслав (-ла) повідомлення з іншого пристрою.\n\nВи можете зустрітися з ним (нею) особисто та знову відсканувати його (її) QR-код, щоб відновити гарантоване наскрізне шифрування.
⚠️ %1$s вимагає наскрізного шифрування, яке ще не налаштоване для цього чату. Натисніть, щоб дізнатися більше.
Щоб установити наскрізне шифрування, Ви можете зустрітися з контактами особисто та відсканувати їхній QR-код, щоб додати їх.
+ Потрібне наскрізне шифрування, але воно ще не налаштоване на %1$s.\n\nВи можете поділитися з ними посиланням на запрошення або зустрітися особисто і відсканувати їхній QR-код.
Дізнатися більше
Ви видалили чат \"Збережені повідомлення\".\n\nℹ️ Аби використовувати функцію \"Збережені повідомлення\" знову, створіть новий чат самі із собою.
@@ -1169,4 +1180,5 @@
Новий онбордінг 🐣 та багато іншого:\n\n⚡️ Підпишіться на безпечні сервери швидкої пошти (https://delta.chat/chatmail) або використовуйте класичні сервери електронної пошти\n\n👉 PUSH-сповіщення для будь-якого сервера чату\n\n👤 Безпечно підключайте друзів через \"Прикріпити контакти\"\n\n🥰 Реагуйте будь-якими емодзі\n\n📌 Прикріплюйте чати прямо з пошуку ... та багато іншого на %1$s
Новий онбордінг 🐣 та багато іншого:\n\n⚡️ Підпишіться на безпечні швидкі chatmail-сервери (https://delta.chat/chatmail) або використовуйте класичні сервери електронної пошти\n\n👉 PUSH-повідомлення для будь-якого сервера чату\n\n👤 Отримуйте \"Прикріплені контакти\" та з\'єднуйтеся з друзями\n\n🥰 Швидший вибір реакції ... та багато іншого на %1$s
-
+ ℹ️ Опцію \"Переключити профіль\" переміщено: Торкніться зображення свого профілю у верхньому кутку головного екрану, щоб додати або переключити профіль 💡.
+
diff --git a/src/main/res/values-vi/strings.xml b/src/main/res/values-vi/strings.xml
index fe2edcfeb..f73393c2f 100644
--- a/src/main/res/values-vi/strings.xml
+++ b/src/main/res/values-vi/strings.xml
@@ -309,6 +309,7 @@
Nhấn để mở
Phiên bản trò chuyện video
Phiên bản trò chuyện video của bạn
+
Ví dụ: https://your-server.org/$ROOM
Nếu được bật, bạn có thể bắt đầu trò chuyện video từ mỗi cuộc trò chuyện. Yêu cầu ứng dụng tương thích hoặc trình duyệt ở cả hai đầu.
Sử dụng \"%1$s\" để mời người khác trò chuyện video?\n\nSau khi thiết lập, bạn có thể bắt đầu trò chuyện video từ mỗi cuộc trò chuyện. Điều này sẽ thay thế mọi cài đặt trước đó cho trò chuyện video.
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index 45517a011..88ecceb99 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -322,6 +322,7 @@
点击来打开
视频聊天实例
您的视频聊天实例
+
示例: https://meet.jit.si/$ROOM 或 basicwebrtc:https://your-server
启用视频聊天后,您便可以在所有聊天中发起视频聊天。需要双方均装有兼容的应用或浏览器。
使用“%1$s”邀请其他人参加视频聊天吗?\n\n设置好后,您就可以在聊天里发起视频聊天了。 这会取代之前的视频聊天设置。
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index af15b2fc3..d5d260503 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -308,6 +308,7 @@
點擊以開啟
視訊通話服務商
你的視訊通話服務商
+
範例:https://your-server.org/$ROOM
如果啟用,你可以在每個對話中開始視訊聊天。兩端都需要相容的應用程式或瀏覽器。
要使用\"%1$s\"來邀請其他人加入視訊通話嗎?\n\n一旦設定完成,你可以在每個聊天室內開啟視訊通話。這將會取代先前的視訊通話設定。
diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml
index d736dabcc..d34348526 100644
--- a/src/main/res/values/colors.xml
+++ b/src/main/res/values/colors.xml
@@ -133,4 +133,6 @@
@color/reaction_pill_background
?attr/colorPrimary
@color/reaction_pill_text_color
+
+ #eeeeee
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 6bfed055a..a0540530f 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -61,7 +61,7 @@
Mark All as Read
Mark as Read
- Read
+ Mark Read
Loading…
Hide
@@ -341,6 +341,7 @@
Tap to Open
Video Chat Instance
Your Video Chat Instance
+
Example: https://your-server.org/$ROOM
If enabled, you can start a video chat from each chat. Requires a compatible app or a browser on both ends.
Use \"%1$s\" to invite others to video chats?\n\nOnce set, you can start a video chat from each chat. This replaces any previous setting for video chats.
@@ -622,6 +623,9 @@
SMTP Port
SMTP Security
Authorization Method
+
+ Proxy
+ Use Proxy
SOCKS5
Use SOCKS5
@@ -1011,6 +1015,7 @@
mailto link could not be decoded: %1$s
+
Dismiss
Reply
New message
diff --git a/src/main/res/xml/preferences_advanced.xml b/src/main/res/xml/preferences_advanced.xml
index 9a21754e0..3a38e3ca4 100644
--- a/src/main/res/xml/preferences_advanced.xml
+++ b/src/main/res/xml/preferences_advanced.xml
@@ -52,6 +52,9 @@
+
+