Merge "To hide the soft input window when press skip button on Skip setup for PIN and face dialog of Set a PIN screen to avoid flash during transition." into sc-dev am: 1ff0fe1d5a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15079270 Change-Id: I033dc319ec7f1142fd9608cceb86cd2589960532
This commit is contained in:
@@ -22,6 +22,7 @@ import android.content.Intent;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -112,7 +113,6 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
|
|||||||
.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false);
|
.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false);
|
||||||
final boolean forBiometrics = intent
|
final boolean forBiometrics = intent
|
||||||
.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, false);
|
.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, false);
|
||||||
|
|
||||||
final SetupSkipDialog dialog = SetupSkipDialog.newInstance(
|
final SetupSkipDialog dialog = SetupSkipDialog.newInstance(
|
||||||
frpSupported,
|
frpSupported,
|
||||||
/* isPatternMode= */ false,
|
/* isPatternMode= */ false,
|
||||||
@@ -120,6 +120,11 @@ public class SetupChooseLockPassword extends ChooseLockPassword {
|
|||||||
forFingerprint,
|
forFingerprint,
|
||||||
forFace,
|
forFace,
|
||||||
forBiometrics);
|
forBiometrics);
|
||||||
|
|
||||||
|
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(
|
||||||
|
Context.INPUT_METHOD_SERVICE);
|
||||||
|
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||||||
|
|
||||||
dialog.show(getFragmentManager());
|
dialog.show(getFragmentManager());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,8 @@ import android.app.Dialog;
|
|||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
@@ -190,12 +192,21 @@ public class SetupSkipDialog extends InstrumentedDialogFragment
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int button) {
|
public void onClick(DialogInterface dialog, int button) {
|
||||||
|
Activity activity = getActivity();
|
||||||
switch (button) {
|
switch (button) {
|
||||||
case DialogInterface.BUTTON_POSITIVE:
|
case DialogInterface.BUTTON_POSITIVE:
|
||||||
Activity activity = getActivity();
|
|
||||||
activity.setResult(RESULT_SKIP);
|
activity.setResult(RESULT_SKIP);
|
||||||
activity.finish();
|
activity.finish();
|
||||||
break;
|
break;
|
||||||
|
case DialogInterface.BUTTON_NEGATIVE:
|
||||||
|
View view = activity.getCurrentFocus();
|
||||||
|
if(view != null) {
|
||||||
|
view.requestFocus();
|
||||||
|
InputMethodManager imm = (InputMethodManager) activity
|
||||||
|
.getSystemService(Activity.INPUT_METHOD_SERVICE);
|
||||||
|
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,6 +24,7 @@ import static org.robolectric.RuntimeEnvironment.application;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
@@ -55,6 +56,7 @@ import org.robolectric.annotation.Implementation;
|
|||||||
import org.robolectric.annotation.Implements;
|
import org.robolectric.annotation.Implements;
|
||||||
import org.robolectric.shadows.ShadowActivity;
|
import org.robolectric.shadows.ShadowActivity;
|
||||||
import org.robolectric.shadows.ShadowDialog;
|
import org.robolectric.shadows.ShadowDialog;
|
||||||
|
import org.robolectric.shadows.ShadowInputMethodManager;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -149,6 +151,9 @@ public class SetupChooseLockPasswordTest {
|
|||||||
@Test
|
@Test
|
||||||
public void createActivity_skipButtonInIntroductionStage_shouldBeVisible() {
|
public void createActivity_skipButtonInIntroductionStage_shouldBeVisible() {
|
||||||
SetupChooseLockPassword activity = createSetupChooseLockPassword();
|
SetupChooseLockPassword activity = createSetupChooseLockPassword();
|
||||||
|
final InputMethodManager inputMethodManager = activity
|
||||||
|
.getSystemService(InputMethodManager.class);
|
||||||
|
final ShadowInputMethodManager shadowImm = Shadows.shadowOf(inputMethodManager);
|
||||||
|
|
||||||
final PartnerCustomizationLayout layout = activity.findViewById(R.id.setup_wizard_layout);
|
final PartnerCustomizationLayout layout = activity.findViewById(R.id.setup_wizard_layout);
|
||||||
final Button skipOrClearButton =
|
final Button skipOrClearButton =
|
||||||
@@ -159,6 +164,7 @@ public class SetupChooseLockPasswordTest {
|
|||||||
skipOrClearButton.performClick();
|
skipOrClearButton.performClick();
|
||||||
final AlertDialog chooserDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
|
final AlertDialog chooserDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
|
||||||
assertThat(chooserDialog).isNotNull();
|
assertThat(chooserDialog).isNotNull();
|
||||||
|
assertThat(shadowImm.isSoftInputVisible()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user