Snap for 7868516 from c8c3f5c9b4 to tm-release
Change-Id: Iabe7b5f97160dadca3912866692cee7959cb924b
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
<com.google.android.setupdesign.GlifLayout
|
<com.google.android.setupdesign.GlifLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:id="@+id/setup_wizard_layout"
|
android:id="@+id/setup_wizard_layout"
|
||||||
style="?attr/fingerprint_layout_theme"
|
style="?attr/fingerprint_layout_theme"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -40,5 +41,27 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_horizontal"/>
|
android:layout_gravity="center_horizontal"/>
|
||||||
|
|
||||||
|
<com.airbnb.lottie.LottieAnimationView
|
||||||
|
android:id="@+id/illustration_lottie"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:scaleType="centerInside"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:lottie_imageAssetsFolder="images"
|
||||||
|
app:lottie_autoPlay="true"
|
||||||
|
app:lottie_loop="true"
|
||||||
|
app:lottie_rawRes="@raw/fingerprint_edu_lottie"/>
|
||||||
|
|
||||||
|
<com.airbnb.lottie.LottieAnimationView
|
||||||
|
android:id="@+id/illustration_lottie_portrait"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:scaleType="centerInside"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:lottie_imageAssetsFolder="images"
|
||||||
|
app:lottie_autoPlay="true"
|
||||||
|
app:lottie_loop="true"
|
||||||
|
app:lottie_rawRes="@raw/fingerprint_edu_lottie_portrait"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</com.google.android.setupdesign.GlifLayout>
|
</com.google.android.setupdesign.GlifLayout>
|
||||||
|
|||||||
0
res/raw/fingerprint_edu_lottie.json
Normal file
0
res/raw/fingerprint_edu_lottie.json
Normal file
0
res/raw/fingerprint_edu_lottie_portrait.json
Normal file
0
res/raw/fingerprint_edu_lottie_portrait.json
Normal file
@@ -21,13 +21,14 @@ import android.content.Intent;
|
|||||||
import android.hardware.fingerprint.FingerprintManager;
|
import android.hardware.fingerprint.FingerprintManager;
|
||||||
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.OrientationEventListener;
|
||||||
|
import android.view.Surface;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.airbnb.lottie.LottieAnimationView;
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.biometrics.BiometricEnrollBase;
|
import com.android.settings.biometrics.BiometricEnrollBase;
|
||||||
@@ -35,6 +36,7 @@ import com.android.settings.biometrics.BiometricEnrollSidecar;
|
|||||||
import com.android.settings.biometrics.BiometricUtils;
|
import com.android.settings.biometrics.BiometricUtils;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
|
|
||||||
|
import com.airbnb.lottie.LottieAnimationView;
|
||||||
import com.google.android.setupcompat.template.FooterBarMixin;
|
import com.google.android.setupcompat.template.FooterBarMixin;
|
||||||
import com.google.android.setupcompat.template.FooterButton;
|
import com.google.android.setupcompat.template.FooterButton;
|
||||||
|
|
||||||
@@ -52,6 +54,10 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
|||||||
private FingerprintEnrollSidecar mSidecar;
|
private FingerprintEnrollSidecar mSidecar;
|
||||||
private boolean mNextClicked;
|
private boolean mNextClicked;
|
||||||
private boolean mCanAssumeUdfps;
|
private boolean mCanAssumeUdfps;
|
||||||
|
private boolean mCanAssumeSidefps;
|
||||||
|
|
||||||
|
private OrientationEventListener mOrientationEventListener;
|
||||||
|
private int mPreviousRotation = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -61,6 +67,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
|||||||
final List<FingerprintSensorPropertiesInternal> props =
|
final List<FingerprintSensorPropertiesInternal> props =
|
||||||
fingerprintManager.getSensorPropertiesInternal();
|
fingerprintManager.getSensorPropertiesInternal();
|
||||||
mCanAssumeUdfps = props != null && props.size() == 1 && props.get(0).isAnyUdfpsType();
|
mCanAssumeUdfps = props != null && props.size() == 1 && props.get(0).isAnyUdfpsType();
|
||||||
|
mCanAssumeSidefps = props != null && props.size() == 1 && props.get(0).isAnySidefpsType();
|
||||||
setContentView(getContentView());
|
setContentView(getContentView());
|
||||||
mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
|
mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
|
||||||
mFooterBarMixin.setSecondaryButton(
|
mFooterBarMixin.setSecondaryButton(
|
||||||
@@ -72,6 +79,8 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
|||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
listenOrientationEvent();
|
||||||
|
|
||||||
if (mCanAssumeUdfps) {
|
if (mCanAssumeUdfps) {
|
||||||
setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title);
|
setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title);
|
||||||
setDescriptionText(R.string.security_settings_udfps_enroll_find_sensor_message);
|
setDescriptionText(R.string.security_settings_udfps_enroll_find_sensor_message);
|
||||||
@@ -90,6 +99,28 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
|||||||
lottieAnimationView.setAnimation(R.raw.udfps_edu_a11y_lottie);
|
lottieAnimationView.setAnimation(R.raw.udfps_edu_a11y_lottie);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if (mCanAssumeSidefps) {
|
||||||
|
setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
|
||||||
|
setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
|
||||||
|
final LottieAnimationView lottieAnimationView = findViewById(R.id.illustration_lottie);
|
||||||
|
final LottieAnimationView lottieAnimationViewPortrait =
|
||||||
|
findViewById(R.id.illustration_lottie_portrait);
|
||||||
|
final int rotation = getApplicationContext().getDisplay().getRotation();
|
||||||
|
switch(rotation) {
|
||||||
|
case Surface.ROTATION_90:
|
||||||
|
lottieAnimationView.setVisibility(View.GONE);
|
||||||
|
lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
|
||||||
|
break;
|
||||||
|
case Surface.ROTATION_270:
|
||||||
|
lottieAnimationView.setVisibility(View.GONE);
|
||||||
|
lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
|
||||||
|
lottieAnimationViewPortrait.setRotation(180);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lottieAnimationView.setVisibility(View.VISIBLE);
|
||||||
|
lottieAnimationViewPortrait.setVisibility(View.GONE);
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
|
setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
|
||||||
setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
|
setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
|
||||||
@@ -220,6 +251,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
|
stopListenOrientationEvent();
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
if (mAnimation != null) {
|
if (mAnimation != null) {
|
||||||
mAnimation.stopAnimation();
|
mAnimation.stopAnimation();
|
||||||
@@ -297,4 +329,37 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
|
|||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.FINGERPRINT_FIND_SENSOR;
|
return SettingsEnums.FINGERPRINT_FIND_SENSOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void listenOrientationEvent() {
|
||||||
|
if (!mCanAssumeSidefps) {
|
||||||
|
// Do nothing if the device doesn't support SideFPS.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mOrientationEventListener = new OrientationEventListener(this) {
|
||||||
|
@Override
|
||||||
|
public void onOrientationChanged(int orientation) {
|
||||||
|
final int currentRotation = getDisplay().getRotation();
|
||||||
|
if ((mPreviousRotation == Surface.ROTATION_90
|
||||||
|
&& currentRotation == Surface.ROTATION_270) || (
|
||||||
|
mPreviousRotation == Surface.ROTATION_270
|
||||||
|
&& currentRotation == Surface.ROTATION_90)) {
|
||||||
|
mPreviousRotation = currentRotation;
|
||||||
|
recreate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mOrientationEventListener.enable();
|
||||||
|
mPreviousRotation = getDisplay().getRotation();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void stopListenOrientationEvent() {
|
||||||
|
if (!mCanAssumeSidefps) {
|
||||||
|
// Do nothing if the device doesn't support SideFPS.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mOrientationEventListener != null) {
|
||||||
|
mOrientationEventListener.disable();
|
||||||
|
}
|
||||||
|
mOrientationEventListener = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,12 +19,15 @@ import android.app.settings.SettingsEnums;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.DeviceConfig;
|
import android.provider.DeviceConfig;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.SettingsUIDeviceConfig;
|
import com.android.settings.core.SettingsUIDeviceConfig;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
|
import com.android.settings.password.PasswordUtils;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.slices.SlicePreferenceController;
|
import com.android.settings.slices.SlicePreferenceController;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
@@ -33,6 +36,9 @@ import com.android.settingslib.search.SearchIndexable;
|
|||||||
public class ConnectedDeviceDashboardFragment extends DashboardFragment {
|
public class ConnectedDeviceDashboardFragment extends DashboardFragment {
|
||||||
|
|
||||||
private static final String TAG = "ConnectedDeviceFrag";
|
private static final String TAG = "ConnectedDeviceFrag";
|
||||||
|
private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
|
||||||
|
private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui";
|
||||||
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String KEY_CONNECTED_DEVICES = "connected_device_list";
|
static final String KEY_CONNECTED_DEVICES = "connected_device_list";
|
||||||
@@ -64,12 +70,20 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
|
|||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
final boolean nearbyEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
|
final boolean nearbyEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
|
||||||
SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true);
|
SettingsUIDeviceConfig.BT_NEAR_BY_SUGGESTION_ENABLED, true);
|
||||||
|
String callingAppPackageName = PasswordUtils.getCallingAppPackageName(
|
||||||
|
getActivity().getActivityToken());
|
||||||
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "onAttach() calling package name is : " + callingAppPackageName);
|
||||||
|
}
|
||||||
use(AvailableMediaDeviceGroupController.class).init(this);
|
use(AvailableMediaDeviceGroupController.class).init(this);
|
||||||
use(ConnectedDeviceGroupController.class).init(this);
|
use(ConnectedDeviceGroupController.class).init(this);
|
||||||
use(PreviouslyConnectedDevicePreferenceController.class).init(this);
|
use(PreviouslyConnectedDevicePreferenceController.class).init(this);
|
||||||
use(SlicePreferenceController.class).setSliceUri(nearbyEnabled
|
use(SlicePreferenceController.class).setSliceUri(nearbyEnabled
|
||||||
? Uri.parse(getString(R.string.config_nearby_devices_slice_uri))
|
? Uri.parse(getString(R.string.config_nearby_devices_slice_uri))
|
||||||
: null);
|
: null);
|
||||||
|
use(DiscoverableFooterPreferenceController.class).setAlwaysDiscoverable(
|
||||||
|
TextUtils.equals(SETTINGS_PACKAGE_NAME, callingAppPackageName)
|
||||||
|
|| TextUtils.equals(SYSTEMUI_PACKAGE_NAME, callingAppPackageName));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro
|
|||||||
private BluetoothAdapter mBluetoothAdapter;
|
private BluetoothAdapter mBluetoothAdapter;
|
||||||
private AlwaysDiscoverable mAlwaysDiscoverable;
|
private AlwaysDiscoverable mAlwaysDiscoverable;
|
||||||
private FooterPreference mPreference;
|
private FooterPreference mPreference;
|
||||||
|
private boolean mIsAlwaysDiscoverable;
|
||||||
|
|
||||||
public DiscoverableFooterPreferenceController(Context context, String key) {
|
public DiscoverableFooterPreferenceController(Context context, String key) {
|
||||||
super(context, key);
|
super(context, key);
|
||||||
@@ -84,7 +85,9 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro
|
|||||||
}
|
}
|
||||||
mContext.registerReceiver(mBluetoothChangedReceiver,
|
mContext.registerReceiver(mBluetoothChangedReceiver,
|
||||||
new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
|
new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
|
||||||
mAlwaysDiscoverable.start();
|
if (mIsAlwaysDiscoverable) {
|
||||||
|
mAlwaysDiscoverable.start();
|
||||||
|
}
|
||||||
updateFooterPreferenceTitle(mBluetoothAdapter.getState());
|
updateFooterPreferenceTitle(mBluetoothAdapter.getState());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +97,19 @@ public class DiscoverableFooterPreferenceController extends BasePreferenceContro
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mContext.unregisterReceiver(mBluetoothChangedReceiver);
|
mContext.unregisterReceiver(mBluetoothChangedReceiver);
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFooterPreferenceTitle(int bluetoothState) {
|
private void updateFooterPreferenceTitle(int bluetoothState) {
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ import androidx.preference.SwitchPreference;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
|
import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
|
||||||
|
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
|
||||||
import com.android.settings.dashboard.profileselector.ProfileSelectDialog;
|
import com.android.settings.dashboard.profileselector.ProfileSelectDialog;
|
||||||
import com.android.settings.homepage.TopLevelSettings;
|
import com.android.settings.homepage.TopLevelSettings;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
@@ -170,7 +172,17 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
|
|||||||
}
|
}
|
||||||
pref.setOnPreferenceClickListener(preference -> {
|
pref.setOnPreferenceClickListener(preference -> {
|
||||||
OnCancelListener listener = null;
|
OnCancelListener listener = null;
|
||||||
if (fragment instanceof TopLevelSettings) {
|
if (fragment instanceof TopLevelSettings
|
||||||
|
&& ActivityEmbeddingUtils.isEmbeddingActivityEnabled(mContext)) {
|
||||||
|
// Register the rule for injected apps.
|
||||||
|
ActivityEmbeddingRulesController.registerTwoPanePairRule(mContext,
|
||||||
|
new ComponentName(activity.getPackageName(),
|
||||||
|
com.android.settings.Settings.class.getName()),
|
||||||
|
new ComponentName(tile.getPackageName(),
|
||||||
|
tile.getComponentName()),
|
||||||
|
null, true, true);
|
||||||
|
|
||||||
|
// Highlight preference ui.
|
||||||
final TopLevelSettings topLevelSettings = (TopLevelSettings) fragment;
|
final TopLevelSettings topLevelSettings = (TopLevelSettings) fragment;
|
||||||
// Highlight the tile immediately whenever it's clicked
|
// Highlight the tile immediately whenever it's clicked
|
||||||
topLevelSettings.setHighlightPreferenceKey(key);
|
topLevelSettings.setHighlightPreferenceKey(key);
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.android.settings.connecteddevice;
|
|||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -104,7 +105,8 @@ public class DiscoverableFooterPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onStart_shouldRegisterBluetoothChanged() {
|
public void onStart_setAlwaysDiscoverableAsTrue_shouldRegisterBluetoothChanged() {
|
||||||
|
mDiscoverableFooterPreferenceController.setAlwaysDiscoverable(true);
|
||||||
mDiscoverableFooterPreferenceController.onStart();
|
mDiscoverableFooterPreferenceController.onStart();
|
||||||
|
|
||||||
assertThat(getRegisteredBroadcastReceivers()).contains(mBluetoothChangedReceiver);
|
assertThat(getRegisteredBroadcastReceivers()).contains(mBluetoothChangedReceiver);
|
||||||
@@ -112,7 +114,8 @@ public class DiscoverableFooterPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onStop_shouldUnregisterBluetoothChanged() {
|
public void onStop_setAlwaysDiscoverableAsTrue_shouldUnregisterBluetoothChanged() {
|
||||||
|
mDiscoverableFooterPreferenceController.setAlwaysDiscoverable(true);
|
||||||
mDiscoverableFooterPreferenceController.onStart();
|
mDiscoverableFooterPreferenceController.onStart();
|
||||||
mDiscoverableFooterPreferenceController.onStop();
|
mDiscoverableFooterPreferenceController.onStop();
|
||||||
|
|
||||||
@@ -120,6 +123,25 @@ public class DiscoverableFooterPreferenceControllerTest {
|
|||||||
verify(mAlwaysDiscoverable).stop();
|
verify(mAlwaysDiscoverable).stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onStart_setAlwaysDiscoverableAsFalse_shouldNotRegisterBluetoothChanged() {
|
||||||
|
mDiscoverableFooterPreferenceController.setAlwaysDiscoverable(false);
|
||||||
|
mDiscoverableFooterPreferenceController.onStart();
|
||||||
|
|
||||||
|
assertThat(getRegisteredBroadcastReceivers()).contains(mBluetoothChangedReceiver);
|
||||||
|
verify(mAlwaysDiscoverable, never()).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onStop_setAlwaysDiscoverableAsFalse_shouldNotUnregisterBluetoothChanged() {
|
||||||
|
mDiscoverableFooterPreferenceController.setAlwaysDiscoverable(false);
|
||||||
|
mDiscoverableFooterPreferenceController.onStart();
|
||||||
|
mDiscoverableFooterPreferenceController.onStop();
|
||||||
|
|
||||||
|
assertThat(getRegisteredBroadcastReceivers()).doesNotContain(mBluetoothChangedReceiver);
|
||||||
|
verify(mAlwaysDiscoverable, never()).stop();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onBluetoothStateChanged_bluetoothOn_updateTitle() {
|
public void onBluetoothStateChanged_bluetoothOn_updateTitle() {
|
||||||
BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
|
BluetoothAdapter.getDefaultAdapter().setName(DEVICE_NAME);
|
||||||
|
|||||||
Reference in New Issue
Block a user