Update security screen summary text when no fingerprint

Change-Id: I810c533b0daeab3bd67d9d5be8a89d93738b4962
Fix: 35339887
Test: RunSettingsRoboTest
This commit is contained in:
Fan Zhang
2017-02-14 11:58:25 -08:00
parent 38c15a53e2
commit 2cab298f13
2 changed files with 34 additions and 9 deletions

View File

@@ -1300,8 +1300,13 @@ public class SecuritySettings extends SettingsPreferenceFragment
dashboardFeatureProvider.getTilesForCategory(CategoryKey.CATEGORY_SECURITY); dashboardFeatureProvider.getTilesForCategory(CategoryKey.CATEGORY_SECURITY);
mSummaryLoader.setSummary(this, getPackageVerifierSummary(dashboardCategory)); mSummaryLoader.setSummary(this, getPackageVerifierSummary(dashboardCategory));
} else { } else {
mSummaryLoader.setSummary(this, final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(mContext);
mContext.getString(R.string.security_dashboard_summary)); if (fpm != null && fpm.isHardwareDetected()) {
mSummaryLoader.setSummary(this,
mContext.getString(R.string.security_dashboard_summary));
} else {
mSummaryLoader.setSummary(this, null);
}
} }
} }
@@ -1319,8 +1324,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
String summaryUri = tile.metaData.getString( String summaryUri = tile.metaData.getString(
TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, null); TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, null);
return TileUtils.getTextFromUri(mContext, summaryUri, return TileUtils.getTextFromUri(mContext, summaryUri,
new ArrayMap<String, IContentProvider>(), new ArrayMap<>(), TileUtils.META_DATA_PREFERENCE_SUMMARY);
TileUtils.META_DATA_PREFERENCE_SUMMARY);
} }
return null; return null;
} }

View File

@@ -16,14 +16,14 @@
package com.android.settings; package com.android.settings;
import android.content.Context;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context;
import android.content.IContentProvider; import android.content.IContentProvider;
import android.provider.Settings; import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory;
@@ -46,7 +46,7 @@ import java.util.Map;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Matchers.isNull; import static org.mockito.Matchers.isNull;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -120,6 +120,27 @@ public class SecuritySettingsTest {
verify(mSummaryLoader, times(1)).setSummary(any(), isNull(String.class)); 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);
// Cast to Object to workaround a robolectric casting bug
when((Object) mContext.getSystemService(FingerprintManager.class)).thenReturn(fpm);
when(fpm.isHardwareDetected()).thenReturn(true);
mSummaryProvider.setListening(true);
verify(mContext).getString(R.string.security_dashboard_summary);
}
@Test @Test
public void testGetPackageVerifierSummary_nullInput() { public void testGetPackageVerifierSummary_nullInput() {
assertThat(mSummaryProvider.getPackageVerifierSummary(null)).isNull(); assertThat(mSummaryProvider.getPackageVerifierSummary(null)).isNull();