Send broadcast when default dialer changes
Bug: 21846308
Change-Id: I9034051644c9351bc73946fe3f5aa64bf080f200
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index cfbfdc4..a07cd87 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -24,6 +24,7 @@
import static android.Manifest.permission.REGISTER_SIM_SUBSCRIPTION;
import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
+import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.content.ComponentName;
import android.content.Context;
@@ -859,7 +860,17 @@
synchronized (mLock) {
long token = Binder.clearCallingIdentity();
try {
- return DefaultDialerManager.setDefaultDialerApplication(mContext, packageName);
+ final boolean result =
+ DefaultDialerManager.setDefaultDialerApplication(mContext, packageName);
+ if (result) {
+ final Intent intent =
+ new Intent(TelecomManager.ACTION_DEFAULT_DIALER_CHANGED);
+ intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME,
+ packageName);
+ mContext.sendBroadcastAsUser(intent,
+ new UserHandle(ActivityManager.getCurrentUser()));
+ }
+ return result;
} finally {
Binder.restoreCallingIdentity(token);
}
diff --git a/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java b/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java
index 95b81b1..5fd7904 100644
--- a/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java
+++ b/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java
@@ -18,7 +18,6 @@
import android.content.Context;
import android.content.DialogInterface;
-import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
@@ -65,8 +64,7 @@
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case BUTTON_POSITIVE:
- DefaultDialerManager.setDefaultDialerApplication(ChangeDefaultDialerDialog.this,
- mNewPackage);
+ TelecomManager.from(this).setDefaultDialer(mNewPackage);
setResult(RESULT_OK);
break;
case BUTTON_NEGATIVE: