Merge "Use ImeAwareEditText in FingerprintSettings"
This commit is contained in:
committed by
Android (Google) Code Review
commit
f93b925588
@@ -35,7 +35,7 @@
|
|||||||
android:clipChildren="false"
|
android:clipChildren="false"
|
||||||
android:clipToPadding="false" />
|
android:clipToPadding="false" />
|
||||||
|
|
||||||
<EditText
|
<com.android.settings.widget.ImeAwareEditText
|
||||||
android:id="@+id/fingerprint_rename_field"
|
android:id="@+id/fingerprint_rename_field"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@@ -55,6 +55,7 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
|||||||
import com.android.settings.password.ChooseLockGeneric;
|
import com.android.settings.password.ChooseLockGeneric;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
import com.android.settings.utils.AnnotationSpan;
|
import com.android.settings.utils.AnnotationSpan;
|
||||||
|
import com.android.settings.widget.ImeAwareEditText;
|
||||||
import com.android.settingslib.HelpUtils;
|
import com.android.settingslib.HelpUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
@@ -708,11 +709,7 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
public static class RenameDialog extends InstrumentedDialogFragment {
|
public static class RenameDialog extends InstrumentedDialogFragment {
|
||||||
|
|
||||||
private Fingerprint mFp;
|
private Fingerprint mFp;
|
||||||
private EditText mDialogTextField;
|
private ImeAwareEditText mDialogTextField;
|
||||||
private String mFingerName;
|
|
||||||
private Boolean mTextHadFocus;
|
|
||||||
private int mTextSelectionStart;
|
|
||||||
private int mTextSelectionEnd;
|
|
||||||
private AlertDialog mAlertDialog;
|
private AlertDialog mAlertDialog;
|
||||||
private boolean mDeleteInProgress;
|
private boolean mDeleteInProgress;
|
||||||
|
|
||||||
@@ -723,11 +720,17 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
mFp = getArguments().getParcelable("fingerprint");
|
mFp = getArguments().getParcelable("fingerprint");
|
||||||
|
final String fingerName;
|
||||||
|
final int textSelectionStart;
|
||||||
|
final int textSelectionEnd;
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
mFingerName = savedInstanceState.getString("fingerName");
|
fingerName = savedInstanceState.getString("fingerName");
|
||||||
mTextHadFocus = savedInstanceState.getBoolean("textHadFocus");
|
textSelectionStart = savedInstanceState.getInt("startSelection", -1);
|
||||||
mTextSelectionStart = savedInstanceState.getInt("startSelection");
|
textSelectionEnd = savedInstanceState.getInt("endSelection", -1);
|
||||||
mTextSelectionEnd = savedInstanceState.getInt("endSelection");
|
} else {
|
||||||
|
fingerName = null;
|
||||||
|
textSelectionStart = -1;
|
||||||
|
textSelectionEnd = -1;
|
||||||
}
|
}
|
||||||
mAlertDialog = new AlertDialog.Builder(getActivity())
|
mAlertDialog = new AlertDialog.Builder(getActivity())
|
||||||
.setView(R.layout.fingerprint_rename_dialog)
|
.setView(R.layout.fingerprint_rename_dialog)
|
||||||
@@ -756,26 +759,21 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
mAlertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
|
mAlertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onShow(DialogInterface dialog) {
|
public void onShow(DialogInterface dialog) {
|
||||||
mDialogTextField = (EditText) mAlertDialog.findViewById(
|
mDialogTextField = mAlertDialog.findViewById(R.id.fingerprint_rename_field);
|
||||||
R.id.fingerprint_rename_field);
|
CharSequence name = fingerName == null ? mFp.getName() : fingerName;
|
||||||
CharSequence name = mFingerName == null ? mFp.getName() : mFingerName;
|
|
||||||
mDialogTextField.setText(name);
|
mDialogTextField.setText(name);
|
||||||
if (mTextHadFocus == null) {
|
if (textSelectionStart != -1 && textSelectionEnd != -1) {
|
||||||
mDialogTextField.selectAll();
|
mDialogTextField.setSelection(textSelectionStart, textSelectionEnd);
|
||||||
} else {
|
} else {
|
||||||
mDialogTextField.setSelection(mTextSelectionStart, mTextSelectionEnd);
|
mDialogTextField.selectAll();
|
||||||
}
|
}
|
||||||
if (mDeleteInProgress) {
|
if (mDeleteInProgress) {
|
||||||
mAlertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false);
|
mAlertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false);
|
||||||
}
|
}
|
||||||
mDialogTextField.requestFocus();
|
mDialogTextField.requestFocus();
|
||||||
|
mDialogTextField.scheduleShowSoftInput();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (mTextHadFocus == null || mTextHadFocus) {
|
|
||||||
// Request the IME
|
|
||||||
mAlertDialog.getWindow().setSoftInputMode(
|
|
||||||
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
|
|
||||||
}
|
|
||||||
return mAlertDialog;
|
return mAlertDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -791,7 +789,6 @@ public class FingerprintSettings extends SubSettings {
|
|||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
if (mDialogTextField != null) {
|
if (mDialogTextField != null) {
|
||||||
outState.putString("fingerName", mDialogTextField.getText().toString());
|
outState.putString("fingerName", mDialogTextField.getText().toString());
|
||||||
outState.putBoolean("textHadFocus", mDialogTextField.hasFocus());
|
|
||||||
outState.putInt("startSelection", mDialogTextField.getSelectionStart());
|
outState.putInt("startSelection", mDialogTextField.getSelectionStart());
|
||||||
outState.putInt("endSelection", mDialogTextField.getSelectionEnd());
|
outState.putInt("endSelection", mDialogTextField.getSelectionEnd());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user