From 48ffe67611c68d966795bf95e4ec5438b7a2db27 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Mon, 10 Apr 2017 15:14:22 -0700 Subject: [PATCH] Update subtext for Security settings. Instead of using summary for verifer, change the security setting summary to a static text. Bug: 36889582 Test: make RunSettingsRoboTests Change-Id: Ia3e2c7c595f403965751bacf2239c70070408e49 --- src/com/android/settings/SecuritySettings.java | 49 +++---------------- .../com/android/settings/SecuritySettingsTest.java | 57 ++++++---------------- 2 files changed, 22 insertions(+), 84 deletions(-) diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 1e64b7f1ba..bdf9644488 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -1227,54 +1227,17 @@ public class SecuritySettings extends SettingsPreferenceFragment @Override public void setListening(boolean listening) { - if (!listening) { - return; - } - int packageVerifierState = Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.PACKAGE_VERIFIER_STATE, 0); - DashboardFeatureProvider dashboardFeatureProvider = - FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext); - if (packageVerifierState == PACKAGE_VERIFIER_STATE_ENABLED) { - // Calling the feature provider could potentially be slow, so do this on a separate - // thread so as to not block the loading of Settings. - Executors.newSingleThreadExecutor().execute(new Runnable() { - @Override - public void run() { - DashboardCategory dashboardCategory = - dashboardFeatureProvider.getTilesForCategory( - CategoryKey.CATEGORY_SECURITY); - mSummaryLoader.setSummary(SummaryProvider.this, - getPackageVerifierSummary(dashboardCategory)); - } - }); - } else { - final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(mContext); + if (listening) { + final FingerprintManager fpm = + Utils.getFingerprintManagerOrNull(mContext); if (fpm != null && fpm.isHardwareDetected()) { mSummaryLoader.setSummary(this, - mContext.getString(R.string.security_dashboard_summary)); + mContext.getString(R.string.security_dashboard_summary)); } else { - mSummaryLoader.setSummary(this, null); - } - } - } - - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - String getPackageVerifierSummary(DashboardCategory dashboardCategory) { - int tilesCount = (dashboardCategory != null) ? dashboardCategory.getTilesCount() : 0; - if (tilesCount == 0) { - return null; - } - for (int i = 0; i < tilesCount; i++) { - Tile tile = dashboardCategory.getTile(i); - if (!KEY_PACKAGE_VERIFIER_STATUS.equals(tile.key)) { - continue; + mSummaryLoader.setSummary(this, mContext.getString( + R.string.security_dashboard_summary_no_fingerprint)); } - String summaryUri = tile.metaData.getString( - TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, null); - return TileUtils.getTextFromUri(mContext, summaryUri, - new ArrayMap<>(), TileUtils.META_DATA_PREFERENCE_SUMMARY); } - return null; } } diff --git a/tests/robotests/src/com/android/settings/SecuritySettingsTest.java b/tests/robotests/src/com/android/settings/SecuritySettingsTest.java index 9bdf502b9b..c63674874f 100644 --- a/tests/robotests/src/com/android/settings/SecuritySettingsTest.java +++ b/tests/robotests/src/com/android/settings/SecuritySettingsTest.java @@ -101,24 +101,7 @@ public class SecuritySettingsTest { } @Test - @Config(shadows = { - ShadowSecureSettings.class, - }) - public void testSummaryProvider_packageVerifierDisabled() { - // Package verifier state is set to disabled. - ShadowSecureSettings.putInt(null, Settings.Secure.PACKAGE_VERIFIER_STATE, -1); - mSummaryProvider.setListening(true); - - verify(mSummaryLoader, times(1)).setSummary(any(), isNull(String.class)); - } - - @Test - @Config(shadows = { - ShadowSecureSettings.class, - }) public void testSummaryProvider_hasFingerPrint_hasStaticSummary() { - // Package verifier state is set to disabled. - ShadowSecureSettings.putInt(null, Settings.Secure.PACKAGE_VERIFIER_STATE, -1); final FingerprintManager fpm = mock(FingerprintManager.class); when(mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) .thenReturn(true); @@ -133,37 +116,29 @@ public class SecuritySettingsTest { } @Test - public void testGetPackageVerifierSummary_nullInput() { - assertThat(mSummaryProvider.getPackageVerifierSummary(null)).isNull(); + public void testSummaryProvider_noFpFeature_shouldSetSummaryWithNoFingerprint() { + final FingerprintManager fpm = mock(FingerprintManager.class); + when(mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) + .thenReturn(false); - when(mDashboardCategory.getTilesCount()).thenReturn(0); + mSummaryProvider.setListening(true); - assertThat(mSummaryProvider.getPackageVerifierSummary(mDashboardCategory)).isNull(); + verify(mContext).getString(R.string.security_dashboard_summary_no_fingerprint); } @Test - public void testGetPackageVerifierSummary_noMatchingTile() { - when(mDashboardCategory.getTilesCount()).thenReturn(1); - when(mDashboardCategory.getTile(0)).thenReturn(new Tile()); + public void testSummaryProvider_noFpHardware_shouldSetSummaryWithNoFingerprint() { + final FingerprintManager fpm = mock(FingerprintManager.class); + when(mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) + .thenReturn(true); - assertThat(mSummaryProvider.getPackageVerifierSummary(mDashboardCategory)).isNull(); - } + // Cast to Object to workaround a robolectric casting bug + when((Object) mContext.getSystemService(FingerprintManager.class)).thenReturn(fpm); + when(fpm.isHardwareDetected()).thenReturn(false); - @Test - @Config(shadows = { - ShadowTileUtils.class, - }) - public void testGetPackageVerifierSummary_matchingTile() { - when(mDashboardCategory.getTilesCount()).thenReturn(1); - Tile tile = new Tile(); - tile.key = SecuritySettings.KEY_PACKAGE_VERIFIER_STATUS; - Bundle bundle = new Bundle(); - bundle.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, "content://host/path"); - tile.metaData = bundle; - when(mDashboardCategory.getTile(0)).thenReturn(tile); - - assertThat(mSummaryProvider.getPackageVerifierSummary(mDashboardCategory)) - .isEqualTo(MOCK_SUMMARY); + mSummaryProvider.setListening(true); + + verify(mContext).getString(R.string.security_dashboard_summary_no_fingerprint); } @Test -- 2.11.0