summaryrefslogtreecommitdiffstats
path: root/phone/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'phone/java/android')
-rw-r--r--phone/java/android/phone/PhoneManager.java54
1 files changed, 34 insertions, 20 deletions
diff --git a/phone/java/android/phone/PhoneManager.java b/phone/java/android/phone/PhoneManager.java
index 360565e..d5f2053 100644
--- a/phone/java/android/phone/PhoneManager.java
+++ b/phone/java/android/phone/PhoneManager.java
@@ -30,20 +30,17 @@ public final class PhoneManager {
private static final String TAG = PhoneManager.class.getSimpleName();
private final Context mContext;
- private final ITelecommService mService;
/**
* @hide
*/
- public PhoneManager(Context context, ITelecommService service) {
+ public PhoneManager(Context context) {
Context appContext = context.getApplicationContext();
if (appContext != null) {
mContext = appContext;
} else {
mContext = context;
}
-
- mService = service;
}
/**
@@ -56,10 +53,13 @@ public final class PhoneManager {
* @return True if the digits were processed as an MMI code, false otherwise.
*/
public boolean handlePinMmi(String dialString) {
- try {
- return mService.handlePinMmi(dialString);
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#handlePinMmi", e);
+ ITelecommService service = getTelecommService();
+ if (service != null) {
+ try {
+ return service.handlePinMmi(dialString);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecommService()#handlePinMmi", e);
+ }
}
return false;
}
@@ -71,10 +71,13 @@ public final class PhoneManager {
* </p>
*/
public void cancelMissedCallsNotification() {
- try {
- mService.cancelMissedCallsNotification();
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#cancelMissedCallNotification", e);
+ ITelecommService service = getTelecommService();
+ if (service != null) {
+ try {
+ service.cancelMissedCallsNotification();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecommService()#cancelMissedCallNotification", e);
+ }
}
}
@@ -89,10 +92,13 @@ public final class PhoneManager {
* @param showDialpad Brings up the in-call dialpad as part of showing the in-call screen.
*/
public void showCallScreen(boolean showDialpad) {
- try {
- mService.showCallScreen(showDialpad);
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling ITelecommService#showCallScreen", e);
+ ITelecommService service = getTelecommService();
+ if (service != null) {
+ try {
+ service.showCallScreen(showDialpad);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling ITelecommService()#showCallScreen", e);
+ }
}
}
@@ -103,11 +109,19 @@ public final class PhoneManager {
* </p>
*/
public boolean isInAPhoneCall() {
- try {
- return mService.isInAPhoneCall();
- } catch (RemoteException e) {
- Log.e(TAG, "Error caling ITelecommService#isInAPhoneCall", e);
+ ITelecommService service = getTelecommService();
+ if (service != null) {
+ try {
+ return service.isInAPhoneCall();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error caling ITelecommService()#isInAPhoneCall", e);
+ }
}
return false;
}
+
+ private ITelecommService getTelecommService() {
+ return ITelecommService.Stub.asInterface(
+ ServiceManager.getService(Context.TELECOMM_SERVICE));
+ }
}