Merge "Remove kotlin.RequiresOptIn"
diff --git a/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java b/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
index 5d0b63c..a994b95 100644
--- a/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
+++ b/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
@@ -103,10 +103,9 @@
                         0 /* requestCode */, faceIntent,
                         PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
                 intent.putExtra(EXTRA_ENROLL_AFTER_FINGERPRINT, faceAfterFp);
-
-                BiometricUtils.launchEnrollForResult(mActivity, intent, REQUEST_FINGERPRINT_ENROLL,
-                        hardwareAuthToken, mGkPwHandle, mUserId);
             }
+            BiometricUtils.launchEnrollForResult(mActivity, intent, REQUEST_FINGERPRINT_ENROLL,
+                    hardwareAuthToken, mGkPwHandle, mUserId);
         }));
     }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 9b5f549..7fd711e 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -415,7 +415,7 @@
         // showErrorDialog() will cause onWindowFocusChanged(false), set mIsCanceled to false
         // before showErrorDialog() to prevent that another error dialog is triggered again.
         mIsCanceled = true;
-        FingerprintErrorDialog.showErrorDialog(this, errorMsgId);
+        FingerprintErrorDialog.showErrorDialog(this, errorMsgId, mCanAssumeUdfps);
         mIsOrientationChanged = false;
         cancelEnrollment();
         stopIconAnimation();
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index faf4df7..200b8c5 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -317,7 +317,7 @@
         if (mNextClicked && errMsgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
             proceedToEnrolling(false /* cancelEnrollment */);
         } else {
-            FingerprintErrorDialog.showErrorDialog(this, errMsgId);
+            FingerprintErrorDialog.showErrorDialog(this, errMsgId, mCanAssumeUdfps);
         }
     }
 
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
index b8ec5e6..2125d52 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
@@ -132,12 +132,12 @@
     @Override
     protected void onNextButtonClick(View view) {
         updateFingerprintSuggestionEnableState();
-        finishAndToNext();
+        finishAndToNext(RESULT_FINISHED);
     }
 
-    private void finishAndToNext() {
+    private void finishAndToNext(int resultCode) {
         mIsAddAnotherOrFinish = true;
-        setResult(RESULT_FINISHED);
+        setResult(resultCode);
         if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
             postEnroll();
         }
@@ -184,9 +184,12 @@
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         updateFingerprintSuggestionEnableState();
-        if (requestCode == BiometricUtils.REQUEST_ADD_ANOTHER && resultCode != RESULT_CANCELED) {
+        if (requestCode == BiometricUtils.REQUEST_ADD_ANOTHER && resultCode == RESULT_TIMEOUT) {
+            finishAndToNext(resultCode);
+        } else if (requestCode == BiometricUtils.REQUEST_ADD_ANOTHER
+                && resultCode != RESULT_CANCELED) {
             // If user cancel during "Add another", just use similar flow on "Next" button
-            finishAndToNext();
+            finishAndToNext(RESULT_FINISHED);
         } else {
             super.onActivityResult(requestCode, resultCode, data);
         }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
index 39d35dc..dc1189c 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
@@ -41,12 +41,14 @@
 
     public static final String KEY_ERROR_MSG = "error_msg";
     public static final String KEY_ERROR_ID = "error_id";
+    public static final String KEY_UDFPS = "is_udfps";
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG);
         final int errMsgId = getArguments().getInt(KEY_ERROR_ID);
+        final boolean canAssumeUdfps = getArguments().getBoolean(KEY_UDFPS, false);
         boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
 
         builder.setTitle(R.string.security_settings_fingerprint_enroll_error_dialog_title)
@@ -59,11 +61,15 @@
                             public void onClick(DialogInterface dialog, int which) {
                                 dialog.dismiss();
                                 Activity activity = getActivity();
-                                activity.setResult(RESULT_FINISHED);
+                                if (wasTimeout && !canAssumeUdfps) {
+                                    activity.setResult(RESULT_TIMEOUT);
+                                } else {
+                                    activity.setResult(RESULT_FINISHED);
+                                }
                                 activity.finish();
                             }
                         });
-        if (wasTimeout) {
+        if (wasTimeout && canAssumeUdfps) {
             builder.setPositiveButton(
                             R.string.security_settings_fingerprint_enroll_dialog_try_again,
                             new DialogInterface.OnClickListener() {
@@ -95,18 +101,21 @@
         return dialog;
     }
 
-    public static void showErrorDialog(BiometricEnrollBase host, int errMsgId) {
+    public static void showErrorDialog(BiometricEnrollBase host, int errMsgId,
+            boolean canAssumeUdfps) {
         if (host.isFinishing()) {
             return;
         }
-
         final FragmentManager fragmentManager = host.getSupportFragmentManager();
         if (fragmentManager.isDestroyed() || fragmentManager.isStateSaved()) {
             return;
         }
-
-        final CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
-        final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId);
+        CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
+        if (!canAssumeUdfps
+                && errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT) {
+            errMsg = host.getText(getErrorMessage(BiometricConstants.BIOMETRIC_ERROR_CANCELED));
+        }
+        final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId, canAssumeUdfps);
         dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
     }
 
@@ -124,11 +133,13 @@
         }
     }
 
-    private static FingerprintErrorDialog newInstance(CharSequence msg, int msgId) {
+    private static FingerprintErrorDialog newInstance(CharSequence msg, int msgId,
+            boolean canAssumeUdfps) {
         FingerprintErrorDialog dialog = new FingerprintErrorDialog();
         Bundle args = new Bundle();
         args.putCharSequence(KEY_ERROR_MSG, msg);
         args.putInt(KEY_ERROR_ID, msgId);
+        args.putBoolean(KEY_UDFPS, canAssumeUdfps);
         dialog.setArguments(args);
         return dialog;
     }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index dddef4e..ce8739b 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -54,6 +54,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
+import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.PreferenceViewHolder;
@@ -160,6 +161,8 @@
         private static final String KEY_IS_ENROLLING = "is_enrolled";
         private static final String KEY_REQUIRE_SCREEN_ON_TO_AUTH =
                 "security_settings_require_screen_on_to_auth";
+        private static final String KEY_FINGERPRINT_UNLOCK_CATEGORY =
+                "security_settings_fingerprint_unlock_category";
 
         private static final int MSG_REFRESH_FINGERPRINT_TEMPLATES = 1000;
         private static final int MSG_FINGER_AUTH_SUCCESS = 1001;
@@ -179,6 +182,7 @@
         private FingerprintSettingsRequireScreenOnToAuthPreferenceController
                 mRequireScreenOnToAuthPreferenceController;
         private RestrictedSwitchPreference mRequireScreenOnToAuthPreference;
+        private PreferenceCategory mFingerprintUnlockCategory;
 
         private FingerprintManager mFingerprintManager;
         private FingerprintUpdater mFingerprintUpdater;
@@ -495,6 +499,7 @@
             addFingerprintItemPreferences(root);
             addPreferencesFromResource(getPreferenceScreenResId());
             mRequireScreenOnToAuthPreference = findPreference(KEY_REQUIRE_SCREEN_ON_TO_AUTH);
+            mFingerprintUnlockCategory = findPreference(KEY_FINGERPRINT_UNLOCK_CATEGORY);
             for (AbstractPreferenceController controller : mControllers) {
                 ((FingerprintSettingsPreferenceController) controller).setUserId(mUserId);
             }
@@ -506,7 +511,7 @@
                         mRequireScreenOnToAuthPreferenceController.setChecked(!isChecked);
                         return true;
                     });
-            mRequireScreenOnToAuthPreference.setVisible(false);
+            mFingerprintUnlockCategory.setVisible(false);
             if (isSfps()) {
                 setRequireScreenOnToAuthVisibility();
             }
@@ -519,9 +524,9 @@
             final boolean removalInProgress = mRemovalSidecar.inProgress();
             // Removing last remaining fingerprint
             if (fingerprintsEnrolled == 0 && removalInProgress) {
-                mRequireScreenOnToAuthPreference.setVisible(false);
+                mFingerprintUnlockCategory.setVisible(false);
             } else {
-                mRequireScreenOnToAuthPreference.setVisible(true);
+                mFingerprintUnlockCategory.setVisible(true);
             }
         }
 
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java b/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
index 477fdb6..a9f4356 100644
--- a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
+++ b/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
@@ -42,7 +42,7 @@
     private static final String TAG = "BiometricsViewModelFact";
 
     public static final CreationExtras.Key<ChallengeGenerator> CHALLENGE_GENERATOR =
-            new CreationExtras.Key<>() {};
+            new CreationExtras.Key<ChallengeGenerator>() {};
 
     @NonNull
     @Override
diff --git a/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java b/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java
index 3bf9132..ca27299 100644
--- a/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java
@@ -45,6 +45,7 @@
     private SwitchWidgetController mSwitch;
     private Context mContext;
     private FooterPreference mFooterPreference;
+    private boolean mIsAlwaysDiscoverable;
 
     @VisibleForTesting
     AlwaysDiscoverable mAlwaysDiscoverable;
@@ -78,7 +79,9 @@
     @Override
     public void onStart() {
         mBluetoothEnabler.resume(mContext);
-        mAlwaysDiscoverable.start();
+        if (mIsAlwaysDiscoverable) {
+            mAlwaysDiscoverable.start();
+        }
         if (mSwitch != null) {
             updateText(mSwitch.isChecked());
         }
@@ -87,7 +90,19 @@
     @Override
     public void onStop() {
         mBluetoothEnabler.pause();
-        mAlwaysDiscoverable.stop();
+        if (mIsAlwaysDiscoverable) {
+            mAlwaysDiscoverable.stop();
+        }
+    }
+
+    /**
+     * Set whether the device can be discovered. By default the value will be {@code false}.
+     *
+     * @param isAlwaysDiscoverable {@code true} if the device can be discovered,
+     *     otherwise {@code false}
+     */
+    public void setAlwaysDiscoverable(boolean isAlwaysDiscoverable) {
+        mIsAlwaysDiscoverable = isAlwaysDiscoverable;
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java
index 4591b7f..b30aee4 100644
--- a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java
@@ -18,12 +18,17 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController;
 import com.android.settings.bluetooth.BluetoothSwitchPreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.password.PasswordUtils;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.widget.MainSwitchBarController;
 import com.android.settings.widget.SettingsMainSwitchBar;
@@ -40,6 +45,10 @@
 
     private static final String TAG = "BluetoothDashboardFrag";
     private static final String KEY_BLUETOOTH_SCREEN_FOOTER = "bluetooth_screen_footer";
+    private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
+    private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui";
+    private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE";
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     private FooterPreference mFooterPreference;
     private SettingsMainSwitchBar mSwitchBar;
@@ -80,17 +89,33 @@
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
+        String callingAppPackageName = PasswordUtils.getCallingAppPackageName(
+                getActivity().getActivityToken());
+        String action = getIntent() != null ? getIntent().getAction() : "";
+        if (DEBUG) {
+            Log.d(TAG, "onActivityCreated() calling package name is : " + callingAppPackageName
+                    + ", action : " + action);
+        }
 
         SettingsActivity activity = (SettingsActivity) getActivity();
         mSwitchBar = activity.getSwitchBar();
         mSwitchBar.setTitle(getContext().getString(R.string.bluetooth_main_switch_title));
         mController = new BluetoothSwitchPreferenceController(activity,
                 new MainSwitchBarController(mSwitchBar), mFooterPreference);
+        mController.setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action));
         Lifecycle lifecycle = getSettingsLifecycle();
         if (lifecycle != null) {
             lifecycle.addObserver(mController);
         }
     }
+
+    @VisibleForTesting
+    boolean isAlwaysDiscoverable(String callingAppPackageName, String action) {
+        return TextUtils.equals(SLICE_ACTION, action) ? false
+            : TextUtils.equals(SETTINGS_PACKAGE_NAME, callingAppPackageName)
+                || TextUtils.equals(SYSTEMUI_PACKAGE_NAME, callingAppPackageName);
+    }
+
     /**
      * For Search.
      */
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
index 27ac026..c0febe2 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
@@ -636,10 +636,13 @@
     }
 
     private void handleP2pStateChanged() {
-        updateSearchMenu(false);
         mThisDevicePreferenceController.setEnabled(mWifiP2pEnabled);
         mPersistentCategoryController.setEnabled(mWifiP2pEnabled);
         mPeerCategoryController.setEnabled(mWifiP2pEnabled);
+        if (mWifiP2pEnabled) {
+            startSearch();
+        }
+        updateSearchMenu(mWifiP2pEnabled);
     }
 
     private void updateSearchMenu(boolean searching) {
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
index 3c5a91d..50c82d3 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
@@ -18,13 +18,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
 import android.provider.Settings;
-
 import android.text.TextUtils;
+
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.utils.AnnotationSpan;
@@ -109,16 +110,34 @@
     }
 
     @Test
-    public void onStart_shouldStartAlwaysDiscoverable() {
+    public void onStart_setAlwaysDiscoverableAsTrue_shouldStartAlwaysDiscoverable() {
+        mController.setAlwaysDiscoverable(true);
         mController.onStart();
 
         verify(mAlwaysDiscoverable).start();
     }
 
     @Test
-    public void onStop_shouldStopAlwaysDiscoverable() {
+    public void onStart_setAlwaysDiscoverableAsFalse_shouldStartAlwaysDiscoverable() {
+        mController.setAlwaysDiscoverable(false);
+        mController.onStart();
+
+        verify(mAlwaysDiscoverable, never()).start();
+    }
+
+    @Test
+    public void onStop_setAlwaysDiscoverableAsTrue_shouldStopAlwaysDiscoverable() {
+        mController.setAlwaysDiscoverable(true);
         mController.onStop();
 
         verify(mAlwaysDiscoverable).stop();
     }
+
+    @Test
+    public void onStop__setAlwaysDiscoverableAsFalse_shouldStopAlwaysDiscoverable() {
+        mController.setAlwaysDiscoverable(false);
+        mController.onStop();
+
+        verify(mAlwaysDiscoverable, never()).stop();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardFragmentTest.java
new file mode 100644
index 0000000..2aa2fa8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardFragmentTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.connecteddevice;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BluetoothDashboardFragmentTest {
+    private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
+    private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui";
+    private static final String SLICE_ACTION = "com.android.settings.SEARCH_RESULT_TRAMPOLINE";
+    private static final String TEST_APP_NAME = "com.testapp.settings";
+    private static final String TEST_ACTION = "com.testapp.settings.ACTION_START";
+
+    private BluetoothDashboardFragment mFragment;
+
+    @Before
+    public void setUp() {
+        mFragment = new BluetoothDashboardFragment();
+    }
+
+
+    @Test
+    public void isAlwaysDiscoverable_callingAppIsNotFromSystemApp_returnsFalse() {
+        assertThat(mFragment.isAlwaysDiscoverable(TEST_APP_NAME, TEST_ACTION)).isFalse();
+    }
+
+    @Test
+    public void isAlwaysDiscoverable_callingAppIsFromSettings_returnsTrue() {
+        assertThat(mFragment.isAlwaysDiscoverable(SETTINGS_PACKAGE_NAME, TEST_ACTION)).isTrue();
+    }
+
+    @Test
+    public void isAlwaysDiscoverable_callingAppIsFromSystemUI_returnsTrue() {
+        assertThat(mFragment.isAlwaysDiscoverable(SYSTEMUI_PACKAGE_NAME, TEST_ACTION)).isTrue();
+    }
+
+    @Test
+    public void isAlwaysDiscoverable_actionIsFromSlice_returnsFalse() {
+        assertThat(mFragment.isAlwaysDiscoverable(SYSTEMUI_PACKAGE_NAME, SLICE_ACTION)).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
index d8d7ef6..7c88d8f 100644
--- a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
@@ -149,7 +149,19 @@
     }
 
     @Test
-    public void beSearching_getP2pStateEnabledIntent_shouldBeFalse() {
+    public void beSearching_getP2pStateDisabledIntent_shouldBeFalse() {
+        final Bundle bundle = new Bundle();
+        final Intent intent = new Intent(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
+        bundle.putInt(WifiP2pManager.EXTRA_WIFI_STATE, WifiP2pManager.WIFI_P2P_STATE_DISABLED);
+        intent.putExtras(bundle);
+
+        mFragment.mReceiver.onReceive(mContext, intent);
+
+        assertThat(mFragment.mWifiP2pSearching).isFalse();
+    }
+
+    @Test
+    public void beSearching_getP2pStateEnabledIntent_shouldBeTrue() {
         final Bundle bundle = new Bundle();
         final Intent intent = new Intent(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
         bundle.putInt(WifiP2pManager.EXTRA_WIFI_STATE, WifiP2pManager.WIFI_P2P_STATE_ENABLED);
@@ -157,7 +169,7 @@
 
         mFragment.mReceiver.onReceive(mContext, intent);
 
-        assertThat(mFragment.mWifiP2pSearching).isFalse();
+        assertThat(mFragment.mWifiP2pSearching).isTrue();
     }
 
     @Test