Implement getVisualVoicemailPackageName()

Bug: 32414216
Test: cts test android.provider.cts.VoicemailContractTest
    android.telephony.cts.VisualVoicemailServiceTest

Change-Id: I5e9c295256833f9d33513b2e834b0c5c3c929d4b
Merged-in: I5e9c295256833f9d33513b2e834b0c5c3c929d4b
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 81de9d7..3fb8544 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -19,6 +19,7 @@
 import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
 
 import android.Manifest.permission;
+import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.app.AppOpsManager;
 import android.app.PendingIntent;
@@ -2035,6 +2036,17 @@
     }
 
     @Override
+    public String getVisualVoicemailPackageName(String callingPackage,
+            @Nullable PhoneAccountHandle phoneAccountHandle) {
+        mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+        if (!canReadPhoneState(callingPackage, "getVisualVoicemailPackageName")) {
+            return null;
+        }
+        int subId = PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle);
+        return RemoteVvmTaskManager.getRemotePackage(mPhone.getContext(), subId).getPackageName();
+    }
+
+    @Override
     public void enableVisualVoicemailSmsFilter(String callingPackage, int subId,
             VisualVoicemailSmsFilterSettings settings) {
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);