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}