blob: 274af332d487f7aa698fc1f8574aa1a1a6f55872 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package it.niedermann.nextcloud.deck.util;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.provider.ContactsContract;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import java.util.NoSuchElementException;
import java.util.Objects;
import it.niedermann.nextcloud.deck.R;
public class VCardUtil {
private VCardUtil() {
// You shall not pass
}
public static Uri getVCardContentUri(@NonNull Context context, @NonNull Uri contactUri) throws NoSuchElementException {
final ContentResolver cr = context.getContentResolver();
try (final Cursor cursor = cr.query(contactUri, null, null, null, null)) {
if (cursor != null && cursor.moveToFirst()) {
final String lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
return Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
} else {
throw new NoSuchElementException("Cursor has zero entries");
}
}
}
@ColorInt
public static int getColorBasedOnDisplayName(@NonNull Context context, @NonNull String displayName) {
final String[] colors = context.getResources().getStringArray(R.array.board_default_colors);
final int hashCode = Objects.hashCode(displayName);
return Color.parseColor(colors[(hashCode < 0 ? hashCode * -1 : hashCode) % colors.length]);
}
}
|