diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3c8e8cee410..7ff21ca870e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -750,7 +750,7 @@
Fingerprint setup
-
To use your fingerprint to unlock your screen or confirm purchases, we\'ll need to:
@@ -5800,6 +5800,7 @@
text correction correct sound vibrate auto language gesture suggest suggestion theme offensive word type emoji international
reset preferences default
emergency ice app default
+ dialer default
apps download applications system
apps permissions security
apps default
@@ -6461,6 +6462,9 @@
No default Browser
+
+ Dialer app
+
(Default)
diff --git a/res/xml/default_apps.xml b/res/xml/default_apps.xml
index 392dd85a6ad..301c248f7ab 100644
--- a/res/xml/default_apps.xml
+++ b/res/xml/default_apps.xml
@@ -25,6 +25,12 @@
android:summary="@string/default_browser_title_none"
/>
+
+
dialerComponents =
+ DefaultDialerManager.getInstalledDialerApplications(getContext());
+
+ final String[] dialers = new String[dialerComponents.size()];
+ for (int i = 0; i < dialerComponents.size(); i++) {
+ dialers[i] = dialerComponents.get(i).getPackageName();
+ }
+ setPackageNames(dialers, getDefaultPackage());
+ }
+
+ private String getDefaultPackage() {
+ ComponentName appName = DefaultDialerManager.getDefaultDialerApplication(getContext());
+ if (appName != null) {
+ return appName.getPackageName();
+ }
+ return null;
+ }
+
+ public static boolean isAvailable(Context context) {
+ final TelephonyManager tm =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ if (!tm.isVoiceCapable()) {
+ return false;
+ }
+
+ final UserManager um =
+ (UserManager) context.getSystemService(Context.USER_SERVICE);
+ return !um.hasUserRestriction(UserManager.DISALLOW_OUTGOING_CALLS);
+ }
+}
diff --git a/src/com/android/settings/applications/ManageDefaultApps.java b/src/com/android/settings/applications/ManageDefaultApps.java
index 326de229728..6f58612cc40 100644
--- a/src/com/android/settings/applications/ManageDefaultApps.java
+++ b/src/com/android/settings/applications/ManageDefaultApps.java
@@ -26,6 +26,7 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.preference.Preference;
import android.provider.SearchIndexableResource;
+import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -47,8 +48,9 @@ public class ManageDefaultApps extends SettingsPreferenceFragment
private static final String TAG = ManageDefaultApps.class.getSimpleName();
private static final String KEY_DEFAULT_BROWSER = "default_browser";
- private static final String KEY_SMS_APPLICATION = "default_sms_app";
+ private static final String KEY_DEFAULT_DIALER = "default_dialer";
private static final String KEY_DEFAULT_EMERGENCY_APP = "default_emergency_app";
+ private static final String KEY_SMS_APPLICATION = "default_sms_app";
private DefaultBrowserPreference mDefaultBrowserPreference;
private PackageManager mPm;
@@ -84,6 +86,10 @@ public class ManageDefaultApps extends SettingsPreferenceFragment
removePreference(KEY_SMS_APPLICATION);
}
+ if (!DefaultDialerPreference.isAvailable(getActivity())) {
+ removePreference(KEY_DEFAULT_DIALER);
+ }
+
if (!DefaultEmergencyPreference.isAvailable(getActivity())) {
removePreference(KEY_DEFAULT_EMERGENCY_APP);
}