Implement system API to get the default phone app.

Change-Id: I6aded7a9ec36f6fd0dfa70d56c6e5fd1fe40707c
diff --git a/src/com/android/telecomm/TelecommServiceImpl.java b/src/com/android/telecomm/TelecommServiceImpl.java
index 9793fda..bf25432 100644
--- a/src/com/android/telecomm/TelecommServiceImpl.java
+++ b/src/com/android/telecomm/TelecommServiceImpl.java
@@ -64,6 +64,11 @@
         }
     };
 
+    /** Private constructor; @see init() */
+    private TelecommServiceImpl() {
+        publish();
+    }
+
     /**
      * Initialize the singleton TelecommServiceImpl instance.
      * This is only done once, at startup, from TelecommApp.onCreate().
@@ -79,21 +84,28 @@
         }
     }
 
-    /** Private constructor; @see init() */
-    private TelecommServiceImpl() {
-        publish();
-    }
-
-    private void publish() {
-        Log.d(this, "publish: %s", this);
-        ServiceManager.addService(SERVICE_NAME, this);
-    }
-
     //
     // Implementation of the ITelephony interface.
     //
 
     @Override
+    public List<Subscription> getSubscriptions() {
+        return sSubscriptions;
+    }
+
+    @Override
+    public void setEnabled(Subscription subscription, boolean enabled) {
+        // Enforce MODIFY_PHONE_STATE ?
+        // TODO
+    }
+
+    @Override
+    public void setSystemDefault(Subscription subscription) {
+        // Enforce MODIFY_PHONE_STATE ?
+        // TODO
+    }
+
+    @Override
     public void silenceRinger() {
         Log.d(this, "silenceRinger");
         // TODO: find a more appropriate permission to check here.
@@ -101,6 +113,18 @@
         mHandler.sendEmptyMessage(MSG_SILENCE_RINGER);
     }
 
+    @Override
+    public ComponentName getDefaultPhoneApp() {
+        Resources resources = TelecommApp.getInstance().getResources();
+        return new ComponentName(
+                resources.getString(R.string.ui_default_package),
+                resources.getString(R.string.dialer_default_class));
+    }
+
+    //
+    // Supporting methods for the ITelephony interface implementation.
+    //
+
     /**
      * Internal implemenation of silenceRinger().
      * This should only be called from the main thread of the Phone app.
@@ -174,22 +198,8 @@
                     false)
     );
 
-
-
-    @Override
-    public List<Subscription> getSubscriptions() {
-        return sSubscriptions;
-    }
-
-    @Override
-    public void setEnabled(Subscription subscription, boolean enabled) {
-        // Enforce MODIFY_PHONE_STATE ?
-        // TODO
-    }
-
-    @Override
-    public void setSystemDefault(Subscription subscription) {
-        // Enforce MODIFY_PHONE_STATE ?
-        // TODO
+    private void publish() {
+        Log.d(this, "publish: %s", this);
+        ServiceManager.addService(SERVICE_NAME, this);
     }
 }