summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2015-06-15 12:08:24 -0700
committerYorke Lee <yorkelee@google.com>2015-06-15 12:36:09 -0700
commit107c4ce2ac9b76e7b4ed251fff8929958c5d3e63 (patch)
treef67351df44c16214b2d005577c846fa0cb7f9c04
parent31104fbb7e109e9fe34a09878e4901761fa39f5d (diff)
downloadframeworks_base-107c4ce2ac9b76e7b4ed251fff8929958c5d3e63.zip
frameworks_base-107c4ce2ac9b76e7b4ed251fff8929958c5d3e63.tar.gz
frameworks_base-107c4ce2ac9b76e7b4ed251fff8929958c5d3e63.tar.bz2
Send broadcast when default dialer changes
Add hidden TelecomManager.setDefaultDialer for system apps to set the default dialer and trigger the broadcast Bug: 21846308 Change-Id: Ifdd30cd1323ab0157edf7fd966173b6c52df6ba0
-rw-r--r--api/current.txt1
-rw-r--r--api/system-current.txt1
-rw-r--r--core/res/AndroidManifest.xml2
-rw-r--r--telecomm/java/android/telecom/TelecomManager.java35
4 files changed, 39 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt
index f180460..9fd486e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -30560,6 +30560,7 @@ package android.telecom {
field public static final java.lang.String ACTION_CHANGE_DEFAULT_DIALER = "android.telecom.action.CHANGE_DEFAULT_DIALER";
field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
field public static final java.lang.String ACTION_CONNECTION_SERVICE_CONFIGURE = "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
+ field public static final java.lang.String ACTION_DEFAULT_DIALER_CHANGED = "android.telecom.action.DEFAULT_DIALER_CHANGED";
field public static final java.lang.String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
field public static final java.lang.String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS = "android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS";
field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS";
diff --git a/api/system-current.txt b/api/system-current.txt
index 025fbde..088920d 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -32776,6 +32776,7 @@ package android.telecom {
field public static final java.lang.String ACTION_CHANGE_DEFAULT_DIALER = "android.telecom.action.CHANGE_DEFAULT_DIALER";
field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
field public static final java.lang.String ACTION_CONNECTION_SERVICE_CONFIGURE = "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
+ field public static final java.lang.String ACTION_DEFAULT_DIALER_CHANGED = "android.telecom.action.DEFAULT_DIALER_CHANGED";
field public static final java.lang.String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
field public static final java.lang.String ACTION_PHONE_ACCOUNT_REGISTERED = "android.telecom.action.PHONE_ACCOUNT_REGISTERED";
field public static final java.lang.String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS = "android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS";
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index a434a13..65c064b 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -289,6 +289,8 @@
<protected-broadcast android:name="android.location.GPS_FIX_CHANGE" />
<protected-broadcast android:name="android.net.proxy.PAC_REFRESH" />
+ <protected-broadcast android:name="android.telecom.action.DEFAULT_DIALER_CHANGED" />
+
<protected-broadcast
android:name="com.android.server.connectivityservice.CONNECTED_TO_PROVISIONING_NETWORK_ACTION" />
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 368e137..0cd8c19 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -124,6 +124,16 @@ public class TelecomManager {
"android.telecom.action.CHANGE_DEFAULT_DIALER";
/**
+ * Broadcast intent action indicating that the current default dialer has changed.
+ * The string extra {@link #EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME} will contain the
+ * name of the package that the default dialer was changed to.
+ *
+ * @see #EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME
+ */
+ public static final String ACTION_DEFAULT_DIALER_CHANGED =
+ "android.telecom.action.DEFAULT_DIALER_CHANGED";
+
+ /**
* Extra value used to provide the package name for {@link #ACTION_CHANGE_DEFAULT_DIALER}.
*/
public static final String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME =
@@ -774,6 +784,31 @@ public class TelecomManager {
}
/**
+ * Used to set the default dialer package.
+ *
+ * @param packageName to set the default dialer to..
+ *
+ * @result {@code true} if the default dialer was successfully changed, {@code false} if
+ * the specified package does not correspond to an installed dialer, or is already
+ * the default dialer.
+ *
+ * Requires permission: {@link android.Manifest.permission#MODIFY_PHONE_STATE}
+ * Requires permission: {@link android.Manifest.permission#WRITE_SECURE_SETTINGS}
+ *
+ * @hide
+ */
+ public boolean setDefaultDialer(String packageName) {
+ try {
+ if (isServiceConnected()) {
+ return getTelecomService().setDefaultDialer(packageName);
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "RemoteException attempting to set the default dialer.", e);
+ }
+ return false;
+ }
+
+ /**
* Used to determine the dialer package that is preloaded on the system partition.
*
* @return package name for the system dialer package or null if no system dialer is preloaded.