Fix more IME actions
b/13544189 Change-Id: I5dbbf45a1b68cac2d63ba41c70daff9d33cbb492
This commit is contained in:
parent
d1a48cb5f4
commit
6cbdd5bba0
|
@ -35,8 +35,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:contentDescription="@string/account_setup_incoming_username_label"
|
android:contentDescription="@string/account_setup_incoming_username_label"
|
||||||
android:inputType="textEmailAddress"
|
android:inputType="textEmailAddress" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
<TableRow
|
<TableRow
|
||||||
android:paddingTop="16dip" >
|
android:paddingTop="16dip" >
|
||||||
|
@ -95,8 +94,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:contentDescription="@string/account_setup_incoming_server_label"
|
android:contentDescription="@string/account_setup_incoming_server_label"
|
||||||
android:inputType="textUri"
|
android:inputType="textUri" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
<TableRow
|
<TableRow
|
||||||
android:paddingTop="16dip" >
|
android:paddingTop="16dip" >
|
||||||
|
@ -125,8 +123,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:contentDescription="@string/account_setup_incoming_port_label"
|
android:contentDescription="@string/account_setup_incoming_port_label"
|
||||||
android:inputType="number"
|
android:inputType="number" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
|
|
||||||
<TableRow
|
<TableRow
|
||||||
|
@ -159,8 +156,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:contentDescription="@string/account_setup_incoming_imap_path_prefix_label"
|
android:contentDescription="@string/account_setup_incoming_imap_path_prefix_label"
|
||||||
android:hint="@string/account_setup_incoming_imap_path_prefix_hint"
|
android:hint="@string/account_setup_incoming_imap_path_prefix_hint"
|
||||||
android:inputType="text"
|
android:inputType="text" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,7 @@
|
||||||
android:id="@+id/account_server"
|
android:id="@+id/account_server"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="textUri"
|
android:inputType="textUri" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
<TableRow
|
<TableRow
|
||||||
android:paddingTop="16dip" >
|
android:paddingTop="16dip" >
|
||||||
|
@ -63,8 +62,7 @@
|
||||||
android:id="@+id/account_port"
|
android:id="@+id/account_port"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="number"
|
android:inputType="number" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
<!-- Note, this row is not a TableRow, and it will span the entire table - no columns -->
|
<!-- Note, this row is not a TableRow, and it will span the entire table - no columns -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -103,8 +101,7 @@
|
||||||
android:id="@+id/account_username"
|
android:id="@+id/account_username"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="textEmailAddress"
|
android:inputType="textEmailAddress" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</TableRow>
|
</TableRow>
|
||||||
<TableRow
|
<TableRow
|
||||||
android:id="@+id/account_require_login_settings_2"
|
android:id="@+id/account_require_login_settings_2"
|
||||||
|
|
|
@ -31,8 +31,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:hint="@string/account_setup_incoming_username_label"
|
android:hint="@string/account_setup_incoming_username_label"
|
||||||
android:inputType="textEmailAddress"
|
android:inputType="textEmailAddress" />
|
||||||
android:imeOptions="actionNext" />
|
|
||||||
|
|
||||||
<com.android.email.activity.setup.AuthenticationView
|
<com.android.email.activity.setup.AuthenticationView
|
||||||
android:id="@+id/authentication_view"
|
android:id="@+id/authentication_view"
|
||||||
|
@ -80,8 +79,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:hint="@string/account_setup_incoming_server_label"
|
android:hint="@string/account_setup_incoming_server_label"
|
||||||
android:inputType="textUri"
|
android:inputType="textUri" />
|
||||||
android:imeOptions="actionNext" />
|
|
||||||
<TextView
|
<TextView
|
||||||
android:text="@string/account_setup_incoming_port_label"
|
android:text="@string/account_setup_incoming_port_label"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -92,8 +90,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:hint="@string/account_setup_incoming_port_label"
|
android:hint="@string/account_setup_incoming_port_label"
|
||||||
android:inputType="number"
|
android:inputType="number" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
<TextView
|
<TextView
|
||||||
android:text="@string/account_setup_incoming_security_label"
|
android:text="@string/account_setup_incoming_security_label"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -131,7 +128,6 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:hint="@string/account_setup_incoming_imap_path_prefix_hint"
|
android:hint="@string/account_setup_incoming_imap_path_prefix_hint"
|
||||||
android:inputType="text"
|
android:inputType="text" />
|
||||||
android:imeOptions="actionDone" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/account_server"
|
android:id="@+id/account_server"
|
||||||
android:inputType="textUri"
|
android:inputType="textUri"
|
||||||
android:imeOptions="actionDone"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent" />
|
android:layout_width="match_parent" />
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -40,7 +39,6 @@
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/account_port"
|
android:id="@+id/account_port"
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
android:imeOptions="actionDone"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent" />
|
android:layout_width="match_parent" />
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -71,7 +69,6 @@
|
||||||
<EditText
|
<EditText
|
||||||
android:id="@+id/account_username"
|
android:id="@+id/account_username"
|
||||||
android:inputType="textEmailAddress"
|
android:inputType="textEmailAddress"
|
||||||
android:imeOptions="actionDone"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent" />
|
android:layout_width="match_parent" />
|
||||||
<com.android.email.activity.setup.AuthenticationView
|
<com.android.email.activity.setup.AuthenticationView
|
||||||
|
|
|
@ -22,14 +22,11 @@ import android.content.Context;
|
||||||
import android.content.Loader;
|
import android.content.Loader;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.View.OnFocusChangeListener;
|
import android.view.View.OnFocusChangeListener;
|
||||||
import android.view.inputmethod.EditorInfo;
|
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.TextView.OnEditorActionListener;
|
|
||||||
|
|
||||||
import com.android.email.R;
|
import com.android.email.R;
|
||||||
import com.android.email.activity.UiUtilities;
|
import com.android.email.activity.UiUtilities;
|
||||||
|
@ -238,32 +235,6 @@ public abstract class AccountServerBaseFragment extends AccountSetupFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* A keyboard listener which dismisses the keyboard when "DONE" is pressed, but doesn't muck
|
|
||||||
* around with focus. This is useful in settings screens, as we don't want focus to change
|
|
||||||
* since some fields throw up errors when they're focused to give the user more info.
|
|
||||||
*/
|
|
||||||
protected final OnEditorActionListener mDismissImeOnDoneListener =
|
|
||||||
new OnEditorActionListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
||||||
if (actionId == EditorInfo.IME_ACTION_DONE) {
|
|
||||||
// Dismiss soft keyboard but don't modify focus.
|
|
||||||
final Context context = getActivity();
|
|
||||||
if (context == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
final InputMethodManager imm = (InputMethodManager) context.getSystemService(
|
|
||||||
Context.INPUT_METHOD_SERVICE);
|
|
||||||
if (imm != null && imm.isActive()) {
|
|
||||||
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns whether or not any settings have changed.
|
* Returns whether or not any settings have changed.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -24,12 +24,10 @@ import android.text.Editable;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.inputmethod.EditorInfo;
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
@ -50,7 +48,7 @@ import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
||||||
implements OnClickListener, HostCallback, TextView.OnEditorActionListener {
|
implements OnClickListener, HostCallback {
|
||||||
|
|
||||||
private static final int CERTIFICATE_REQUEST = 1000;
|
private static final int CERTIFICATE_REQUEST = 1000;
|
||||||
|
|
||||||
|
@ -146,9 +144,6 @@ public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
||||||
mClientCertificateSelector.setHostCallback(this);
|
mClientCertificateSelector.setHostCallback(this);
|
||||||
mClientCertificateSelector.setCertificate(getArguments().getString(EXTRA_CLIENT_CERT));
|
mClientCertificateSelector.setCertificate(getArguments().getString(EXTRA_CLIENT_CERT));
|
||||||
|
|
||||||
mImapPasswordText.setOnEditorActionListener(this);
|
|
||||||
mRegularPasswordText.setOnEditorActionListener(this);
|
|
||||||
|
|
||||||
// After any text edits, call validateFields() which enables or disables the Next button
|
// After any text edits, call validateFields() which enables or disables the Next button
|
||||||
mValidationTextWatcher = new TextWatcher() {
|
mValidationTextWatcher = new TextWatcher() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -213,12 +208,10 @@ public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
if (mImapPasswordText != null) {
|
if (mImapPasswordText != null) {
|
||||||
mImapPasswordText.removeTextChangedListener(mValidationTextWatcher);
|
mImapPasswordText.removeTextChangedListener(mValidationTextWatcher);
|
||||||
mImapPasswordText.setOnEditorActionListener(null);
|
|
||||||
mImapPasswordText = null;
|
mImapPasswordText = null;
|
||||||
}
|
}
|
||||||
if (mRegularPasswordText != null) {
|
if (mRegularPasswordText != null) {
|
||||||
mRegularPasswordText.removeTextChangedListener(mValidationTextWatcher);
|
mRegularPasswordText.removeTextChangedListener(mValidationTextWatcher);
|
||||||
mRegularPasswordText.setOnEditorActionListener(null);
|
|
||||||
mRegularPasswordText = null;
|
mRegularPasswordText = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -310,22 +303,6 @@ public class AccountSetupCredentialsFragment extends AccountSetupFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
|
|
||||||
if (actionId == EditorInfo.IME_ACTION_DONE) {
|
|
||||||
if (isNextButtonEnabled()) {
|
|
||||||
final Callback callback = (Callback) getActivity();
|
|
||||||
if (callback != null) {
|
|
||||||
final Bundle results = getCredentialResults();
|
|
||||||
callback.onCredentialsComplete(results);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPassword() {
|
public String getPassword() {
|
||||||
if (mOfferOAuth) {
|
if (mOfferOAuth) {
|
||||||
return mImapPasswordText.getText().toString();
|
return mImapPasswordText.getText().toString();
|
||||||
|
|
|
@ -318,21 +318,18 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment
|
||||||
account == null, account == null || account.mHostAuthRecv == null);
|
account == null, account == null || account.mHostAuthRecv == null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TextView lastView = mImapPathPrefixView;
|
|
||||||
mBaseScheme = account.mHostAuthRecv.mProtocol;
|
mBaseScheme = account.mHostAuthRecv.mProtocol;
|
||||||
mServerLabelView.setText(R.string.account_setup_incoming_server_label);
|
mServerLabelView.setText(R.string.account_setup_incoming_server_label);
|
||||||
mServerView.setContentDescription(getResources().getText(
|
mServerView.setContentDescription(getResources().getText(
|
||||||
R.string.account_setup_incoming_server_label));
|
R.string.account_setup_incoming_server_label));
|
||||||
if (!mServiceInfo.offerPrefix) {
|
if (!mServiceInfo.offerPrefix) {
|
||||||
mImapPathPrefixSectionView.setVisibility(View.GONE);
|
mImapPathPrefixSectionView.setVisibility(View.GONE);
|
||||||
lastView = mPortView;
|
|
||||||
}
|
}
|
||||||
if (!mServiceInfo.offerLocalDeletes) {
|
if (!mServiceInfo.offerLocalDeletes) {
|
||||||
mDeletePolicyLabelView.setVisibility(View.GONE);
|
mDeletePolicyLabelView.setVisibility(View.GONE);
|
||||||
mDeletePolicyView.setVisibility(View.GONE);
|
mDeletePolicyView.setVisibility(View.GONE);
|
||||||
mPortView.setImeOptions(EditorInfo.IME_ACTION_NEXT);
|
mPortView.setImeOptions(EditorInfo.IME_ACTION_NEXT);
|
||||||
}
|
}
|
||||||
lastView.setOnEditorActionListener(mDismissImeOnDoneListener);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue