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

Commit 84557da1 authored by MonkeyMatt's avatar MonkeyMatt
Browse files

Add show password eye to setup basic

Use TextInputEditText to handle show/hide of password rather than doing it with our own checkbox
parent f03f9621
Loading
Loading
Loading
Loading
+3 −16
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;

import com.fsck.k9.Account;
import com.fsck.k9.Core;
@@ -39,6 +38,7 @@ import com.fsck.k9.ui.R;
import com.fsck.k9.ui.ConnectionSettings;
import com.fsck.k9.view.ClientCertificateSpinner;
import com.fsck.k9.view.ClientCertificateSpinner.OnClientCertificateChangedListener;
import com.google.android.material.textfield.TextInputEditText;
import timber.log.Timber;

/**
@@ -59,8 +59,8 @@ public class AccountSetupBasics extends K9Activity
    private final AccountCreator accountCreator = DI.get(AccountCreator.class);
    private final SpecialLocalFoldersCreator localFoldersCreator = DI.get(SpecialLocalFoldersCreator.class);

    private EditText mEmailView;
    private EditText mPasswordView;
    private TextInputEditText mEmailView;
    private TextInputEditText mPasswordView;
    private CheckBox mClientCertificateCheckBox;
    private ClientCertificateSpinner mClientCertificateSpinner;
    private Button mNextButton;
@@ -69,7 +69,6 @@ public class AccountSetupBasics extends K9Activity

    private EmailAddressValidator mEmailValidator = new EmailAddressValidator();
    private boolean mCheckedIncoming = false;
    private CheckBox mShowPasswordCheckBox;

    public static void actionNewAccount(Context context) {
        Intent i = new Intent(context, AccountSetupBasics.class);
@@ -86,7 +85,6 @@ public class AccountSetupBasics extends K9Activity
        mClientCertificateSpinner = findViewById(R.id.account_client_certificate_spinner);
        mNextButton = findViewById(R.id.next);
        mManualSetupButton = findViewById(R.id.manual_setup);
        mShowPasswordCheckBox = findViewById(R.id.show_password);
        mNextButton.setOnClickListener(this);
        mManualSetupButton.setOnClickListener(this);
    }
@@ -96,13 +94,6 @@ public class AccountSetupBasics extends K9Activity
        mPasswordView.addTextChangedListener(this);
        mClientCertificateCheckBox.setOnCheckedChangeListener(this);
        mClientCertificateSpinner.setOnClientCertificateChangedListener(this);
        mShowPasswordCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                showPassword(isChecked);
            }
        });

    }

    @Override
@@ -126,8 +117,6 @@ public class AccountSetupBasics extends K9Activity
        mCheckedIncoming = savedInstanceState.getBoolean(STATE_KEY_CHECKED_INCOMING);

        updateViewVisibility(mClientCertificateCheckBox.isChecked());

        showPassword(mShowPasswordCheckBox.isChecked());
    }

    @Override
@@ -178,12 +167,10 @@ public class AccountSetupBasics extends K9Activity
        if (usingCertificates) {
            // hide password fields, show client certificate spinner
            mPasswordView.setVisibility(View.GONE);
            mShowPasswordCheckBox.setVisibility(View.GONE);
            mClientCertificateSpinner.setVisibility(View.VISIBLE);
        } else {
            // show password fields, hide client certificate spinner
            mPasswordView.setVisibility(View.VISIBLE);
            mShowPasswordCheckBox.setVisibility(View.VISIBLE);
            mClientCertificateSpinner.setVisibility(View.GONE);
        }
    }
+33 −28
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent" >
    android:layout_height="match_parent"
    android:layout_width="match_parent">

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

@@ -16,37 +16,42 @@
        android:scrollbarStyle="outsideInset" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|center_vertical"
            android:orientation="vertical" >

            <EditText
            <com.google.android.material.textfield.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/account_email"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/account_setup_basics_email_hint"
                    android:singleLine="true"
                android:inputType="textEmailAddress"
                    android:inputType="textEmailAddress"/>
            </com.google.android.material.textfield.TextInputLayout>

            <com.google.android.material.textfield.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent" />
                app:passwordToggleEnabled="true">

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

            <CheckBox
                android:id="@+id/show_password"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:text="@string/account_setup_basics_show_password" />
            </com.google.android.material.textfield.TextInputLayout>

            <com.fsck.k9.view.ClientCertificateSpinner
                android:id="@+id/account_client_certificate_spinner"
                android:layout_width="fill_parent"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:visibility="gone" />

@@ -55,18 +60,18 @@
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                custom:foldedLabel="@string/client_certificate_advanced_options"
                custom:unFoldedLabel="@string/client_certificate_advanced_options" >
                app:foldedLabel="@string/client_certificate_advanced_options"
                app:unFoldedLabel="@string/client_certificate_advanced_options" >

                <CheckBox
                    android:id="@+id/account_client_certificate"
                    android:layout_width="fill_parent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/account_setup_basics_client_certificate" />
            </com.fsck.k9.view.FoldableLinearLayout>

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