Add IMAP/SMTP security options.

This commit is contained in:
B. Petersen
2017-03-20 21:11:59 +01:00
parent 34cd40fdd9
commit bcb00a9d23
3 changed files with 25 additions and 20 deletions
@@ -26,12 +26,10 @@
package com.b44t.ui;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
@@ -103,10 +101,12 @@ public class AccountSettingsActivity extends BaseFragment implements Notificatio
private EditTextCell sendPortCell;
private EditTextCell sendUserCell;
private final int MR_IMAP_STARTTLS = 0x100;
private final int MR_IMAP_SSL_TLS = 0x200;
private final int MR_SMTP_STARTTLS = 0x10000;
private final int MR_SMTP_SSL_TLS = 0x20000;
private final int MR_IMAP_SOCKET_STARTTLS = 0x100;
private final int MR_IMAP_SOCKET_SSL = 0x200;
private final int MR_IMAP_SOCKET_PLAIN = 0x400;
private final int MR_SMTP_SOCKET_STARTTLS = 0x10000;
private final int MR_SMTP_SOCKET_SSL = 0x20000;
private final int MR_SMTP_SOCKET_PLAIN = 0x40000;
private int m_serverFlags;
// misc.
@@ -266,22 +266,25 @@ public class AccountSettingsActivity extends BaseFragment implements Notificatio
builder.setItems(new CharSequence[]{
ApplicationLoader.applicationContext.getString(R.string.Automatic),
"SSL/TLS", /*1*/
"STARTTLS" /*2*/
"STARTTLS", /*2*/
ApplicationLoader.applicationContext.getString(R.string.Disabled) /*3*/
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if( i==rowMailSecurity ) {
m_serverFlags &= ~(MR_IMAP_SSL_TLS|MR_IMAP_STARTTLS);
m_serverFlags &= ~(MR_IMAP_SOCKET_SSL | MR_IMAP_SOCKET_STARTTLS | MR_IMAP_SOCKET_PLAIN);
switch( which ) {
case 1: m_serverFlags |= MR_IMAP_SSL_TLS; break;
case 2: m_serverFlags |= MR_IMAP_STARTTLS; break;
case 1: m_serverFlags |= MR_IMAP_SOCKET_SSL; break;
case 2: m_serverFlags |= MR_IMAP_SOCKET_STARTTLS; break;
case 3: m_serverFlags |= MR_IMAP_SOCKET_PLAIN; break;
}
}
else if( i==rowSendSecurity ) {
m_serverFlags &= ~(MR_SMTP_SSL_TLS|MR_SMTP_STARTTLS);
m_serverFlags &= ~(MR_SMTP_SOCKET_SSL | MR_SMTP_SOCKET_STARTTLS | MR_SMTP_SOCKET_PLAIN);
switch( which ) {
case 1: m_serverFlags |= MR_SMTP_SSL_TLS; break;
case 2: m_serverFlags |= MR_SMTP_STARTTLS; break;
case 1: m_serverFlags |= MR_SMTP_SOCKET_SSL; break;
case 2: m_serverFlags |= MR_SMTP_SOCKET_STARTTLS; break;
case 3: m_serverFlags |= MR_SMTP_SOCKET_PLAIN; break;
}
}
listView.invalidateViews();
@@ -567,12 +570,14 @@ public class AccountSettingsActivity extends BaseFragment implements Notificatio
TextSettingsCell textCell = (TextSettingsCell) view;
String value = ApplicationLoader.applicationContext.getString(R.string.Automatic);
if( i == rowMailSecurity ) {
if( (m_serverFlags&MR_IMAP_SSL_TLS)!=0 ) { value = "SSL/TLS"; }
if( (m_serverFlags&MR_IMAP_STARTTLS)!=0 ) { value = "STARTTLS"; }
if( (m_serverFlags&MR_IMAP_SOCKET_SSL)!=0 ) { value = "SSL/TLS"; }
if( (m_serverFlags&MR_IMAP_SOCKET_STARTTLS)!=0 ) { value = "STARTTLS"; }
if( (m_serverFlags&MR_IMAP_SOCKET_PLAIN)!=0 ) { value = ApplicationLoader.applicationContext.getString(R.string.Disabled); }
}
else if( i == rowSendSecurity ) {
if( (m_serverFlags&MR_SMTP_SSL_TLS)!=0 ) { value = "SSL/TLS"; }
if( (m_serverFlags&MR_SMTP_STARTTLS)!=0 ) { value = "STARTTLS"; }
if( (m_serverFlags&MR_SMTP_SOCKET_SSL)!=0 ) { value = "SSL/TLS"; }
if( (m_serverFlags&MR_SMTP_SOCKET_STARTTLS)!=0 ) { value = "STARTTLS"; }
if( (m_serverFlags&MR_SMTP_SOCKET_PLAIN)!=0 ) { value = ApplicationLoader.applicationContext.getString(R.string.Disabled); }
}
textCell.setTextAndValue(ApplicationLoader.applicationContext.getString(R.string.SecurityTitle), value, false);
}
@@ -606,7 +611,7 @@ public class AccountSettingsActivity extends BaseFragment implements Notificatio
view.setBackgroundResource(m_expanded? R.drawable.greydivider : R.drawable.greydivider_bottom); // has shadow top+bottom
}
else if( i==rowInfoBelowSendPw) {
((TextInfoCell) view).setText(LocaleController.getString("MyAccountExplain2", R.string.MyAccountExplain2));
((TextInfoCell) view).setText(AndroidUtilities.replaceTags(LocaleController.getString("MyAccountExplain2", R.string.MyAccountExplain2)));
if( m_expanded ) {
view.setBackgroundResource(R.drawable.greydivider_bottom);
}
@@ -379,7 +379,7 @@
<string name="OutboxHeadline">Postausgang</string>
<string name="InboxHeadline">Posteingang</string>
<string name="MyAccountExplain">Für bekannte E-Mail-Anbieter werden die weiteren Einstellungen automatisch ermittelt.</string>
<string name="MyAccountExplain2">Manchmal muss die IMAP-/SMTP-Funktion noch in der E-Mail-Weboberfläche eingeschaltet werden.\n\nBei Problemen kann der E-Mail-Anbieter oder ein Bekannter weiterhelfen.</string>
<string name="MyAccountExplain2">Manchmal muss die <![CDATA[<b>]]>IMAP-Funktion<![CDATA[</b>]]> noch in der E-Mail-Weboberfläche <![CDATA[<b>]]>eingeschaltet<![CDATA[</b>]]> werden.\n\nBei Problemen kann der E-Mail-Anbieter oder ein Bekannter weiterhelfen.</string>
<string name="AccountNotConfigured">Konto nicht konfiguriert</string>
<string name="AboutThisProgram">Über Delta Chat</string>
<string name="NotSet">Nicht gesetzt</string>
@@ -377,7 +377,7 @@
<string name="OutboxHeadline">Outbox</string>
<string name="BasicSettings">Basic settings</string>
<string name="MyAccountExplain">For known e-mail providers, the following settings are determinated automatically.</string>
<string name="MyAccountExplain2" >Sometimes, IMAP/SMTP needs to be enabled in the e-mail web frontend.\n\nOn problems, ask your e-mail provider or your friends.</string>
<string name="MyAccountExplain2" >Sometimes, <![CDATA[<b>]]>IMAP needs to be enabled<![CDATA[</b>]]> in the e-mail web frontend.\n\nOn problems, ask your e-mail provider or your friends.</string>
<string name="AccountNotConfigured">Account not configured</string>
<string name="AboutThisProgram">About Delta Chat</string>
<string name="NotSet">Not set</string>