switch TelecomManager List getters to ParceledListSlice
It was shown that given a large phoneAccountHandles that are
over 1 mb, a TransactionTooLarge exception can be silently thrown
causing an empty list to be returned.
In order to prevent this behavior, all Lists that return a
PhoneAccountHandle or PhoneAccount have been switched to
ParceledListSlice.
bug: 236263294
Test: atest android.telecom.cts.PhoneAccountRegistrarTest
#testRegisterPhoneAccountHandleWithFieldOverLimit
Change-Id: I025245b2a6f8cfaca86f268851a9d8f0817e07dd
Merged-In: I025245b2a6f8cfaca86f268851a9d8f0817e07dd
This commit is contained in:
@@ -953,7 +953,7 @@ public class TelecomManager {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().getPhoneAccountsSupportingScheme(uriScheme,
|
||||
mContext.getOpPackageName());
|
||||
mContext.getOpPackageName()).getList();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsSupportingScheme", e);
|
||||
@@ -995,7 +995,8 @@ public class TelecomManager {
|
||||
public List<PhoneAccountHandle> getSelfManagedPhoneAccounts() {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().getSelfManagedPhoneAccounts(mContext.getOpPackageName());
|
||||
return getTelecomService()
|
||||
.getSelfManagedPhoneAccounts(mContext.getOpPackageName()).getList();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling ITelecomService#getSelfManagedPhoneAccounts()", e);
|
||||
@@ -1017,7 +1018,7 @@ public class TelecomManager {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().getCallCapablePhoneAccounts(
|
||||
includeDisabledAccounts, mContext.getOpPackageName());
|
||||
includeDisabledAccounts, mContext.getOpPackageName()).getList();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling ITelecomService#getCallCapablePhoneAccounts(" +
|
||||
@@ -1037,7 +1038,8 @@ public class TelecomManager {
|
||||
public List<PhoneAccountHandle> getPhoneAccountsForPackage() {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().getPhoneAccountsForPackage(mContext.getPackageName());
|
||||
return getTelecomService()
|
||||
.getPhoneAccountsForPackage(mContext.getPackageName()).getList();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsForPackage", e);
|
||||
@@ -1091,7 +1093,7 @@ public class TelecomManager {
|
||||
public List<PhoneAccount> getAllPhoneAccounts() {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().getAllPhoneAccounts();
|
||||
return getTelecomService().getAllPhoneAccounts().getList();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccounts", e);
|
||||
@@ -1109,7 +1111,7 @@ public class TelecomManager {
|
||||
public List<PhoneAccountHandle> getAllPhoneAccountHandles() {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().getAllPhoneAccountHandles();
|
||||
return getTelecomService().getAllPhoneAccountHandles().getList();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccountHandles", e);
|
||||
|
||||
Reference in New Issue
Block a user