1package eu.siacs.conversations.utils;
2
3import android.Manifest;
4import android.annotation.SuppressLint;
5import android.content.Context;
6import android.content.pm.PackageManager;
7import android.database.Cursor;
8import android.net.Uri;
9import android.provider.ContactsContract.Profile;
10import android.provider.Settings;
11import com.google.common.base.Strings;
12import eu.siacs.conversations.services.QuickConversationsService;
13
14public class PhoneHelper {
15
16 @SuppressLint("HardwareIds")
17 public static String getAndroidId(final Context context) {
18 return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
19 }
20
21 public static Uri getProfilePictureUri(final Context context) {
22 if (!QuickConversationsService.isContactListIntegration(context)
23 || context.checkSelfPermission(Manifest.permission.READ_CONTACTS)
24 != PackageManager.PERMISSION_GRANTED) {
25 return null;
26 }
27 final String[] projection = new String[] {Profile._ID, Profile.PHOTO_URI};
28 try (final Cursor cursor =
29 context.getContentResolver()
30 .query(Profile.CONTENT_URI, projection, null, null, null)) {
31 if (cursor != null && cursor.moveToFirst()) {
32 final var photoUri = cursor.getString(1);
33 if (Strings.isNullOrEmpty(photoUri)) {
34 return null;
35 }
36 return Uri.parse(photoUri);
37 }
38 }
39 return null;
40 }
41}