diff --git a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java index 052b8cd4787..487e254a929 100644 --- a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java +++ b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java @@ -52,6 +52,7 @@ import com.android.settings.core.SettingsBaseActivity; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.password.ChooseLockGeneric; import com.android.settings.password.ChooseLockSettingsHelper; +import com.android.settingslib.activityembedding.ActivityEmbeddingUtils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.transition.SettingsTransitionHelper; @@ -169,8 +170,8 @@ public abstract class BiometricsSettingsBase extends DashboardFragment { // If it's split mode and there is no enrolled face, show the dialog. (if there is // enrolled face, FaceSettingsEnrollButtonPreferenceController#onClick will handle // the dialog) - if (getActivity().isInMultiWindowMode() && !mFaceManager.hasEnrolledTemplates( - mUserId)) { + if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded( + getActivity()) && !mFaceManager.hasEnrolledTemplates(mUserId)) { BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show( getActivity().getSupportFragmentManager(), BiometricsSplitScreenDialog.class.getName()); @@ -205,8 +206,8 @@ public abstract class BiometricsSettingsBase extends DashboardFragment { // If it's split mode and there is no enrolled fingerprint, show the dialog. (if // there is enrolled fingerprint, FingerprintSettingsFragment#onPreferenceTreeClick // will handle the dialog) - if (getActivity().isInMultiWindowMode() && !mFingerprintManager.hasEnrolledFingerprints( - mUserId)) { + if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded( + getActivity()) && !mFingerprintManager.hasEnrolledFingerprints(mUserId)) { BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show( getActivity().getSupportFragmentManager(), BiometricsSplitScreenDialog.class.getName()); diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java index c300bae8ebc..979faa22fc2 100644 --- a/src/com/android/settings/biometrics/face/FaceSettings.java +++ b/src/com/android/settings/biometrics/face/FaceSettings.java @@ -48,6 +48,7 @@ import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settingslib.activityembedding.ActivityEmbeddingUtils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.LayoutPreference; @@ -106,15 +107,16 @@ public class FaceSettings extends DashboardFragment { private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener = new FaceSettingsEnrollButtonPreferenceController.Listener() { @Override - public boolean checkInMultiWindowMode() { - if (!getActivity().isInMultiWindowMode()) { - return false; + public boolean onShowSplitScreenDialog() { + if (getActivity().isInMultiWindowMode() + && !ActivityEmbeddingUtils.isActivityEmbedded(getActivity())) { + // If it's in split mode, show the error dialog. + BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show( + getActivity().getSupportFragmentManager(), + BiometricsSplitScreenDialog.class.getName()); + return true; } - // If it's in split mode, show the error dialog. - BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show( - getActivity().getSupportFragmentManager(), - BiometricsSplitScreenDialog.class.getName()); - return true; + return false; } @Override diff --git a/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java index a35e865a9ca..50e424837ed 100644 --- a/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java +++ b/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java @@ -76,7 +76,7 @@ public class FaceSettingsEnrollButtonPreferenceController extends BasePreference @Override public void onClick(View v) { // If it's in multi window mode, do not start the introduction intent. - if (mListener != null && mListener.checkInMultiWindowMode()) { + if (mListener != null && mListener.onShowSplitScreenDialog()) { return; } @@ -121,10 +121,10 @@ public class FaceSettingsEnrollButtonPreferenceController extends BasePreference */ public interface Listener { /** - * Called to check whether it's in multi window mode - * @return Whether it's in multi window mode. + * Called to check whether to show dialog in split screen mode + * @return Whether split screen warning dialog shown. */ - boolean checkInMultiWindowMode(); + boolean onShowSplitScreenDialog(); /** * Called when the user has indicated an intent to begin enrolling a new face. diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index f60cd0cd66b..59bbc1379e8 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -82,6 +82,7 @@ import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedSwitchPreference; +import com.android.settingslib.activityembedding.ActivityEmbeddingUtils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.transition.SettingsTransitionHelper; import com.android.settingslib.widget.FooterPreference; @@ -700,7 +701,9 @@ public class FingerprintSettings extends SubSettings { if (KEY_FINGERPRINT_ADD.equals(key)) { // If it's in split mode, show the error dialog and don't need to show adding // fingerprint intent. - if (getActivity().isInMultiWindowMode()) { + final boolean isActivityEmbedded = ActivityEmbeddingUtils.isActivityEmbedded( + getActivity()); + if (getActivity().isInMultiWindowMode() && !isActivityEmbedded) { BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show( getActivity().getSupportFragmentManager(), BiometricsSplitScreenDialog.class.getName()); diff --git a/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java index 64745614cee..0738a3c4227 100644 --- a/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java @@ -62,7 +62,7 @@ public class FaceSettingsEnrollButtonPreferenceControllerTest { @Test public void testOnClick_inFullScreen() { - when(mListener.checkInMultiWindowMode()).thenReturn(false); + when(mListener.onShowSplitScreenDialog()).thenReturn(false); mController.onClick(mButton); assertThat(mController.isClicked()).isTrue(); @@ -71,7 +71,7 @@ public class FaceSettingsEnrollButtonPreferenceControllerTest { @Test public void testOnClick_inMultiWindow() { - when(mListener.checkInMultiWindowMode()).thenReturn(true); + when(mListener.onShowSplitScreenDialog()).thenReturn(true); mController.onClick(mButton); assertThat(mController.isClicked()).isFalse();