diff --git a/src/org/kde/kdeconnect/Helpers/ContactsHelper.java b/src/org/kde/kdeconnect/Helpers/ContactsHelper.java index a5b2713b..0f4574b4 100644 --- a/src/org/kde/kdeconnect/Helpers/ContactsHelper.java +++ b/src/org/kde/kdeconnect/Helpers/ContactsHelper.java @@ -23,44 +23,57 @@ package org.kde.kdeconnect.Helpers; import android.content.Context; import android.database.Cursor; import android.net.Uri; +import android.provider.ContactsContract; import android.provider.ContactsContract.PhoneLookup; +import android.util.Log; + +import java.util.HashMap; +import java.util.Map; public class ContactsHelper { - public static String phoneNumberLookup(Context context, String number) { + public static Map phoneNumberLookup(Context context, String number) { //Log.e("PhoneNumberLookup", number); + Map contactInfo = new HashMap(); + Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number)); Cursor cursor = null; try { cursor = context.getContentResolver().query( uri, new String[] { - PhoneLookup.DISPLAY_NAME + PhoneLookup.DISPLAY_NAME, + ContactsContract.PhoneLookup.PHOTO_URI /*, PhoneLookup.TYPE , PhoneLookup.LABEL , PhoneLookup.ID */ }, null, null, null); } catch (IllegalArgumentException e) { - return number; + return contactInfo; } // Take the first match only if (cursor != null && cursor.moveToFirst()) { int nameIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); if (nameIndex != -1) { - String name = cursor.getString(nameIndex); - //Log.e("PhoneNumberLookup", "success: " + name); + contactInfo.put("name", cursor.getString(nameIndex)); + } + + nameIndex = cursor.getColumnIndex(PhoneLookup.PHOTO_URI); + if (nameIndex != -1) { + contactInfo.put("photoID", cursor.getString(nameIndex)); + } + + if (!contactInfo.isEmpty()) { cursor.close(); - return name; + return contactInfo; } } - if (cursor != null) cursor.close(); - - return number; - + return contactInfo; } } + diff --git a/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java b/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java index 99e3e274..5c494db3 100644 --- a/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java @@ -35,6 +35,7 @@ import org.kde.kdeconnect.NetworkPackage; import org.kde.kdeconnect.Plugins.Plugin; import org.kde.kdeconnect_tp.R; +import java.util.Map; import java.util.Timer; import java.util.TimerTask; @@ -97,10 +98,12 @@ public class TelephonyPlugin extends Plugin { //Log.e("TelephonyPlugin", "callBroadcastReceived"); + Map contactInfo = ContactsHelper.phoneNumberLookup(context, phoneNumber); NetworkPackage np = new NetworkPackage(NetworkPackage.PACKAGE_TYPE_TELEPHONY); if (phoneNumber != null) { np.set("phoneNumber", phoneNumber); - np.set("contactName", ContactsHelper.phoneNumberLookup(context, phoneNumber)); + np.set("contactName", contactInfo.get("name")); + } } switch (state) { @@ -175,7 +178,7 @@ public class TelephonyPlugin extends Plugin { String phoneNumber = message.getOriginatingAddress(); if (phoneNumber != null) { np.set("phoneNumber", phoneNumber); - np.set("contactName", ContactsHelper.phoneNumberLookup(context, phoneNumber)); + np.set("contactName", ContactsHelper.phoneNumberLookup(context, phoneNumber).get("name")); } device.sendPackage(np);