From 1b7571c38d093d81a1c58246a8d858c0fe9b5dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Thu, 17 Jun 2021 11:32:26 -0400 Subject: [PATCH] call: update participant label Change-Id: Ifd10bb675525b9a87c07d9e000ee77ef201cb575 --- .../ring/adapters/ConfParticipantAdapter.java | 10 ++++- .../java/cx/ring/fragments/CallFragment.java | 40 ++++++++++--------- .../layout/item_conference_participant.xml | 4 +- .../res/layout/item_participant_label.xml | 14 ++++--- 4 files changed, 42 insertions(+), 26 deletions(-) diff --git a/ring-android/app/src/main/java/cx/ring/adapters/ConfParticipantAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/ConfParticipantAdapter.java index 050fb0511..74ae2720c 100644 --- a/ring-android/app/src/main/java/cx/ring/adapters/ConfParticipantAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/adapters/ConfParticipantAdapter.java @@ -31,6 +31,7 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.List; import cx.ring.fragments.CallFragment; +import cx.ring.views.AvatarDrawable; import cx.ring.views.AvatarFactory; import cx.ring.databinding.ItemConferenceParticipantBinding; @@ -69,8 +70,15 @@ public class ConfParticipantAdapter extends RecyclerView.Adapter<ParticipantView if (holder.disposable != null) holder.disposable.dispose(); + + holder.binding.photo.setImageDrawable(new AvatarDrawable.Builder() + .withContact(contact) + .withCircleCrop(true) + .withPresence(false) + .build(context)); + /*; holder.disposable = AvatarFactory.getAvatar(context, contact) - .subscribe(holder.binding.photo::setImageDrawable); + .subscribe(holder.binding.photo::setImageDrawable);*/ holder.itemView.setOnClickListener(view -> onSelectedCallback.onParticipantSelected(view, info)); } diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java index 828d97ef5..4ebc05c00 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java @@ -985,6 +985,7 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements } + @SuppressLint("RestrictedApi") @Override public void updateConfInfo(List<Conference.ParticipantInfo> participantInfo) { Log.w(TAG, "updateConfInfo " + participantInfo); @@ -1001,6 +1002,8 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements PercentFrameLayout.LayoutParams params = new PercentFrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.getPercentLayoutInfo().leftMarginPercent = i.x / (float) mVideoWidth; params.getPercentLayoutInfo().topMarginPercent = i.y / (float) mVideoHeight; + params.getPercentLayoutInfo().rightMarginPercent = 1.f - (i.x + i.w) / (float) mVideoWidth; + //params.getPercentLayoutInfo().rightMarginPercent = (i.x + i.w) / (float) mVideoWidth; label.participantName.setText(displayName); label.moderator.setVisibility(i.isModerator ? View.VISIBLE : View.GONE); label.mute.setVisibility(i.audioMuted ? View.VISIBLE : View.GONE); @@ -1021,23 +1024,6 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements boolean maximized = presenter.isMaximized(info); PopupMenu popup = new PopupMenu(view.getContext(), view); popup.inflate(R.menu.conference_participant_actions); - MenuBuilder menu = (MenuBuilder) popup.getMenu(); - MenuItem maxItem = menu.findItem(R.id.conv_contact_maximize); - MenuItem muteItem = menu.findItem(R.id.conv_mute); - if (maximized) { - maxItem.setTitle(R.string.action_call_minimize); - maxItem.setIcon(R.drawable.baseline_close_fullscreen_24); - } else { - maxItem.setTitle(R.string.action_call_maximize); - maxItem.setIcon(R.drawable.baseline_open_in_full_24); - } - if (!info.audioMuted) { - muteItem.setTitle(R.string.action_call_mute); - muteItem.setIcon(R.drawable.baseline_mic_off_24); - } else { - muteItem.setTitle(R.string.action_call_unmute); - muteItem.setIcon(R.drawable.baseline_mic_24); - } popup.setOnMenuItemClickListener(item -> { if (presenter == null) return false; @@ -1056,7 +1042,25 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements } return true; }); + MenuBuilder menu = (MenuBuilder) popup.getMenu(); + MenuItem maxItem = menu.findItem(R.id.conv_contact_maximize); + MenuItem muteItem = menu.findItem(R.id.conv_mute); + if (maximized) { + maxItem.setTitle(R.string.action_call_minimize); + maxItem.setIcon(R.drawable.baseline_close_fullscreen_24); + } else { + maxItem.setTitle(R.string.action_call_maximize); + maxItem.setIcon(R.drawable.baseline_open_in_full_24); + } + if (!info.audioMuted) { + muteItem.setTitle(R.string.action_call_mute); + muteItem.setIcon(R.drawable.baseline_mic_off_24); + } else { + muteItem.setTitle(R.string.action_call_unmute); + muteItem.setIcon(R.drawable.baseline_mic_24); + } MenuPopupHelper menuHelper = new MenuPopupHelper(view.getContext(), menu, view); + menuHelper.setGravity(Gravity.END); menuHelper.setForceShowIcon(true); menuHelper.show(); }); @@ -1223,7 +1227,7 @@ public class CallFragment extends BaseSupportFragment<CallPresenter> implements } else if (Surface.ROTATION_180 == rotation) { matrix.postRotate(180, centerX, centerY); } - if(!choosePluginMode) { + if (!choosePluginMode) { // binding.pluginPreviewSurface.setTransform(matrix); // } // else { diff --git a/ring-android/app/src/main/res/layout/item_conference_participant.xml b/ring-android/app/src/main/res/layout/item_conference_participant.xml index 270d3faf3..5b4f76ca7 100644 --- a/ring-android/app/src/main/res/layout/item_conference_participant.xml +++ b/ring-android/app/src/main/res/layout/item_conference_participant.xml @@ -58,7 +58,9 @@ along with this program; if not, write to the Free Software android:contentDescription="@string/contact_picture_description" android:tintMode="multiply" android:enabled="false" - app:maxImageSize="56dp" + app:maxImageSize="64dp" + app:useCompatPadding="true" + tools:src="@drawable/ic_contact_picture_fallback" /> </LinearLayout> diff --git a/ring-android/app/src/main/res/layout/item_participant_label.xml b/ring-android/app/src/main/res/layout/item_participant_label.xml index 1b206b01d..7c6c793a2 100644 --- a/ring-android/app/src/main/res/layout/item_participant_label.xml +++ b/ring-android/app/src/main/res/layout/item_participant_label.xml @@ -11,22 +11,24 @@ android:background="@drawable/background_conference_label" android:gravity="center_vertical" android:orientation="horizontal" - android:padding="12dp"> + android:padding="4dp"> <TextView android:id="@+id/participant_name" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="8dp" + android:layout_marginEnd="4dp" + android:layout_marginStart="4dp" android:ellipsize="marquee" android:singleLine="true" android:textColor="@color/white" + android:textSize="12sp" tools:text="Georges Longname of Chateaubrillant" /> <ImageView android:id="@+id/moderator" - android:layout_width="16dp" - android:layout_height="16dp" + android:layout_width="12dp" + android:layout_height="12dp" android:layout_margin="4dp" android:contentDescription="@string/call_moderator" android:src="@drawable/baseline_moderateur" @@ -35,8 +37,8 @@ <ImageView android:id="@+id/mute" - android:layout_width="16dp" - android:layout_height="16dp" + android:layout_width="12dp" + android:layout_height="12dp" android:layout_margin="4dp" android:contentDescription="@string/call_muted" android:src="@drawable/baseline_mic_off_24" -- GitLab