Fix SafetyProtectionUtils

This util was expecting getString() and getDrawable() to return null
when resource is not found but it's actually throwing an exception.
Changed the logic in this class to expect an exception when the
resource it not available

Bug: 269874157
Test: SafetyProtectionTest
Change-Id: I0f3490b59dc2427c2889e25fea529c85d3e1f150
This commit is contained in:
Yi-an Chen
2023-03-09 23:27:44 +00:00
parent 251260206a
commit 0fdd409c0f

View File

@@ -40,14 +40,20 @@ public class SafetyProtectionUtils {
* @hide
*/
public static boolean shouldShowSafetyProtectionResources(Context context) {
return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
SAFETY_PROTECTION_RESOURCES_ENABLED, false)
&& context.getResources().getBoolean(
Resources.getSystem()
.getIdentifier("config_safetyProtectionEnabled",
"bool", "android"))
&& context.getDrawable(android.R.drawable.ic_safety_protection) != null
&& context.getString(android.R.string.safety_protection_display_text) != null
&& !context.getString(android.R.string.safety_protection_display_text).isEmpty();
try {
return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
SAFETY_PROTECTION_RESOURCES_ENABLED, false)
&& context.getResources().getBoolean(
Resources.getSystem()
.getIdentifier("config_safetyProtectionEnabled",
"bool", "android"))
&& context.getDrawable(android.R.drawable.ic_safety_protection) != null
&& !context.getString(
android.R.string.safety_protection_display_text).isEmpty();
} catch (Resources.NotFoundException e) {
// We should expect the resources to not exist for non-pixel devices
// (except for the OEMs that opt-in)
return false;
}
}
}