Added cards for server data

pull/214/head
M66B 8 months ago
parent 66309fb54e
commit 1110eb117a

@ -101,7 +101,6 @@ public class FragmentAccount extends FragmentBase {
private RadioGroup rgEncryption; private RadioGroup rgEncryption;
private CheckBox cbInsecure; private CheckBox cbInsecure;
private TextView tvInsecureRemark; private TextView tvInsecureRemark;
private CheckBox cbDane;
private EditText etPort; private EditText etPort;
private EditText etUser; private EditText etUser;
private TextInputLayout tilPassword; private TextInputLayout tilPassword;
@ -141,6 +140,7 @@ public class FragmentAccount extends FragmentBase {
private CheckBox cbUnicode; private CheckBox cbUnicode;
private CheckBox cbUnmetered; private CheckBox cbUnmetered;
private CheckBox cbVpnOnly; private CheckBox cbVpnOnly;
private CheckBox cbDane;
private Button btnCheck; private Button btnCheck;
private ContentLoadingProgressBar pbCheck; private ContentLoadingProgressBar pbCheck;
@ -172,7 +172,6 @@ public class FragmentAccount extends FragmentBase {
private ContentLoadingProgressBar pbWait; private ContentLoadingProgressBar pbWait;
private Group grpServer; private Group grpServer;
private Group grpAuthorize;
private Group grpCalendar; private Group grpCalendar;
private Group grpAdvanced; private Group grpAdvanced;
private Group grpFolders; private Group grpFolders;
@ -225,7 +224,6 @@ public class FragmentAccount extends FragmentBase {
rgEncryption = view.findViewById(R.id.rgEncryption); rgEncryption = view.findViewById(R.id.rgEncryption);
cbInsecure = view.findViewById(R.id.cbInsecure); cbInsecure = view.findViewById(R.id.cbInsecure);
tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark); tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark);
cbDane = view.findViewById(R.id.cbDane);
etUser = view.findViewById(R.id.etUser); etUser = view.findViewById(R.id.etUser);
tilPassword = view.findViewById(R.id.tilPassword); tilPassword = view.findViewById(R.id.tilPassword);
tvAppPassword = view.findViewById(R.id.tvAppPassword); tvAppPassword = view.findViewById(R.id.tvAppPassword);
@ -263,6 +261,7 @@ public class FragmentAccount extends FragmentBase {
cbUnicode = view.findViewById(R.id.cbUnicode); cbUnicode = view.findViewById(R.id.cbUnicode);
cbUnmetered = view.findViewById(R.id.cbUnmeteredOnly); cbUnmetered = view.findViewById(R.id.cbUnmeteredOnly);
cbVpnOnly = view.findViewById(R.id.cbVpnOnly); cbVpnOnly = view.findViewById(R.id.cbVpnOnly);
cbDane = view.findViewById(R.id.cbDane);
btnCheck = view.findViewById(R.id.btnCheck); btnCheck = view.findViewById(R.id.btnCheck);
pbCheck = view.findViewById(R.id.pbCheck); pbCheck = view.findViewById(R.id.pbCheck);
@ -292,7 +291,6 @@ public class FragmentAccount extends FragmentBase {
pbWait = view.findViewById(R.id.pbWait); pbWait = view.findViewById(R.id.pbWait);
grpServer = view.findViewById(R.id.grpServer); grpServer = view.findViewById(R.id.grpServer);
grpAuthorize = view.findViewById(R.id.grpAuthorize);
grpCalendar = view.findViewById(R.id.grpCalendar); grpCalendar = view.findViewById(R.id.grpCalendar);
grpAdvanced = view.findViewById(R.id.grpAdvanced); grpAdvanced = view.findViewById(R.id.grpAdvanced);
grpFolders = view.findViewById(R.id.grpFolders); grpFolders = view.findViewById(R.id.grpFolders);
@ -308,7 +306,6 @@ public class FragmentAccount extends FragmentBase {
auth == AUTH_TYPE_PASSWORD && "gmail".equals(provider.id) auth == AUTH_TYPE_PASSWORD && "gmail".equals(provider.id)
? View.VISIBLE : View.GONE); ? View.VISIBLE : View.GONE);
grpServer.setVisibility(position > 0 ? View.VISIBLE : View.GONE); grpServer.setVisibility(position > 0 ? View.VISIBLE : View.GONE);
grpAuthorize.setVisibility(position > 0 ? View.VISIBLE : View.GONE);
grpCalendar.setVisibility(position > 0 && !BuildConfig.PLAY_STORE_RELEASE ? View.VISIBLE : View.GONE); grpCalendar.setVisibility(position > 0 && !BuildConfig.PLAY_STORE_RELEASE ? View.VISIBLE : View.GONE);
btnAdvanced.setVisibility(position > 0 ? View.VISIBLE : View.GONE); btnAdvanced.setVisibility(position > 0 ? View.VISIBLE : View.GONE);
@ -666,7 +663,6 @@ public class FragmentAccount extends FragmentBase {
tvInstructions.setMovementMethod(LinkMovementMethodCompat.getInstance()); tvInstructions.setMovementMethod(LinkMovementMethodCompat.getInstance());
grpServer.setVisibility(View.GONE); grpServer.setVisibility(View.GONE);
grpAuthorize.setVisibility(View.GONE);
grpCalendar.setVisibility(View.GONE); grpCalendar.setVisibility(View.GONE);
grpAdvanced.setVisibility(View.GONE); grpAdvanced.setVisibility(View.GONE);
grpFolders.setVisibility(View.GONE); grpFolders.setVisibility(View.GONE);
@ -1691,8 +1687,6 @@ public class FragmentAccount extends FragmentBase {
rgEncryption.check(R.id.radio_ssl); rgEncryption.check(R.id.radio_ssl);
cbInsecure.setChecked(account == null ? false : account.insecure); cbInsecure.setChecked(account == null ? false : account.insecure);
cbDane.setChecked(account == null ? false : account.dane);
cbDane.setEnabled(!cbInsecure.isChecked());
etUser.setText(account == null ? null : account.user); etUser.setText(account == null ? null : account.user);
tilPassword.getEditText().setText(account == null ? null : account.password); tilPassword.getEditText().setText(account == null ? null : account.password);
@ -1732,6 +1726,8 @@ public class FragmentAccount extends FragmentBase {
cbUnicode.setChecked(account == null ? false : account.unicode); cbUnicode.setChecked(account == null ? false : account.unicode);
cbUnmetered.setChecked(jcondition.optBoolean("unmetered")); cbUnmetered.setChecked(jcondition.optBoolean("unmetered"));
cbVpnOnly.setChecked(jcondition.optBoolean("vpn_only")); cbVpnOnly.setChecked(jcondition.optBoolean("vpn_only"));
cbDane.setChecked(account == null ? false : account.dane);
cbDane.setEnabled(!cbInsecure.isChecked());
if (account != null && account.use_date) if (account != null && account.use_date)
rgDate.check(R.id.radio_date_header); rgDate.check(R.id.radio_date_header);

@ -102,7 +102,6 @@ public class FragmentIdentity extends FragmentBase {
private RadioGroup rgEncryption; private RadioGroup rgEncryption;
private CheckBox cbInsecure; private CheckBox cbInsecure;
private TextView tvInsecureRemark; private TextView tvInsecureRemark;
private CheckBox cbDane;
private EditText etPort; private EditText etPort;
private EditText etUser; private EditText etUser;
private TextInputLayout tilPassword; private TextInputLayout tilPassword;
@ -137,6 +136,7 @@ public class FragmentIdentity extends FragmentBase {
private CheckBox cbUnicode; private CheckBox cbUnicode;
private CheckBox cbOctetMime; private CheckBox cbOctetMime;
private EditText etMaxSize; private EditText etMaxSize;
private CheckBox cbDane;
private Button btnSave; private Button btnSave;
private ContentLoadingProgressBar pbSave; private ContentLoadingProgressBar pbSave;
@ -210,7 +210,6 @@ public class FragmentIdentity extends FragmentBase {
rgEncryption = view.findViewById(R.id.rgEncryption); rgEncryption = view.findViewById(R.id.rgEncryption);
cbInsecure = view.findViewById(R.id.cbInsecure); cbInsecure = view.findViewById(R.id.cbInsecure);
tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark); tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark);
cbDane = view.findViewById(R.id.cbDane);
etPort = view.findViewById(R.id.etPort); etPort = view.findViewById(R.id.etPort);
etUser = view.findViewById(R.id.etUser); etUser = view.findViewById(R.id.etUser);
tilPassword = view.findViewById(R.id.tilPassword); tilPassword = view.findViewById(R.id.tilPassword);
@ -245,6 +244,7 @@ public class FragmentIdentity extends FragmentBase {
cbUnicode = view.findViewById(R.id.cbUnicode); cbUnicode = view.findViewById(R.id.cbUnicode);
cbOctetMime = view.findViewById(R.id.cbOctetMime); cbOctetMime = view.findViewById(R.id.cbOctetMime);
etMaxSize = view.findViewById(R.id.etMaxSize); etMaxSize = view.findViewById(R.id.etMaxSize);
cbDane = view.findViewById(R.id.cbDane);
btnSave = view.findViewById(R.id.btnSave); btnSave = view.findViewById(R.id.btnSave);
pbSave = view.findViewById(R.id.pbSave); pbSave = view.findViewById(R.id.pbSave);
@ -573,6 +573,7 @@ public class FragmentIdentity extends FragmentBase {
// Initialize // Initialize
Helper.setViewsEnabled(view, false); Helper.setViewsEnabled(view, false);
btnAutoConfig.setEnabled(false); btnAutoConfig.setEnabled(false);
pbAutoConfig.setVisibility(View.GONE); pbAutoConfig.setVisibility(View.GONE);
@ -1290,8 +1291,6 @@ public class FragmentIdentity extends FragmentBase {
rgEncryption.check(R.id.radio_ssl); rgEncryption.check(R.id.radio_ssl);
cbInsecure.setChecked(identity == null ? false : identity.insecure); cbInsecure.setChecked(identity == null ? false : identity.insecure);
cbDane.setChecked(identity == null ? false : identity.dane);
cbDane.setEnabled(!cbInsecure.isChecked());
etPort.setText(identity == null ? null : Long.toString(identity.port)); etPort.setText(identity == null ? null : Long.toString(identity.port));
etUser.setText(identity == null ? null : identity.user); etUser.setText(identity == null ? null : identity.user);
tilPassword.getEditText().setText(identity == null ? null : identity.password); tilPassword.getEditText().setText(identity == null ? null : identity.password);
@ -1332,6 +1331,8 @@ public class FragmentIdentity extends FragmentBase {
cbEncryptDefault.setChecked(identity != null && identity.encrypt_default); cbEncryptDefault.setChecked(identity != null && identity.encrypt_default);
cbUnicode.setChecked(identity != null && identity.unicode); cbUnicode.setChecked(identity != null && identity.unicode);
cbOctetMime.setChecked(identity != null && identity.octetmime); cbOctetMime.setChecked(identity != null && identity.octetmime);
cbDane.setChecked(identity == null ? false : identity.dane);
cbDane.setEnabled(!cbInsecure.isChecked());
auth = (identity == null ? AUTH_TYPE_PASSWORD : identity.auth_type); auth = (identity == null ? AUTH_TYPE_PASSWORD : identity.auth_type);
provider = (identity == null ? null : identity.provider); provider = (identity == null ? null : identity.provider);

@ -76,7 +76,6 @@ public class FragmentPop extends FragmentBase {
private RadioGroup rgEncryption; private RadioGroup rgEncryption;
private CheckBox cbInsecure; private CheckBox cbInsecure;
private TextView tvInsecureRemark; private TextView tvInsecureRemark;
private CheckBox cbDane;
private EditText etPort; private EditText etPort;
private EditText etUser; private EditText etUser;
private TextInputLayout tilPassword; private TextInputLayout tilPassword;
@ -108,6 +107,7 @@ public class FragmentPop extends FragmentBase {
private EditText etInterval; private EditText etInterval;
private CheckBox cbUnmetered; private CheckBox cbUnmetered;
private CheckBox cbVpnOnly; private CheckBox cbVpnOnly;
private CheckBox cbDane;
private ArrayAdapter<EntityFolder> adapterSwipe; private ArrayAdapter<EntityFolder> adapterSwipe;
private Spinner spLeft; private Spinner spLeft;
@ -157,7 +157,6 @@ public class FragmentPop extends FragmentBase {
rgEncryption = view.findViewById(R.id.rgEncryption); rgEncryption = view.findViewById(R.id.rgEncryption);
cbInsecure = view.findViewById(R.id.cbInsecure); cbInsecure = view.findViewById(R.id.cbInsecure);
tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark); tvInsecureRemark = view.findViewById(R.id.tvInsecureRemark);
cbDane = view.findViewById(R.id.cbDane);
etUser = view.findViewById(R.id.etUser); etUser = view.findViewById(R.id.etUser);
tilPassword = view.findViewById(R.id.tilPassword); tilPassword = view.findViewById(R.id.tilPassword);
tvPasswordStorage = view.findViewById(R.id.tvPasswordStorage); tvPasswordStorage = view.findViewById(R.id.tvPasswordStorage);
@ -187,6 +186,7 @@ public class FragmentPop extends FragmentBase {
etInterval = view.findViewById(R.id.etInterval); etInterval = view.findViewById(R.id.etInterval);
cbUnmetered = view.findViewById(R.id.cbUnmeteredOnly); cbUnmetered = view.findViewById(R.id.cbUnmeteredOnly);
cbVpnOnly = view.findViewById(R.id.cbVpnOnly); cbVpnOnly = view.findViewById(R.id.cbVpnOnly);
cbDane = view.findViewById(R.id.cbDane);
spLeft = view.findViewById(R.id.spLeft); spLeft = view.findViewById(R.id.spLeft);
spRight = view.findViewById(R.id.spRight); spRight = view.findViewById(R.id.spRight);
@ -848,8 +848,6 @@ public class FragmentPop extends FragmentBase {
rgEncryption.check(R.id.radio_ssl); rgEncryption.check(R.id.radio_ssl);
cbInsecure.setChecked(account == null ? false : account.insecure); cbInsecure.setChecked(account == null ? false : account.insecure);
cbDane.setChecked(account == null ? false : account.dane);
cbDane.setEnabled(!cbInsecure.isChecked());
etUser.setText(account == null ? null : account.user); etUser.setText(account == null ? null : account.user);
tilPassword.getEditText().setText(account == null ? null : account.password); tilPassword.getEditText().setText(account == null ? null : account.password);
@ -882,6 +880,9 @@ public class FragmentPop extends FragmentBase {
etInterval.setText(account == null ? "" : Long.toString(account.poll_interval)); etInterval.setText(account == null ? "" : Long.toString(account.poll_interval));
cbUnmetered.setChecked(jcondition.optBoolean("unmetered")); cbUnmetered.setChecked(jcondition.optBoolean("unmetered"));
cbVpnOnly.setChecked(jcondition.optBoolean("vpn_only")); cbVpnOnly.setChecked(jcondition.optBoolean("vpn_only"));
cbDane.setChecked(account == null ? false : account.dane);
cbDane.setEnabled(!cbInsecure.isChecked());
cbIdentity.setChecked(account == null); cbIdentity.setChecked(account == null);
List<EntityFolder> folders = getSwipeActions(); List<EntityFolder> folders = getSwipeActions();

@ -105,236 +105,260 @@
<!-- IMAP/POP3 --> <!-- IMAP/POP3 -->
<TextView <androidx.cardview.widget.CardView
android:id="@+id/tvImap" android:id="@+id/cardServer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_imap"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnAutoConfig" />
<!-- host -->
<TextView
android:id="@+id/tvHost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_host"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvImap" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etHost"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="imap.domain.tld" android:layout_marginHorizontal="3dp"
android:inputType="textUri" android:layout_marginTop="24dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" app:cardBackgroundColor="@color/background_warning"
app:layout_constraintStart_toStartOf="parent" app:cardCornerRadius="6dp"
app:layout_constraintTop_toBottomOf="@id/tvHost" /> app:cardElevation="0dp"
<!-- SSL/STARTTLS -->
<TextView
android:id="@+id/tvEncryption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_encryption"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etHost" />
<RadioGroup
android:id="@+id/rgEncryption"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvEncryption"> app:layout_constraintTop_toBottomOf="@id/btnAutoConfig">
<RadioButton <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/radio_ssl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_ssl" />
<RadioButton
android:id="@+id/radio_starttls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_starttls" />
<RadioButton
android:id="@+id/radio_none"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_none"
android:textColor="?attr/colorWarning"
android:textStyle="bold" />
</RadioGroup>
<CheckBox
android:id="@+id/cbInsecure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_allow_insecure"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rgEncryption" />
<TextView
android:id="@+id/tvInsecureRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:drawableEnd="@drawable/twotone_info_24"
android:drawablePadding="6dp"
android:text="@string/title_insecure_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInsecure" />
<!-- port -->
<TextView
android:id="@+id/tvPort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_port"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvInsecureRemark" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etPort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="993"
android:inputType="number"
android:maxLength="5"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPort" />
<!-- user -->
<TextView
android:id="@+id/tvUser"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:labelFor="@+id/etUser"
android:text="@string/title_user"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etPort" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="username"
android:inputType="text"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvUser" />
<!-- password -->
<TextView
android:id="@+id/tvPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_password"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etUser" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPassword">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:autofillHints="password" android:paddingHorizontal="6dp"
android:inputType="textPassword" android:paddingVertical="12dp">
android:maxLength="20000"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> <TextView
</com.google.android.material.textfield.TextInputLayout> android:id="@+id/tvImap"
android:layout_width="wrap_content"
<TextView android:layout_height="wrap_content"
android:id="@+id/tvCaseSensitive" android:text="@string/title_imap"
android:layout_width="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="6dp" app:layout_constraintTop_toTopOf="parent" />
android:text="@string/title_case_sensitive"
android:textAppearance="@style/TextAppearance.AppCompat.Small" <!-- host -->
android:textStyle="italic"
app:layout_constraintStart_toStartOf="parent" <TextView
app:layout_constraintTop_toBottomOf="@id/tilPassword" /> android:id="@+id/tvHost"
android:layout_width="wrap_content"
<TextView android:layout_height="wrap_content"
android:id="@+id/tvAppPassword" android:layout_marginTop="12dp"
android:layout_width="wrap_content" android:text="@string/title_host"
android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_marginTop="12dp" android:textColor="?android:textColorPrimary"
android:drawableEnd="@drawable/twotone_open_in_new_12" android:textStyle="bold"
android:drawablePadding="6dp" app:layout_constraintStart_toStartOf="parent"
android:text="@string/title_setup_app_password" app:layout_constraintTop_toBottomOf="@id/tvImap" />
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink" <eu.faircode.email.EditTextPlain
app:drawableTint="?android:attr/textColorLink" android:id="@+id/etHost"
app:layout_constraintStart_toStartOf="parent" android:layout_width="match_parent"
app:layout_constraintTop_toBottomOf="@+id/tvCaseSensitive" /> android:layout_height="wrap_content"
android:hint="imap.domain.tld"
<TextView android:inputType="textUri"
android:id="@+id/tvPasswordStorage" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_width="wrap_content" app:layout_constraintStart_toStartOf="parent"
android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@id/tvHost" />
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_open_in_new_12" <!-- SSL/STARTTLS -->
android:drawablePadding="6dp"
android:text="@string/title_password_storage" <TextView
android:textAppearance="@style/TextAppearance.AppCompat.Small" android:id="@+id/tvEncryption"
android:textColor="?android:attr/textColorLink" android:layout_width="wrap_content"
app:drawableTint="?android:attr/textColorLink" android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent" android:layout_marginTop="12dp"
app:layout_constraintTop_toBottomOf="@id/tvAppPassword" /> android:text="@string/title_encryption"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etHost" />
<RadioGroup
android:id="@+id/rgEncryption"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvEncryption">
<RadioButton
android:id="@+id/radio_ssl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_ssl" />
<RadioButton
android:id="@+id/radio_starttls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_starttls" />
<RadioButton
android:id="@+id/radio_none"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_none"
android:textColor="?attr/colorWarning"
android:textStyle="bold" />
</RadioGroup>
<CheckBox
android:id="@+id/cbInsecure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_allow_insecure"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rgEncryption" />
<TextView
android:id="@+id/tvInsecureRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:drawableEnd="@drawable/twotone_info_24"
android:drawablePadding="6dp"
android:text="@string/title_insecure_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInsecure" />
<!-- port -->
<TextView
android:id="@+id/tvPort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_port"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvInsecureRemark" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etPort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="993"
android:inputType="number"
android:maxLength="5"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPort" />
<!-- user -->
<TextView
android:id="@+id/tvUser"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:labelFor="@+id/etUser"
android:text="@string/title_user"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etPort" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="username"
android:inputType="text"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvUser" />
<!-- password -->
<TextView
android:id="@+id/tvPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_password"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etUser" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPassword">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="password"
android:inputType="textPassword"
android:maxLength="20000"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/tvCaseSensitive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_case_sensitive"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tilPassword" />
<TextView
android:id="@+id/tvAppPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_open_in_new_12"
android:drawablePadding="6dp"
android:text="@string/title_setup_app_password"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
app:drawableTint="?android:attr/textColorLink"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvCaseSensitive" />
<TextView
android:id="@+id/tvPasswordStorage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_open_in_new_12"
android:drawablePadding="6dp"
android:text="@string/title_password_storage"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
app:drawableTint="?android:attr/textColorLink"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvAppPassword" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<Button <Button
android:id="@+id/btnCertificate" android:id="@+id/btnCertificate"
style="?android:attr/buttonStyleSmall" style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="24dp"
android:tag="disable" android:tag="disable"
android:text="@string/title_client_certificate" android:text="@string/title_client_certificate"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPasswordStorage" /> app:layout_constraintTop_toBottomOf="@id/cardServer" />
<TextView <TextView
android:id="@+id/tvCertificate" android:id="@+id/tvCertificate"
@ -1207,14 +1231,7 @@
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids=" app:constraint_referenced_ids="
tvDomain,tvDomainHint,etDomain,btnAutoConfig, tvDomain,tvDomainHint,etDomain,btnAutoConfig,
tvImap,tvHost,etHost,tvEncryption,rgEncryption,cbInsecure,tvInsecureRemark,tvPort,etPort" /> cardServer,
<androidx.constraintlayout.widget.Group
android:id="@+id/grpAuthorize"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="
tvUser,etUser,tvPassword,tilPassword,tvCaseSensitive,tvAppPassword,tvPasswordStorage,
btnCertificate,tvCertificate, btnCertificate,tvCertificate,
tvRealm,etRealm, tvRealm,etRealm,
tvName,tvNameRemark,etName,tvCategory,etCategory, tvName,tvNameRemark,etName,tvCategory,etCategory,

@ -255,249 +255,250 @@
app:layout_constraintStart_toEndOf="@id/btnAutoConfig" app:layout_constraintStart_toEndOf="@id/btnAutoConfig"
app:layout_constraintTop_toTopOf="@id/btnAutoConfig" /> app:layout_constraintTop_toTopOf="@id/btnAutoConfig" />
<TextView <androidx.cardview.widget.CardView
android:id="@+id/tvSmtp" android:id="@+id/cardServer"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginHorizontal="3dp"
android:text="@string/title_smtp" android:layout_marginTop="24dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" app:cardBackgroundColor="@color/background_warning"
app:layout_constraintStart_toStartOf="parent" app:cardCornerRadius="6dp"
app:layout_constraintTop_toBottomOf="@id/btnAutoConfig" /> app:cardElevation="0dp"
<!-- host -->
<TextView
android:id="@+id/tvHost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_host"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvSmtp" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etHost"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="smtp.domain.tld"
android:inputType="textUri"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvHost" />
<!-- SSL/STARTTLS -->
<TextView
android:id="@+id/tvEncryption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_encryption"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etHost" />
<RadioGroup
android:id="@+id/rgEncryption"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvEncryption">
<RadioButton
android:id="@+id/radio_ssl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_ssl" />
<RadioButton
android:id="@+id/radio_starttls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_starttls" />
<RadioButton
android:id="@+id/radio_none"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_none"
android:textColor="?attr/colorWarning"
android:textStyle="bold" />
</RadioGroup>
<CheckBox
android:id="@+id/cbInsecure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_allow_insecure"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rgEncryption" />
<TextView
android:id="@+id/tvInsecureRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:drawableEnd="@drawable/twotone_info_24"
android:drawablePadding="6dp"
android:text="@string/title_insecure_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInsecure" />
<CheckBox
android:id="@+id/cbDane"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:text="@string/title_dane"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvInsecureRemark" />
<TextView
android:id="@+id/tvDaneRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="6dp"
android:text="@string/title_dane_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDane" />
<!-- port -->
<TextView
android:id="@+id/tvPort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_port"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDaneRemark" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etPort"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="465"
android:inputType="number"
android:maxLength="5"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPort" /> app:layout_constraintTop_toBottomOf="@id/btnAutoConfig">
<!-- username --> <androidx.constraintlayout.widget.ConstraintLayout
<TextView
android:id="@+id/tvUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:labelFor="@+id/etUser"
android:text="@string/title_user"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etPort" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etUser"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:autofillHints="username"
android:inputType="text"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvUser" />
<!-- password -->
<TextView
android:id="@+id/tvPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_password"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etUser" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPassword">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:autofillHints="password" android:paddingHorizontal="6dp"
android:inputType="textPassword" android:paddingVertical="12dp">
android:maxLength="20000"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> <TextView
</com.google.android.material.textfield.TextInputLayout> android:id="@+id/tvSmtp"
android:layout_width="wrap_content"
<TextView android:layout_height="wrap_content"
android:id="@+id/tvCaseSensitiveHint" android:text="@string/title_smtp"
android:layout_width="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="6dp" app:layout_constraintTop_toTopOf="parent" />
android:text="@string/title_case_sensitive"
android:textAppearance="@style/TextAppearance.AppCompat.Small" <!-- host -->
android:textStyle="italic"
app:layout_constraintStart_toStartOf="parent" <TextView
app:layout_constraintTop_toBottomOf="@id/tilPassword" /> android:id="@+id/tvHost"
android:layout_width="wrap_content"
<TextView android:layout_height="wrap_content"
android:id="@+id/tvPasswordStorage" android:layout_marginTop="12dp"
android:layout_width="wrap_content" android:text="@string/title_host"
android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_marginTop="12dp" android:textColor="?android:textColorPrimary"
android:drawableEnd="@drawable/twotone_open_in_new_12" android:textStyle="bold"
android:drawablePadding="6dp" app:layout_constraintStart_toStartOf="parent"
android:text="@string/title_password_storage" app:layout_constraintTop_toBottomOf="@id/tvSmtp" />
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink" <eu.faircode.email.EditTextPlain
app:drawableTint="?android:attr/textColorLink" android:id="@+id/etHost"
app:layout_constraintStart_toStartOf="parent" android:layout_width="0dp"
app:layout_constraintTop_toBottomOf="@id/tvCaseSensitiveHint" /> android:layout_height="wrap_content"
android:hint="smtp.domain.tld"
android:inputType="textUri"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvHost" />
<!-- SSL/STARTTLS -->
<TextView
android:id="@+id/tvEncryption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_encryption"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etHost" />
<RadioGroup
android:id="@+id/rgEncryption"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvEncryption">
<RadioButton
android:id="@+id/radio_ssl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_ssl" />
<RadioButton
android:id="@+id/radio_starttls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_starttls" />
<RadioButton
android:id="@+id/radio_none"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_none"
android:textColor="?attr/colorWarning"
android:textStyle="bold" />
</RadioGroup>
<CheckBox
android:id="@+id/cbInsecure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_allow_insecure"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rgEncryption" />
<TextView
android:id="@+id/tvInsecureRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:drawableEnd="@drawable/twotone_info_24"
android:drawablePadding="6dp"
android:text="@string/title_insecure_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInsecure" />
<!-- port -->
<TextView
android:id="@+id/tvPort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_port"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvInsecureRemark" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etPort"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="465"
android:inputType="number"
android:maxLength="5"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPort" />
<!-- username -->
<TextView
android:id="@+id/tvUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:labelFor="@+id/etUser"
android:text="@string/title_user"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etPort" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etUser"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:autofillHints="username"
android:inputType="text"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvUser" />
<!-- password -->
<TextView
android:id="@+id/tvPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_password"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etUser" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPassword">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="password"
android:inputType="textPassword"
android:maxLength="20000"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/tvCaseSensitiveHint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_case_sensitive"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tilPassword" />
<TextView
android:id="@+id/tvPasswordStorage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_open_in_new_12"
android:drawablePadding="6dp"
android:text="@string/title_password_storage"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
app:drawableTint="?android:attr/textColorLink"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvCaseSensitiveHint" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<Button <Button
android:id="@+id/btnCertificate" android:id="@+id/btnCertificate"
style="?android:attr/buttonStyleSmall" style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="24dp"
android:tag="disable" android:tag="disable"
android:text="@string/title_client_certificate" android:text="@string/title_client_certificate"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPasswordStorage" /> app:layout_constraintTop_toBottomOf="@id/cardServer" />
<TextView <TextView
android:id="@+id/tvCertificate" android:id="@+id/tvCertificate"
@ -982,6 +983,27 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvMaxSize" /> app:layout_constraintTop_toBottomOf="@id/tvMaxSize" />
<CheckBox
android:id="@+id/cbDane"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_dane"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etMaxSize" />
<TextView
android:id="@+id/tvDaneRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_dane_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDane" />
<Button <Button
android:id="@+id/btnSave" android:id="@+id/btnSave"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -992,7 +1014,7 @@
android:tag="disable" android:tag="disable"
android:text="@string/title_save" android:text="@string/title_save"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etMaxSize" /> app:layout_constraintTop_toBottomOf="@id/tvDaneRemark" />
<eu.faircode.email.ContentLoadingProgressBar <eu.faircode.email.ContentLoadingProgressBar
android:id="@+id/pbSave" android:id="@+id/pbSave"
@ -1106,8 +1128,7 @@
app:constraint_referenced_ids=" app:constraint_referenced_ids="
tvProvider,spProvider, tvProvider,spProvider,
tvDomain,tvDomainHint,etDomain,btnAutoConfig, tvDomain,tvDomainHint,etDomain,btnAutoConfig,
tvSmtp,tvHost,etHost,tvEncryption,rgEncryption,cbInsecure,tvInsecureRemark,cbDane,tvDaneRemark,tvPort,etPort, cardServer,
tvUser,etUser,tvPassword,tilPassword,tvCaseSensitiveHint,tvPasswordStorage,
btnCertificate,tvCertificate, btnCertificate,tvCertificate,
tvRealm,etRealm, tvRealm,etRealm,
cbUseIp,tvUseIpHint,tvEhlo,etEhlo,ibEhlo, cbUseIp,tvUseIpHint,tvEhlo,etEhlo,ibEhlo,
@ -1119,7 +1140,7 @@
tvE2Encryption,cbSignDefault,cbEncryptDefault, tvE2Encryption,cbSignDefault,cbEncryptDefault,
tvReceiptType,spReceiptType, tvReceiptType,spReceiptType,
tvSensitivity,spSensitivity, tvSensitivity,spSensitivity,
cbUnicode,tvUnicodeHint,cbOctetMime,tvMaxSize,etMaxSize" /> cbUnicode,tvUnicodeHint,cbOctetMime,tvMaxSize,etMaxSize,cbDane,tvDaneRemark" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpError" android:id="@+id/grpError"

@ -48,198 +48,232 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPopSent" /> app:layout_constraintTop_toBottomOf="@id/tvPopSent" />
<TextView <androidx.cardview.widget.CardView
android:id="@+id/tvHost" android:id="@+id/cardServer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_host"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPopWarning" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etHost"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="pop.domain.tld" android:layout_marginHorizontal="3dp"
android:inputType="textUri" android:layout_marginTop="24dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" app:cardBackgroundColor="@color/background_warning"
app:layout_constraintStart_toStartOf="parent" app:cardCornerRadius="6dp"
app:layout_constraintTop_toBottomOf="@id/tvHost" /> app:cardElevation="0dp"
<!-- SSL/STARTTLS -->
<TextView
android:id="@+id/tvEncryption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_encryption"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etHost" />
<RadioGroup
android:id="@+id/rgEncryption"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvEncryption"> app:layout_constraintTop_toBottomOf="@id/tvPopWarning">
<RadioButton
android:id="@+id/radio_ssl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_ssl" />
<RadioButton
android:id="@+id/radio_starttls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_starttls" />
<RadioButton
android:id="@+id/radio_none"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_none"
android:textColor="?attr/colorWarning"
android:textStyle="bold" />
</RadioGroup>
<CheckBox <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cbInsecure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_allow_insecure"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rgEncryption" />
<TextView
android:id="@+id/tvInsecureRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:drawableEnd="@drawable/twotone_info_24"
android:drawablePadding="6dp"
android:text="@string/title_insecure_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInsecure" />
<!-- port -->
<TextView
android:id="@+id/tvPort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_port"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvInsecureRemark" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etPort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="995"
android:inputType="number"
android:maxLength="5"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPort" />
<!-- user -->
<TextView
android:id="@+id/tvUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:labelFor="@+id/etUser"
android:text="@string/title_user"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etPort" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="username"
android:inputType="text"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvUser" />
<!-- password -->
<TextView
android:id="@+id/tvPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_password"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etUser" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPassword">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:autofillHints="password" android:paddingHorizontal="6dp"
android:inputType="textPassword" android:paddingVertical="12dp">
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
</com.google.android.material.textfield.TextInputLayout> <TextView
android:id="@+id/tvPop"
<TextView android:layout_width="wrap_content"
android:id="@+id/tvCaseSensitive" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:text="@string/title_pop3"
android:layout_height="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_marginTop="6dp" app:layout_constraintStart_toStartOf="parent"
android:text="@string/title_case_sensitive" app:layout_constraintTop_toTopOf="parent" />
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic" <TextView
app:layout_constraintStart_toStartOf="parent" android:id="@+id/tvHost"
app:layout_constraintTop_toBottomOf="@id/tilPassword" /> android:layout_width="wrap_content"
android:layout_height="wrap_content"
<TextView android:layout_marginTop="12dp"
android:id="@+id/tvPasswordStorage" android:text="@string/title_host"
android:layout_width="wrap_content" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:layout_height="wrap_content" android:textColor="?android:textColorPrimary"
android:layout_marginTop="12dp" android:textStyle="bold"
android:drawableEnd="@drawable/twotone_open_in_new_12" app:layout_constraintStart_toStartOf="parent"
android:drawablePadding="6dp" app:layout_constraintTop_toBottomOf="@id/tvPop" />
android:text="@string/title_password_storage"
android:textAppearance="@style/TextAppearance.AppCompat.Small" <eu.faircode.email.EditTextPlain
android:textColor="?android:attr/textColorLink" android:id="@+id/etHost"
app:drawableTint="?android:attr/textColorLink" android:layout_width="match_parent"
app:layout_constraintStart_toStartOf="parent" android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tvCaseSensitive" /> android:hint="pop.domain.tld"
android:inputType="textUri"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvHost" />
<!-- SSL/STARTTLS -->
<TextView
android:id="@+id/tvEncryption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_encryption"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etHost" />
<RadioGroup
android:id="@+id/rgEncryption"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvEncryption">
<RadioButton
android:id="@+id/radio_ssl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_ssl" />
<RadioButton
android:id="@+id/radio_starttls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_starttls" />
<RadioButton
android:id="@+id/radio_none"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_encryption_none"
android:textColor="?attr/colorWarning"
android:textStyle="bold" />
</RadioGroup>
<CheckBox
android:id="@+id/cbInsecure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_allow_insecure"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/rgEncryption" />
<TextView
android:id="@+id/tvInsecureRemark"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:drawableEnd="@drawable/twotone_info_24"
android:drawablePadding="6dp"
android:text="@string/title_insecure_remark"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbInsecure" />
<!-- port -->
<TextView
android:id="@+id/tvPort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_port"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvInsecureRemark" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etPort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="995"
android:inputType="number"
android:maxLength="5"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPort" />
<!-- user -->
<TextView
android:id="@+id/tvUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:labelFor="@+id/etUser"
android:text="@string/title_user"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etPort" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="username"
android:inputType="text"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvUser" />
<!-- password -->
<TextView
android:id="@+id/tvPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_password"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etUser" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPassword">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autofillHints="password"
android:inputType="textPassword"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/tvCaseSensitive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_case_sensitive"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tilPassword" />
<TextView
android:id="@+id/tvPasswordStorage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_open_in_new_12"
android:drawablePadding="6dp"
android:text="@string/title_password_storage"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
app:drawableTint="?android:attr/textColorLink"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvCaseSensitive" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<!-- name --> <!-- name -->
@ -247,11 +281,11 @@
android:id="@+id/tvName" android:id="@+id/tvName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="24dp"
android:text="@string/title_account_name" android:text="@string/title_account_name"
android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPasswordStorage" /> app:layout_constraintTop_toBottomOf="@id/cardServer" />
<TextView <TextView
android:id="@+id/tvNameRemark" android:id="@+id/tvNameRemark"

Loading…
Cancel
Save