From 2220f5595d61ee0d23b76601bc6d8435e76f90a8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 21 Feb 2019 14:33:45 +0100 Subject: [PATCH] Improved more code --- .../java/org/linphone/call/CallActivity.java | 2 +- .../contacts/ContactDetailsFragment.java | 13 ++----------- .../contacts/ContactEditorFragment.java | 2 +- .../org/linphone/contacts/ContactsManager.java | 11 ----------- .../java/org/linphone/utils/ImageUtils.java | 4 ++++ .../java/org/linphone/views/ContactAvatar.java | 12 ++++-------- app/src/main/res/layout/contact.xml | 17 +---------------- 7 files changed, 13 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/org/linphone/call/CallActivity.java b/app/src/main/java/org/linphone/call/CallActivity.java index 3fd7a196e..5ad2898a9 100644 --- a/app/src/main/java/org/linphone/call/CallActivity.java +++ b/app/src/main/java/org/linphone/call/CallActivity.java @@ -1467,7 +1467,7 @@ public class CallActivity extends LinphoneGenericActivity LinphoneContact lContact = ContactsManager.getInstance().findContactFromAddress(lAddress); if (lContact == null) { contactName.setText(LinphoneUtils.getAddressDisplayName(lAddress)); - contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); + ImageUtils.setDefaultContactImage(contactPicture); } else { contactName.setText(lContact.getFullName()); ImageUtils.setImagePictureFromUri( diff --git a/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java b/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java index 706230849..eba0b1dc5 100644 --- a/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java @@ -49,8 +49,8 @@ import org.linphone.core.ProxyConfig; import org.linphone.core.tools.Log; import org.linphone.fragments.FragmentsAvailable; import org.linphone.settings.LinphonePreferences; -import org.linphone.utils.ImageUtils; import org.linphone.utils.LinphoneUtils; +import org.linphone.views.ContactAvatar; public class ContactDetailsFragment extends Fragment implements OnClickListener, ContactsUpdatedListener { @@ -196,16 +196,7 @@ public class ContactDetailsFragment extends Fragment @SuppressLint("InflateParams") private void displayContact(LayoutInflater inflater, View view) { - ImageView contactPicture = view.findViewById(R.id.contact_picture); - if (mContact.hasPhoto()) { - ImageUtils.setImagePictureFromUri( - getActivity(), - contactPicture, - mContact.getPhotoUri(), - mContact.getThumbnailUri()); - } else { - contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); - } + ContactAvatar.displayAvatar(mContact, view.findViewById(R.id.avatar_layout)); TextView contactName = view.findViewById(R.id.contact_name); contactName.setText(mContact.getFullName()); diff --git a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java index 354dbdea1..d5da9843d 100644 --- a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java @@ -317,7 +317,7 @@ public class ContactEditorFragment extends Fragment { mContact.getPhotoUri(), mContact.getThumbnailUri()); } else { - mContactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); + ImageUtils.setDefaultContactImage(mContactPicture); } mContactPicture.setOnClickListener( diff --git a/app/src/main/java/org/linphone/contacts/ContactsManager.java b/app/src/main/java/org/linphone/contacts/ContactsManager.java index 382fccdec..084bdc915 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsManager.java +++ b/app/src/main/java/org/linphone/contacts/ContactsManager.java @@ -33,8 +33,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.database.ContentObserver; import android.database.Cursor; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.net.Uri; import android.os.RemoteException; import android.provider.ContactsContract; @@ -63,7 +61,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen private List mContacts, mSipContacts; private ArrayList mContactsUpdatedListeners; private MagicSearch mMagicSearch; - private final Bitmap mDefaultAvatar; private boolean mContactsFetchedOnce = false; private Context mContext; private AsyncContactsLoader mLoadContactTask; @@ -76,9 +73,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen private ContactsManager() { super(LinphoneService.instance().handler); - mDefaultAvatar = - BitmapFactory.decodeResource( - LinphoneService.instance().getResources(), R.drawable.avatar); mContactsUpdatedListeners = new ArrayList<>(); mContacts = new ArrayList<>(); mSipContacts = new ArrayList<>(); @@ -134,7 +128,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen list.removeListener(this); } } - mDefaultAvatar.recycle(); sInstance = null; } @@ -189,10 +182,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen return mContactsFetchedOnce; } - public Bitmap getDefaultAvatarBitmap() { - return mDefaultAvatar; - } - public List getContacts(String search) { search = search.toLowerCase(Locale.getDefault()); List searchContactsBegin = new ArrayList<>(); diff --git a/app/src/main/java/org/linphone/utils/ImageUtils.java b/app/src/main/java/org/linphone/utils/ImageUtils.java index ddc749a43..4b630fa19 100644 --- a/app/src/main/java/org/linphone/utils/ImageUtils.java +++ b/app/src/main/java/org/linphone/utils/ImageUtils.java @@ -37,6 +37,10 @@ import org.linphone.R; public class ImageUtils { + public static void setDefaultContactImage(ImageView view) { + Glide.with(view).load(R.drawable.avatar).into(view); + } + public static void setImagePictureFromUri( Context c, ImageView view, Uri pictureUri, Uri thumbnailUri) { Glide.with(c).load(pictureUri).thumbnail(Glide.with(c).load(thumbnailUri)).into(view); diff --git a/app/src/main/java/org/linphone/views/ContactAvatar.java b/app/src/main/java/org/linphone/views/ContactAvatar.java index 879598e5e..aa018b7be 100644 --- a/app/src/main/java/org/linphone/views/ContactAvatar.java +++ b/app/src/main/java/org/linphone/views/ContactAvatar.java @@ -19,7 +19,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import android.content.Context; import android.graphics.drawable.Drawable; import android.view.View; import android.widget.ImageView; @@ -30,7 +29,6 @@ import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.engine.GlideException; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; -import org.linphone.LinphoneService; import org.linphone.R; import org.linphone.contacts.LinphoneContact; import org.linphone.core.ChatRoomSecurityLevel; @@ -60,9 +58,9 @@ class ContactAvatarHolder implements RequestListener { Object model, Target target, boolean isFirstResource) { - generatedAvatar.setVisibility(View.VISIBLE); contactPicture.setVisibility(View.GONE); - return true; + generatedAvatar.setVisibility(View.VISIBLE); + return false; } @Override @@ -161,12 +159,10 @@ public class ContactAvatar { : contact.getFullName())); holder.generatedAvatar.setVisibility(View.GONE); - Context c = LinphoneService.instance().getApplicationContext(); holder.contactPicture.setVisibility(View.VISIBLE); - Glide.with(c) + Glide.with(v) .load(contact.getPhotoUri()) - .thumbnail(Glide.with(c).load(contact.getThumbnailUri())) - .listener(holder) + .error(Glide.with(v).load(contact.getThumbnailUri()).listener(holder)) .into(holder.contactPicture); holder.securityLevel.setVisibility(View.GONE); } diff --git a/app/src/main/res/layout/contact.xml b/app/src/main/res/layout/contact.xml index d55e91fca..9789df77e 100644 --- a/app/src/main/res/layout/contact.xml +++ b/app/src/main/res/layout/contact.xml @@ -69,22 +69,7 @@ android:layout_height="wrap_content" android:gravity="center"> - - - +