Remove isServiceConnected() from TelecomManager
isServiceConnected() was being called before uses of getTelecomService()
to ensure that the service was connected before accessing it. However,
isServiceConnected() used getTelecomService() to check if the service
was connected, resulting in unnecessary binder calls.
Bug: 173036057
Bug: 173039862
Test: manual testing (switching between different tabs, calling)
Change-Id: I622464927826d8af1c6e75ed4557580d8723315c
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index b335a90..83b007d 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -997,13 +997,14 @@
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public PhoneAccountHandle getDefaultOutgoingPhoneAccount(String uriScheme) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getDefaultOutgoingPhoneAccount(uriScheme,
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getDefaultOutgoingPhoneAccount(uriScheme,
mContext.getOpPackageName(), mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getDefaultOutgoingPhoneAccount", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getDefaultOutgoingPhoneAccount", e);
}
return null;
}
@@ -1023,13 +1024,14 @@
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public @Nullable PhoneAccountHandle getUserSelectedOutgoingPhoneAccount() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getUserSelectedOutgoingPhoneAccount(
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getUserSelectedOutgoingPhoneAccount(
mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getUserSelectedOutgoingPhoneAccount", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getUserSelectedOutgoingPhoneAccount", e);
}
return null;
}
@@ -1045,12 +1047,13 @@
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
@SystemApi
public void setUserSelectedOutgoingPhoneAccount(@Nullable PhoneAccountHandle accountHandle) {
- try {
- if (isServiceConnected()) {
- getTelecomService().setUserSelectedOutgoingPhoneAccount(accountHandle);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.setUserSelectedOutgoingPhoneAccount(accountHandle);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#setUserSelectedOutgoingPhoneAccount");
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#setUserSelectedOutgoingPhoneAccount");
}
}
@@ -1064,13 +1067,14 @@
* @see SubscriptionManager#getDefaultVoiceSubscriptionId()
*/
public PhoneAccountHandle getSimCallManager() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getSimCallManager(
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getSimCallManager(
SubscriptionManager.getDefaultSubscriptionId());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getSimCallManager");
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getSimCallManager");
}
return null;
}
@@ -1086,12 +1090,13 @@
* @see SubscriptionManager#getActiveSubscriptionInfoList()
*/
public @Nullable PhoneAccountHandle getSimCallManagerForSubscription(int subscriptionId) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getSimCallManager(subscriptionId);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getSimCallManager(subscriptionId);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getSimCallManager");
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getSimCallManager");
}
return null;
}
@@ -1109,12 +1114,13 @@
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 119305590)
public PhoneAccountHandle getSimCallManager(int userId) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getSimCallManagerForUser(userId);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getSimCallManagerForUser(userId);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getSimCallManagerForUser");
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getSimCallManagerForUser");
}
return null;
}
@@ -1151,13 +1157,14 @@
android.Manifest.permission.READ_PHONE_STATE
})
public List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(String uriScheme) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getPhoneAccountsSupportingScheme(uriScheme,
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getPhoneAccountsSupportingScheme(uriScheme,
mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsSupportingScheme", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsSupportingScheme", e);
}
return new ArrayList<>();
}
@@ -1192,13 +1199,14 @@
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public List<PhoneAccountHandle> getSelfManagedPhoneAccounts() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getSelfManagedPhoneAccounts(mContext.getOpPackageName(),
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getSelfManagedPhoneAccounts(mContext.getOpPackageName(),
mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getSelfManagedPhoneAccounts()", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getSelfManagedPhoneAccounts()", e);
}
return new ArrayList<>();
}
@@ -1217,14 +1225,15 @@
@RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
public @NonNull List<PhoneAccountHandle> getCallCapablePhoneAccounts(
boolean includeDisabledAccounts) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getCallCapablePhoneAccounts(includeDisabledAccounts,
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getCallCapablePhoneAccounts(includeDisabledAccounts,
mContext.getOpPackageName(), mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getCallCapablePhoneAccounts("
+ + includeDisabledAccounts + ")", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getCallCapablePhoneAccounts(" +
- includeDisabledAccounts + ")", e);
}
return new ArrayList<>();
}
@@ -1241,12 +1250,13 @@
@SuppressLint("Doclava125")
@Deprecated
public List<PhoneAccountHandle> getPhoneAccountsForPackage() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getPhoneAccountsForPackage(mContext.getPackageName());
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getPhoneAccountsForPackage(mContext.getPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsForPackage", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getPhoneAccountsForPackage", e);
}
return null;
}
@@ -1259,12 +1269,13 @@
* @return The {@link PhoneAccount} object.
*/
public PhoneAccount getPhoneAccount(PhoneAccountHandle account) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getPhoneAccount(account);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getPhoneAccount(account);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getPhoneAccount", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getPhoneAccount", e);
}
return null;
}
@@ -1277,12 +1288,13 @@
*/
@SystemApi
public int getAllPhoneAccountsCount() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getAllPhoneAccountsCount();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getAllPhoneAccountsCount();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccountsCount", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccountsCount", e);
}
return 0;
}
@@ -1295,12 +1307,13 @@
*/
@SystemApi
public List<PhoneAccount> getAllPhoneAccounts() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getAllPhoneAccounts();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getAllPhoneAccounts();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccounts", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccounts", e);
}
return Collections.EMPTY_LIST;
}
@@ -1313,12 +1326,13 @@
*/
@SystemApi
public List<PhoneAccountHandle> getAllPhoneAccountHandles() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getAllPhoneAccountHandles();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getAllPhoneAccountHandles();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccountHandles", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#getAllPhoneAccountHandles", e);
}
return Collections.EMPTY_LIST;
}
@@ -1338,12 +1352,13 @@
* @param account The complete {@link PhoneAccount}.
*/
public void registerPhoneAccount(PhoneAccount account) {
- try {
- if (isServiceConnected()) {
- getTelecomService().registerPhoneAccount(account);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.registerPhoneAccount(account);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#registerPhoneAccount", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#registerPhoneAccount", e);
}
}
@@ -1353,12 +1368,13 @@
* @param accountHandle A {@link PhoneAccountHandle} for the {@link PhoneAccount} to unregister.
*/
public void unregisterPhoneAccount(PhoneAccountHandle accountHandle) {
- try {
- if (isServiceConnected()) {
- getTelecomService().unregisterPhoneAccount(accountHandle);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.unregisterPhoneAccount(accountHandle);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#unregisterPhoneAccount", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#unregisterPhoneAccount", e);
}
}
@@ -1379,12 +1395,13 @@
@SystemApi
@SuppressLint("Doclava125")
public void clearAccounts() {
- try {
- if (isServiceConnected()) {
- getTelecomService().clearAccounts(mContext.getPackageName());
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.clearAccounts(mContext.getPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#clearAccounts", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#clearAccounts", e);
}
}
@@ -1393,12 +1410,15 @@
* @hide
*/
public void clearAccountsForPackage(String packageName) {
- try {
- if (isServiceConnected() && !TextUtils.isEmpty(packageName)) {
- getTelecomService().clearAccounts(packageName);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ if (!TextUtils.isEmpty(packageName)) {
+ service.clearAccounts(packageName);
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#clearAccountsForPackage", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#clearAccountsForPackage", e);
}
}
@@ -1411,12 +1431,13 @@
@SystemApi
@SuppressLint("Doclava125")
public ComponentName getDefaultPhoneApp() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getDefaultPhoneApp();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getDefaultPhoneApp();
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get the default phone app.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get the default phone app.", e);
}
return null;
}
@@ -1428,12 +1449,13 @@
* selected as the default dialer.
*/
public String getDefaultDialerPackage() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getDefaultDialerPackage();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getDefaultDialerPackage();
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get the default dialer package name.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get the default dialer package name.", e);
}
return null;
}
@@ -1449,13 +1471,14 @@
@SystemApi
@RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
public @Nullable String getDefaultDialerPackage(@NonNull UserHandle userHandle) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getDefaultDialerPackageForUser(
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getDefaultDialerPackageForUser(
userHandle.getIdentifier());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get the default dialer package name.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get the default dialer package name.", e);
}
return null;
}
@@ -1482,12 +1505,13 @@
android.Manifest.permission.MODIFY_PHONE_STATE,
android.Manifest.permission.WRITE_SECURE_SETTINGS})
public boolean setDefaultDialer(@Nullable String packageName) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().setDefaultDialer(packageName);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.setDefaultDialer(packageName);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to set the default dialer.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to set the default dialer.", e);
}
return false;
}
@@ -1499,12 +1523,13 @@
* preloaded.
*/
public @Nullable String getSystemDialerPackage() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getSystemDialerPackage();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getSystemDialerPackage();
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get the system dialer package name.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get the system dialer package name.", e);
}
return null;
}
@@ -1518,13 +1543,14 @@
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public boolean isVoiceMailNumber(PhoneAccountHandle accountHandle, String number) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().isVoiceMailNumber(accountHandle, number,
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.isVoiceMailNumber(accountHandle, number,
mContext.getOpPackageName(), mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException calling ITelecomService#isVoiceMailNumber.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException calling ITelecomService#isVoiceMailNumber.", e);
}
return false;
}
@@ -1538,13 +1564,14 @@
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public String getVoiceMailNumber(PhoneAccountHandle accountHandle) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getVoiceMailNumber(accountHandle,
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getVoiceMailNumber(accountHandle,
mContext.getOpPackageName(), mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException calling ITelecomService#hasVoiceMailNumber.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException calling ITelecomService#hasVoiceMailNumber.", e);
}
return null;
}
@@ -1569,13 +1596,14 @@
android.Manifest.permission.READ_PHONE_NUMBERS
}, conditional = true)
public String getLine1Number(PhoneAccountHandle accountHandle) {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getLine1Number(accountHandle,
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getLine1Number(accountHandle,
mContext.getOpPackageName(), mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException calling ITelecomService#getLine1Number.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException calling ITelecomService#getLine1Number.", e);
}
return null;
}
@@ -1589,13 +1617,14 @@
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public boolean isInCall() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().isInCall(mContext.getOpPackageName(),
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.isInCall(mContext.getOpPackageName(),
mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException calling isInCall().", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException calling isInCall().", e);
}
return false;
}
@@ -1610,15 +1639,16 @@
* companion app; {@code false} otherwise.
*/
public boolean hasCompanionInCallServiceAccess() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().hasCompanionInCallServiceAccess(
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.hasCompanionInCallServiceAccess(
mContext.getOpPackageName());
- }
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException calling hasCompanionInCallServiceAccess().", e);
- if (!isSystemProcess()) {
- e.rethrowAsRuntimeException();
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException calling hasCompanionInCallServiceAccess().", e);
+ if (!isSystemProcess()) {
+ e.rethrowAsRuntimeException();
+ }
}
}
return false;
@@ -1637,13 +1667,14 @@
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public boolean isInManagedCall() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().isInManagedCall(mContext.getOpPackageName(),
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.isInManagedCall(mContext.getOpPackageName(),
mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException calling isInManagedCall().", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException calling isInManagedCall().", e);
}
return false;
}
@@ -1666,12 +1697,13 @@
*/
@SystemApi
public @CallState int getCallState() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getCallState();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getCallState();
+ } catch (RemoteException e) {
+ Log.d(TAG, "RemoteException calling getCallState().", e);
}
- } catch (RemoteException e) {
- Log.d(TAG, "RemoteException calling getCallState().", e);
}
return TelephonyManager.CALL_STATE_IDLE;
}
@@ -1688,12 +1720,13 @@
android.Manifest.permission.READ_PHONE_STATE
})
public boolean isRinging() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().isRinging(mContext.getOpPackageName());
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.isRinging(mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get ringing state of phone app.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get ringing state of phone app.", e);
}
return false;
}
@@ -1716,12 +1749,13 @@
@RequiresPermission(Manifest.permission.ANSWER_PHONE_CALLS)
@Deprecated
public boolean endCall() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().endCall(mContext.getPackageName());
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.endCall(mContext.getPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#endCall", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#endCall", e);
}
return false;
}
@@ -1742,12 +1776,13 @@
{Manifest.permission.ANSWER_PHONE_CALLS, Manifest.permission.MODIFY_PHONE_STATE})
@Deprecated
public void acceptRingingCall() {
- try {
- if (isServiceConnected()) {
- getTelecomService().acceptRingingCall(mContext.getPackageName());
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.acceptRingingCall(mContext.getPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#acceptRingingCall", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#acceptRingingCall", e);
}
}
@@ -1763,13 +1798,14 @@
{Manifest.permission.ANSWER_PHONE_CALLS, Manifest.permission.MODIFY_PHONE_STATE})
@Deprecated
public void acceptRingingCall(int videoState) {
- try {
- if (isServiceConnected()) {
- getTelecomService().acceptRingingCallWithVideoState(
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.acceptRingingCallWithVideoState(
mContext.getPackageName(), videoState);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#acceptRingingCallWithVideoState", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#acceptRingingCallWithVideoState", e);
}
}
@@ -1793,12 +1829,13 @@
*/
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void silenceRinger() {
- try {
- if (isServiceConnected()) {
- getTelecomService().silenceRinger(mContext.getOpPackageName());
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.silenceRinger(mContext.getOpPackageName());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecomService#silenceRinger", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecomService#silenceRinger", e);
}
}
@@ -1810,13 +1847,14 @@
android.Manifest.permission.READ_PHONE_STATE
})
public boolean isTtySupported() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().isTtySupported(mContext.getOpPackageName(),
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.isTtySupported(mContext.getOpPackageName(),
mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get TTY supported state.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get TTY supported state.", e);
}
return false;
}
@@ -1834,13 +1872,14 @@
@SystemApi
@RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
public @TtyMode int getCurrentTtyMode() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().getCurrentTtyMode(mContext.getOpPackageName(),
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.getCurrentTtyMode(mContext.getOpPackageName(),
mContext.getAttributionTag());
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to get the current TTY mode.", e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException attempting to get the current TTY mode.", e);
}
return TTY_MODE_OFF;
}
@@ -1876,8 +1915,9 @@
* {@link ConnectionService#onCreateIncomingConnection}.
*/
public void addNewIncomingCall(PhoneAccountHandle phoneAccount, Bundle extras) {
- try {
- if (isServiceConnected()) {
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
if (extras != null && extras.getBoolean(EXTRA_IS_HANDOVER) &&
mContext.getApplicationContext().getApplicationInfo().targetSdkVersion >
Build.VERSION_CODES.O_MR1) {
@@ -1885,11 +1925,10 @@
"acceptHandover for API > O-MR1");
return;
}
- getTelecomService().addNewIncomingCall(
- phoneAccount, extras == null ? new Bundle() : extras);
+ service.addNewIncomingCall(phoneAccount, extras == null ? new Bundle() : extras);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException adding a new incoming call: " + phoneAccount, e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException adding a new incoming call: " + phoneAccount, e);
}
}
@@ -1924,13 +1963,14 @@
*/
public void addNewIncomingConference(@NonNull PhoneAccountHandle phoneAccount,
@NonNull Bundle extras) {
- try {
- if (isServiceConnected()) {
- getTelecomService().addNewIncomingConference(
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.addNewIncomingConference(
phoneAccount, extras == null ? new Bundle() : extras);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException adding a new incoming conference: " + phoneAccount, e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException adding a new incoming conference: " + phoneAccount, e);
}
}
@@ -1947,13 +1987,14 @@
*/
@SystemApi
public void addNewUnknownCall(PhoneAccountHandle phoneAccount, Bundle extras) {
- try {
- if (isServiceConnected()) {
- getTelecomService().addNewUnknownCall(
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.addNewUnknownCall(
phoneAccount, extras == null ? new Bundle() : extras);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException adding a new unknown call: " + phoneAccount, e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException adding a new unknown call: " + phoneAccount, e);
}
}
@@ -2374,12 +2415,13 @@
*/
public void acceptHandover(Uri srcAddr, @VideoProfile.VideoState int videoState,
PhoneAccountHandle destAcct) {
- try {
- if (isServiceConnected()) {
- getTelecomService().acceptHandover(srcAddr, videoState, destAcct);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.acceptHandover(srcAddr, videoState, destAcct);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException acceptHandover: " + e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException acceptHandover: " + e);
}
}
@@ -2393,13 +2435,14 @@
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public boolean isInEmergencyCall() {
- try {
- if (isServiceConnected()) {
- return getTelecomService().isInEmergencyCall();
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ return service.isInEmergencyCall();
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException isInEmergencyCall: " + e);
+ return false;
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException isInEmergencyCall: " + e);
- return false;
}
return false;
}
@@ -2411,12 +2454,13 @@
* @hide
*/
public void handleCallIntent(Intent intent, String callingPackageProxy) {
- try {
- if (isServiceConnected()) {
- getTelecomService().handleCallIntent(intent, callingPackageProxy);
+ ITelecomService service = getTelecomService();
+ if (service != null) {
+ try {
+ service.handleCallIntent(intent, callingPackageProxy);
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException handleCallIntent: " + e);
}
- } catch (RemoteException e) {
- Log.e(TAG, "RemoteException handleCallIntent: " + e);
}
}
@@ -2428,14 +2472,11 @@
if (mTelecomServiceOverride != null) {
return mTelecomServiceOverride;
}
- return ITelecomService.Stub.asInterface(ServiceManager.getService(Context.TELECOM_SERVICE));
- }
-
- private boolean isServiceConnected() {
- boolean isConnected = getTelecomService() != null;
- if (!isConnected) {
+ ITelecomService service = ITelecomService.Stub.asInterface(
+ ServiceManager.getService(Context.TELECOM_SERVICE));
+ if (service == null) {
Log.w(TAG, "Telecom Service not found.");
}
- return isConnected;
+ return service;
}
}