OSDN Git Service

Add fields for PhoneAccount to CallerInfo
authorHall Liu <hallliu@google.com>
Wed, 21 Nov 2018 22:40:19 +0000 (14:40 -0800)
committerHall Liu <hallliu@google.com>
Tue, 11 Dec 2018 02:46:07 +0000 (18:46 -0800)
Add fields to specify which outgoing phone account is stored in the
contacts db within the CallerInfo object.

Bug: 111455117
Test: manual, unit
Change-Id: Id402102e4605f6b414188a3eaf6442cf4282fcab

telephony/java/com/android/internal/telephony/CallerInfo.java

index 0abe45c..13539b8 100644 (file)
@@ -17,6 +17,7 @@
 package com.android.internal.telephony;
 
 import android.annotation.UnsupportedAppUsage;
+import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.Cursor;
@@ -32,15 +33,15 @@ import android.provider.ContactsContract.PhoneLookup;
 import android.provider.ContactsContract.RawContacts;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.Rlog;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
 import com.android.i18n.phonenumbers.NumberParseException;
 import com.android.i18n.phonenumbers.PhoneNumberUtil;
 import com.android.i18n.phonenumbers.Phonenumber.PhoneNumber;
-import android.telephony.SubscriptionManager;
+import com.android.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
 
 import java.util.Locale;
 
@@ -112,6 +113,9 @@ public class CallerInfo {
     public Uri contactRefUri;
     public String lookupKey;
 
+    public ComponentName preferredPhoneAccountComponent;
+    public String preferredPhoneAccountId;
+
     public long userType;
 
     /**
@@ -264,6 +268,17 @@ public class CallerInfo {
                     info.contactDisplayPhotoUri = null;
                 }
 
+                columnIndex = cursor.getColumnIndex(Data.PREFERRED_PHONE_ACCOUNT_COMPONENT_NAME);
+                if ((columnIndex != -1) && (cursor.getString(columnIndex) != null)) {
+                    info.preferredPhoneAccountComponent =
+                            ComponentName.unflattenFromString(cursor.getString(columnIndex));
+                }
+
+                columnIndex = cursor.getColumnIndex(Data.PREFERRED_PHONE_ACCOUNT_ID);
+                if ((columnIndex != -1) && (cursor.getString(columnIndex) != null)) {
+                    info.preferredPhoneAccountId = cursor.getString(columnIndex);
+                }
+
                 // look for the custom ringtone, create from the string stored
                 // in the database.
                 // An empty string ("") in the database indicates a silent ringtone,