Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ec6106a authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Dialer: add SIM photo in call log"

parents af68a61a f3327d31
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -616,7 +616,7 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe
                mResources.getString(R.string.description_contact_details, displayName));

        mContactPhotoManager.loadDirectoryPhoto(mQuickContactBadge, photoUri,
                false /* darkTheme */, true /* isCircular */, request);
                null, false /* darkTheme */, true /* isCircular */, request);
    }

    static final class ViewEntry {
+18 −7
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.dialer.calllog;

import android.accounts.Account;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
@@ -763,6 +764,9 @@ public class CallLogAdapter extends GroupingListAdapter
        }

        final PhoneCallDetails details;
        final String accountName = info.accountName;
        final String accountType = info.accountType;
        Account contactAccount;

        views.reported = info.isBadData;

@@ -808,10 +812,17 @@ public class CallLogAdapter extends GroupingListAdapter
            nameForDefaultImage = name;
        }

        if (!TextUtils.isEmpty(accountName) && !TextUtils.isEmpty(accountType)) {
            contactAccount = new Account(accountName, accountType);
        } else {
            contactAccount = null;
        }
        if (photoId == 0 && photoUri != null) {
            setPhoto(views, photoUri, lookupUri, nameForDefaultImage, lookupKey, contactType);
            setPhoto(views, photoUri, lookupUri, nameForDefaultImage, lookupKey, contactType,
                    contactAccount);
        } else {
            setPhoto(views, photoId, lookupUri, nameForDefaultImage, lookupKey, contactType);
            setPhoto(views, photoId, lookupUri, nameForDefaultImage, lookupKey, contactType,
                    contactAccount);
        }

        // Listen for the first draw
@@ -1213,22 +1224,22 @@ public class CallLogAdapter extends GroupingListAdapter
    }

    private void setPhoto(CallLogListItemViews views, long photoId, Uri contactUri,
            String displayName, String identifier, int contactType) {
            String displayName, String identifier, int contactType, Account account) {
        views.quickContactView.assignContactUri(contactUri);
        views.quickContactView.setOverlay(null);
        DefaultImageRequest request = new DefaultImageRequest(displayName, identifier,
                contactType, true /* isCircular */);
        mContactPhotoManager.loadThumbnail(views.quickContactView, photoId, false /* darkTheme */,
                true /* isCircular */, request);
        mContactPhotoManager.loadThumbnail(views.quickContactView, photoId, account,
                false /* darkTheme */, true /* isCircular */, request);
    }

    private void setPhoto(CallLogListItemViews views, Uri photoUri, Uri contactUri,
            String displayName, String identifier, int contactType) {
            String displayName, String identifier, int contactType, Account account) {
        views.quickContactView.assignContactUri(contactUri);
        views.quickContactView.setOverlay(null);
        DefaultImageRequest request = new DefaultImageRequest(displayName, identifier,
                contactType, true /* isCircular */);
        mContactPhotoManager.loadDirectoryPhoto(views.quickContactView, photoUri,
        mContactPhotoManager.loadDirectoryPhoto(views.quickContactView, photoUri, account,
                false /* darkTheme */, true /* isCircular */, request);
    }

+3 −0
Original line number Diff line number Diff line
@@ -41,6 +41,9 @@ public class ContactInfo {
    public boolean isBadData;
    public String objectId;

    public String accountType;
    public String accountName;

    public static ContactInfo EMPTY = new ContactInfo();

    public static String GEOCODE_AS_LABEL = "";
+17 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@

package com.android.dialer.calllog;

import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
@@ -22,6 +23,7 @@ import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.DisplayNameSources;
import android.provider.ContactsContract.PhoneLookup;
import android.provider.ContactsContract.RawContacts;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;

@@ -152,6 +154,7 @@ public class ContactInfoHelper {
        final ContactInfo info;
        Cursor phonesCursor =
                mContext.getContentResolver().query(uri, PhoneQuery._PROJECTION, null, null, null);
        long id = -1;

        if (phonesCursor != null) {
            try {
@@ -170,9 +173,23 @@ public class ContactInfoHelper {
                    info.photoUri =
                            UriUtils.parseUriOrNull(phonesCursor.getString(PhoneQuery.PHOTO_URI));
                    info.formattedNumber = null;
                    id = contactId;
                } else {
                    info = ContactInfo.EMPTY;
                }
                if (id != -1) {
                    Uri contactUri = ContentUris.withAppendedId(
                            Contacts.CONTENT_URI, id);
                    Cursor cursor = mContext.getContentResolver().query(
                            contactUri,
                            new String[] { RawContacts.ACCOUNT_TYPE, RawContacts.ACCOUNT_NAME },
                            null, null, null);
                    if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
                        info.accountType = cursor.getString(0);
                        info.accountName = cursor.getString(1);
                        cursor.close();
                    }
                }
            } finally {
                phonesCursor.close();
            }
+18 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.Lists;

import android.accounts.Account;
import android.content.ContentProviderOperation;
import android.content.ContentUris;
import android.content.ContentValues;
@@ -104,6 +105,9 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
    protected int mPinnedIndex;
    protected int mContactIdIndex;

    protected int mAccountTypeIndex;
    protected int mAccountNameIndex;

    /** Indicates whether a drag is in process. */
    private boolean mInDragging = false;

@@ -185,6 +189,9 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
        mIsDefaultNumberIndex = ContactTileLoaderFactory.IS_DEFAULT_NUMBER;
        mPinnedIndex = ContactTileLoaderFactory.PINNED;
        mContactIdIndex = ContactTileLoaderFactory.CONTACT_ID_FOR_DATA;

        mAccountTypeIndex = ContactTileLoaderFactory.ACCOUNT_TYPE;
        mAccountNameIndex = ContactTileLoaderFactory.ACCOUNT_NAME;
    }

    /**
@@ -264,6 +271,8 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
            final String name = cursor.getString(mNameIndex);
            final boolean isStarred = cursor.getInt(mStarredIndex) > 0;
            final boolean isDefaultNumber = cursor.getInt(mIsDefaultNumberIndex) > 0;
            final String accountName = cursor.getString(mAccountNameIndex);
            final String accountType = cursor.getString(mAccountTypeIndex);

            final ContactEntry contact = new ContactEntry();

@@ -285,6 +294,15 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
            contact.phoneNumber = cursor.getString(mPhoneNumberIndex);

            contact.pinned = pinned;

            Account account;
            if (!TextUtils.isEmpty(accountName) && !TextUtils.isEmpty(accountType)) {
                account = new Account(accountName, accountType);
            } else {
                account = null;
            }
            contact.account = account;

            mContactEntries.add(contact);

            duplicates.put(id, contact);