Initializing the Telephony Sms DB based on RoleManager.ROLE_SMS

Fix: 133356079
Test: manual

Change-Id: I49dcdc450e1113ffae887ad488d39f74a96787ed
This commit is contained in:
Ritwika Mitra
2019-05-29 13:05:01 -07:00
parent 8ed50556f5
commit 19afd4690f

View File

@@ -465,7 +465,11 @@ public final class SmsApplication {
int userId) {
TelephonyManager tm = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
if (!tm.isSmsCapable()) {
RoleManager roleManager = (RoleManager) context.getSystemService(Context.ROLE_SERVICE);
// (b/134400042) RoleManager might be null in unit tests running older mockito versions
// that do not support mocking final classes.
if (!tm.isSmsCapable() && (roleManager == null || !roleManager.isRoleAvailable(
RoleManager.ROLE_SMS))) {
// No phone, no SMS
return null;
}
@@ -584,7 +588,11 @@ public final class SmsApplication {
public static void setDefaultApplicationAsUser(String packageName, Context context,
int userId) {
TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
if (!tm.isSmsCapable()) {
RoleManager roleManager = (RoleManager) context.getSystemService(Context.ROLE_SERVICE);
// (b/134400042) RoleManager might be null in unit tests running older mockito versions
// that do not support mocking final classes.
if (!tm.isSmsCapable() && (roleManager == null || !roleManager.isRoleAvailable(
RoleManager.ROLE_SMS))) {
// No phone, no SMS
return;
}