Merge "Count isActivityEmbedded() state to show split screen warning dialog" into udc-dev

This commit is contained in:
Hao Dong
2023-04-14 19:04:55 +00:00
committed by Android (Google) Code Review
5 changed files with 25 additions and 19 deletions

View File

@@ -52,6 +52,7 @@ import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
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.settingslib.activityembedding.ActivityEmbeddingUtils;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.transition.SettingsTransitionHelper; 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 // If it's split mode and there is no enrolled face, show the dialog. (if there is
// enrolled face, FaceSettingsEnrollButtonPreferenceController#onClick will handle // enrolled face, FaceSettingsEnrollButtonPreferenceController#onClick will handle
// the dialog) // the dialog)
if (getActivity().isInMultiWindowMode() && !mFaceManager.hasEnrolledTemplates( if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded(
mUserId)) { getActivity()) && !mFaceManager.hasEnrolledTemplates(mUserId)) {
BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show( BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
getActivity().getSupportFragmentManager(), getActivity().getSupportFragmentManager(),
BiometricsSplitScreenDialog.class.getName()); 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 // If it's split mode and there is no enrolled fingerprint, show the dialog. (if
// there is enrolled fingerprint, FingerprintSettingsFragment#onPreferenceTreeClick // there is enrolled fingerprint, FingerprintSettingsFragment#onPreferenceTreeClick
// will handle the dialog) // will handle the dialog)
if (getActivity().isInMultiWindowMode() && !mFingerprintManager.hasEnrolledFingerprints( if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded(
mUserId)) { getActivity()) && !mFingerprintManager.hasEnrolledFingerprints(mUserId)) {
BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show( BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
getActivity().getSupportFragmentManager(), getActivity().getSupportFragmentManager(),
BiometricsSplitScreenDialog.class.getName()); BiometricsSplitScreenDialog.class.getName());

View File

@@ -48,6 +48,7 @@ import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.activityembedding.ActivityEmbeddingUtils;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.LayoutPreference; import com.android.settingslib.widget.LayoutPreference;
@@ -106,15 +107,16 @@ public class FaceSettings extends DashboardFragment {
private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener = private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener =
new FaceSettingsEnrollButtonPreferenceController.Listener() { new FaceSettingsEnrollButtonPreferenceController.Listener() {
@Override @Override
public boolean checkInMultiWindowMode() { public boolean onShowSplitScreenDialog() {
if (!getActivity().isInMultiWindowMode()) { if (getActivity().isInMultiWindowMode()
return false; && !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. return false;
BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
getActivity().getSupportFragmentManager(),
BiometricsSplitScreenDialog.class.getName());
return true;
} }
@Override @Override

View File

@@ -76,7 +76,7 @@ public class FaceSettingsEnrollButtonPreferenceController extends BasePreference
@Override @Override
public void onClick(View v) { public void onClick(View v) {
// If it's in multi window mode, do not start the introduction intent. // If it's in multi window mode, do not start the introduction intent.
if (mListener != null && mListener.checkInMultiWindowMode()) { if (mListener != null && mListener.onShowSplitScreenDialog()) {
return; return;
} }
@@ -121,10 +121,10 @@ public class FaceSettingsEnrollButtonPreferenceController extends BasePreference
*/ */
public interface Listener { public interface Listener {
/** /**
* Called to check whether it's in multi window mode * Called to check whether to show dialog in split screen mode
* @return Whether it's in multi window 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. * Called when the user has indicated an intent to begin enrolling a new face.

View File

@@ -82,6 +82,7 @@ import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.activityembedding.ActivityEmbeddingUtils;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.transition.SettingsTransitionHelper; import com.android.settingslib.transition.SettingsTransitionHelper;
import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreference;
@@ -700,7 +701,9 @@ public class FingerprintSettings extends SubSettings {
if (KEY_FINGERPRINT_ADD.equals(key)) { if (KEY_FINGERPRINT_ADD.equals(key)) {
// If it's in split mode, show the error dialog and don't need to show adding // If it's in split mode, show the error dialog and don't need to show adding
// fingerprint intent. // fingerprint intent.
if (getActivity().isInMultiWindowMode()) { final boolean isActivityEmbedded = ActivityEmbeddingUtils.isActivityEmbedded(
getActivity());
if (getActivity().isInMultiWindowMode() && !isActivityEmbedded) {
BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show( BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
getActivity().getSupportFragmentManager(), getActivity().getSupportFragmentManager(),
BiometricsSplitScreenDialog.class.getName()); BiometricsSplitScreenDialog.class.getName());

View File

@@ -62,7 +62,7 @@ public class FaceSettingsEnrollButtonPreferenceControllerTest {
@Test @Test
public void testOnClick_inFullScreen() { public void testOnClick_inFullScreen() {
when(mListener.checkInMultiWindowMode()).thenReturn(false); when(mListener.onShowSplitScreenDialog()).thenReturn(false);
mController.onClick(mButton); mController.onClick(mButton);
assertThat(mController.isClicked()).isTrue(); assertThat(mController.isClicked()).isTrue();
@@ -71,7 +71,7 @@ public class FaceSettingsEnrollButtonPreferenceControllerTest {
@Test @Test
public void testOnClick_inMultiWindow() { public void testOnClick_inMultiWindow() {
when(mListener.checkInMultiWindowMode()).thenReturn(true); when(mListener.onShowSplitScreenDialog()).thenReturn(true);
mController.onClick(mButton); mController.onClick(mButton);
assertThat(mController.isClicked()).isFalse(); assertThat(mController.isClicked()).isFalse();