mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-09-02 15:15:09 +00:00
Adapt phoneNumberLookup to return more information
It returns now photoID plus the name and it can be easily expanded in the future if required.
This commit is contained in:
@@ -23,44 +23,57 @@ package org.kde.kdeconnect.Helpers;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.provider.ContactsContract;
|
||||||
import android.provider.ContactsContract.PhoneLookup;
|
import android.provider.ContactsContract.PhoneLookup;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public class ContactsHelper {
|
public class ContactsHelper {
|
||||||
|
|
||||||
public static String phoneNumberLookup(Context context, String number) {
|
public static Map<String, String> phoneNumberLookup(Context context, String number) {
|
||||||
|
|
||||||
//Log.e("PhoneNumberLookup", number);
|
//Log.e("PhoneNumberLookup", number);
|
||||||
|
|
||||||
|
Map<String, String> contactInfo = new HashMap<String, String>();
|
||||||
|
|
||||||
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
|
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
|
||||||
Cursor cursor = null;
|
Cursor cursor = null;
|
||||||
try {
|
try {
|
||||||
cursor = context.getContentResolver().query(
|
cursor = context.getContentResolver().query(
|
||||||
uri,
|
uri,
|
||||||
new String[] {
|
new String[] {
|
||||||
PhoneLookup.DISPLAY_NAME
|
PhoneLookup.DISPLAY_NAME,
|
||||||
|
ContactsContract.PhoneLookup.PHOTO_URI
|
||||||
/*, PhoneLookup.TYPE
|
/*, PhoneLookup.TYPE
|
||||||
, PhoneLookup.LABEL
|
, PhoneLookup.LABEL
|
||||||
, PhoneLookup.ID */
|
, PhoneLookup.ID */
|
||||||
},
|
},
|
||||||
null, null, null);
|
null, null, null);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
return number;
|
return contactInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Take the first match only
|
// Take the first match only
|
||||||
if (cursor != null && cursor.moveToFirst()) {
|
if (cursor != null && cursor.moveToFirst()) {
|
||||||
int nameIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
|
int nameIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
|
||||||
if (nameIndex != -1) {
|
if (nameIndex != -1) {
|
||||||
String name = cursor.getString(nameIndex);
|
contactInfo.put("name", cursor.getString(nameIndex));
|
||||||
//Log.e("PhoneNumberLookup", "success: " + name);
|
}
|
||||||
|
|
||||||
|
nameIndex = cursor.getColumnIndex(PhoneLookup.PHOTO_URI);
|
||||||
|
if (nameIndex != -1) {
|
||||||
|
contactInfo.put("photoID", cursor.getString(nameIndex));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!contactInfo.isEmpty()) {
|
||||||
cursor.close();
|
cursor.close();
|
||||||
return name;
|
return contactInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cursor != null) cursor.close();
|
return contactInfo;
|
||||||
|
|
||||||
return number;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -35,6 +35,7 @@ import org.kde.kdeconnect.NetworkPackage;
|
|||||||
import org.kde.kdeconnect.Plugins.Plugin;
|
import org.kde.kdeconnect.Plugins.Plugin;
|
||||||
import org.kde.kdeconnect_tp.R;
|
import org.kde.kdeconnect_tp.R;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
@@ -97,10 +98,12 @@ public class TelephonyPlugin extends Plugin {
|
|||||||
|
|
||||||
//Log.e("TelephonyPlugin", "callBroadcastReceived");
|
//Log.e("TelephonyPlugin", "callBroadcastReceived");
|
||||||
|
|
||||||
|
Map<String, String> contactInfo = ContactsHelper.phoneNumberLookup(context, phoneNumber);
|
||||||
NetworkPackage np = new NetworkPackage(NetworkPackage.PACKAGE_TYPE_TELEPHONY);
|
NetworkPackage np = new NetworkPackage(NetworkPackage.PACKAGE_TYPE_TELEPHONY);
|
||||||
if (phoneNumber != null) {
|
if (phoneNumber != null) {
|
||||||
np.set("phoneNumber", phoneNumber);
|
np.set("phoneNumber", phoneNumber);
|
||||||
np.set("contactName", ContactsHelper.phoneNumberLookup(context, phoneNumber));
|
np.set("contactName", contactInfo.get("name"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
@@ -175,7 +178,7 @@ public class TelephonyPlugin extends Plugin {
|
|||||||
String phoneNumber = message.getOriginatingAddress();
|
String phoneNumber = message.getOriginatingAddress();
|
||||||
if (phoneNumber != null) {
|
if (phoneNumber != null) {
|
||||||
np.set("phoneNumber", phoneNumber);
|
np.set("phoneNumber", phoneNumber);
|
||||||
np.set("contactName", ContactsHelper.phoneNumberLookup(context, phoneNumber));
|
np.set("contactName", ContactsHelper.phoneNumberLookup(context, phoneNumber).get("name"));
|
||||||
}
|
}
|
||||||
|
|
||||||
device.sendPackage(np);
|
device.sendPackage(np);
|
||||||
|
Reference in New Issue
Block a user