Improved more code

This commit is contained in:
Sylvain Berfini 2019-02-21 14:33:45 +01:00
parent ec64e6f8c6
commit 2220f5595d
7 changed files with 13 additions and 48 deletions

View file

@ -1467,7 +1467,7 @@ public class CallActivity extends LinphoneGenericActivity
LinphoneContact lContact = ContactsManager.getInstance().findContactFromAddress(lAddress); LinphoneContact lContact = ContactsManager.getInstance().findContactFromAddress(lAddress);
if (lContact == null) { if (lContact == null) {
contactName.setText(LinphoneUtils.getAddressDisplayName(lAddress)); contactName.setText(LinphoneUtils.getAddressDisplayName(lAddress));
contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); ImageUtils.setDefaultContactImage(contactPicture);
} else { } else {
contactName.setText(lContact.getFullName()); contactName.setText(lContact.getFullName());
ImageUtils.setImagePictureFromUri( ImageUtils.setImagePictureFromUri(

View file

@ -49,8 +49,8 @@ import org.linphone.core.ProxyConfig;
import org.linphone.core.tools.Log; import org.linphone.core.tools.Log;
import org.linphone.fragments.FragmentsAvailable; import org.linphone.fragments.FragmentsAvailable;
import org.linphone.settings.LinphonePreferences; import org.linphone.settings.LinphonePreferences;
import org.linphone.utils.ImageUtils;
import org.linphone.utils.LinphoneUtils; import org.linphone.utils.LinphoneUtils;
import org.linphone.views.ContactAvatar;
public class ContactDetailsFragment extends Fragment public class ContactDetailsFragment extends Fragment
implements OnClickListener, ContactsUpdatedListener { implements OnClickListener, ContactsUpdatedListener {
@ -196,16 +196,7 @@ public class ContactDetailsFragment extends Fragment
@SuppressLint("InflateParams") @SuppressLint("InflateParams")
private void displayContact(LayoutInflater inflater, View view) { private void displayContact(LayoutInflater inflater, View view) {
ImageView contactPicture = view.findViewById(R.id.contact_picture); ContactAvatar.displayAvatar(mContact, view.findViewById(R.id.avatar_layout));
if (mContact.hasPhoto()) {
ImageUtils.setImagePictureFromUri(
getActivity(),
contactPicture,
mContact.getPhotoUri(),
mContact.getThumbnailUri());
} else {
contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
}
TextView contactName = view.findViewById(R.id.contact_name); TextView contactName = view.findViewById(R.id.contact_name);
contactName.setText(mContact.getFullName()); contactName.setText(mContact.getFullName());

View file

@ -317,7 +317,7 @@ public class ContactEditorFragment extends Fragment {
mContact.getPhotoUri(), mContact.getPhotoUri(),
mContact.getThumbnailUri()); mContact.getThumbnailUri());
} else { } else {
mContactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); ImageUtils.setDefaultContactImage(mContactPicture);
} }
mContactPicture.setOnClickListener( mContactPicture.setOnClickListener(

View file

@ -33,8 +33,6 @@ import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri; import android.net.Uri;
import android.os.RemoteException; import android.os.RemoteException;
import android.provider.ContactsContract; import android.provider.ContactsContract;
@ -63,7 +61,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen
private List<LinphoneContact> mContacts, mSipContacts; private List<LinphoneContact> mContacts, mSipContacts;
private ArrayList<ContactsUpdatedListener> mContactsUpdatedListeners; private ArrayList<ContactsUpdatedListener> mContactsUpdatedListeners;
private MagicSearch mMagicSearch; private MagicSearch mMagicSearch;
private final Bitmap mDefaultAvatar;
private boolean mContactsFetchedOnce = false; private boolean mContactsFetchedOnce = false;
private Context mContext; private Context mContext;
private AsyncContactsLoader mLoadContactTask; private AsyncContactsLoader mLoadContactTask;
@ -76,9 +73,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen
private ContactsManager() { private ContactsManager() {
super(LinphoneService.instance().handler); super(LinphoneService.instance().handler);
mDefaultAvatar =
BitmapFactory.decodeResource(
LinphoneService.instance().getResources(), R.drawable.avatar);
mContactsUpdatedListeners = new ArrayList<>(); mContactsUpdatedListeners = new ArrayList<>();
mContacts = new ArrayList<>(); mContacts = new ArrayList<>();
mSipContacts = new ArrayList<>(); mSipContacts = new ArrayList<>();
@ -134,7 +128,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen
list.removeListener(this); list.removeListener(this);
} }
} }
mDefaultAvatar.recycle();
sInstance = null; sInstance = null;
} }
@ -189,10 +182,6 @@ public class ContactsManager extends ContentObserver implements FriendListListen
return mContactsFetchedOnce; return mContactsFetchedOnce;
} }
public Bitmap getDefaultAvatarBitmap() {
return mDefaultAvatar;
}
public List<LinphoneContact> getContacts(String search) { public List<LinphoneContact> getContacts(String search) {
search = search.toLowerCase(Locale.getDefault()); search = search.toLowerCase(Locale.getDefault());
List<LinphoneContact> searchContactsBegin = new ArrayList<>(); List<LinphoneContact> searchContactsBegin = new ArrayList<>();

View file

@ -37,6 +37,10 @@ import org.linphone.R;
public class ImageUtils { public class ImageUtils {
public static void setDefaultContactImage(ImageView view) {
Glide.with(view).load(R.drawable.avatar).into(view);
}
public static void setImagePictureFromUri( public static void setImagePictureFromUri(
Context c, ImageView view, Uri pictureUri, Uri thumbnailUri) { Context c, ImageView view, Uri pictureUri, Uri thumbnailUri) {
Glide.with(c).load(pictureUri).thumbnail(Glide.with(c).load(thumbnailUri)).into(view); Glide.with(c).load(pictureUri).thumbnail(Glide.with(c).load(thumbnailUri)).into(view);

View file

@ -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. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.view.View; import android.view.View;
import android.widget.ImageView; 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.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target; import com.bumptech.glide.request.target.Target;
import org.linphone.LinphoneService;
import org.linphone.R; import org.linphone.R;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.core.ChatRoomSecurityLevel; import org.linphone.core.ChatRoomSecurityLevel;
@ -60,9 +58,9 @@ class ContactAvatarHolder implements RequestListener<Drawable> {
Object model, Object model,
Target<Drawable> target, Target<Drawable> target,
boolean isFirstResource) { boolean isFirstResource) {
generatedAvatar.setVisibility(View.VISIBLE);
contactPicture.setVisibility(View.GONE); contactPicture.setVisibility(View.GONE);
return true; generatedAvatar.setVisibility(View.VISIBLE);
return false;
} }
@Override @Override
@ -161,12 +159,10 @@ public class ContactAvatar {
: contact.getFullName())); : contact.getFullName()));
holder.generatedAvatar.setVisibility(View.GONE); holder.generatedAvatar.setVisibility(View.GONE);
Context c = LinphoneService.instance().getApplicationContext();
holder.contactPicture.setVisibility(View.VISIBLE); holder.contactPicture.setVisibility(View.VISIBLE);
Glide.with(c) Glide.with(v)
.load(contact.getPhotoUri()) .load(contact.getPhotoUri())
.thumbnail(Glide.with(c).load(contact.getThumbnailUri())) .error(Glide.with(v).load(contact.getThumbnailUri()).listener(holder))
.listener(holder)
.into(holder.contactPicture); .into(holder.contactPicture);
holder.securityLevel.setVisibility(View.GONE); holder.securityLevel.setVisibility(View.GONE);
} }

View file

@ -69,22 +69,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center"> android:gravity="center">
<ImageView <include layout="@layout/contact_avatar_big" />
android:id="@+id/contact_picture"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_contact_picture"
android:src="@drawable/avatar" />
<ImageView
android:id="@+id/mask"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentLeft="true"
android:adjustViewBounds="true"
android:src="@drawable/avatar_mask" />
</RelativeLayout> </RelativeLayout>