mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-25 13:39:24 +00:00
Update collapsed toolbar state for group calling.
This commit is contained in:
@@ -851,11 +851,6 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShowParticipantsList() {
|
||||
CallParticipantsListDialog.show(getSupportFragmentManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageChanged(@NonNull CallParticipantsState.SelectedPage page) {
|
||||
viewModel.setIsViewingFocusedParticipant(page);
|
||||
@@ -877,6 +872,16 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
||||
callStateUpdatePopupWindow.onCallStateUpdate(CallStateUpdatePopupWindow.CallStateUpdate.RINGING_DISABLED);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCallInfoClicked() {
|
||||
CallParticipantsListDialog.show(getSupportFragmentManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNavigateUpClicked() {
|
||||
onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
private class WindowLayoutInfoConsumer implements Consumer<WindowLayoutInfo> {
|
||||
|
||||
@@ -18,7 +18,9 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.constraintlayout.widget.ConstraintSet;
|
||||
import androidx.constraintlayout.widget.Guideline;
|
||||
@@ -105,7 +107,7 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
private View startCallControls;
|
||||
private ViewPager2 callParticipantsPager;
|
||||
private RecyclerView callParticipantsRecycler;
|
||||
private ConstraintLayout toolbar;
|
||||
private ConstraintLayout largeHeader;
|
||||
private MaterialButton startCall;
|
||||
private Stub<FrameLayout> groupCallSpeakerHint;
|
||||
private Stub<View> groupCallFullStub;
|
||||
@@ -115,15 +117,13 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
private Guideline showParticipantsGuideline;
|
||||
private Guideline topFoldGuideline;
|
||||
private Guideline callScreenTopFoldGuideline;
|
||||
private View foldParticipantCountWrapper;
|
||||
private TextView foldParticipantCount;
|
||||
private AvatarImageView largeHeaderAvatar;
|
||||
private ConstraintSet largeHeaderConstraints;
|
||||
private ConstraintSet smallHeaderConstraints;
|
||||
private Guideline statusBarGuideline;
|
||||
private Guideline navigationBarGuideline;
|
||||
private int navBarBottomInset;
|
||||
private View fullScreenShade;
|
||||
private Toolbar collapsedToolbar;
|
||||
private Toolbar headerToolbar;
|
||||
|
||||
private WebRtcCallParticipantsPagerAdapter pagerAdapter;
|
||||
private WebRtcCallParticipantsRecyclerAdapter recyclerAdapter;
|
||||
@@ -185,21 +185,21 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
footerGradient = findViewById(R.id.call_screen_footer_gradient);
|
||||
startCallControls = findViewById(R.id.call_screen_start_call_controls);
|
||||
callParticipantsPager = findViewById(R.id.call_screen_participants_pager);
|
||||
callParticipantsRecycler = findViewById(R.id.call_screen_participants_recycler);
|
||||
toolbar = findViewById(R.id.call_screen_header);
|
||||
startCall = findViewById(R.id.call_screen_start_call_start_call);
|
||||
callParticipantsRecycler = findViewById(R.id.call_screen_participants_recycler);
|
||||
largeHeader = findViewById(R.id.call_screen_header);
|
||||
startCall = findViewById(R.id.call_screen_start_call_start_call);
|
||||
errorButton = findViewById(R.id.call_screen_error_cancel);
|
||||
groupCallSpeakerHint = new Stub<>(findViewById(R.id.call_screen_group_call_speaker_hint));
|
||||
groupCallFullStub = new Stub<>(findViewById(R.id.group_call_call_full_view));
|
||||
showParticipantsGuideline = findViewById(R.id.call_screen_show_participants_guideline);
|
||||
topFoldGuideline = findViewById(R.id.fold_top_guideline);
|
||||
callScreenTopFoldGuideline = findViewById(R.id.fold_top_call_screen_guideline);
|
||||
foldParticipantCountWrapper = findViewById(R.id.fold_show_participants_menu_counter_wrapper);
|
||||
foldParticipantCount = findViewById(R.id.fold_show_participants_menu_counter);
|
||||
largeHeaderAvatar = findViewById(R.id.call_screen_header_avatar);
|
||||
statusBarGuideline = findViewById(R.id.call_screen_status_bar_guideline);
|
||||
navigationBarGuideline = findViewById(R.id.call_screen_navigation_bar_guideline);
|
||||
fullScreenShade = findViewById(R.id.call_screen_full_shade);
|
||||
collapsedToolbar = findViewById(R.id.webrtc_call_view_toolbar_text);
|
||||
headerToolbar = findViewById(R.id.webrtc_call_view_toolbar_no_text);
|
||||
|
||||
View decline = findViewById(R.id.call_screen_decline_call);
|
||||
View answerLabel = findViewById(R.id.call_screen_answer_call_label);
|
||||
@@ -224,7 +224,7 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
}
|
||||
});
|
||||
|
||||
topViews.add(toolbar);
|
||||
topViews.add(largeHeader);
|
||||
topViews.add(topGradient);
|
||||
|
||||
incomingCallViews.add(answer);
|
||||
@@ -302,6 +302,36 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
}
|
||||
});
|
||||
|
||||
collapsedToolbar.setNavigationOnClickListener(unused -> {
|
||||
if (controlsListener != null) {
|
||||
controlsListener.onNavigateUpClicked();
|
||||
}
|
||||
});
|
||||
|
||||
collapsedToolbar.setOnMenuItemClickListener(item -> {
|
||||
if (item.getItemId() == R.id.action_info && controlsListener != null) {
|
||||
controlsListener.onCallInfoClicked();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
headerToolbar.setNavigationOnClickListener(unused -> {
|
||||
if (controlsListener != null) {
|
||||
controlsListener.onNavigateUpClicked();
|
||||
}
|
||||
});
|
||||
|
||||
headerToolbar.setOnMenuItemClickListener(item -> {
|
||||
if (item.getItemId() == R.id.action_info && controlsListener != null) {
|
||||
controlsListener.onCallInfoClicked();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
rotatableControls.add(hangup);
|
||||
rotatableControls.add(answer);
|
||||
rotatableControls.add(answerWithoutVideo);
|
||||
@@ -312,12 +342,6 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
rotatableControls.add(decline);
|
||||
rotatableControls.add(smallLocalAudioIndicator);
|
||||
rotatableControls.add(ringToggle);
|
||||
|
||||
largeHeaderConstraints = new ConstraintSet();
|
||||
largeHeaderConstraints.clone(getContext(), R.layout.webrtc_call_view_header_large);
|
||||
|
||||
smallHeaderConstraints = new ConstraintSet();
|
||||
smallHeaderConstraints.clone(getContext(), R.layout.webrtc_call_view_header_small);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -357,9 +381,9 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
if ((visible & SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) {
|
||||
if (controls.adjustForFold()) {
|
||||
pictureInPictureGestureHelper.clearVerticalBoundaries();
|
||||
pictureInPictureGestureHelper.setTopVerticalBoundary(toolbar.getTop());
|
||||
pictureInPictureGestureHelper.setTopVerticalBoundary(largeHeader.getTop());
|
||||
} else {
|
||||
pictureInPictureGestureHelper.setTopVerticalBoundary(toolbar.getBottom());
|
||||
pictureInPictureGestureHelper.setTopVerticalBoundary(largeHeader.getBottom());
|
||||
pictureInPictureGestureHelper.setBottomVerticalBoundary(videoToggle.getTop());
|
||||
}
|
||||
} else {
|
||||
@@ -407,21 +431,21 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
|
||||
if (state.getGroupCallState().isNotIdle()) {
|
||||
if (state.getCallState() == WebRtcViewModel.State.CALL_PRE_JOIN) {
|
||||
status.setText(state.getPreJoinGroupDescription(getContext()));
|
||||
setStatus(state.getPreJoinGroupDescription(getContext()));
|
||||
} else if (state.getCallState() == WebRtcViewModel.State.CALL_CONNECTED && state.isInOutgoingRingingMode()) {
|
||||
status.setText(state.getOutgoingRingingGroupDescription(getContext()));
|
||||
setStatus(state.getOutgoingRingingGroupDescription(getContext()));
|
||||
} else if (state.getGroupCallState().isRinging()) {
|
||||
status.setText(state.getIncomingRingingGroupDescription(getContext()));
|
||||
setStatus(state.getIncomingRingingGroupDescription(getContext()));
|
||||
}
|
||||
}
|
||||
|
||||
if (state.getGroupCallState().isNotIdle()) {
|
||||
String text = state.getParticipantCount()
|
||||
.mapToObj(String::valueOf).orElse("\u2014");
|
||||
boolean enabled = state.getParticipantCount().isPresent();
|
||||
|
||||
foldParticipantCount.setText(text);
|
||||
foldParticipantCount.setEnabled(enabled);
|
||||
collapsedToolbar.getMenu().getItem(0).setVisible(enabled);
|
||||
headerToolbar.getMenu().getItem(0).setVisible(enabled);
|
||||
} else {
|
||||
collapsedToolbar.getMenu().getItem(0).setVisible(false);
|
||||
headerToolbar.getMenu().getItem(0).setVisible(false);
|
||||
}
|
||||
|
||||
pagerAdapter.submitList(pages);
|
||||
@@ -527,34 +551,34 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
}
|
||||
|
||||
recipientId = recipient.getId();
|
||||
|
||||
largeHeaderAvatar.setRecipient(recipient, false);
|
||||
|
||||
if (recipient.isGroup()) {
|
||||
foldParticipantCountWrapper.setOnClickListener(unused -> showParticipantsList());
|
||||
}
|
||||
|
||||
collapsedToolbar.setTitle(recipient.getDisplayName(getContext()));
|
||||
recipientName.setText(recipient.getDisplayName(getContext()));
|
||||
}
|
||||
|
||||
public void setStatus(@NonNull String status) {
|
||||
public void setStatus(@Nullable String status) {
|
||||
this.status.setText(status);
|
||||
collapsedToolbar.setSubtitle(status);
|
||||
}
|
||||
|
||||
private void setStatus(@StringRes int statusRes) {
|
||||
setStatus(getContext().getString(statusRes));
|
||||
}
|
||||
|
||||
public void setStatusFromHangupType(@NonNull HangupMessage.Type hangupType) {
|
||||
switch (hangupType) {
|
||||
case NORMAL:
|
||||
case NEED_PERMISSION:
|
||||
status.setText(R.string.RedPhone_ending_call);
|
||||
setStatus(R.string.RedPhone_ending_call);
|
||||
break;
|
||||
case ACCEPTED:
|
||||
status.setText(R.string.WebRtcCallActivity__answered_on_a_linked_device);
|
||||
setStatus(R.string.WebRtcCallActivity__answered_on_a_linked_device);
|
||||
break;
|
||||
case DECLINED:
|
||||
status.setText(R.string.WebRtcCallActivity__declined_on_a_linked_device);
|
||||
setStatus(R.string.WebRtcCallActivity__declined_on_a_linked_device);
|
||||
break;
|
||||
case BUSY:
|
||||
status.setText(R.string.WebRtcCallActivity__busy_on_a_linked_device);
|
||||
setStatus(R.string.WebRtcCallActivity__busy_on_a_linked_device);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unknown hangup type: " + hangupType);
|
||||
@@ -564,18 +588,18 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
public void setStatusFromGroupCallState(@NonNull WebRtcViewModel.GroupCallState groupCallState) {
|
||||
switch (groupCallState) {
|
||||
case DISCONNECTED:
|
||||
status.setText(R.string.WebRtcCallView__disconnected);
|
||||
setStatus(R.string.WebRtcCallView__disconnected);
|
||||
break;
|
||||
case RECONNECTING:
|
||||
status.setText(R.string.WebRtcCallView__reconnecting);
|
||||
setStatus(R.string.WebRtcCallView__reconnecting);
|
||||
break;
|
||||
case CONNECTED_AND_JOINING:
|
||||
status.setText(R.string.WebRtcCallView__joining);
|
||||
setStatus(R.string.WebRtcCallView__joining);
|
||||
break;
|
||||
case CONNECTING:
|
||||
case CONNECTED_AND_JOINED:
|
||||
case CONNECTED:
|
||||
status.setText("");
|
||||
setStatus("");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -597,11 +621,6 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
callScreenTopFoldGuideline.setGuidelineEnd(0);
|
||||
}
|
||||
|
||||
if (webRtcControls.displayGroupMembersButton()) {
|
||||
visibleViewSet.add(foldParticipantCountWrapper);
|
||||
foldParticipantCount.setClickable(webRtcControls.adjustForFold());
|
||||
}
|
||||
|
||||
if (webRtcControls.displayStartCallControls()) {
|
||||
visibleViewSet.add(footerGradient);
|
||||
visibleViewSet.add(startCallControls);
|
||||
@@ -855,7 +874,7 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
}
|
||||
|
||||
private void toggleControls() {
|
||||
if (controls.isFadeOutEnabled() && toolbar.getVisibility() == VISIBLE) {
|
||||
if (controls.isFadeOutEnabled() && largeHeader.getVisibility() == VISIBLE) {
|
||||
fadeOutControls();
|
||||
} else {
|
||||
fadeInControls();
|
||||
@@ -978,11 +997,13 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
constraintSet.applyTo(parent);
|
||||
|
||||
if (showSmallHeader) {
|
||||
smallHeaderConstraints.setVisibility(incomingRingStatus.getId(), visibleViewSet.contains(incomingRingStatus) ? View.VISIBLE : View.GONE);
|
||||
smallHeaderConstraints.applyTo(toolbar);
|
||||
collapsedToolbar.setVisibility(View.VISIBLE);
|
||||
headerToolbar.setVisibility(View.GONE);
|
||||
largeHeader.setVisibility(View.GONE);
|
||||
} else {
|
||||
largeHeaderConstraints.setVisibility(incomingRingStatus.getId(), visibleViewSet.contains(incomingRingStatus) ? View.VISIBLE : View.GONE);
|
||||
largeHeaderConstraints.applyTo(toolbar);
|
||||
collapsedToolbar.setVisibility(View.GONE);
|
||||
headerToolbar.setVisibility(View.VISIBLE);
|
||||
largeHeader.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1032,11 +1053,6 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
ringToggle.setBackgroundResource(R.drawable.webrtc_call_screen_ring_toggle_small);
|
||||
}
|
||||
|
||||
private boolean showParticipantsList() {
|
||||
controlsListener.onShowParticipantsList();
|
||||
return true;
|
||||
}
|
||||
|
||||
public void switchToSpeakerView() {
|
||||
if (pagerAdapter.getItemCount() > 0) {
|
||||
callParticipantsPager.setCurrentItem(pagerAdapter.getItemCount() - 1, false);
|
||||
@@ -1067,9 +1083,10 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
void onDenyCallPressed();
|
||||
void onAcceptCallWithVoiceOnlyPressed();
|
||||
void onAcceptCallPressed();
|
||||
void onShowParticipantsList();
|
||||
void onPageChanged(@NonNull CallParticipantsState.SelectedPage page);
|
||||
void onLocalPictureInPictureClicked();
|
||||
void onRingGroupChanged(boolean ringGroup, boolean ringingAllowed);
|
||||
void onCallInfoClicked();
|
||||
void onNavigateUpClicked();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,6 +200,27 @@
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</org.thoughtcrime.securesms.util.views.TouchInterceptingFrameLayout>
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/webrtc_call_view_toolbar_no_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/signal_m3_toolbar_height"
|
||||
android:minHeight="@dimen/signal_m3_toolbar_height"
|
||||
app:layout_constraintTop_toTopOf="@id/call_screen_status_bar_guideline"
|
||||
app:menu="@menu/webrtc_toolbar_menu"
|
||||
app:navigationIcon="@drawable/ic_arrow_left_24" />
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/webrtc_call_view_toolbar_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/signal_m3_toolbar_height"
|
||||
android:minHeight="@dimen/signal_m3_toolbar_height"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="@id/call_screen_status_bar_guideline"
|
||||
app:menu="@menu/webrtc_toolbar_menu"
|
||||
app:navigationIcon="@drawable/ic_arrow_left_24"
|
||||
app:subtitleTextAppearance="@style/Signal.Text.BodyMedium"
|
||||
app:titleTextAppearance="@style/Signal.Text.TitleMedium" />
|
||||
|
||||
<include
|
||||
layout="@layout/webrtc_call_view_header_large"
|
||||
android:layout_width="match_parent"
|
||||
@@ -454,39 +475,6 @@
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/fold_show_participants_menu_counter_wrapper"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="56dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center"
|
||||
android:minWidth="48dp"
|
||||
android:orientation="horizontal"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_show_participants_guideline"
|
||||
tools:visibility="visible">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="4dp"
|
||||
app:srcCompat="@drawable/ic_group_solid_24"
|
||||
app:tint="@color/core_white" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/fold_show_participants_menu_counter"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/core_white"
|
||||
android:textSize="13sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="0" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/call_screen_footer_gradient_barrier"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:viewBindingIgnore="true"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/call_screen_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_ringing_call_type"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:gravity="center"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textColor="@color/core_white"
|
||||
app:drawableStartCompat="@drawable/ic_signal_logo_small"
|
||||
android:drawablePadding="4dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="@id/action_bar_guideline"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Signal video call" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.AvatarImageView
|
||||
android:id="@+id/call_screen_header_avatar"
|
||||
android:layout_width="96dp"
|
||||
android:layout_height="96dp"
|
||||
android:layout_marginTop="106dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/action_bar_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_begin="?actionBarSize" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
|
||||
android:id="@+id/call_screen_recipient_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body1.Bold"
|
||||
android:textColor="@color/core_white"
|
||||
app:layout_constraintBottom_toTopOf="@id/action_bar_guideline"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="Kiera Thompson" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_status"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textColor="@color/core_white"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_recipient_name"
|
||||
tools:text="Signal Calling..." />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
9
app/src/main/res/menu/webrtc_toolbar_menu.xml
Normal file
9
app/src/main/res/menu/webrtc_toolbar_menu.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_info"
|
||||
android:icon="@drawable/symbol_info_24"
|
||||
android:title="@string/CallContextMenu__info"
|
||||
app:showAsAction="always" />
|
||||
</menu>
|
||||
Reference in New Issue
Block a user