Merge SafetyCenterStatusHolder into SafetyCenterManagerWrapper

Test: SettingsUnitTests
Bug: 220384387
Change-Id: I3886d3cf4717b5c7efd99ebd8ffb6a039e3565a4
This commit is contained in:
Marie Matheson
2022-02-18 22:57:17 +00:00
parent 6368af8bdf
commit ce321f0dd0
22 changed files with 88 additions and 139 deletions

View File

@@ -33,7 +33,7 @@ import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.security.SecuritySettingsFeatureProvider; import com.android.settings.security.SecuritySettingsFeatureProvider;
import com.google.android.setupdesign.util.ThemeHelper; import com.google.android.setupdesign.util.ThemeHelper;
@@ -152,7 +152,7 @@ public class Settings extends SettingsActivity {
/** Redirects to SafetyCenter if enabled. */ /** Redirects to SafetyCenter if enabled. */
@VisibleForTesting @VisibleForTesting
public void handleSafetyCenterRedirection() { public void handleSafetyCenterRedirection() {
if (SafetyCenterStatusHolder.get().isEnabled(this)) { if (SafetyCenterManagerWrapper.get().isEnabled(this)) {
try { try {
startActivity(new Intent(Intent.ACTION_SAFETY_CENTER)); startActivity(new Intent(Intent.ACTION_SAFETY_CENTER));
finish(); finish();
@@ -213,7 +213,7 @@ public class Settings extends SettingsActivity {
/** Redirects to SafetyCenter if enabled. */ /** Redirects to SafetyCenter if enabled. */
@VisibleForTesting @VisibleForTesting
public void handleSafetyCenterRedirection() { public void handleSafetyCenterRedirection() {
if (SafetyCenterStatusHolder.get().isEnabled(this)) { if (SafetyCenterManagerWrapper.get().isEnabled(this)) {
try { try {
startActivity(new Intent(Intent.ACTION_SAFETY_CENTER)); startActivity(new Intent(Intent.ACTION_SAFETY_CENTER));
finish(); finish();

View File

@@ -29,7 +29,7 @@ import android.os.Bundle;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.notification.LockScreenNotificationPreferenceController; import com.android.settings.notification.LockScreenNotificationPreferenceController;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -118,7 +118,7 @@ public class PrivacyDashboardFragment extends DashboardFragment {
@Override @Override
protected boolean isPageSearchEnabled(Context context) { protected boolean isPageSearchEnabled(Context context) {
return !SafetyCenterStatusHolder.get().isEnabled(context); return !SafetyCenterManagerWrapper.get().isEnabled(context);
} }
}; };
} }

View File

@@ -20,7 +20,7 @@ import android.annotation.NonNull;
import android.content.Context; import android.content.Context;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
/** The preference controller for the top level privacy tile. */ /** The preference controller for the top level privacy tile. */
public class TopLevelPrivacyEntryPreferenceController extends BasePreferenceController { public class TopLevelPrivacyEntryPreferenceController extends BasePreferenceController {
@@ -31,7 +31,7 @@ public class TopLevelPrivacyEntryPreferenceController extends BasePreferenceCon
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
if (!SafetyCenterStatusHolder.get().isEnabled(mContext)) { if (!SafetyCenterManagerWrapper.get().isEnabled(mContext)) {
return AVAILABLE; return AVAILABLE;
} }
return CONDITIONALLY_UNAVAILABLE; return CONDITIONALLY_UNAVAILABLE;

View File

@@ -27,7 +27,7 @@ public final class BiometricsSafetySource {
/** Sends biometric safety data to Safety Center. */ /** Sends biometric safety data to Safety Center. */
public static void sendSafetyData(Context context) { public static void sendSafetyData(Context context) {
if (!SafetyCenterStatusHolder.get().isEnabled(context)) { if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
return; return;
} }

View File

@@ -40,7 +40,7 @@ public final class LockScreenSafetySource {
/** Sends lock screen safety data to Safety Center. */ /** Sends lock screen safety data to Safety Center. */
public static void sendSafetyData(Context context, public static void sendSafetyData(Context context,
ScreenLockPreferenceDetailsUtils screenLockPreferenceDetailsUtils) { ScreenLockPreferenceDetailsUtils screenLockPreferenceDetailsUtils) {
if (!SafetyCenterStatusHolder.get().isEnabled(context)) { if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
return; return;
} }

View File

@@ -58,4 +58,24 @@ public class SafetyCenterManagerWrapper {
return; return;
} }
} }
/** Returns true is SafetyCenter page is enabled, false otherwise. */
public boolean isEnabled(Context context) {
if (context == null) {
Log.e(TAG, "Context is null at SafetyCenterManagerWrapper#isEnabled");
return false;
}
SafetyCenterManager safetyCenterManager =
context.getSystemService(SafetyCenterManager.class);
if (safetyCenterManager == null) {
Log.w(TAG, "System service SAFETY_CENTER_SERVICE (SafetyCenterManager) is null");
return false;
}
try {
return safetyCenterManager.isSafetyCenterEnabled();
} catch (RuntimeException e) {
Log.e(TAG, "Calling isSafetyCenterEnabled failed.", e);
return false;
}
}
} }

View File

@@ -1,62 +0,0 @@
/*
* 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.safetycenter;
import android.content.Context;
import android.safetycenter.SafetyCenterManager;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
/** Knows whether safety center is enabled or disabled. */
public class SafetyCenterStatusHolder {
private static final String TAG = "SafetyCenterStatusHolder";
@VisibleForTesting
public static SafetyCenterStatusHolder sInstance;
private SafetyCenterStatusHolder() {}
/** Returns an instance of {@link SafetyCenterStatusHolder}. */
public static SafetyCenterStatusHolder get() {
if (sInstance == null) {
sInstance = new SafetyCenterStatusHolder();
}
return sInstance;
}
/** Returns true is SafetyCenter page is enabled, false otherwise. */
public boolean isEnabled(Context context) {
if (context == null) {
Log.e(TAG, "Context is null at SafetyCenterStatusHolder#isEnabled");
return false;
}
SafetyCenterManager safetyCenterManager =
context.getSystemService(SafetyCenterManager.class);
if (safetyCenterManager == null) {
Log.w(TAG, "System service SAFETY_CENTER_SERVICE (SafetyCenterManager) is null");
return false;
}
try {
return safetyCenterManager.isSafetyCenterEnabled();
} catch (RuntimeException e) {
Log.e(TAG, "Calling isSafetyCenterEnabled failed.", e);
return false;
}
}
}

View File

@@ -36,7 +36,7 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (!SafetyCenterStatusHolder.get().isEnabled(context)) { if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
return; return;
} }

View File

@@ -37,7 +37,7 @@ public class TopLevelSafetyCenterEntryPreferenceController extends BasePreferenc
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
if (SafetyCenterStatusHolder.get().isEnabled(mContext)) { if (SafetyCenterManagerWrapper.get().isEnabled(mContext)) {
return AVAILABLE; return AVAILABLE;
} }
return CONDITIONALLY_UNAVAILABLE; return CONDITIONALLY_UNAVAILABLE;

View File

@@ -34,7 +34,7 @@ import com.android.settings.biometrics.face.FaceProfileStatusPreferenceControlle
import com.android.settings.biometrics.fingerprint.FingerprintProfileStatusPreferenceController; import com.android.settings.biometrics.fingerprint.FingerprintProfileStatusPreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.security.trustagent.TrustAgentListPreferenceController; import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
import com.android.settings.widget.PreferenceCategoryController; import com.android.settings.widget.PreferenceCategoryController;
@@ -92,7 +92,7 @@ public class SecurityAdvancedSettings extends DashboardFragment {
final Context context = getContext(); final Context context = getContext();
if (context == null) { if (context == null) {
return CATEGORY_SECURITY_LEGACY_ADVANCED_SETTINGS; return CATEGORY_SECURITY_LEGACY_ADVANCED_SETTINGS;
} else if (SafetyCenterStatusHolder.get().isEnabled(context)) { } else if (SafetyCenterManagerWrapper.get().isEnabled(context)) {
return CategoryKey.CATEGORY_SECURITY_ADVANCED_SETTINGS; return CategoryKey.CATEGORY_SECURITY_ADVANCED_SETTINGS;
} else { } else {
final SecuritySettingsFeatureProvider securitySettingsFeatureProvider = final SecuritySettingsFeatureProvider securitySettingsFeatureProvider =

View File

@@ -25,7 +25,7 @@ import com.android.settings.biometrics.face.FaceStatusPreferenceController;
import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController; import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.security.trustagent.TrustAgentListPreferenceController; import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
import com.android.settings.widget.PreferenceCategoryController; import com.android.settings.widget.PreferenceCategoryController;
@@ -129,7 +129,7 @@ public class SecuritySettings extends DashboardFragment {
protected boolean isPageSearchEnabled(Context context) { protected boolean isPageSearchEnabled(Context context) {
return !FeatureFactory.getFactory(context).getSecuritySettingsFeatureProvider() return !FeatureFactory.getFactory(context).getSecuritySettingsFeatureProvider()
.hasAlternativeSecuritySettingsFragment() .hasAlternativeSecuritySettingsFragment()
&& !SafetyCenterStatusHolder.get().isEnabled(context); && !SafetyCenterManagerWrapper.get().isEnabled(context);
} }
}; };
} }

View File

@@ -24,7 +24,7 @@ import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
public class TopLevelSecurityEntryPreferenceController extends BasePreferenceController { public class TopLevelSecurityEntryPreferenceController extends BasePreferenceController {
@@ -38,7 +38,7 @@ public class TopLevelSecurityEntryPreferenceController extends BasePreferenceCon
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
if (!SafetyCenterStatusHolder.get().isEnabled(mContext)) { if (!SafetyCenterManagerWrapper.get().isEnabled(mContext)) {
return AVAILABLE; return AVAILABLE;
} }
return CONDITIONALLY_UNAVAILABLE; return CONDITIONALLY_UNAVAILABLE;

View File

@@ -33,7 +33,7 @@ import androidx.test.platform.app.InstrumentationRegistry;
import com.android.settings.Settings; import com.android.settings.Settings;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -48,14 +48,14 @@ public class PrivacyDashboardActivityTest {
private static final String DEFAULT_FRAGMENT_CLASSNAME = "DefaultFragmentClassname"; private static final String DEFAULT_FRAGMENT_CLASSNAME = "DefaultFragmentClassname";
@Mock @Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
private Settings.PrivacyDashboardActivity mActivity; private Settings.PrivacyDashboardActivity mActivity;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
final Intent intent = new Intent(); final Intent intent = new Intent();
intent.setAction(android.provider.Settings.ACTION_PRIVACY_SETTINGS); intent.setAction(android.provider.Settings.ACTION_PRIVACY_SETTINGS);
intent.setClass(InstrumentationRegistry.getInstrumentation().getTargetContext(), intent.setClass(InstrumentationRegistry.getInstrumentation().getTargetContext(),
@@ -78,7 +78,7 @@ public class PrivacyDashboardActivityTest {
@Test @Test
public void onCreate_whenSafetyCenterEnabled_redirectsToSafetyCenter() { public void onCreate_whenSafetyCenterEnabled_redirectsToSafetyCenter() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(true);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
mActivity.handleSafetyCenterRedirection(); mActivity.handleSafetyCenterRedirection();
@@ -89,7 +89,7 @@ public class PrivacyDashboardActivityTest {
@Test @Test
public void onCreate_whenSafetyCenterDisabled_doesntRedirectToSafetyCenter() { public void onCreate_whenSafetyCenterDisabled_doesntRedirectToSafetyCenter() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);
mActivity.handleSafetyCenterRedirection(); mActivity.handleSafetyCenterRedirection();
verify(mActivity, times(0)).startActivity(any()); verify(mActivity, times(0)).startActivity(any());

View File

@@ -26,7 +26,7 @@ import android.content.Context;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.security.TopLevelSecurityEntryPreferenceController; import com.android.settings.security.TopLevelSecurityEntryPreferenceController;
import org.junit.Before; import org.junit.Before;
@@ -43,12 +43,12 @@ public class TopLevelPrivacyEntryPreferenceControllerTest {
private TopLevelPrivacyEntryPreferenceController mTopLevelPrivacyEntryPreferenceController; private TopLevelPrivacyEntryPreferenceController mTopLevelPrivacyEntryPreferenceController;
@Mock @Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
mTopLevelPrivacyEntryPreferenceController = mTopLevelPrivacyEntryPreferenceController =
new TopLevelPrivacyEntryPreferenceController( new TopLevelPrivacyEntryPreferenceController(
@@ -57,7 +57,7 @@ public class TopLevelPrivacyEntryPreferenceControllerTest {
@Test @Test
public void getAvailabilityStatus_whenSafetyCenterEnabled_returnsUnavailable() { public void getAvailabilityStatus_whenSafetyCenterEnabled_returnsUnavailable() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(true);
assertThat(mTopLevelPrivacyEntryPreferenceController.getAvailabilityStatus()) assertThat(mTopLevelPrivacyEntryPreferenceController.getAvailabilityStatus())
.isEqualTo(TopLevelSecurityEntryPreferenceController.CONDITIONALLY_UNAVAILABLE); .isEqualTo(TopLevelSecurityEntryPreferenceController.CONDITIONALLY_UNAVAILABLE);
@@ -65,7 +65,7 @@ public class TopLevelPrivacyEntryPreferenceControllerTest {
@Test @Test
public void getAvailabilityStatus_whenSafetyCenterDisabled_returnsAvailable() { public void getAvailabilityStatus_whenSafetyCenterDisabled_returnsAvailable() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);
assertThat(mTopLevelPrivacyEntryPreferenceController.getAvailabilityStatus()) assertThat(mTopLevelPrivacyEntryPreferenceController.getAvailabilityStatus())
.isEqualTo(TopLevelSecurityEntryPreferenceController.AVAILABLE); .isEqualTo(TopLevelSecurityEntryPreferenceController.AVAILABLE);

View File

@@ -41,26 +41,21 @@ public class BiometricsSafetySourceTest {
@Mock @Mock
private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mApplicationContext = ApplicationProvider.getApplicationContext(); mApplicationContext = ApplicationProvider.getApplicationContext();
SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder;
} }
@After @After
public void tearDown() { public void tearDown() {
SafetyCenterManagerWrapper.sInstance = null; SafetyCenterManagerWrapper.sInstance = null;
SafetyCenterStatusHolder.sInstance = null;
} }
@Test @Test
public void sendSafetyData_whenSafetyCenterIsDisabled_sendsNoData() { public void sendSafetyData_whenSafetyCenterIsDisabled_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(false);
BiometricsSafetySource.sendSafetyData(mApplicationContext); BiometricsSafetySource.sendSafetyData(mApplicationContext);
@@ -70,7 +65,7 @@ public class BiometricsSafetySourceTest {
@Test @Test
// TODO(b/215517420): Adapt this test when method is implemented. // TODO(b/215517420): Adapt this test when method is implemented.
public void sendSafetyData_whenSafetyCenterIsEnabled_sendsNoData() { public void sendSafetyData_whenSafetyCenterIsEnabled_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
BiometricsSafetySource.sendSafetyData(mApplicationContext); BiometricsSafetySource.sendSafetyData(mApplicationContext);

View File

@@ -56,9 +56,6 @@ public class LockScreenSafetySourceTest {
@Mock @Mock
private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder;
@Mock @Mock
private ScreenLockPreferenceDetailsUtils mScreenLockPreferenceDetailsUtils; private ScreenLockPreferenceDetailsUtils mScreenLockPreferenceDetailsUtils;
@@ -67,18 +64,16 @@ public class LockScreenSafetySourceTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mApplicationContext = ApplicationProvider.getApplicationContext(); mApplicationContext = ApplicationProvider.getApplicationContext();
SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder;
} }
@After @After
public void tearDown() { public void tearDown() {
SafetyCenterManagerWrapper.sInstance = null; SafetyCenterManagerWrapper.sInstance = null;
SafetyCenterStatusHolder.sInstance = null;
} }
@Test @Test
public void sendSafetyData_whenSafetyCenterIsDisabled_sendsNoData() { public void sendSafetyData_whenSafetyCenterIsDisabled_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(false);
LockScreenSafetySource.sendSafetyData(mApplicationContext, LockScreenSafetySource.sendSafetyData(mApplicationContext,
mScreenLockPreferenceDetailsUtils); mScreenLockPreferenceDetailsUtils);
@@ -88,7 +83,7 @@ public class LockScreenSafetySourceTest {
@Test @Test
public void sendSafetyData_whenScreenLockIsDisabled_sendsNoData() { public void sendSafetyData_whenScreenLockIsDisabled_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
when(mScreenLockPreferenceDetailsUtils.isAvailable()).thenReturn(false); when(mScreenLockPreferenceDetailsUtils.isAvailable()).thenReturn(false);
LockScreenSafetySource.sendSafetyData(mApplicationContext, LockScreenSafetySource.sendSafetyData(mApplicationContext,
@@ -227,7 +222,7 @@ public class LockScreenSafetySourceTest {
} }
private void whenScreenLockIsEnabled() { private void whenScreenLockIsEnabled() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
when(mScreenLockPreferenceDetailsUtils.isAvailable()).thenReturn(true); when(mScreenLockPreferenceDetailsUtils.isAvailable()).thenReturn(true);
when(mScreenLockPreferenceDetailsUtils.getSummary(anyInt())).thenReturn(SUMMARY); when(mScreenLockPreferenceDetailsUtils.getSummary(anyInt())).thenReturn(SUMMARY);

View File

@@ -32,7 +32,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class SafetyCenterStatusHolderTest { public class SafetyCenterManagerWrapperTest {
@Mock @Mock
private Context mContext; private Context mContext;
@@ -44,13 +44,13 @@ public class SafetyCenterStatusHolderTest {
@Test @Test
public void isEnabled_whenContextNull_returnsFalse() { public void isEnabled_whenContextNull_returnsFalse() {
assertThat(SafetyCenterStatusHolder.get().isEnabled(null)).isFalse(); assertThat(SafetyCenterManagerWrapper.get().isEnabled(null)).isFalse();
} }
@Test @Test
public void isEnabled_whenSystemServiceNull_returnsFalse() { public void isEnabled_whenSystemServiceNull_returnsFalse() {
when(mContext.getSystemService(SafetyCenterManager.class)).thenReturn(null); when(mContext.getSystemService(SafetyCenterManager.class)).thenReturn(null);
assertThat(SafetyCenterStatusHolder.get().isEnabled(mContext)).isFalse(); assertThat(SafetyCenterManagerWrapper.get().isEnabled(mContext)).isFalse();
} }
} }

View File

@@ -50,26 +50,21 @@ public class SafetySourceBroadcastReceiverTest {
@Mock @Mock
private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mApplicationContext = ApplicationProvider.getApplicationContext(); mApplicationContext = ApplicationProvider.getApplicationContext();
SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder;
} }
@After @After
public void tearDown() { public void tearDown() {
SafetyCenterManagerWrapper.sInstance = null; SafetyCenterManagerWrapper.sInstance = null;
SafetyCenterStatusHolder.sInstance = null;
} }
@Test @Test
public void sendSafetyData_whenSafetyCenterIsEnabled_withNoIntentAction_sendsNoData() { public void sendSafetyData_whenSafetyCenterIsEnabled_withNoIntentAction_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
Intent intent = new Intent().putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[]{}); Intent intent = new Intent().putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[]{});
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
@@ -79,7 +74,7 @@ public class SafetySourceBroadcastReceiverTest {
@Test @Test
public void sendSafetyData_whenSafetyCenterIsDisabled_sendsNoData() { public void sendSafetyData_whenSafetyCenterIsDisabled_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(false);
Intent intent = Intent intent =
new Intent() new Intent()
.setAction(ACTION_REFRESH_SAFETY_SOURCES) .setAction(ACTION_REFRESH_SAFETY_SOURCES)
@@ -94,7 +89,7 @@ public class SafetySourceBroadcastReceiverTest {
@Test @Test
public void sendSafetyData_whenSafetyCenterIsEnabled_withNullSourceIds_sendsNoData() { public void sendSafetyData_whenSafetyCenterIsEnabled_withNullSourceIds_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
Intent intent = new Intent().setAction(ACTION_REFRESH_SAFETY_SOURCES); Intent intent = new Intent().setAction(ACTION_REFRESH_SAFETY_SOURCES);
new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
@@ -104,7 +99,7 @@ public class SafetySourceBroadcastReceiverTest {
@Test @Test
public void sendSafetyData_whenSafetyCenterIsEnabled_withNoSourceIds_sendsNoData() { public void sendSafetyData_whenSafetyCenterIsEnabled_withNoSourceIds_sendsNoData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
Intent intent = Intent intent =
new Intent() new Intent()
.setAction(ACTION_REFRESH_SAFETY_SOURCES) .setAction(ACTION_REFRESH_SAFETY_SOURCES)
@@ -117,7 +112,7 @@ public class SafetySourceBroadcastReceiverTest {
@Test @Test
public void sendSafetyData_withLockscreenSourceId_sendsLockscreenData() { public void sendSafetyData_withLockscreenSourceId_sendsLockscreenData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
Intent intent = Intent intent =
new Intent() new Intent()
.setAction(ACTION_REFRESH_SAFETY_SOURCES) .setAction(ACTION_REFRESH_SAFETY_SOURCES)
@@ -136,7 +131,7 @@ public class SafetySourceBroadcastReceiverTest {
@Test @Test
public void sendSafetyData_withBiometricsSourceId_sendsBiometricData() { public void sendSafetyData_withBiometricsSourceId_sendsBiometricData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
Intent intent = Intent intent =
new Intent() new Intent()
.setAction(ACTION_REFRESH_SAFETY_SOURCES) .setAction(ACTION_REFRESH_SAFETY_SOURCES)
@@ -152,7 +147,7 @@ public class SafetySourceBroadcastReceiverTest {
@Test @Test
public void sendSafetyData_onBootCompleted_sendsBiometricAndLockscreenData() { public void sendSafetyData_onBootCompleted_sendsBiometricAndLockscreenData() {
when(mSafetyCenterStatusHolder.isEnabled(mApplicationContext)).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
Intent intent = new Intent().setAction(Intent.ACTION_BOOT_COMPLETED); Intent intent = new Intent().setAction(Intent.ACTION_BOOT_COMPLETED);
// TODO(b/215517420): Update this test when BiometricSafetySource is implemented to test // TODO(b/215517420): Update this test when BiometricSafetySource is implemented to test

View File

@@ -32,6 +32,7 @@ import androidx.preference.Preference;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -49,7 +50,7 @@ public class TopLevelSafetyCenterEntryPreferenceControllerTest {
private Preference mPreference; private Preference mPreference;
@Mock @Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Mock @Mock
private Context mContext; private Context mContext;
@@ -57,7 +58,7 @@ public class TopLevelSafetyCenterEntryPreferenceControllerTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
mPreference = new Preference(ApplicationProvider.getApplicationContext()); mPreference = new Preference(ApplicationProvider.getApplicationContext());
mPreference.setKey(PREFERENCE_KEY); mPreference.setKey(PREFERENCE_KEY);
@@ -67,6 +68,11 @@ public class TopLevelSafetyCenterEntryPreferenceControllerTest {
new TopLevelSafetyCenterEntryPreferenceController(mContext, PREFERENCE_KEY); new TopLevelSafetyCenterEntryPreferenceController(mContext, PREFERENCE_KEY);
} }
@After
public void tearDown() {
SafetyCenterManagerWrapper.sInstance = null;
}
@Test @Test
public void handlePreferenceTreeClick_forDifferentPreferenceKey_isNotHandled() { public void handlePreferenceTreeClick_forDifferentPreferenceKey_isNotHandled() {
Preference preference = new Preference(ApplicationProvider.getApplicationContext()); Preference preference = new Preference(ApplicationProvider.getApplicationContext());
@@ -104,7 +110,7 @@ public class TopLevelSafetyCenterEntryPreferenceControllerTest {
@Test @Test
public void getAvailabilityStatus_whenSafetyCenterDisabled_returnsUnavailable() { public void getAvailabilityStatus_whenSafetyCenterDisabled_returnsUnavailable() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);
assertThat(mTopLevelSafetyCenterEntryPreferenceController.getAvailabilityStatus()) assertThat(mTopLevelSafetyCenterEntryPreferenceController.getAvailabilityStatus())
.isEqualTo(TopLevelSafetyCenterEntryPreferenceController.CONDITIONALLY_UNAVAILABLE); .isEqualTo(TopLevelSafetyCenterEntryPreferenceController.CONDITIONALLY_UNAVAILABLE);
@@ -112,7 +118,7 @@ public class TopLevelSafetyCenterEntryPreferenceControllerTest {
@Test @Test
public void getAvailabilityStatus_whenSafetyCenterEnabled_returnsAvailable() { public void getAvailabilityStatus_whenSafetyCenterEnabled_returnsAvailable() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(true);
assertThat(mTopLevelSafetyCenterEntryPreferenceController.getAvailabilityStatus()) assertThat(mTopLevelSafetyCenterEntryPreferenceController.getAvailabilityStatus())
.isEqualTo(TopLevelSafetyCenterEntryPreferenceController.AVAILABLE); .isEqualTo(TopLevelSafetyCenterEntryPreferenceController.AVAILABLE);

View File

@@ -29,7 +29,7 @@ import androidx.test.annotation.UiThreadTest;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.ResourcesUtils; import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.CategoryKey;
@@ -51,7 +51,7 @@ public class SecurityAdvancedSettingsTest {
private SecurityAdvancedSettings mSecurityAdvancedSettings; private SecurityAdvancedSettings mSecurityAdvancedSettings;
@Mock @Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Before @Before
@UiThreadTest @UiThreadTest
@@ -61,7 +61,7 @@ public class SecurityAdvancedSettingsTest {
Looper.prepare(); Looper.prepare();
} }
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
mContext = ApplicationProvider.getApplicationContext(); mContext = ApplicationProvider.getApplicationContext();
mSecurityAdvancedSettings = spy(new SecurityAdvancedSettings()); mSecurityAdvancedSettings = spy(new SecurityAdvancedSettings());
@@ -76,7 +76,7 @@ public class SecurityAdvancedSettingsTest {
@Test @Test
public void getCategoryKey_whenSafetyCenterIsEnabled_returnsSecurity() { public void getCategoryKey_whenSafetyCenterIsEnabled_returnsSecurity() {
when(mSafetyCenterStatusHolder.isEnabled(any())).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(any())).thenReturn(true);
assertThat(mSecurityAdvancedSettings.getCategoryKey()) assertThat(mSecurityAdvancedSettings.getCategoryKey())
.isEqualTo(CategoryKey.CATEGORY_SECURITY_ADVANCED_SETTINGS); .isEqualTo(CategoryKey.CATEGORY_SECURITY_ADVANCED_SETTINGS);
@@ -84,7 +84,7 @@ public class SecurityAdvancedSettingsTest {
@Test @Test
public void getCategoryKey_whenAlternativeFragmentPresented_returnsAlternative() { public void getCategoryKey_whenAlternativeFragmentPresented_returnsAlternative() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);
setupAlternativeFragment(true, ALTERNATIVE_CATEGORY_KEY); setupAlternativeFragment(true, ALTERNATIVE_CATEGORY_KEY);
assertThat(mSecurityAdvancedSettings.getCategoryKey()) assertThat(mSecurityAdvancedSettings.getCategoryKey())
@@ -93,7 +93,7 @@ public class SecurityAdvancedSettingsTest {
@Test @Test
public void getCategoryKey_whenNoAlternativeFragmentPresented_returnsLegacy() { public void getCategoryKey_whenNoAlternativeFragmentPresented_returnsLegacy() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);
setupAlternativeFragment(false, null); setupAlternativeFragment(false, null);
assertThat(mSecurityAdvancedSettings.getCategoryKey()) assertThat(mSecurityAdvancedSettings.getCategoryKey())

View File

@@ -33,7 +33,7 @@ import androidx.test.platform.app.InstrumentationRegistry;
import com.android.settings.Settings; import com.android.settings.Settings;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
@@ -53,14 +53,14 @@ public class SecurityDashboardActivityTest {
private Intent mDefaultIntent; private Intent mDefaultIntent;
@Mock @Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
FakeFeatureFactory mFeatureFactory = FakeFeatureFactory.setupForTest(); FakeFeatureFactory mFeatureFactory = FakeFeatureFactory.setupForTest();
mSecuritySettingsFeatureProvider = mFeatureFactory.getSecuritySettingsFeatureProvider(); mSecuritySettingsFeatureProvider = mFeatureFactory.getSecuritySettingsFeatureProvider();
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
mDefaultIntent = new Intent(); mDefaultIntent = new Intent();
mDefaultIntent.setAction(android.provider.Settings.ACTION_SECURITY_SETTINGS); mDefaultIntent.setAction(android.provider.Settings.ACTION_SECURITY_SETTINGS);
@@ -122,7 +122,7 @@ public class SecurityDashboardActivityTest {
@Test @Test
public void onCreate_whenSafetyCenterEnabled_redirectsToSafetyCenter() { public void onCreate_whenSafetyCenterEnabled_redirectsToSafetyCenter() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(true);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
mActivity.handleSafetyCenterRedirection(); mActivity.handleSafetyCenterRedirection();
@@ -133,7 +133,7 @@ public class SecurityDashboardActivityTest {
@Test @Test
public void onCreate_whenSafetyCenterDisabled_doesntRedirectToSafetyCenter() { public void onCreate_whenSafetyCenterDisabled_doesntRedirectToSafetyCenter() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);
mActivity.handleSafetyCenterRedirection(); mActivity.handleSafetyCenterRedirection();

View File

@@ -31,7 +31,7 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.safetycenter.SafetyCenterStatusHolder; import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before; import org.junit.Before;
@@ -55,14 +55,14 @@ public class TopLevelSecurityEntryPreferenceControllerTest {
@Mock @Mock
private Context mContext; private Context mContext;
@Mock @Mock
private SafetyCenterStatusHolder mSafetyCenterStatusHolder; private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mFeatureFactory = FakeFeatureFactory.setupForTest(); mFeatureFactory = FakeFeatureFactory.setupForTest();
mSecuritySettingsFeatureProvider = mFeatureFactory.getSecuritySettingsFeatureProvider(); mSecuritySettingsFeatureProvider = mFeatureFactory.getSecuritySettingsFeatureProvider();
SafetyCenterStatusHolder.sInstance = mSafetyCenterStatusHolder; SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
mPreference = new Preference(ApplicationProvider.getApplicationContext()); mPreference = new Preference(ApplicationProvider.getApplicationContext());
mPreference.setKey(PREFERENCE_KEY); mPreference.setKey(PREFERENCE_KEY);
@@ -128,7 +128,7 @@ public class TopLevelSecurityEntryPreferenceControllerTest {
@Test @Test
public void getAvailabilityStatus_whenSafetyCenterEnabled_returnsUnavailable() { public void getAvailabilityStatus_whenSafetyCenterEnabled_returnsUnavailable() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(true); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(true);
assertThat(mTopLevelSecurityEntryPreferenceController.getAvailabilityStatus()) assertThat(mTopLevelSecurityEntryPreferenceController.getAvailabilityStatus())
.isEqualTo(TopLevelSecurityEntryPreferenceController.CONDITIONALLY_UNAVAILABLE); .isEqualTo(TopLevelSecurityEntryPreferenceController.CONDITIONALLY_UNAVAILABLE);
@@ -136,7 +136,7 @@ public class TopLevelSecurityEntryPreferenceControllerTest {
@Test @Test
public void getAvailabilityStatus_whenSafetyCenterDisabled_returnsAvailable() { public void getAvailabilityStatus_whenSafetyCenterDisabled_returnsAvailable() {
when(mSafetyCenterStatusHolder.isEnabled(any(Context.class))).thenReturn(false); when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);
assertThat(mTopLevelSecurityEntryPreferenceController.getAvailabilityStatus()) assertThat(mTopLevelSecurityEntryPreferenceController.getAvailabilityStatus())
.isEqualTo(TopLevelSecurityEntryPreferenceController.AVAILABLE); .isEqualTo(TopLevelSecurityEntryPreferenceController.AVAILABLE);