This commit is contained in:
M66B 2018-08-29 05:31:00 +00:00
parent 3fee5e24ec
commit c65eb63ded
41 changed files with 83 additions and 39 deletions

View File

@ -203,7 +203,8 @@ public abstract class DB extends RoomDatabase {
jaddress.getString("address")));
}
} catch (Throwable ex) {
Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
// Compose can store invalid addresses
Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
}
return result.toArray(new Address[0]);
}

View File

@ -825,22 +825,25 @@ public class FragmentMessage extends FragmentEx {
if (message.to == null || message.to.length == 0)
throw new IllegalArgumentException(getString(R.string.title_to_missing));
InternetAddress to = (InternetAddress) message.to[0];
Intent data = new Intent();
data.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{to.getAddress()});
// Find encrypted message
String begin = "-----BEGIN PGP MESSAGE-----";
String end = "-----END PGP MESSAGE-----";
Document document = Jsoup.parse(message.read(getContext()));
String encrypted = document.text();
int efrom = encrypted.indexOf(begin) + begin.length();
int eto = encrypted.indexOf(end);
if (efrom < 0 || eto < 0)
throw new IllegalArgumentException(getString(R.string.title_not_encrypted));
encrypted = begin + "\n" + encrypted.substring(efrom, eto).replace(" ", "\n") + end + "\n";
final InputStream is = new ByteArrayInputStream(encrypted.getBytes("UTF-8"));
final ByteArrayOutputStream os = new ByteArrayOutputStream();
InternetAddress to = (InternetAddress) message.to[0];
Intent data = new Intent();
data.setAction(OpenPgpApi.ACTION_DECRYPT_VERIFY);
data.putExtra(OpenPgpApi.EXTRA_USER_IDS, new String[]{to.getAddress()});
OpenPgpApi api = new OpenPgpApi(getContext(), openPgpConnection.getService());
api.executeApiAsync(data, is, os, new OpenPgpApi.IOpenPgpCallback() {
@Override

View File

@ -112,9 +112,10 @@ public class MessageHelper {
props.put("mail.mime.address.strict", "false");
props.put("mail.mime.decodetext.strict", "false");
props.put("mail.mime.ignoreunknownencoding", "true");
props.put("mail.mime.ignoreunknownencoding", "true"); // Content-Transfer-Encoding
props.put("mail.mime.decodefilename", "true");
props.put("mail.mime.encodefilename", "true");
props.put("mail.mime.multipart.ignoremissingboundaryparameter", "true"); // javax.mail.internet.ParseException: In parameter list
props.put("mail.mime.multipart.ignoreexistingboundaryparameter", "true");
// https://javaee.github.io/javamail/OAuth2
@ -276,34 +277,32 @@ public class MessageHelper {
return TextUtils.join(", ", formatted);
}
String getHtml() throws MessagingException, UnsupportedEncodingException {
String getHtml() throws MessagingException, IOException {
return getHtml(imessage);
}
private String getHtml(Part part) throws MessagingException, UnsupportedEncodingException {
if (part.isMimeType("text/*"))
private String getHtml(Part part) throws MessagingException, IOException {
if (part.isMimeType("text/*")) {
String s;
try {
String s = part.getContent().toString();
if (part.isMimeType("text/plain"))
s = "<pre>" + s.replaceAll("\\r?\\n", "<br />") + "</pre>";
return s;
s = part.getContent().toString();
} catch (UnsupportedEncodingException ex) {
// x-binaryenc
Log.w(Helper.TAG, "Unsupported encoding: " + part.getContentType());
// https://javaee.github.io/javamail/FAQ#unsupen
//if ("x-binaryenc".equals(part.getContentType())) {
// InputStream is = part.getInputStream();
// ByteArrayOutputStream os = new ByteArrayOutputStream();
// byte[] buffer = new byte[4096];
// for (int len = is.read(buffer); len != -1; len = is.read(buffer))
// os.write(buffer, 0, len);
// s = new String(os.toByteArray(), "US-ASCII");
//}
throw new UnsupportedEncodingException(part.getContentType());
} catch (IOException ex) {
Log.w(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
return null;
InputStream is = part.getInputStream();
ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
for (int len = is.read(buffer); len != -1; len = is.read(buffer))
os.write(buffer, 0, len);
s = new String(os.toByteArray(), "US-ASCII");
}
if (part.isMimeType("text/plain"))
s = "<pre>" + s.replaceAll("\\r?\\n", "<br />") + "</pre>";
return s;
}
if (part.isMimeType("multipart/alternative")) {
String text = null;
try {

View File

@ -739,7 +739,11 @@ public class ServiceSynchronize extends LifecycleService {
// Wait for stop or folder error
Log.i(Helper.TAG, account.name + " wait");
synchronized (state) {
state.wait(STORE_NOOP_INTERVAL);
try {
state.wait(STORE_NOOP_INTERVAL);
} catch (InterruptedException ex) {
Log.w(Helper.TAG, account.name + " wait " + ex.toString());
}
}
Log.i(Helper.TAG, account.name + " waited");
}

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -157,6 +157,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -157,6 +157,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -157,6 +157,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -157,6 +157,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -157,6 +157,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -149,6 +149,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Vis CC/BCC</string>
<string name="title_add_attachment">Vedhæft fil</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Afsender mangler</string>

View File

@ -23,7 +23,7 @@
</plurals>
<string name="title_notification_failed">\'%1$s\' fehlgeschlagen</string>
<string name="menu_setup">Einstellungen</string>
<string name="menu_answers">Standard replies</string>
<string name="menu_answers">Standardantworten</string>
<string name="menu_operations">Vorgänge</string>
<string name="menu_legend">Legende</string>
<string name="menu_faq">FAQ</string>
@ -51,10 +51,10 @@
<string name="title_setup_done">Fertig</string>
<string name="title_setup_dark_theme">Dunkles Thema</string>
<string name="title_advanced">Erweiterte Optionen</string>
<string name="title_advanced_webview">Use WebView to show external links</string>
<string name="title_advanced_webview">Verwende WebView, um externe Links anzuzeigen</string>
<string name="title_advanced_customtabs">Anstatt <a href="https://developer.chrome.com/multidevice/android/customtabs">Chrome benutzerdefinierte Tabs</a></string>
<string name="title_advanced_sanitize">Remove HTML formatting from messages</string>
<string name="title_advanced_compress_imap">Compress IMAP data</string>
<string name="title_advanced_sanitize">HTML Formatierung von Nachrichten entfernen</string>
<string name="title_advanced_compress_imap">IMAP Daten komprimieren</string>
<string name="title_advanced_debug">Debuggen</string>
<string name="title_select">Wählen Sie &#8230;</string>
<string name="title_identity_name">Ihr Name</string>
@ -123,7 +123,7 @@
<string name="title_move">Verschieben</string>
<string name="title_archive">Archivieren</string>
<string name="title_reply">Antworten</string>
<string name="title_moving">Moving message to %1$s</string>
<string name="title_moving">Verschiebe Nachrichten nach %1$s</string>
<string name="title_no_viewer">Keine App zum Betrachten von %1$s</string>
<string name="title_attachment_saved">Anhang gespeichert</string>
<string name="title_ask_delete">E-Mail dauerhaft löschen?</string>
@ -141,6 +141,7 @@
<string name="title_show_addresses">CC/BCC anzeigen</string>
<string name="title_add_attachment">Anhang hinzufügen</string>
<string name="title_no_openpgp">OpenPGP nicht verfügbar</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Verschlüsseln</string>
<string name="title_decrypt">Entschlüsseln</string>
<string name="title_from_missing">Absender fehlt</string>
@ -152,7 +153,7 @@
<string name="title_search">Suche</string>
<string name="title_search_hint">Auf Server suchen</string>
<string name="title_searching">Suche „%1$s“</string>
<string name="title_answer_reply">Standard reply</string>
<string name="title_answer_reply">Standardantworten</string>
<string name="title_answer_name">Antwort Name</string>
<string name="title_answer_text">Antworttext</string>
<string name="title_legend_cc">CC/BCC</string>
@ -162,10 +163,10 @@
<string name="title_legend_disconnected">Keine Verbindung</string>
<string name="title_legend_connecting">Verbinde</string>
<string name="title_legend_connected">Verbunden</string>
<string name="title_legend_synchronizing">Synchronizing</string>
<string name="title_legend_synchronizing">Synchronisiere</string>
<string name="title_legend_closing">Schließen</string>
<string name="title_hint_swipe">Swipe left to trash and swipe right to archive (if available)</string>
<string name="title_understood">Understood</string>
<string name="title_hint_swipe">Streichen Sie nach links zum Löschen und nach rechts zum archivieren (sofern verfügbar)</string>
<string name="title_understood">Verstanden</string>
<string name="title_pro_feature">Dies ist eine Premium Funktion</string>
<string name="title_pro_list">Liste der Premium Funktionen</string>
<string name="title_pro_purchase">Kaufen</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -54,7 +54,7 @@
<string name="title_advanced_webview">Utiliser WebView pour afficher les liens externes</string>
<string name="title_advanced_customtabs">Au lieu des <a href="https://developer.chrome.com/multidevice/android/customtabs">onglets personnalisés Chrome</a></string>
<string name="title_advanced_sanitize">Supprimer le formatage HTML des messages</string>
<string name="title_advanced_compress_imap">Compress IMAP data</string>
<string name="title_advanced_compress_imap">Compresser les données IMAP</string>
<string name="title_advanced_debug">Débogage</string>
<string name="title_select">Sélectionner &#8230;</string>
<string name="title_identity_name">Votre nom</string>
@ -141,6 +141,7 @@
<string name="title_show_addresses">Afficher Cc/Cci</string>
<string name="title_add_attachment">Ajouter une pièce jointe</string>
<string name="title_no_openpgp">OpenPGP nest pas disponible</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Chiffrer</string>
<string name="title_decrypt">Déchiffrer</string>
<string name="title_from_missing">Expéditeur manquant</string>

View File

@ -149,6 +149,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Mostra CC/BCC</string>
<string name="title_add_attachment">Aggiungi allegato</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Mittente mancante</string>

View File

@ -149,6 +149,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -137,6 +137,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -137,6 +137,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -149,6 +149,7 @@
<string name="title_show_addresses">Pokaż DW/UDW</string>
<string name="title_add_attachment">Dodaj załącznik</string>
<string name="title_no_openpgp">OpenPGP nie dostępne</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Zaszyfruj</string>
<string name="title_decrypt">Odszyfruj</string>
<string name="title_from_missing">Brak nadawcy</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Remetente faltante</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -145,6 +145,7 @@
<string name="title_show_addresses">Arată CC/BCC</string>
<string name="title_add_attachment">Adaugă ataşament</string>
<string name="title_no_openpgp">OpenPGP nu este disponibil</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Criptare</string>
<string name="title_decrypt">Decriptare</string>
<string name="title_from_missing">Expeditor lipsă</string>

View File

@ -149,6 +149,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -145,6 +145,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -141,6 +141,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -149,6 +149,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -137,6 +137,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -137,6 +137,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -137,6 +137,7 @@
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>
<string name="title_from_missing">Sender missing</string>

View File

@ -167,6 +167,7 @@
<string name="title_add_attachment">Add attachment</string>
<string name="title_no_openpgp">OpenPGP not available</string>
<string name="title_not_encrypted">Encrypted message not found</string>
<string name="title_encrypt">Encrypt</string>
<string name="title_decrypt">Decrypt</string>