diff --git a/app/src/main/java/org/linphone/call/CallActivity.java b/app/src/main/java/org/linphone/call/CallActivity.java index fb0fa586d..2d12197cf 100644 --- a/app/src/main/java/org/linphone/call/CallActivity.java +++ b/app/src/main/java/org/linphone/call/CallActivity.java @@ -87,9 +87,9 @@ import org.linphone.fragments.StatusFragment; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; import org.linphone.receivers.BluetoothManager; import org.linphone.settings.LinphonePreferences; -import org.linphone.utils.ImageUtils; import org.linphone.utils.LinphoneGenericActivity; import org.linphone.utils.LinphoneUtils; +import org.linphone.views.ContactAvatar; import org.linphone.views.Numpad; public class CallActivity extends LinphoneGenericActivity @@ -119,7 +119,6 @@ public class CallActivity extends LinphoneGenericActivity mTransfer, mConference, mConferenceStatus, - mContactPicture, mRecordCall, mRecording; private ImageView mAudioRoute, mRouteSpeaker, mRouteEarpiece, mRouteBluetooth, mMenu, mChat; @@ -425,7 +424,6 @@ public class CallActivity extends LinphoneGenericActivity mNoCurrentCall = findViewById(R.id.no_current_call); mCallPaused = findViewById(R.id.remote_pause); - mContactPicture = findViewById(R.id.contact_picture); mAvatarLayout = findViewById(R.id.avatar_layout); // Options @@ -1423,7 +1421,7 @@ public class CallActivity extends LinphoneGenericActivity private void displayCurrentCall(Call call) { Address lAddress = call.getRemoteAddress(); TextView contactName = findViewById(R.id.current_contact_name); - setContactInformation(contactName, mContactPicture, lAddress); + setContactInformation(contactName, lAddress); registerCallDurationTimer(null, call); } @@ -1449,29 +1447,35 @@ public class CallActivity extends LinphoneGenericActivity callView.setId(index + 1); TextView contactName = callView.findViewById(R.id.contact_name); - ImageView contactImage = callView.findViewById(R.id.contact_picture); Address lAddress = call.getRemoteAddress(); - setContactInformation(contactName, contactImage, lAddress); + LinphoneContact lContact = + ContactsManager.getInstance().findContactFromAddress(lAddress); + + if (lContact == null) { + String displayName = LinphoneUtils.getAddressDisplayName(lAddress); + contactName.setText(displayName); + ContactAvatar.displayAvatar(displayName, callView.findViewById(R.id.avatar_layout)); + } else { + contactName.setText(lContact.getFullName()); + ContactAvatar.displayAvatar(lContact, callView.findViewById(R.id.avatar_layout)); + } + displayCallStatusIconAndReturnCallPaused(callView, call); registerCallDurationTimer(callView, call); } mCallsList.addView(callView); } - private void setContactInformation( - TextView contactName, ImageView contactPicture, Address lAddress) { + private void setContactInformation(TextView contactName, Address lAddress) { LinphoneContact lContact = ContactsManager.getInstance().findContactFromAddress(lAddress); if (lContact == null) { - contactName.setText(LinphoneUtils.getAddressDisplayName(lAddress)); - ImageUtils.setDefaultContactImage(contactPicture); + String displayName = LinphoneUtils.getAddressDisplayName(lAddress); + contactName.setText(displayName); + ContactAvatar.displayAvatar(displayName, mAvatarLayout, R.drawable.avatar_mask_border); } else { contactName.setText(lContact.getFullName()); - ImageUtils.setImagePictureFromUri( - contactPicture.getContext(), - contactPicture, - lContact.getPhotoUri(), - lContact.getThumbnailUri()); + ContactAvatar.displayAvatar(lContact, mAvatarLayout, R.drawable.avatar_mask_border); } } diff --git a/app/src/main/java/org/linphone/call/CallIncomingActivity.java b/app/src/main/java/org/linphone/call/CallIncomingActivity.java index a34f1b4cb..04752ac8a 100644 --- a/app/src/main/java/org/linphone/call/CallIncomingActivity.java +++ b/app/src/main/java/org/linphone/call/CallIncomingActivity.java @@ -45,18 +45,18 @@ import org.linphone.core.Core; import org.linphone.core.CoreListenerStub; import org.linphone.core.tools.Log; import org.linphone.settings.LinphonePreferences; -import org.linphone.utils.ImageUtils; import org.linphone.utils.LinphoneGenericActivity; import org.linphone.utils.LinphoneUtils; import org.linphone.views.CallIncomingAnswerButton; import org.linphone.views.CallIncomingButtonListener; import org.linphone.views.CallIncomingDeclineButton; +import org.linphone.views.ContactAvatar; public class CallIncomingActivity extends LinphoneGenericActivity { private static CallIncomingActivity sInstance; private TextView mName, mNumber; - private ImageView mContactPicture, mAcceptIcon; + private ImageView mAcceptIcon; private CallIncomingAnswerButton mAccept; private CallIncomingDeclineButton mDecline; private Call mCall; @@ -85,7 +85,6 @@ public class CallIncomingActivity extends LinphoneGenericActivity { mName = findViewById(R.id.contact_name); mNumber = findViewById(R.id.contact_number); - mContactPicture = findViewById(R.id.contact_picture); // set this flag so this activity will stay in front of the keyguard int flags = @@ -187,11 +186,14 @@ public class CallIncomingActivity extends LinphoneGenericActivity { Address address = mCall.getRemoteAddress(); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); if (contact != null) { - ImageUtils.setImagePictureFromUri( - this, mContactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); + ContactAvatar.displayAvatar( + contact, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); mName.setText(contact.getFullName()); } else { - mName.setText(LinphoneUtils.getAddressDisplayName(address)); + String displayName = LinphoneUtils.getAddressDisplayName(address); + ContactAvatar.displayAvatar( + displayName, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); + mName.setText(displayName); } mNumber.setText(address.asStringUriOnly()); } diff --git a/app/src/main/java/org/linphone/call/CallOutgoingActivity.java b/app/src/main/java/org/linphone/call/CallOutgoingActivity.java index 0b7914618..fb8f15009 100644 --- a/app/src/main/java/org/linphone/call/CallOutgoingActivity.java +++ b/app/src/main/java/org/linphone/call/CallOutgoingActivity.java @@ -48,13 +48,13 @@ import org.linphone.core.CoreListenerStub; import org.linphone.core.Reason; import org.linphone.core.tools.Log; import org.linphone.settings.LinphonePreferences; -import org.linphone.utils.ImageUtils; import org.linphone.utils.LinphoneGenericActivity; import org.linphone.utils.LinphoneUtils; +import org.linphone.views.ContactAvatar; public class CallOutgoingActivity extends LinphoneGenericActivity implements OnClickListener { private TextView mName, mNumber; - private ImageView mContactPicture, mMicro, mSpeaker, mHangUp; + private ImageView mMicro, mSpeaker, mHangUp; private Call mCall; private CoreListenerStub mListener; private boolean mIsMicMuted, mIsSpeakerEnabled; @@ -72,7 +72,6 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC mName = findViewById(R.id.contact_name); mNumber = findViewById(R.id.contact_number); - mContactPicture = findViewById(R.id.contact_picture); mIsMicMuted = false; mIsSpeakerEnabled = false; @@ -186,11 +185,14 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC Address address = mCall.getRemoteAddress(); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); if (contact != null) { - ImageUtils.setImagePictureFromUri( - this, mContactPicture, contact.getPhotoUri(), contact.getThumbnailUri()); + ContactAvatar.displayAvatar( + contact, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); mName.setText(contact.getFullName()); } else { - mName.setText(LinphoneUtils.getAddressDisplayName(address)); + String displayName = LinphoneUtils.getAddressDisplayName(address); + ContactAvatar.displayAvatar( + displayName, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); + mName.setText(displayName); } mNumber.setText(LinphoneUtils.getDisplayableAddress(address)); } diff --git a/app/src/main/java/org/linphone/chat/ChatMessagesOldAdapter.java b/app/src/main/java/org/linphone/chat/ChatMessagesOldAdapter.java index 9a53e8845..465e37cfd 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessagesOldAdapter.java +++ b/app/src/main/java/org/linphone/chat/ChatMessagesOldAdapter.java @@ -260,7 +260,6 @@ public class ChatMessagesOldAdapter extends SelectableAdapter 0) { + holder.generatedAvatar.setText(generatedAvatar); + holder.generatedAvatar.setVisibility(View.VISIBLE); + } else { + holder.generatedAvatar.setVisibility(View.GONE); + } } holder.securityLevel.setVisibility(View.GONE); + + if (maskResource != 0) { + holder.avatarMask.setImageResource(maskResource); + } + } + + public static void displayAvatar(String displayName, View v) { + displayAvatar(displayName, v, 0); } public static void displayAvatar( @@ -124,7 +132,7 @@ public class ContactAvatar { setSecurityLevel(securityLevel, v); } - public static void displayAvatar(LinphoneContact contact, View v) { + public static void displayAvatar(LinphoneContact contact, View v, int maskResource) { if (contact == null || v == null) return; ContactAvatarHolder holder = new ContactAvatarHolder(v); @@ -162,6 +170,14 @@ public class ContactAvatar { : contact.getFullName())); holder.generatedAvatar.setVisibility(View.VISIBLE); } + + if (maskResource != 0) { + holder.avatarMask.setImageResource(maskResource); + } + } + + public static void displayAvatar(LinphoneContact contact, View v) { + displayAvatar(contact, v, 0); } public static void displayAvatar( diff --git a/app/src/main/res/drawable-xhdpi/.directory b/app/src/main/res/drawable-xhdpi/.directory new file mode 100644 index 000000000..d5c44ccc7 --- /dev/null +++ b/app/src/main/res/drawable-xhdpi/.directory @@ -0,0 +1,4 @@ +[Dolphin] +PreviewsShown=true +Timestamp=2019,3,5,11,4,59 +Version=4 diff --git a/app/src/main/res/drawable-xhdpi/avatar_chat_mask_outgoing.png b/app/src/main/res/drawable-xhdpi/avatar_chat_mask_outgoing.png deleted file mode 100644 index 7e471c425..000000000 Binary files a/app/src/main/res/drawable-xhdpi/avatar_chat_mask_outgoing.png and /dev/null differ diff --git a/app/src/main/res/drawable/camera.xml b/app/src/main/res/drawable/camera.xml index afd4a7e38..d30ef1407 100644 --- a/app/src/main/res/drawable/camera.xml +++ b/app/src/main/res/drawable/camera.xml @@ -8,6 +8,10 @@ + + + diff --git a/app/src/main/res/drawable/options.xml b/app/src/main/res/drawable/options.xml index cf70c676e..4b8c7d20e 100644 --- a/app/src/main/res/drawable/options.xml +++ b/app/src/main/res/drawable/options.xml @@ -8,6 +8,10 @@ + + + diff --git a/app/src/main/res/layout-land/call.xml b/app/src/main/res/layout-land/call.xml index fe1ff04fc..08720c17a 100644 --- a/app/src/main/res/layout-land/call.xml +++ b/app/src/main/res/layout-land/call.xml @@ -80,21 +80,7 @@ android:layout_margin="5dp" android:gravity="center"> - - - + diff --git a/app/src/main/res/layout/call.xml b/app/src/main/res/layout/call.xml index 18146e79e..60acdb6a7 100644 --- a/app/src/main/res/layout/call.xml +++ b/app/src/main/res/layout/call.xml @@ -81,21 +81,7 @@ android:layout_margin="5dp" android:gravity="center"> - - - + diff --git a/app/src/main/res/layout/call_inactive_row.xml b/app/src/main/res/layout/call_inactive_row.xml index 7ac04d473..df973dece 100644 --- a/app/src/main/res/layout/call_inactive_row.xml +++ b/app/src/main/res/layout/call_inactive_row.xml @@ -2,17 +2,20 @@ - + android:gravity="center"> + + + + - - - + diff --git a/app/src/main/res/layout/call_outgoing.xml b/app/src/main/res/layout/call_outgoing.xml index 306cf7085..7bf656cdb 100644 --- a/app/src/main/res/layout/call_outgoing.xml +++ b/app/src/main/res/layout/call_outgoing.xml @@ -68,20 +68,7 @@ android:layout_margin="5dp" android:gravity="center"> - - - + diff --git a/app/src/main/res/layout/contact.xml b/app/src/main/res/layout/contact.xml index bdb714a31..70f1c9354 100644 --- a/app/src/main/res/layout/contact.xml +++ b/app/src/main/res/layout/contact.xml @@ -69,7 +69,7 @@ android:layout_height="wrap_content" android:gravity="center"> - + diff --git a/app/src/main/res/layout/contact_avatar.xml b/app/src/main/res/layout/contact_avatar.xml index 79f621323..75d7c2ea3 100644 --- a/app/src/main/res/layout/contact_avatar.xml +++ b/app/src/main/res/layout/contact_avatar.xml @@ -12,15 +12,6 @@ android:adjustViewBounds="true" android:src="@drawable/avatar" /> - - + + - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/contact_avatar_call_paused.xml b/app/src/main/res/layout/contact_avatar_call_paused.xml new file mode 100644 index 000000000..132af3a9d --- /dev/null +++ b/app/src/main/res/layout/contact_avatar_call_paused.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/contact_edit.xml b/app/src/main/res/layout/contact_edit.xml index 390671cce..f558d9d47 100644 --- a/app/src/main/res/layout/contact_edit.xml +++ b/app/src/main/res/layout/contact_edit.xml @@ -73,7 +73,7 @@ android:layout_height="wrap_content" android:gravity="center"> - + diff --git a/app/src/main/res/layout/history_detail.xml b/app/src/main/res/layout/history_detail.xml index e386bc5b4..4758d9fce 100644 --- a/app/src/main/res/layout/history_detail.xml +++ b/app/src/main/res/layout/history_detail.xml @@ -71,7 +71,7 @@ android:layout_height="wrap_content" android:gravity="center"> - + diff --git a/app/src/main/res/layout/toast.xml b/app/src/main/res/layout/toast.xml index 6f5ef8c72..b0fe03c58 100644 --- a/app/src/main/res/layout/toast.xml +++ b/app/src/main/res/layout/toast.xml @@ -3,7 +3,7 @@ android:id="@+id/toastRoot" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="?attr/backgroundColor" + android:background="?attr/backgroundContastColor" android:orientation="vertical"> + android:textColor="?attr/secondaryTextColor" /> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 30f9902ce..5f5b9c9b2 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -2,6 +2,7 @@ + @@ -10,6 +11,7 @@ + diff --git a/app/src/main/res/values/color.xml b/app/src/main/res/values/color.xml index 7764b9ad3..d626c4179 100644 --- a/app/src/main/res/values/color.xml +++ b/app/src/main/res/values/color.xml @@ -3,6 +3,7 @@ #ff5e00 #e65000 + #80ff5e00 #000000 #444444 #808080 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 64f40b084..c353f1482 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -11,6 +11,7 @@ @color/colorH @color/colorA + @color/colorA50 @color/colorH @color/colorC @color/colorH @@ -18,6 +19,7 @@ @color/colorE @color/colorH + @color/colorC @color/colorE @color/colorC @@ -42,6 +44,8 @@ @color/colorC @color/colorC + @color/colorA + @color/colorA50 @color/colorH @color/colorH @color/colorC @@ -49,6 +53,7 @@ @color/colorF @color/colorC + @color/colorH @color/colorE @color/colorH @@ -256,12 +261,18 @@ bold - + +