add ability to remove account from server

This commit is contained in:
Daniel Gultsch 2023-04-08 09:31:17 +02:00
parent 253cc9392e
commit 1fff1a0649
No known key found for this signature in database
GPG key ID: F43D18AD2A0982C2
44 changed files with 132 additions and 62 deletions

View file

@ -12,6 +12,8 @@ import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.Toast;
@ -196,6 +198,12 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
}
}
@Override
protected void deleteAccount(final Account account) {
super.deleteAccount(account);
this.selectedAccount = null;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (MenuDoubleTabUtil.shouldIgnoreTap()) {
@ -368,22 +376,6 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
}
}
private void deleteAccount(final Account account) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.mgmt_account_are_you_sure));
builder.setIconAttribute(android.R.attr.alertDialogIcon);
builder.setMessage(getString(R.string.mgmt_account_delete_confirm_text));
builder.setPositiveButton(getString(R.string.delete),
(dialog, which) -> {
xmppConnectionService.deleteAccount(account);
selectedAccount = null;
if (xmppConnectionService.getAccounts().size() == 0 && Config.MAGIC_CREATE_DOMAIN != null) {
WelcomeActivity.launch(this);
}
});
builder.setNegativeButton(getString(R.string.cancel), null);
builder.create().show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

View file

@ -51,6 +51,7 @@ import androidx.annotation.IntegerRes;
import androidx.annotation.NonNull;
import androidx.core.app.RemoteInput;
import androidx.core.content.ContextCompat;
import androidx.core.util.Consumer;
import com.google.common.base.Objects;
import com.google.common.base.Optional;
@ -78,6 +79,7 @@ import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;
import java.util.concurrent.Callable;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
@ -2473,6 +2475,20 @@ public class XmppConnectionService extends Service {
});
}
public void unregisterAccount(final Account account, final Consumer<Boolean> callback) {
final IqPacket iqPacket = new IqPacket(IqPacket.TYPE.SET);
final Element query = iqPacket.addChild("query",Namespace.REGISTER);
query.addChild("remove");
sendIqPacket(account, iqPacket, (a, response) -> {
if (response.getType() == IqPacket.TYPE.RESULT) {
deleteAccount(a);
callback.accept(true);
} else {
callback.accept(false);
}
});
}
public void deleteAccount(final Account account) {
final boolean connected = account.getStatus() == Account.State.ONLINE;
synchronized (this.conversations) {

View file

@ -648,6 +648,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
final MenuItem showBlocklist = menu.findItem(R.id.action_show_block_list);
final MenuItem showMoreInfo = menu.findItem(R.id.action_server_info_show_more);
final MenuItem changePassword = menu.findItem(R.id.action_change_password_on_server);
final MenuItem deleteAccount = menu.findItem(R.id.action_delete_account);
final MenuItem renewCertificate = menu.findItem(R.id.action_renew_certificate);
final MenuItem mamPrefs = menu.findItem(R.id.action_mam_prefs);
final MenuItem changePresence = menu.findItem(R.id.action_change_presence);
@ -663,6 +664,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
if (!mAccount.getXmppConnection().getFeatures().register()) {
changePassword.setVisible(false);
deleteAccount.setVisible(false);
}
mamPrefs.setVisible(mAccount.getXmppConnection().getFeatures().mam());
changePresence.setVisible(!mInitMode);
@ -670,6 +672,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
showBlocklist.setVisible(false);
showMoreInfo.setVisible(false);
changePassword.setVisible(false);
deleteAccount.setVisible(false);
mamPrefs.setVisible(false);
changePresence.setVisible(false);
}
@ -875,6 +878,9 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
case R.id.action_change_password_on_server:
gotoChangePassword(null);
break;
case R.id.action_delete_account:
deleteAccount();
break;
case R.id.action_mam_prefs:
editMamPrefs();
break;
@ -888,6 +894,12 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
return super.onOptionsItemSelected(item);
}
private void deleteAccount() {
this.deleteAccount(mAccount,()->{
finish();
});
}
private boolean inNeedOfSaslAccept() {
return mAccount != null && mAccount.getLastErrorStatus() == Account.State.DOWNGRADE_ATTACK && mAccount.getPinnedMechanismPriority() >= 0 && !accountInfoEdited();
}

View file

@ -41,6 +41,8 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.Toast;
@ -83,6 +85,7 @@ import eu.siacs.conversations.utils.AccountUtils;
import eu.siacs.conversations.utils.Compatibility;
import eu.siacs.conversations.utils.ExceptionHelper;
import eu.siacs.conversations.ui.util.SettingsUtils;
import eu.siacs.conversations.utils.SignupUtils;
import eu.siacs.conversations.utils.ThemeHelper;
import eu.siacs.conversations.xmpp.Jid;
import eu.siacs.conversations.xmpp.OnKeyStatusUpdated;
@ -289,6 +292,66 @@ public abstract class XmppActivity extends ActionBarActivity {
builder.create().show();
}
protected void deleteAccount(final Account account) {
this.deleteAccount(account, null);
}
protected void deleteAccount(final Account account, final Runnable postDelete) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
final View dialogView = getLayoutInflater().inflate(R.layout.dialog_delete_account, null);
final CheckBox deleteFromServer =
dialogView.findViewById(R.id.delete_from_server);
builder.setView(dialogView);
builder.setTitle(R.string.mgmt_account_delete);
builder.setPositiveButton(getString(R.string.delete),null);
builder.setNegativeButton(getString(R.string.cancel), null);
final AlertDialog dialog = builder.create();
dialog.setOnShowListener(dialogInterface->{
final Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
button.setOnClickListener(v -> {
final boolean unregister = deleteFromServer.isChecked();
if (unregister) {
if (account.isOnlineAndConnected()) {
deleteFromServer.setEnabled(false);
button.setText(R.string.please_wait);
button.setEnabled(false);
xmppConnectionService.unregisterAccount(account, result -> {
if (result) {
dialog.dismiss();
if (postDelete != null) {
postDelete.run();
}
if (xmppConnectionService.getAccounts().size() == 0 && Config.MAGIC_CREATE_DOMAIN != null) {
final Intent intent = SignupUtils.getSignUpIntent(this);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
} else {
deleteFromServer.setEnabled(true);
button.setText(R.string.delete);
button.setEnabled(true);
Toast.makeText(this,R.string.could_not_delete_account_from_server,Toast.LENGTH_LONG).show();
}
});
} else {
Toast.makeText(this,R.string.not_connected_try_again,Toast.LENGTH_LONG).show();
}
} else {
xmppConnectionService.deleteAccount(account);
dialog.dismiss();
if (xmppConnectionService.getAccounts().size() == 0 && Config.MAGIC_CREATE_DOMAIN != null) {
final Intent intent = SignupUtils.getSignUpIntent(this);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
} else if (postDelete != null) {
postDelete.run();
}
}
});
});
dialog.show();
}
abstract void onBackendConnected();
protected void registerListeners() {

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="?attr/dialog_vertical_padding"
android:paddingLeft="?attr/dialog_horizontal_padding"
android:paddingRight="?attr/dialog_horizontal_padding"
android:paddingTop="?attr/dialog_vertical_padding">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="@string/mgmt_account_delete_confirm_text"
android:textAppearance="@style/TextAppearance.Conversations.Body1"/>
<CheckBox
android:id="@+id/delete_from_server"
style="@style/Widget.Conversations.CheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/delete_from_server"/>
</LinearLayout>

View file

@ -55,6 +55,10 @@
app:showAsAction="never"
android:title="@string/change_password"/>
<item
android:id="@+id/action_delete_account"
android:title="@string/mgmt_account_delete"/>
<item
android:id="@+id/action_settings"
android:orderInCategory="100"

View file

@ -150,7 +150,6 @@
<string name="mgmt_account_publish_pgp">أنشر المفتاح العمومي OpenPGP</string>
<string name="unpublish_pgp">حذف مفتاح OpenPGP العمومي</string>
<string name="mgmt_account_enable">تفعيل الحساب</string>
<string name="mgmt_account_are_you_sure">هل أنت متأكد ؟</string>
<string name="attach_record_voice">تسجيل صوت</string>
<string name="account_settings_jabber_id">عنوان XMPP</string>
<string name="block_jabber_id">احجب عنوان XMPP</string>

View file

@ -184,7 +184,6 @@
<string name="unpublish_pgp_message">Наистина ли искате да премахнете своя публичен OpenPGP ключ от известяването си за присъствие?\nКонтактите Ви вече няма да могат да Ви изпращат съобщение, шифровани чрез OpenPGP.</string>
<string name="openpgp_has_been_published">Публичният OpenPGP ключ е публикуван.</string>
<string name="mgmt_account_enable">Активиране на профила</string>
<string name="mgmt_account_are_you_sure">Наистина ли искате това?</string>
<string name="mgmt_account_delete_confirm_text">Изтриването на профила Ви ще изтрие и цялата история на разговорите Ви</string>
<string name="attach_record_voice">Запис на глас</string>
<string name="account_settings_jabber_id">XMPP адрес</string>

View file

@ -176,7 +176,6 @@
<string name="unpublish_pgp_message">Esteu segur que voleu eliminar la vostra clau pública d\'OpenPGP de l\'anunci de la vostra presència?\nEls vostres contactes ja no podran enviar missatges xifrats amb OpenPGP.</string>
<string name="openpgp_has_been_published">S\'ha publicat la clau pública de OpenPGP.</string>
<string name="mgmt_account_enable">Habilita el compte</string>
<string name="mgmt_account_are_you_sure">N\'esteu segur?</string>
<string name="mgmt_account_delete_confirm_text">En esborrar el teu compte s\'esborra tot l\'historial de converses</string>
<string name="attach_record_voice">Enregistra veu</string>
<string name="account_settings_jabber_id">Adreça XMPP</string>

View file

@ -188,7 +188,6 @@
<string name="unpublish_pgp_message">Skutečně chcete odstranit Váš současný veřejný OpenPGP klíč?\nVaše kontakty Vám nebudou moci nadále posílat zprávy šifrované pomocí OpenPGP. </string>
<string name="openpgp_has_been_published">OpenPGP veřejný klíč zveřejněn.</string>
<string name="mgmt_account_enable">Povolit účet</string>
<string name="mgmt_account_are_you_sure">Jste si jisti?</string>
<string name="mgmt_account_delete_confirm_text">Smazáním Vašeho účtu dojde k vymazání celé Vaší historie konverzací. </string>
<string name="attach_record_voice">Nahrát hlas</string>
<string name="account_settings_jabber_id">Adresa XMPP</string>

View file

@ -185,7 +185,6 @@
<string name="unpublish_pgp_message">Er du sikker på, at du vil fjerne din OpenPGP-nøgle fra din nærværsmeddelelse?\nDine kontakter kan ikke længere sende dig OpenPGP-krypterede meddelelser.</string>
<string name="openpgp_has_been_published">OpenPGP offentlig nøgle er offentliggjort</string>
<string name="mgmt_account_enable">Aktiver konto</string>
<string name="mgmt_account_are_you_sure">Er du sikker?</string>
<string name="mgmt_account_delete_confirm_text">Sletning af din konto sletter hele din samtalehistorik</string>
<string name="attach_record_voice">Optag lyd</string>
<string name="account_settings_jabber_id">XMPP-adresse</string>

View file

@ -184,7 +184,6 @@
<string name="unpublish_pgp_message">Bist du sicher, dass du deinen öffentlichen OpenPGP-Schlüssel aus deiner Anwesenheitsmitteilung entfernen möchtest?\nDeine Kontakte können dir dann keine OpenPGP-verschlüsselten Nachrichten senden.</string>
<string name="openpgp_has_been_published">Öffentlicher OpenPGP-Schlüssel veröffentlicht.</string>
<string name="mgmt_account_enable">Konto aktivieren </string>
<string name="mgmt_account_are_you_sure">Bist du dir sicher?</string>
<string name="mgmt_account_delete_confirm_text">Die Löschung deines Kontos löscht deinen gesamten Gesprächsverlauf</string>
<string name="attach_record_voice">Sprache aufzeichnen</string>
<string name="account_settings_jabber_id">XMPP-Adresse</string>
@ -1006,5 +1005,4 @@
<string name="incoming_call_duration_timestamp">Eingehender Anruf (%s) · %s</string>
<string name="outgoing_call_duration_timestamp">Ausgehender Anruf (%s) · %s</string>
<string name="outgoing_call_timestamp">Ausgehender Anruf · %s</string>
<string name="channel_discover_opt_in_message">Die Channelsuche verwendet einen Drittanbieterservice namens &lt;a href=https://search.jabber.network&gt;search.jabber.network&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Wenn du diese Funktion verwendest, werden deine IP-Adresse und deine Suchbegriffe an diesen Dienst übertragen. Weitere Informationen findest du in deren &lt;a href=https://search.jabber.network/privacy&gt;Datenschutzerklärung&lt;/a&gt;.</string>
</resources>

View file

@ -184,7 +184,6 @@
<string name="unpublish_pgp_message">Είστε βέβαιοι ότι θέλετε να αφαιρέσετε το δημόσιο κλειδί σας OpenPGP από την ανακοίνωση παρουσίας σας;\nΟι επαφές σας δεν θα είναι πλέον δυνατόν να σας στείλουν κρυπτογραφημένα μηνύματα με OpenPGP.</string>
<string name="openpgp_has_been_published">Το δημόσιο κλειδί OpenPGP έχει δημοσιευτεί.</string>
<string name="mgmt_account_enable">Ενεργοποίηση λογαριασμού</string>
<string name="mgmt_account_are_you_sure">Είστε βέβαιοι;</string>
<string name="mgmt_account_delete_confirm_text">Η διαγραφή του λογαριασμού σας διαγράφει όλο το ιστορικό συζητήσεών σας</string>
<string name="attach_record_voice">Εγγραφή φωνής</string>
<string name="account_settings_jabber_id">Διεύθυνση XMPP</string>

View file

@ -187,7 +187,6 @@
<string name="unpublish_pgp_message">¿Estás seguro de que quieres eliminar tu clave pública OpenPGP de tu anuncio de presencia?\nTus contactos no podrán enviarte mensajes cifrados con OpenPGP.</string>
<string name="openpgp_has_been_published">La clave pública OpenPGP ha sido publicada.</string>
<string name="mgmt_account_enable">Habilitar</string>
<string name="mgmt_account_are_you_sure">¿Estás seguro?</string>
<string name="mgmt_account_delete_confirm_text">Si eliminas tu cuenta tu historial de conversaciones completo se perderá</string>
<string name="attach_record_voice">Grabar audio</string>
<string name="account_settings_jabber_id">Dirección XMPP</string>
@ -1016,7 +1015,6 @@
<string name="pref_up_push_server_title">Servidor push</string>
<string name="pref_up_push_server_summary">Un servidor push elegido por el usuario para transmitir mensajes push a través de XMPP a su dispositivo.</string>
<string name="no_account_deactivated">Ninguno (desactivado)</string>
<string name="channel_discover_opt_in_message">El descubrimiento de canales utiliza un servicio de terceros llamado &lt;a href=https://search.jabber.network&gt;search.jabber.network&lt;/a&gt;.&lt;br&gt;&lt;br&gt;El uso de esta función transmitirá tú dirección IP y términos de búsqueda a ese servicio Consulta tú &lt;a href=https://search.jabber.network/privacy&gt;Política de privacidad&lt;/a&gt; para obtener más información.</string>
<string name="incoming_call_duration_timestamp">Llamada entrante (%s) · %s</string>
<string name="outgoing_call_duration_timestamp">Llamada saliente (%s) · %s</string>
<string name="outgoing_call_timestamp">Llamadas salientes · %s</string>

View file

@ -146,7 +146,6 @@
<string name="unpublish_pgp">OpenPGP gako publikoa kendu</string>
<string name="unpublish_pgp_message">Ziur zure OpenPGP gako publikoa zure presentzia eguneraketetatik kendu nahi duzula?\nZure kontaktuek ezin dizute gehiago OpenPGPz enkriptatutako mezuak bidali.</string>
<string name="mgmt_account_enable">Kontua gaitu</string>
<string name="mgmt_account_are_you_sure">Ziur al zaude?</string>
<string name="attach_record_voice">Ahotsa grabatu</string>
<string name="account_settings_jabber_id">XMPP helbidea</string>
<string name="block_jabber_id">XMPP helbidea blokeatu</string>

View file

@ -118,7 +118,6 @@
<string name="mgmt_account_publish_pgp">انتشار کلید عمومی OpenPGP</string>
<string name="unpublish_pgp">حذف کلید عمومی OpenPGP</string>
<string name="mgmt_account_enable">فعال سازی حساب کاربری</string>
<string name="mgmt_account_are_you_sure">آیا مطمئن هستید؟</string>
<string name="attach_record_voice">ضبط صدا</string>
<string name="account_settings_example_jabber_id">username@example.com</string>
<string name="password">کلمه عبور</string>

View file

@ -179,7 +179,6 @@
<string name="unpublish_pgp_message">Haluatko varmasti poistaa OpenPGP-avaimesi tilamainostuksistasi?\nYhteystietosi eivät voi enää lähettää sinulle OpenPGP-salattuja viestejä.</string>
<string name="openpgp_has_been_published">OpenPGP julkinen avain julkaistu.</string>
<string name="mgmt_account_enable">Ota tunnus käyttöön</string>
<string name="mgmt_account_are_you_sure">Oletko varma?</string>
<string name="mgmt_account_delete_confirm_text">Tilin poistaminen pyyhkii koko keskusteluhistoriasi</string>
<string name="attach_record_voice">Nauhoita ääntä</string>
<string name="account_settings_jabber_id">XMPP-osoite</string>

View file

@ -181,7 +181,6 @@
<string name="unpublish_pgp_message">Êtes-vous sûr de vouloir supprimer votre clé publique OpenPGP de votre annonce de présence?\nVos contacts ne pourront plus vous envoyer de message chiffrés avec OpenPGP.</string>
<string name="openpgp_has_been_published">Clé publique OpenPGP publiée</string>
<string name="mgmt_account_enable">Activer</string>
<string name="mgmt_account_are_you_sure">Êtes-vous sûr?</string>
<string name="mgmt_account_delete_confirm_text">Supprimer votre compte effacera l\'historique de vos conversations</string>
<string name="attach_record_voice">Enregistrer un son</string>
<string name="account_settings_jabber_id">Adresse XMPP</string>

View file

@ -188,7 +188,6 @@
<string name="unpublish_pgp_message">Tes a certeza de que queres eliminar a túa chave pública OpenPGP do anuncio de presenza? \nOs teus contactos non poderán enviarche mensaxes cifradas con OpenPGP.</string>
<string name="openpgp_has_been_published">Publicada a chave pública OpenPGP.</string>
<string name="mgmt_account_enable">Habilitar</string>
<string name="mgmt_account_are_you_sure">Seguro?</string>
<string name="mgmt_account_delete_confirm_text">Ao eliminar a conta eliminas todo o historial de conversas</string>
<string name="attach_record_voice">Gravar audio</string>
<string name="account_settings_jabber_id">Enderezo XMPP</string>
@ -1009,5 +1008,4 @@
<string name="incoming_call_duration_timestamp">Chamada entrante (%s) · %s</string>
<string name="outgoing_call_duration_timestamp">Chamada saínte (%s) · %s</string>
<string name="outgoing_call_timestamp">Chamada saínte · %s</string>
<string name="channel_discover_opt_in_message">O descubrimento de canles usa un servizo de terceiros chamado &lt;a href=https://search.jabber.network&gt;search.jabber.network&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Ao usar esta ferramenta transmites o teu enderezo IP e termos de busca a ese servizo. Para saber máis le a súa &lt;a href=https://search.jabber.network/privacy&gt;Política de Privacidade&lt;/a&gt;.</string>
</resources>

View file

@ -184,7 +184,6 @@
<string name="unpublish_pgp_message">Biztosan el szeretné távolítani az OpenPGP nyilvános kulcsát a jelenléti közleményéből?\nA partnerei többé nem lesznek képesek OpenPGP titkosítású üzeneteket küldeni Önnek.</string>
<string name="openpgp_has_been_published">Az OpenPGP nyilvános kulcs közzé lett téve.</string>
<string name="mgmt_account_enable">Fiók engedélyezése</string>
<string name="mgmt_account_are_you_sure">Biztos benne?</string>
<string name="mgmt_account_delete_confirm_text">A fiók törlésével az összes beszélgetési előzményei is eltávolításra kerülnek</string>
<string name="attach_record_voice">Hang rögzítése</string>
<string name="account_settings_jabber_id">XMPP-cím</string>

View file

@ -173,7 +173,6 @@
<string name="unpublish_pgp_message">Yakin ingin menghapus kunci publik OpenPGP Anda dari pengumuman kehadiran?\nKontak Anda tidak lagi dapat mengirimi Anda pesan terenkripsi OpenPGP.</string>
<string name="openpgp_has_been_published">Kunci publik OpenPGP diumumkan</string>
<string name="mgmt_account_enable">Aktifkan Akun</string>
<string name="mgmt_account_are_you_sure">Apakah Anda yakin.?</string>
<string name="mgmt_account_delete_confirm_text">Menghapus akun akan menghilangkan semua riwayat percakapan</string>
<string name="attach_record_voice">Rekam suara</string>
<string name="account_settings_jabber_id">alamat XMPP</string>

View file

@ -185,7 +185,6 @@
<string name="unpublish_pgp_message">Sei sicuro di volere rimuovere la tua chiave pubblica OpenPGP dalla dichiarazione di presenza?\nI tuoi contatti non potranno più inviarti messaggi cifrati con OpenPGP.</string>
<string name="openpgp_has_been_published">Chiave pubblica OpenPGP pubblicata.</string>
<string name="mgmt_account_enable">Attiva profilo</string>
<string name="mgmt_account_are_you_sure">Sei sicuro?</string>
<string name="mgmt_account_delete_confirm_text">L\'eliminazione del tuo profilo cancellerà tutta la cronologia dielle conversazioni</string>
<string name="attach_record_voice">Registra la voce</string>
<string name="account_settings_jabber_id">Indirizzo XMPP</string>
@ -1020,5 +1019,4 @@
<string name="incoming_call_duration_timestamp">Chiamata in arrivo (%s) · %s</string>
<string name="outgoing_call_duration_timestamp">Chiamata in uscita (%s) · %s</string>
<string name="outgoing_call_timestamp">Chiamata in uscita · %s</string>
<string name="channel_discover_opt_in_message">La scoperta dei canali usa un servizio di terze parti chiamato &lt;a href=https://search.jabber.network&gt;search.jabber.network&lt;/a&gt;.&lt;br&gt;&lt;br&gt;L\'uso di questa funzione invierà il tuo indirizzo IP e i termini di ricerca a quel servizio. Vedi la sua &lt;a href=https://search.jabber.network/privacy&gt;informativa sulla privacy&lt;/a&gt; per maggiori informazioni.</string>
</resources>

View file

@ -106,7 +106,6 @@
<string name="mgmt_account_publish_avatar">פרסם תמונת פרופיל</string>
<string name="mgmt_account_publish_pgp">פרסם מפתח ציבורי של OpenPGP</string>
<string name="mgmt_account_enable">הפעל חשבון</string>
<string name="mgmt_account_are_you_sure">האם אתה בטוח?</string>
<string name="attach_record_voice">הקלט קול</string>
<string name="account_settings_example_jabber_id">username@example.com</string>
<string name="password">סיסמה</string>

View file

@ -181,7 +181,6 @@
<string name="unpublish_pgp_message">出席情報告知から OpenPGP 公開鍵を削除してもよろしいですか?\n連絡先はあなたに OpenPGP 暗号化メッセージを送信できなくなります。</string>
<string name="openpgp_has_been_published">OpenPGP 公開鍵を公開しました。</string>
<string name="mgmt_account_enable">アカウントを有効化</string>
<string name="mgmt_account_are_you_sure">よろしいですか?</string>
<string name="mgmt_account_delete_confirm_text">アカウントを削除すると会話履歴がすべて消去されます</string>
<string name="attach_record_voice">音声を録音</string>
<string name="account_settings_jabber_id">XMPP アドレス</string>

View file

@ -123,7 +123,6 @@
<string name="mgmt_account_publish_avatar">아바타 공개 </string>
<string name="mgmt_account_publish_pgp">OpenPGP 공개 키 공개 </string>
<string name="mgmt_account_enable">계정 사용 </string>
<string name="mgmt_account_are_you_sure">확실합니까? </string>
<string name="attach_record_voice">녹음 </string>
<string name="account_settings_example_jabber_id">username@example.com</string>
<string name="password">암호 </string>

View file

@ -120,7 +120,6 @@
<string name="mgmt_account_publish_avatar">അവതാർ പ്രസിദ്ധീകരിക്കൂ</string>
<string name="mgmt_account_publish_pgp">OpenPGP പബ്ലിക് കീ പ്രസിദ്ധീകരിക്കുക</string>
<string name="unpublish_pgp">OpenPGP പബ്ലിക് കീ നീക്കം ചെയ്യുക</string>
<string name="mgmt_account_are_you_sure">നിങ്ങള്ക്ക് ഉറപ്പാണോ?</string>
<string name="attach_record_voice">ശബ്‌ദം റെക്കോർഡുചെയ്യൂ</string>
<string name="account_settings_jabber_id">XMPP വിലാസം</string>
<string name="block_jabber_id">XMPP വിലാസം തടയുക</string>

View file

@ -133,7 +133,6 @@
<string name="unpublish_pgp">Fjern offentlig OpenPGP-nøkkel</string>
<string name="unpublish_pgp_message">Er du sikker på at du vil fjerne din offentlige OpenPGP-nøkkel fra din tilstedeværelseskunngjøring?\nDine kontakter vil ikke lenger kunne sende deg OpenPGP-krypterte meldinger.</string>
<string name="mgmt_account_enable">Skru på konto</string>
<string name="mgmt_account_are_you_sure">Bekreft.</string>
<string name="attach_record_voice">Ta opp stemme</string>
<string name="account_settings_example_jabber_id">brukernavn@eksempel.no</string>
<string name="password">Passord</string>

View file

@ -171,7 +171,6 @@
<string name="unpublish_pgp_message">Weet je zeker dat je je OpenPGP-publieke sleutel uit je aanwezigheidsaankondiging wil verwijderen?\nJe contacten zullen je geen OpenPGP-versleutelde berichten meer kunnen sturen.</string>
<string name="openpgp_has_been_published">OpenPGP-publieke sleutel gepubliceerd.</string>
<string name="mgmt_account_enable">Account inschakelen</string>
<string name="mgmt_account_are_you_sure">Weet je het zeker?</string>
<string name="attach_record_voice">Stem opnemen</string>
<string name="account_settings_jabber_id">XMPP-adres</string>
<string name="block_jabber_id">XMPP-adres blokkeren</string>

View file

@ -188,7 +188,6 @@
<string name="unpublish_pgp_message">Czy na pewno chcesz usunąć klucz publiczny OpenPGP ze swojej propagacji obecności?\nTwoje kontakty nie będą już mogły wysyłać Ci wiadomości zaszyfrowanych OpenPGP.</string>
<string name="openpgp_has_been_published">Klucz publiczny OpenPGP został opublikowany.</string>
<string name="mgmt_account_enable">Włącz konto</string>
<string name="mgmt_account_are_you_sure">Czy na pewno?</string>
<string name="mgmt_account_delete_confirm_text">Usunięcie konta usuwa całą historię rozmów</string>
<string name="attach_record_voice">Nagraj głos</string>
<string name="account_settings_jabber_id">Adres XMPP</string>
@ -1038,6 +1037,5 @@
<string name="decline">Odrzuć</string>
<string name="incoming_call_duration_timestamp">Połączenie przychodzące (%s) · %s</string>
<string name="outgoing_call_duration_timestamp">Połączenie wychodzące (%s) · %s</string>
<string name="channel_discover_opt_in_message">Wykrywanie kanałów korzysta z usługi innej firmy o nazwie &lt;a href=https://search.jabber.network&gt;search.jabber.network&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Użycie tej funkcji spowoduje przesłanie adresu IP i wyszukiwanych terminów do tej usługi. Zobacz ich &lt;a href=https://search.jabber.network/privacy&gt;Politykę prywatności&lt;/a&gt;, aby uzyskać więcej informacji.</string>
<string name="outgoing_call_timestamp">Połączenie wychodzące · %s</string>
</resources>

View file

@ -188,7 +188,6 @@
<string name="unpublish_pgp_message">Tem certeza que deseja remover sua chave pública OpenPGP do seu anúncio de presença?\nSeus contatos não poderão mais enviar mensagens criptografadas com o OpenPGP para você.</string>
<string name="openpgp_has_been_published">A chave pública do OpenPGP foi publicada.</string>
<string name="mgmt_account_enable">Habilitar a conta</string>
<string name="mgmt_account_are_you_sure">Tem certeza?</string>
<string name="mgmt_account_delete_confirm_text">Se você excluir a sua conta todo o seu histórico de conversas será apagado</string>
<string name="attach_record_voice">Gravar voz</string>
<string name="account_settings_jabber_id">Endereço XMPP</string>

View file

@ -128,7 +128,6 @@
<string name="mgmt_account_publish_pgp">Publicar chave pública OpenPGP</string>
<string name="unpublish_pgp">Remover chave pública OpenPGP</string>
<string name="mgmt_account_enable">Ativar conta</string>
<string name="mgmt_account_are_you_sure">Tem a certeza?</string>
<string name="attach_record_voice">Gravar voz</string>
<string name="account_settings_example_jabber_id">nomedeutilizador@exemplo.com</string>
<string name="password">Palavra-passe</string>

View file

@ -187,7 +187,6 @@
<string name="unpublish_pgp_message">Sigur doriți să vă ștergeți cheia publică OpenPGP din mesajele de prezență?\nContactele dumneavoastră nu vor mai putea să vă trimită mesaje criptate cu OpenPGP.</string>
<string name="openpgp_has_been_published">Cheia publică OpenPGP a fost publicată.</string>
<string name="mgmt_account_enable">Activează cont</string>
<string name="mgmt_account_are_you_sure">Sigur doriți asta?</string>
<string name="mgmt_account_delete_confirm_text">Dacă vă ștergeți contul, întregul istoric de conversații va fi pierdut</string>
<string name="attach_record_voice">Înregistrare voce</string>
<string name="account_settings_jabber_id">Adresă XMPP</string>
@ -1028,5 +1027,4 @@
<string name="incoming_call_duration_timestamp">Apel primit (%s) · %s</string>
<string name="outgoing_call_duration_timestamp">Apel efectuat (%s) · %s</string>
<string name="outgoing_call_timestamp">Apel efectuat · %s</string>
<string name="channel_discover_opt_in_message">Descoperirea de canale publice folosește un serviciu terț numit &lt;a href=https://search.jabber.network&gt;search.jabber.network&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Folosind această funcție se va transmite adresa dumneavoastră IP și cuvintele căutate către acest serviciu. Pentru mai multe informații citiți &lt;a href=https://search.jabber.network/privacy&gt;Politica de confidențialitate&lt;/a&gt; a serviciului.</string>
</resources>

View file

@ -183,7 +183,6 @@
<string name="unpublish_pgp_message">Вы действительно хотите удалить ваш OpenPGP публичный ключ из опубликованных?\nВаши собеседники не смогут больше отправлять вам зашифрованные OpenPGP сообщения.</string>
<string name="openpgp_has_been_published">Публичный ключ OpenPGP опубликован.</string>
<string name="mgmt_account_enable">Включить аккаунт</string>
<string name="mgmt_account_are_you_sure">Вы уверены?</string>
<string name="mgmt_account_delete_confirm_text">Удаление аккаунта также удалит всю историю вашей переписки</string>
<string name="attach_record_voice">Запись голоса</string>
<string name="account_settings_jabber_id">XMPP-адрес</string>

View file

@ -184,7 +184,6 @@
<string name="mgmt_account_publish_pgp">Zverejniť OpenPGP kľúč</string>
<string name="unpublish_pgp">Odstrániť OpenPGP  verejný kľúč</string>
<string name="mgmt_account_enable">Povoliť účet</string>
<string name="mgmt_account_are_you_sure">Ste si istý?</string>
<string name="attach_record_voice">Nahrať hlas</string>
<string name="account_settings_jabber_id">XMPP adresa</string>
<string name="block_jabber_id">Zablokovať adresu XMPP</string>

View file

@ -148,7 +148,6 @@
<string name="unpublish_pgp">Hiq kyç publik OpenPGP</string>
<string name="openpgp_has_been_published">Kyçi publik OpenPGP u bë publik.</string>
<string name="mgmt_account_enable">Aktivizoje llogarinë</string>
<string name="mgmt_account_are_you_sure">Jeni i sigurt\?</string>
<string name="attach_record_voice">Incizoni zë</string>
<string name="account_settings_jabber_id">Adresë XMPP</string>
<string name="block_jabber_id">Bllokoj adresë XMPP</string>

View file

@ -183,7 +183,6 @@
<string name="unpublish_pgp_message">Желите ли заиста да уклоните ваш ОпенПГП кључ из ваше објаве присутности?\nВаши контакти више неће моћи да вам шаљу ОпенПГП шифроване поруке.</string>
<string name="openpgp_has_been_published">ОпенПГП кључ је објављен.</string>
<string name="mgmt_account_enable">Укључи налог</string>
<string name="mgmt_account_are_you_sure">Да ли сте сигурни?</string>
<string name="mgmt_account_delete_confirm_text">Брисањем налога бришете и целу историју ваших разговора.</string>
<string name="attach_record_voice">Сними глас</string>
<string name="account_settings_jabber_id">ИксМПП адреса</string>

View file

@ -185,7 +185,6 @@
<string name="unpublish_pgp_message">Är du säker på att du vill ta bort din OpenPGP publik nyckel från din tillgänglighetsuppdatering?\nDina kontakter kommer inte längre att kunna skicka dig OpenPGP-krypterade meddelande.</string>
<string name="openpgp_has_been_published">OpenPGP-nyckel har publicerats.</string>
<string name="mgmt_account_enable">Aktivera konto</string>
<string name="mgmt_account_are_you_sure">Är du säker?</string>
<string name="mgmt_account_delete_confirm_text">Om du tar bort ditt konto raderas hela din konversationshistorik</string>
<string name="attach_record_voice">Spela in röst</string>
<string name="account_settings_jabber_id">XMPP-adress</string>

View file

@ -198,7 +198,6 @@
\nTwoje kōntakty niy bydōm już mogły wysyłać ci wiadōmości zaszyfrowanych OpenPGP.</string>
<string name="openpgp_has_been_published">Klucz publiczny OpenPGP ôstoł ôpublikowany.</string>
<string name="mgmt_account_enable">Włōncz kōnto</string>
<string name="mgmt_account_are_you_sure">Na zicher\?</string>
<string name="mgmt_account_delete_confirm_text">Wymazanie kōnta wymazuje cołko historyjo godek</string>
<string name="attach_record_voice">Nagrej głos</string>
<string name="account_settings_jabber_id">Adresa XMPP</string>

View file

@ -182,7 +182,6 @@
<string name="unpublish_pgp_message">OpenPGP genel anahtarınız Çevrim içi durum anonsunuzdan kaldırmak istediğinizden emin misiniz?\nArtık kişileriniz size şifrelenmiş OpenPGP mesajları gönderemeyecek.</string>
<string name="openpgp_has_been_published">OpenPGP genel anahtarı yayınlandı.</string>
<string name="mgmt_account_enable">Hesabı etkinleştir</string>
<string name="mgmt_account_are_you_sure">Emin misiniz?</string>
<string name="mgmt_account_delete_confirm_text">Hesabınızın silinmesi bütün konuşma geçmişinizi siler</string>
<string name="attach_record_voice">Ses kaydet</string>
<string name="account_settings_jabber_id">XMPP adresi</string>

View file

@ -168,7 +168,6 @@
<string name="unpublish_pgp_message">Ви впевнені, що хочете вилучити ваш публічний ключ OpenPGP з вашого оголошення про присутність?\nВаші контакти більше не зможуть надсилати вам повідомлення, зашифровані OpenPGP.</string>
<string name="openpgp_has_been_published">Публічний ключ OpenPGP опубліковано.</string>
<string name="mgmt_account_enable">Увімкнути обліковий запис</string>
<string name="mgmt_account_are_you_sure">Ви впевнені?</string>
<string name="mgmt_account_delete_confirm_text">Вилучення облікового запису вилучіть всю історію спілкування</string>
<string name="attach_record_voice">Записати голос</string>
<string name="account_settings_jabber_id">Адреса XMPP</string>

View file

@ -181,7 +181,6 @@
<string name="unpublish_pgp_message">Bạn có chắc bạn muốn xoá mã khoá OpenPGP công khai của bạn khỏi sự thông báo có mặt của bạn không?\nCác liên hệ của bạn sẽ không thể gửi các tin nhắn được mã hoá bằng OpenPGP cho bạn nữa.</string>
<string name="openpgp_has_been_published">Đã xuất bản mã khoá OpenPGP công khai.</string>
<string name="mgmt_account_enable">Bật tài khoản</string>
<string name="mgmt_account_are_you_sure">Bạn chắc chứ?</string>
<string name="mgmt_account_delete_confirm_text">Việc xoá tài khoản sẽ xoá toàn bộ lịch sử cuộc hội thoại của bạn</string>
<string name="attach_record_voice">Ghi âm</string>
<string name="account_settings_jabber_id">Địa chỉ XMPP</string>

View file

@ -185,7 +185,6 @@
<string name="unpublish_pgp_message">您确定要从在线状态中移除OpenPGP公钥吗\n您的联系人将无法再向您发送 OpenPGP 加密信息。</string>
<string name="openpgp_has_been_published">OpenPGP 公钥已发布。</string>
<string name="mgmt_account_enable">启用账户</string>
<string name="mgmt_account_are_you_sure">确定?</string>
<string name="mgmt_account_delete_confirm_text">如果您删除帐户,您的所有聊天记录将会丢失</string>
<string name="attach_record_voice">录制音频</string>
<string name="account_settings_jabber_id">XMPP地址</string>
@ -997,5 +996,4 @@
<string name="incoming_call_duration_timestamp">来电 (%s) · %s</string>
<string name="outgoing_call_duration_timestamp">去电 (%s) · %s</string>
<string name="outgoing_call_timestamp">去电 · %s</string>
<string name="channel_discover_opt_in_message">频道发现功能使用第三方服务 &lt;a href=https://search.jabber.network&gt;search.jabber.network&lt;/a&gt;&lt;br&gt;&lt;br&gt;使用此功能会发送你的 IP 地址和搜索词条到该服务。更多信息见 &lt;a href=https://search.jabber.network/privacy&gt;隐私政策&lt;/a&gt;</string>
</resources>

View file

@ -172,7 +172,6 @@
<string name="unpublish_pgp_message">確定要移除上線狀態中的 OpenPGP 公開金鑰嗎?\n這樣一來你的聯絡人就無法傳送以 OpenPGP 加密的訊息給你了。</string>
<string name="openpgp_has_been_published">OpenPGP 公開金鑰已發佈 </string>
<string name="mgmt_account_enable">啟用帳戶</string>
<string name="mgmt_account_are_you_sure">確定?</string>
<string name="mgmt_account_delete_confirm_text">刪除帳戶將清除您全部的會話記錄</string>
<string name="attach_record_voice">錄音</string>
<string name="account_settings_jabber_id">XMPP 位址</string>

View file

@ -183,8 +183,7 @@
<string name="unpublish_pgp_message">Are you sure you want to remove your OpenPGP public key from your presence announcement?\nYour contacts will no longer be able to send you OpenPGP encrypted messages.</string>
<string name="openpgp_has_been_published">OpenPGP public key published.</string>
<string name="mgmt_account_enable">Enable account</string>
<string name="mgmt_account_are_you_sure">Are you sure?</string>
<string name="mgmt_account_delete_confirm_text">Deleting your account erases your entire conversation history</string>
<string name="mgmt_account_delete_confirm_text">Are you sure you want to delete your account? Deleting your account erases your entire conversation history</string>
<string name="attach_record_voice">Record voice</string>
<string name="account_settings_jabber_id">XMPP address</string>
<string name="block_jabber_id">Block XMPP address</string>
@ -1007,5 +1006,7 @@
<string name="pref_up_push_server_summary">A user-chosen push server to relay push messages via XMPP to your device.</string>
<string name="no_account_deactivated">None (deactivated)</string>
<string name="decline">Decline</string>
<string name="delete_from_server">Remove account from server</string>
<string name="could_not_delete_account_from_server">Could not delete account from server</string>
</resources>