Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0341851 authored by MonkeyMatt's avatar MonkeyMatt
Browse files

Use TextInputLayout on setup outgoing

Also adds password visibility toggle
parent c8892597
Loading
Loading
Loading
Loading
+10 −11
Original line number Original line Diff line number Diff line
@@ -20,7 +20,6 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.Toast;
@@ -42,6 +41,8 @@ import com.fsck.k9.mail.MailServerDirection;
import com.fsck.k9.mail.ServerSettings;
import com.fsck.k9.mail.ServerSettings;
import com.fsck.k9.view.ClientCertificateSpinner;
import com.fsck.k9.view.ClientCertificateSpinner;
import com.fsck.k9.view.ClientCertificateSpinner.OnClientCertificateChangedListener;
import com.fsck.k9.view.ClientCertificateSpinner.OnClientCertificateChangedListener;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import timber.log.Timber;
import timber.log.Timber;


public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
@@ -56,13 +57,13 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
    private final BackendManager backendManager = DI.get(BackendManager.class);
    private final BackendManager backendManager = DI.get(BackendManager.class);
    private final AccountCreator accountCreator = DI.get(AccountCreator.class);
    private final AccountCreator accountCreator = DI.get(AccountCreator.class);


    private EditText mUsernameView;
    private TextInputEditText mUsernameView;
    private EditText mPasswordView;
    private TextInputEditText mPasswordView;
    private TextInputLayout mPasswordLayoutView;
    private ClientCertificateSpinner mClientCertificateSpinner;
    private ClientCertificateSpinner mClientCertificateSpinner;
    private TextView mClientCertificateLabelView;
    private TextView mClientCertificateLabelView;
    private TextView mPasswordLabelView;
    private TextInputEditText mServerView;
    private EditText mServerView;
    private TextInputEditText mPortView;
    private EditText mPortView;
    private String mCurrentPortViewSetting;
    private String mCurrentPortViewSetting;
    private CheckBox mRequireLoginView;
    private CheckBox mRequireLoginView;
    private ViewGroup mRequireLoginSettingsView;
    private ViewGroup mRequireLoginSettingsView;
@@ -119,7 +120,7 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
        mPasswordView = findViewById(R.id.account_password);
        mPasswordView = findViewById(R.id.account_password);
        mClientCertificateSpinner = findViewById(R.id.account_client_certificate_spinner);
        mClientCertificateSpinner = findViewById(R.id.account_client_certificate_spinner);
        mClientCertificateLabelView = findViewById(R.id.account_client_certificate_label);
        mClientCertificateLabelView = findViewById(R.id.account_client_certificate_label);
        mPasswordLabelView = findViewById(R.id.account_password_label);
        mPasswordLayoutView = findViewById(R.id.account_password_layout);
        mServerView = findViewById(R.id.account_server);
        mServerView = findViewById(R.id.account_server);
        mPortView = findViewById(R.id.account_port);
        mPortView = findViewById(R.id.account_port);
        mRequireLoginView = findViewById(R.id.account_require_login);
        mRequireLoginView = findViewById(R.id.account_require_login);
@@ -354,15 +355,13 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
        if (isAuthTypeExternal) {
        if (isAuthTypeExternal) {


            // hide password fields, show client certificate fields
            // hide password fields, show client certificate fields
            mPasswordView.setVisibility(View.GONE);
            mPasswordLayoutView.setVisibility(View.GONE);
            mPasswordLabelView.setVisibility(View.GONE);
            mClientCertificateLabelView.setVisibility(View.VISIBLE);
            mClientCertificateLabelView.setVisibility(View.VISIBLE);
            mClientCertificateSpinner.setVisibility(View.VISIBLE);
            mClientCertificateSpinner.setVisibility(View.VISIBLE);
        } else {
        } else {


            // show password fields, hide client certificate fields
            // show password fields, hide client certificate fields
            mPasswordView.setVisibility(View.VISIBLE);
            mPasswordLayoutView.setVisibility(View.VISIBLE);
            mPasswordLabelView.setVisibility(View.VISIBLE);
            mClientCertificateLabelView.setVisibility(View.GONE);
            mClientCertificateLabelView.setVisibility(View.GONE);
            mClientCertificateSpinner.setVisibility(View.GONE);
            mClientCertificateSpinner.setVisibility(View.GONE);
        }
        }
+73 −70
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:orientation="vertical"
    android:layout_height="fill_parent"
    android:layout_height="match_parent"
    android:layout_width="fill_parent">
    android:layout_width="match_parent">


    <include layout="@layout/toolbar"/>
    <include layout="@layout/toolbar"/>


    <ScrollView
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_weight="1"
        android:padding="6dip"
        android:padding="6dip"
@@ -16,87 +18,87 @@
        android:scrollbarStyle="outsideInset">
        android:scrollbarStyle="outsideInset">


        <LinearLayout
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            android:orientation="vertical">


            <TextView
            <com.google.android.material.textfield.TextInputLayout
                android:text="@string/account_setup_outgoing_smtp_server_label"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:layout_marginTop="@dimen/account_setup_margin_between_items_incoming_and_outgoing">
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="?android:attr/textColorPrimary" />


            <EditText
                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/account_server"
                    android:id="@+id/account_server"
                android:singleLine="true"
                    android:layout_width="match_parent"
                android:inputType="textUri"
                    android:layout_height="wrap_content"
                    android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                    android:inputType="textUri"
                android:contentDescription="@string/account_setup_outgoing_smtp_server_label" />
                    android:hint="@string/account_setup_outgoing_smtp_server_label"
                    android:singleLine="true" />
            </com.google.android.material.textfield.TextInputLayout>


            <TextView
            <TextView
                android:text="@string/account_setup_outgoing_security_label"
                android:text="@string/account_setup_outgoing_security_label"
                android:layout_height="wrap_content"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:layout_width="match_parent"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:layout_marginTop="6dp"
                android:textColor="?android:attr/textColorPrimary" />
                style="@style/InputLabel" />


            <Spinner
            <Spinner
                android:id="@+id/account_security_type"
                android:id="@+id/account_security_type"
                android:layout_height="wrap_content"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:layout_width="match_parent"
                android:contentDescription="@string/account_setup_outgoing_security_label" />
                android:contentDescription="@string/account_setup_outgoing_security_label" />


            <TextView
            <com.google.android.material.textfield.TextInputLayout
                android:text="@string/account_setup_outgoing_port_label"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:layout_marginTop="@dimen/account_setup_margin_between_items_incoming_and_outgoing">
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="?android:attr/textColorPrimary" />


            <EditText
                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/account_port"
                    android:id="@+id/account_port"
                android:singleLine="true"
                    android:layout_width="match_parent"
                android:inputType="number"
                    android:layout_height="wrap_content"
                    android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                    android:inputType="number"
                android:contentDescription="@string/account_setup_outgoing_port_label" />
                    android:hint="@string/account_setup_incoming_port_label"
                    android:singleLine="true" />
            </com.google.android.material.textfield.TextInputLayout>


            <CheckBox
            <CheckBox
                android:id="@+id/account_require_login"
                android:id="@+id/account_require_login"
                android:layout_width="fill_parent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/account_setup_outgoing_require_login_label" />
                android:layout_marginTop="6dp"
                android:text="@string/account_setup_outgoing_require_login_label"
                tools:checked="true" />


            <LinearLayout
            <LinearLayout
                android:id="@+id/account_require_login_settings"
                android:id="@+id/account_require_login_settings"
                android:layout_width="fill_parent"
                android:layout_width="match_parent"
                android:layout_height="fill_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:orientation="vertical"
                android:visibility="gone">
                android:visibility="gone"
                tools:visibility="visible">


                <TextView
                <com.google.android.material.textfield.TextInputLayout
                    android:text="@string/account_setup_outgoing_username_label"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_marginTop="@dimen/account_setup_margin_between_items_incoming_and_outgoing">
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="?android:attr/textColorPrimary" />


                <EditText
                    <com.google.android.material.textfield.TextInputEditText
                        android:id="@+id/account_username"
                        android:id="@+id/account_username"
                    android:singleLine="true"
                        android:layout_width="match_parent"
                    android:inputType="textEmailAddress"
                        android:layout_height="wrap_content"
                        android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                        android:inputType="textEmailAddress"
                    android:contentDescription="@string/account_setup_outgoing_username_label" />
                        android:hint="@string/account_setup_outgoing_username_label"
                        android:singleLine="true" />
                </com.google.android.material.textfield.TextInputLayout>


                <TextView
                <TextView
                    android:text="@string/account_setup_outgoing_authentication_label"
                    android:text="@string/account_setup_outgoing_authentication_label"
                    android:layout_height="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_width="fill_parent"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:layout_marginTop="6dp"
                    android:textColor="?android:attr/textColorPrimary" />
                    style="@style/InputLabel" />


                <Spinner
                <Spinner
                    android:id="@+id/account_auth_type"
                    android:id="@+id/account_auth_type"
@@ -104,27 +106,28 @@
                    android:layout_width="fill_parent"
                    android:layout_width="fill_parent"
                    android:contentDescription="@string/account_setup_outgoing_authentication_label" />
                    android:contentDescription="@string/account_setup_outgoing_authentication_label" />


                <TextView
                <com.google.android.material.textfield.TextInputLayout
                    android:id="@+id/account_password_label"
                    android:id="@+id/account_password_layout"
                    android:text="@string/account_setup_outgoing_password_label"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_marginTop="@dimen/account_setup_margin_between_items_incoming_and_outgoing"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    app:passwordToggleEnabled="true">
                    android:textColor="?android:attr/textColorPrimary" />


                <EditText
                    <com.google.android.material.textfield.TextInputEditText
                        android:id="@+id/account_password"
                        android:id="@+id/account_password"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="@string/account_setup_outgoing_password_label"
                        android:singleLine="true"
                        android:singleLine="true"
                        android:inputType="textPassword"
                        android:inputType="textPassword"
                    android:layout_height="wrap_content"
                        android:nextFocusDown="@+id/next"/>
                    android:layout_width="fill_parent"
                </com.google.android.material.textfield.TextInputLayout>
                    android:contentDescription="@string/account_setup_outgoing_password_label" />


                <TextView
                <TextView
                    android:id="@+id/account_client_certificate_label"
                    android:id="@+id/account_client_certificate_label"
                    android:text="@string/account_setup_incoming_client_certificate_label"
                    android:text="@string/account_setup_incoming_client_certificate_label"
                    android:layout_height="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_width="match_parent"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="?android:attr/textColorPrimary"
                    android:textColor="?android:attr/textColorPrimary"
                    android:visibility="gone" />
                    android:visibility="gone" />
@@ -132,12 +135,12 @@
                <com.fsck.k9.view.ClientCertificateSpinner
                <com.fsck.k9.view.ClientCertificateSpinner
                    android:id="@+id/account_client_certificate_spinner"
                    android:id="@+id/account_client_certificate_spinner"
                    android:layout_height="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_width="fill_parent"
                    android:layout_width="match_parent"
                    android:visibility="gone" />
                    android:visibility="gone" />
            </LinearLayout>
            </LinearLayout>


            <View
            <View
                android:layout_width="fill_parent"
                android:layout_width="match_parent"
                android:layout_height="0dip"
                android:layout_height="0dip"
                android:layout_weight="1" />
                android:layout_weight="1" />
        </LinearLayout>
        </LinearLayout>