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);
if (lContact == null) {
contactName.setText(LinphoneUtils.getAddressDisplayName(lAddress));
contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
ImageUtils.setDefaultContactImage(contactPicture);
} else {
contactName.setText(lContact.getFullName());
ImageUtils.setImagePictureFromUri(

View file

@ -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());

View file

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

View file

@ -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<LinphoneContact> mContacts, mSipContacts;
private ArrayList<ContactsUpdatedListener> 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<LinphoneContact> getContacts(String search) {
search = search.toLowerCase(Locale.getDefault());
List<LinphoneContact> searchContactsBegin = new ArrayList<>();

View file

@ -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);

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.
*/
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<Drawable> {
Object model,
Target<Drawable> 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);
}

View file

@ -69,22 +69,7 @@
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
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" />
<include layout="@layout/contact_avatar_big" />
</RelativeLayout>