Use current userhandle when querying for default dialer
Also update TestDialerActivity to use placeCall API.
Bug: 20696062
Change-Id: I65f9585f7659009e76456c4613de48f0558dd0b5
diff --git a/src/com/android/server/telecom/components/UserCallIntentProcessor.java b/src/com/android/server/telecom/components/UserCallIntentProcessor.java
index d19a260..82dc713 100644
--- a/src/com/android/server/telecom/components/UserCallIntentProcessor.java
+++ b/src/com/android/server/telecom/components/UserCallIntentProcessor.java
@@ -21,11 +21,13 @@
import com.android.server.telecom.R;
import com.android.server.telecom.TelephonyUtil;
+import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.UserHandle;
import android.os.UserManager;
+import android.telecom.DefaultDialerManager;
import android.telecom.PhoneAccount;
import android.telecom.TelecomManager;
import android.telecom.VideoProfile;
@@ -140,12 +142,14 @@
return false;
}
- final TelecomManager telecomManager =
- (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
- if (TextUtils.equals(telecomManager.getDefaultDialerPackage(), callingPackageName)) {
+ final String defaultDialer = DefaultDialerManager.getDefaultDialerApplication(mContext,
+ mUserHandle.getIdentifier());
+ if (TextUtils.equals(defaultDialer, callingPackageName)) {
return true;
}
+ final TelecomManager telecomManager =
+ (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
return TextUtils.equals(telecomManager.getSystemDialerPackage(), callingPackageName);
}
diff --git a/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java b/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java
index 4153ee1..17f7dc8 100644
--- a/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java
+++ b/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java
@@ -88,9 +88,10 @@
}
private void placeCall() {
- final Intent intent = new Intent(Intent.ACTION_CALL,
- Uri.fromParts(PhoneAccount.SCHEME_TEL, mNumberView.getText().toString(), null));
- startActivityForResult(intent, 0);
+ final TelecomManager telecomManager =
+ (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
+ telecomManager.placeCall(Uri.fromParts(PhoneAccount.SCHEME_TEL,
+ mNumberView.getText().toString(), null), null);
}
private void testVoicemail() {