diff options
Diffstat (limited to 'src/com/android/messaging/datamodel/data/VCardContactItemData.java')
-rw-r--r-- | src/com/android/messaging/datamodel/data/VCardContactItemData.java | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/src/com/android/messaging/datamodel/data/VCardContactItemData.java b/src/com/android/messaging/datamodel/data/VCardContactItemData.java deleted file mode 100644 index 8abf493..0000000 --- a/src/com/android/messaging/datamodel/data/VCardContactItemData.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.messaging.datamodel.data; - -import android.content.Context; -import android.content.Intent; -import android.net.Uri; - -import com.android.messaging.R; -import com.android.messaging.datamodel.binding.Binding; -import com.android.messaging.datamodel.binding.BindingBase; -import com.android.messaging.datamodel.media.BindableMediaRequest; -import com.android.messaging.datamodel.media.MediaRequest; -import com.android.messaging.datamodel.media.MediaResourceManager; -import com.android.messaging.datamodel.media.MediaResourceManager.MediaResourceLoadListener; -import com.android.messaging.datamodel.media.VCardRequestDescriptor; -import com.android.messaging.datamodel.media.VCardResource; -import com.android.messaging.datamodel.media.VCardResourceEntry; -import com.android.messaging.util.Assert; -import com.android.messaging.util.AvatarUriUtil; -import com.android.messaging.util.ContactUtil; - -import java.util.List; - -/** - * Data class for visualizing and loading data for a VCard contact. - */ -public class VCardContactItemData extends PersonItemData - implements MediaResourceLoadListener<VCardResource> { - private final Context mContext; - private final Uri mVCardUri; - private String mDetails; - private final Binding<BindableMediaRequest<VCardResource>> mBinding = - BindingBase.createBinding(this); - private VCardResource mVCardResource; - - private static final Uri sDefaultAvatarUri = - AvatarUriUtil.createAvatarUri(null, null, null, null); - - /** - * Constructor. This parses data from the given MessagePartData describing the vcard - */ - public VCardContactItemData(final Context context, final MessagePartData messagePartData) { - this(context, messagePartData.getContentUri()); - Assert.isTrue(messagePartData.isVCard()); - } - - /** - * Constructor. This parses data from the given VCard Uri - */ - public VCardContactItemData(final Context context, final Uri vCardUri) { - mContext = context; - mDetails = mContext.getString(R.string.loading_vcard); - mVCardUri = vCardUri; - } - - @Override - public Uri getAvatarUri() { - if (hasValidVCard()) { - final List<VCardResourceEntry> vcards = mVCardResource.getVCards(); - Assert.isTrue(vcards.size() > 0); - if (vcards.size() == 1) { - return vcards.get(0).getAvatarUri(); - } - } - return sDefaultAvatarUri; - } - - @Override - public String getDisplayName() { - if (hasValidVCard()) { - final List<VCardResourceEntry> vcards = mVCardResource.getVCards(); - Assert.isTrue(vcards.size() > 0); - if (vcards.size() == 1) { - return vcards.get(0).getDisplayName(); - } else { - return mContext.getResources().getQuantityString( - R.plurals.vcard_multiple_display_name, vcards.size(), vcards.size()); - } - } - return null; - } - - @Override - public String getDetails() { - return mDetails; - } - - @Override - public Intent getClickIntent() { - return null; - } - - @Override - public long getContactId() { - return ContactUtil.INVALID_CONTACT_ID; - } - - @Override - public String getLookupKey() { - return null; - } - - @Override - public String getNormalizedDestination() { - return null; - } - - public VCardResource getVCardResource() { - return hasValidVCard() ? mVCardResource : null; - } - - public Uri getVCardUri() { - return hasValidVCard() ? mVCardUri : null; - } - - public boolean hasValidVCard() { - return isBound() && mVCardResource != null; - } - - @Override - public void bind(final String bindingId) { - super.bind(bindingId); - - // Bind and request the VCard from media resource manager. - mBinding.bind(new VCardRequestDescriptor(mVCardUri).buildAsyncMediaRequest(mContext, this)); - MediaResourceManager.get().requestMediaResourceAsync(mBinding.getData()); - } - - @Override - public void unbind(final String bindingId) { - super.unbind(bindingId); - mBinding.unbind(); - if (mVCardResource != null) { - mVCardResource.release(); - mVCardResource = null; - } - } - - @Override - public boolean equals(final Object o) { - if (this == o) { - return true; - } - - if (!(o instanceof VCardContactItemData)) { - return false; - } - - final VCardContactItemData lhs = (VCardContactItemData) o; - return mVCardUri.equals(lhs.mVCardUri); - } - - @Override - public void onMediaResourceLoaded(final MediaRequest<VCardResource> request, - final VCardResource resource, final boolean isCached) { - Assert.isTrue(mVCardResource == null); - mBinding.ensureBound(); - mDetails = mContext.getString(R.string.vcard_tap_hint); - mVCardResource = resource; - mVCardResource.addRef(); - notifyDataUpdated(); - } - - @Override - public void onMediaResourceLoadError(final MediaRequest<VCardResource> request, - final Exception exception) { - mBinding.ensureBound(); - mDetails = mContext.getString(R.string.failed_loading_vcard); - notifyDataFailed(exception); - } -} |