Add default dialer checks to Telecom/Telephony
Check for the default dialer or the modify phone state permission
for various TelecomManager/TelephonyManager methods.
Make sure to check the user-selected default rather than the
hardcoded package name.
Exercise this code in TestDialerActivity.
Bug: 20304458
Change-Id: Ic04cd8f2ba98e1d54c39549ae89d3e11cd5cdafb
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 8d6bda8..1431eb8 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -921,7 +921,7 @@
public void silenceRinger() {
try {
if (isServiceConnected()) {
- getTelecomService().silenceRinger();
+ getTelecomService().silenceRinger(mContext.getOpPackageName());
}
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelecomService#silenceRinger", e);
@@ -1029,7 +1029,7 @@
ITelecomService service = getTelecomService();
if (service != null) {
try {
- return service.handlePinMmi(dialString);
+ return service.handlePinMmi(dialString, mContext.getOpPackageName());
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelecomService#handlePinMmi", e);
}
@@ -1053,7 +1053,8 @@
ITelecomService service = getTelecomService();
if (service != null) {
try {
- return service.handlePinMmiForPhoneAccount(accountHandle, dialString);
+ return service.handlePinMmiForPhoneAccount(accountHandle, dialString,
+ mContext.getOpPackageName());
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelecomService#handlePinMmi", e);
}
@@ -1071,7 +1072,7 @@
ITelecomService service = getTelecomService();
if (service != null && accountHandle != null) {
try {
- return service.getAdnUriForPhoneAccount(accountHandle);
+ return service.getAdnUriForPhoneAccount(accountHandle, mContext.getOpPackageName());
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelecomService#getAdnUriForPhoneAccount", e);
}
@@ -1089,7 +1090,7 @@
ITelecomService service = getTelecomService();
if (service != null) {
try {
- service.cancelMissedCallsNotification();
+ service.cancelMissedCallsNotification(mContext.getOpPackageName());
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelecomService#cancelMissedCallsNotification", e);
}