mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-21 02:08:40 +00:00
Add new call toast and remove call button labels.
This commit is contained in:
committed by
Greyson Parrelli
parent
7a2ad37333
commit
8f9713a2c0
@@ -58,6 +58,7 @@ import org.thoughtcrime.securesms.components.TooltipPopup;
|
||||
import org.thoughtcrime.securesms.components.sensors.DeviceOrientationMonitor;
|
||||
import org.thoughtcrime.securesms.components.webrtc.CallParticipantsListUpdatePopupWindow;
|
||||
import org.thoughtcrime.securesms.components.webrtc.CallParticipantsState;
|
||||
import org.thoughtcrime.securesms.components.webrtc.CallStateUpdatePopupWindow;
|
||||
import org.thoughtcrime.securesms.components.webrtc.CallToastPopupWindow;
|
||||
import org.thoughtcrime.securesms.components.webrtc.GroupCallSafetyNumberChangeNotificationUtil;
|
||||
import org.thoughtcrime.securesms.components.webrtc.WebRtcAudioOutput;
|
||||
@@ -112,6 +113,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
||||
public static final String EXTRA_STARTED_FROM_FULLSCREEN = WebRtcCallActivity.class.getCanonicalName() + ".STARTED_FROM_FULLSCREEN";
|
||||
|
||||
private CallParticipantsListUpdatePopupWindow participantUpdateWindow;
|
||||
private CallStateUpdatePopupWindow callStateUpdatePopupWindow;
|
||||
private WifiToCellularPopupWindow wifiToCellularPopupWindow;
|
||||
private DeviceOrientationMonitor deviceOrientationMonitor;
|
||||
|
||||
@@ -312,8 +314,9 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
||||
callScreen = findViewById(R.id.callScreen);
|
||||
callScreen.setControlsListener(new ControlsListener());
|
||||
|
||||
participantUpdateWindow = new CallParticipantsListUpdatePopupWindow(callScreen);
|
||||
wifiToCellularPopupWindow = new WifiToCellularPopupWindow(callScreen);
|
||||
participantUpdateWindow = new CallParticipantsListUpdatePopupWindow(callScreen);
|
||||
callStateUpdatePopupWindow = new CallStateUpdatePopupWindow(callScreen);
|
||||
wifiToCellularPopupWindow = new WifiToCellularPopupWindow(callScreen);
|
||||
}
|
||||
|
||||
private void initializeViewModel(boolean isLandscapeEnabled) {
|
||||
@@ -356,6 +359,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
||||
addOnPictureInPictureModeChangedListener(info -> {
|
||||
viewModel.setIsInPipMode(info.isInPictureInPictureMode());
|
||||
participantUpdateWindow.setEnabled(!info.isInPictureInPictureMode());
|
||||
callStateUpdatePopupWindow.setEnabled(!info.isInPictureInPictureMode());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -800,6 +804,8 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
||||
|
||||
@Override
|
||||
public void onMicChanged(boolean isMicEnabled) {
|
||||
callStateUpdatePopupWindow.onCallStateUpdate(isMicEnabled ? CallStateUpdatePopupWindow.CallStateUpdate.MIC_ON
|
||||
: CallStateUpdatePopupWindow.CallStateUpdate.MIC_OFF);
|
||||
handleSetMuteAudio(!isMicEnabled);
|
||||
}
|
||||
|
||||
@@ -851,9 +857,11 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
||||
public void onRingGroupChanged(boolean ringGroup, boolean ringingAllowed) {
|
||||
if (ringingAllowed) {
|
||||
ApplicationDependencies.getSignalCallManager().setRingGroup(ringGroup);
|
||||
callStateUpdatePopupWindow.onCallStateUpdate(ringGroup ? CallStateUpdatePopupWindow.CallStateUpdate.RINGING_ON
|
||||
: CallStateUpdatePopupWindow.CallStateUpdate.RINGING_OFF);
|
||||
} else {
|
||||
ApplicationDependencies.getSignalCallManager().setRingGroup(false);
|
||||
Toast.makeText(WebRtcCallActivity.this, R.string.WebRtcCallActivity__group_is_too_large_to_ring_the_participants, Toast.LENGTH_SHORT).show();
|
||||
callStateUpdatePopupWindow.onCallStateUpdate(CallStateUpdatePopupWindow.CallStateUpdate.RINGING_DISABLED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.badges.BadgeImageView;
|
||||
import org.thoughtcrime.securesms.components.AvatarImageView;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
@@ -41,7 +40,7 @@ public class CallParticipantsListUpdatePopupWindow extends PopupWindow {
|
||||
public CallParticipantsListUpdatePopupWindow(@NonNull ViewGroup parent) {
|
||||
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.call_participant_list_update, parent, false),
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewUtil.dpToPx(94));
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
|
||||
this.parent = parent;
|
||||
this.avatarImageView = getContentView().findViewById(R.id.avatar);
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
package org.thoughtcrime.securesms.components.webrtc
|
||||
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.PopupWindow
|
||||
import android.widget.TextView
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.util.Debouncer
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* Popup window which is displayed whenever the call state changes from user input.
|
||||
*/
|
||||
class CallStateUpdatePopupWindow(private val parent: ViewGroup) : PopupWindow(
|
||||
LayoutInflater.from(parent.context).inflate(R.layout.call_state_update, parent, false),
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
) {
|
||||
|
||||
private var enabled: Boolean = true
|
||||
private var pendingUpdate: CallStateUpdate? = null
|
||||
private var lastUpdate: CallStateUpdate? = null
|
||||
private val dismissDebouncer = Debouncer(2, TimeUnit.SECONDS)
|
||||
private val iconView = contentView.findViewById<ImageView>(R.id.icon)
|
||||
private val descriptionView = contentView.findViewById<TextView>(R.id.description)
|
||||
|
||||
init {
|
||||
setOnDismissListener {
|
||||
val pending = pendingUpdate
|
||||
if (pending != null) {
|
||||
onCallStateUpdate(pending)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun setEnabled(enabled: Boolean) {
|
||||
this.enabled = enabled
|
||||
if (!enabled) {
|
||||
dismissDebouncer.clear()
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
fun onCallStateUpdate(callStateUpdate: CallStateUpdate) {
|
||||
if (isShowing && lastUpdate == callStateUpdate) {
|
||||
dismissDebouncer.publish { dismiss() }
|
||||
} else if (isShowing) {
|
||||
dismissDebouncer.clear()
|
||||
pendingUpdate = callStateUpdate
|
||||
dismiss()
|
||||
} else {
|
||||
pendingUpdate = null
|
||||
lastUpdate = callStateUpdate
|
||||
presentCallState(callStateUpdate)
|
||||
show()
|
||||
}
|
||||
}
|
||||
|
||||
private fun presentCallState(callStateUpdate: CallStateUpdate) {
|
||||
if (callStateUpdate.iconRes == null) {
|
||||
iconView.setImageDrawable(null)
|
||||
} else {
|
||||
iconView.setImageResource(callStateUpdate.iconRes)
|
||||
}
|
||||
|
||||
descriptionView.setText(callStateUpdate.stringRes)
|
||||
}
|
||||
|
||||
private fun show() {
|
||||
if (!enabled) {
|
||||
return
|
||||
}
|
||||
|
||||
showAtLocation(parent, Gravity.TOP or Gravity.START, 0, 0)
|
||||
measureChild()
|
||||
update()
|
||||
dismissDebouncer.publish { dismiss() }
|
||||
}
|
||||
|
||||
private fun measureChild() {
|
||||
contentView.measure(
|
||||
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
|
||||
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
|
||||
)
|
||||
}
|
||||
|
||||
enum class CallStateUpdate(
|
||||
@DrawableRes val iconRes: Int?,
|
||||
@StringRes val stringRes: Int
|
||||
) {
|
||||
RINGING_ON(R.drawable.symbol_bell_ring_compact_16, R.string.CallStateUpdatePopupWindow__ringing_on),
|
||||
RINGING_OFF(R.drawable.symbol_bell_slash_compact_16, R.string.CallStateUpdatePopupWindow__ringing_off),
|
||||
RINGING_DISABLED(null, R.string.CallStateUpdatePopupWindow__group_is_too_large),
|
||||
MIC_ON(R.drawable.symbol_mic_compact_16, R.string.CallStateUpdatePopupWindow__mic_on),
|
||||
MIC_OFF(R.drawable.symbol_mic_slash_compact_16, R.string.CallStateUpdatePopupWindow__mic_off)
|
||||
}
|
||||
}
|
||||
@@ -76,11 +76,8 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
public static final int CONTROLS_HEIGHT = 98;
|
||||
|
||||
private WebRtcAudioOutputToggleButton audioToggle;
|
||||
private TextView audioToggleLabel;
|
||||
private AccessibleToggleButton videoToggle;
|
||||
private TextView videoToggleLabel;
|
||||
private AccessibleToggleButton micToggle;
|
||||
private TextView micToggleLabel;
|
||||
private ViewGroup smallLocalRenderFrame;
|
||||
private CallParticipantView smallLocalRender;
|
||||
private View largeLocalRenderFrame;
|
||||
@@ -96,14 +93,10 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
private RecipientId recipientId;
|
||||
private ImageView answer;
|
||||
private ImageView cameraDirectionToggle;
|
||||
private TextView cameraDirectionToggleLabel;
|
||||
private AccessibleToggleButton ringToggle;
|
||||
private TextView ringToggleLabel;
|
||||
private PictureInPictureGestureHelper pictureInPictureGestureHelper;
|
||||
private ImageView hangup;
|
||||
private TextView hangupLabel;
|
||||
private View answerWithoutVideo;
|
||||
private View answerWithoutVideoLabel;
|
||||
private View topGradient;
|
||||
private View footerGradient;
|
||||
private View startCallControls;
|
||||
@@ -166,11 +159,8 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
super.onFinishInflate();
|
||||
|
||||
audioToggle = findViewById(R.id.call_screen_speaker_toggle);
|
||||
audioToggleLabel = findViewById(R.id.call_screen_speaker_toggle_label);
|
||||
videoToggle = findViewById(R.id.call_screen_video_toggle);
|
||||
videoToggleLabel = findViewById(R.id.call_screen_video_toggle_label);
|
||||
micToggle = findViewById(R.id.call_screen_audio_mic_toggle);
|
||||
micToggleLabel = findViewById(R.id.call_screen_audio_mic_toggle_label);
|
||||
smallLocalRenderFrame = findViewById(R.id.call_screen_pip);
|
||||
smallLocalRender = findViewById(R.id.call_screen_small_local_renderer);
|
||||
largeLocalRenderFrame = findViewById(R.id.call_screen_large_local_renderer_frame);
|
||||
@@ -184,13 +174,9 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
participantsParent = findViewById(R.id.call_screen_participants_parent);
|
||||
answer = findViewById(R.id.call_screen_answer_call);
|
||||
cameraDirectionToggle = findViewById(R.id.call_screen_camera_direction_toggle);
|
||||
cameraDirectionToggleLabel = findViewById(R.id.call_screen_camera_direction_toggle_label);
|
||||
ringToggle = findViewById(R.id.call_screen_audio_ring_toggle);
|
||||
ringToggleLabel = findViewById(R.id.call_screen_audio_ring_toggle_label);
|
||||
hangup = findViewById(R.id.call_screen_end_call);
|
||||
hangupLabel = findViewById(R.id.call_screen_end_call_label);
|
||||
answerWithoutVideo = findViewById(R.id.call_screen_answer_without_video);
|
||||
answerWithoutVideoLabel = findViewById(R.id.call_screen_answer_without_video_label);
|
||||
topGradient = findViewById(R.id.call_screen_header_gradient);
|
||||
footerGradient = findViewById(R.id.call_screen_footer_gradient);
|
||||
startCallControls = findViewById(R.id.call_screen_start_call_controls);
|
||||
@@ -212,8 +198,6 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
fullScreenShade = findViewById(R.id.call_screen_full_shade);
|
||||
|
||||
View decline = findViewById(R.id.call_screen_decline_call);
|
||||
View answerLabel = findViewById(R.id.call_screen_answer_call_label);
|
||||
View declineLabel = findViewById(R.id.call_screen_decline_call_label);
|
||||
|
||||
callParticipantsPager.setPageTransformer(new MarginPageTransformer(ViewUtil.dpToPx(4)));
|
||||
|
||||
@@ -238,9 +222,7 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
topViews.add(topGradient);
|
||||
|
||||
incomingCallViews.add(answer);
|
||||
incomingCallViews.add(answerLabel);
|
||||
incomingCallViews.add(decline);
|
||||
incomingCallViews.add(declineLabel);
|
||||
incomingCallViews.add(footerGradient);
|
||||
incomingCallViews.add(incomingRingStatus);
|
||||
|
||||
@@ -639,7 +621,6 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
|
||||
if (webRtcControls.displayAnswerWithoutVideo()) {
|
||||
visibleViewSet.add(answerWithoutVideo);
|
||||
visibleViewSet.add(answerWithoutVideoLabel);
|
||||
|
||||
answer.setImageDrawable(AppCompatResources.getDrawable(getContext(), R.drawable.webrtc_call_screen_answer_with_video));
|
||||
}
|
||||
@@ -650,7 +631,6 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
|
||||
if (webRtcControls.displayAudioToggle()) {
|
||||
visibleViewSet.add(audioToggle);
|
||||
visibleViewSet.add(audioToggleLabel);
|
||||
|
||||
audioToggle.setControlAvailability(webRtcControls.enableHandsetInAudioToggle(),
|
||||
webRtcControls.enableHeadsetInAudioToggle());
|
||||
@@ -660,23 +640,19 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
|
||||
if (webRtcControls.displayCameraToggle()) {
|
||||
visibleViewSet.add(cameraDirectionToggle);
|
||||
visibleViewSet.add(cameraDirectionToggleLabel);
|
||||
}
|
||||
|
||||
if (webRtcControls.displayEndCall()) {
|
||||
visibleViewSet.add(hangup);
|
||||
visibleViewSet.add(hangupLabel);
|
||||
visibleViewSet.add(footerGradient);
|
||||
}
|
||||
|
||||
if (webRtcControls.displayMuteAudio()) {
|
||||
visibleViewSet.add(micToggle);
|
||||
visibleViewSet.add(micToggleLabel);
|
||||
}
|
||||
|
||||
if (webRtcControls.displayVideoToggle()) {
|
||||
visibleViewSet.add(videoToggle);
|
||||
visibleViewSet.add(videoToggleLabel);
|
||||
}
|
||||
|
||||
if (webRtcControls.displaySmallOngoingCallButtons()) {
|
||||
@@ -701,9 +677,9 @@ public class WebRtcCallView extends ConstraintLayout {
|
||||
|
||||
if (webRtcControls.displayRingToggle()) {
|
||||
visibleViewSet.add(ringToggle);
|
||||
visibleViewSet.add(ringToggleLabel);
|
||||
}
|
||||
|
||||
|
||||
if (webRtcControls.isFadeOutEnabled()) {
|
||||
if (!controls.isFadeOutEnabled()) {
|
||||
scheduleFadeOut();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/core_grey_80" />
|
||||
<corners android:radius="8dp" />
|
||||
<solid android:color="@color/signal_light_colorSecondaryContainer" />
|
||||
<corners android:radius="32dp" />
|
||||
</shape>
|
||||
17
app/src/main/res/drawable/symbol_bell_ring_compact_16.xml
Normal file
17
app/src/main/res/drawable/symbol_bell_ring_compact_16.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<group>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M3.58 1.71c0.26-0.25 0.26-0.66 0-0.92-0.24-0.25-0.65-0.26-0.91 0-0.9 0.87-1.62 2.46-1.81 3.87C0.8 5.02 1.06 5.34 1.4 5.39c0.36 0.05 0.68-0.2 0.73-0.55 0.17-1.19 0.8-2.49 1.44-3.13Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M12.41 0.8c-0.25 0.25-0.25 0.66 0 0.91 0.66 0.64 1.28 1.94 1.45 3.13 0.05 0.36 0.37 0.6 0.73 0.55 0.36-0.05 0.6-0.37 0.55-0.73-0.2-1.41-0.92-3-1.81-3.87-0.26-0.26-0.67-0.25-0.92 0Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M8 1.1c-2.54 0-4.7 1.96-4.79 4.7C3.13 8.16 2.65 9 2.31 9.4 2.2 9.53 2.1 9.61 2 9.71L1.97 9.77l-0.3 0.28c-0.26 0.3-0.45 0.66-0.45 1.2 0 0.9 0.73 1.66 1.65 1.66h2.5c0.2 1.3 1.27 2.25 2.63 2.25 1.36 0 2.44-0.96 2.62-2.25h2.51c0.92 0 1.64-0.76 1.64-1.67 0-0.53-0.18-0.9-0.45-1.19l-0.29-0.28-0.02-0.02-0.02-0.02-0.3-0.3C13.35 9 12.87 8.16 12.8 5.78 12.69 3.06 10.54 1.1 8 1.1ZM4.51 5.84C4.58 3.82 6.15 2.4 8 2.4c1.85 0 3.42 1.42 3.49 3.44 0.09 2.53 0.6 3.7 1.2 4.41 0.15 0.17 0.3 0.3 0.4 0.42l0.07 0.06 0.2 0.19c0.08 0.08 0.11 0.14 0.11 0.31 0 0.22-0.16 0.37-0.34 0.37H2.87c-0.18 0-0.35-0.15-0.35-0.37 0-0.17 0.04-0.23 0.12-0.31l0.2-0.2 0.06-0.05c0.12-0.11 0.26-0.25 0.4-0.42 0.6-0.71 1.12-1.88 1.21-4.41Zm2.2 7.06H9.3c-0.17 0.56-0.67 0.95-1.3 0.95s-1.13-0.39-1.3-0.95Z"/>
|
||||
</group>
|
||||
</vector>
|
||||
15
app/src/main/res/drawable/symbol_bell_slash_compact_16.xml
Normal file
15
app/src/main/res/drawable/symbol_bell_slash_compact_16.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M3.21 5.8V5.7l1.23 1.22c-0.18 1.8-0.63 2.73-1.14 3.33-0.14 0.17-0.28 0.3-0.4 0.42l-0.06 0.06-0.2 0.19C2.56 11 2.53 11.06 2.53 11.23c0 0.22 0.16 0.37 0.34 0.37h6.26l1.46 1.47c-0.25 1.2-1.3 2.08-2.59 2.08-1.36 0-2.44-0.96-2.62-2.25H2.87c-0.92 0-1.64-0.76-1.64-1.67 0-0.53 0.18-0.9 0.45-1.19l0.29-0.28L2 9.72l0.3-0.3C2.65 9 3.13 8.16 3.2 5.78Zm3.5 7.1c0.16 0.56 0.66 0.95 1.29 0.95s1.13-0.39 1.3-0.95H6.7Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M11.49 5.84c0.08 2.37 0.54 3.54 1.1 4.27l1.96 1.97c0.14-0.25 0.23-0.54 0.23-0.85 0-0.53-0.2-0.9-0.46-1.19l-0.29-0.28-0.02-0.02-0.02-0.02-0.3-0.3C13.35 9 12.87 8.16 12.8 5.78 12.69 3.06 10.54 1.1 8 1.1c-1.22 0-2.35 0.45-3.2 1.22l0.92 0.92C6.34 2.71 7.14 2.4 8 2.4c1.85 0 3.42 1.42 3.49 3.44Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M2.46 1.54c-0.25-0.25-0.67-0.25-0.92 0s-0.25 0.67 0 0.92l12 12c0.25 0.25 0.67 0.25 0.92 0s0.25-0.67 0-0.92l-12-12Z"/>
|
||||
</vector>
|
||||
18
app/src/main/res/drawable/symbol_bell_slash_fill_24.xml
Normal file
18
app/src/main/res/drawable/symbol_bell_slash_fill_24.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M1.88 1.88c0.34-0.34 0.9-0.34 1.24 0l19 19c0.34 0.34 0.34 0.9 0 1.24-0.34 0.34-0.9 0.34-1.24 0l-19-19c-0.34-0.34-0.34-0.9 0-1.24Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M5.16 8.52c-0.14 3.61-0.87 5-1.5 5.72-0.16 0.2-0.32 0.35-0.48 0.5L3.1 14.83c-0.14 0.12-0.28 0.26-0.4 0.4-0.34 0.36-0.58 0.8-0.58 1.48 0 1.12 0.9 2.05 2.03 2.05h11.24L5.16 8.52Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M21.4 18.03c0.3-0.36 0.48-0.82 0.48-1.33 0-0.68-0.24-1.12-0.57-1.49l-0.4-0.4-0.04-0.03-0.05-0.03c-0.16-0.16-0.32-0.31-0.49-0.5-0.62-0.75-1.37-2.14-1.5-5.82-0.13-3.9-3.2-6.68-6.83-6.68-1.88 0-3.62 0.75-4.87 2.02l14.26 14.26Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M8.95 20.5c0.09-0.16 0.25-0.25 0.43-0.25h5.24c0.18 0 0.34 0.1 0.43 0.25 0.09 0.15 0.1 0.34 0 0.5-0.59 1.06-1.72 1.75-3.05 1.75-1.33 0-2.46-0.69-3.06-1.76-0.08-0.15-0.08-0.34 0.01-0.5Z"/>
|
||||
</vector>
|
||||
12
app/src/main/res/drawable/symbol_mic_compact_16.xml
Normal file
12
app/src/main/res/drawable/symbol_mic_compact_16.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M8 0.35c-1.88 0-3.4 1.52-3.4 3.4v3.5c0 1.88 1.52 3.4 3.4 3.4s3.4-1.52 3.4-3.4v-3.5c0-1.88-1.52-3.4-3.4-3.4Zm-2.1 3.4c0-1.16 0.94-2.1 2.1-2.1 1.16 0 2.1 0.94 2.1 2.1v3.5c0 1.16-0.94 2.1-2.1 2.1-1.16 0-2.1-0.94-2.1-2.1v-3.5Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M5.25 14.1c-0.36 0-0.65 0.3-0.65 0.65 0 0.36 0.3 0.65 0.65 0.65h5.5c0.36 0 0.65-0.3 0.65-0.65 0-0.36-0.3-0.65-0.65-0.65h-2.1v-0.96c2.86-0.2 5.13-2.53 5.25-5.42V7.27 6.75c0-0.36-0.3-0.65-0.65-0.65-0.36 0-0.65 0.3-0.65 0.65v0.5 0.42c-0.1 2.27-1.91 4.09-4.18 4.18H8 7.58C5.3 11.75 3.49 9.94 3.4 7.67V7.25v-0.5c0-0.36-0.3-0.65-0.65-0.65-0.36 0-0.65 0.3-0.65 0.65v0.52 0.45c0.12 2.89 2.39 5.21 5.25 5.42v0.96h-2.1Z"/>
|
||||
</vector>
|
||||
@@ -4,9 +4,9 @@
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnPrimary"
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M7.5 6c0-2.49 2.01-4.5 4.5-4.5s4.5 2.01 4.5 4.5v6c0 2.49-2.01 4.5-4.5 4.5S7.5 14.49 7.5 12V6Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnPrimary"
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M5.88 10.5c0-0.48-0.4-0.88-0.88-0.88s-0.88 0.4-0.88 0.88V12c0 4.05 3.07 7.4 7 7.83v1.3H8c-0.48 0-0.88 0.39-0.88 0.87s0.4 0.88 0.88 0.88h8c0.48 0 0.88-0.4 0.88-0.88s-0.4-0.88-0.88-0.88h-3.13v-1.3c3.94-0.43 7-3.77 7-7.82v-1.5c0-0.48-0.39-0.88-0.87-0.88s-0.88 0.4-0.88 0.88V12c0 3.38-2.74 6.13-6.12 6.13S5.87 15.38 5.87 12v-1.5Z"/>
|
||||
</vector>
|
||||
|
||||
12
app/src/main/res/drawable/symbol_mic_fill_white_24.xml
Normal file
12
app/src/main/res/drawable/symbol_mic_fill_white_24.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="28dp"
|
||||
android:height="28dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnPrimary"
|
||||
android:pathData="M7.5 6c0-2.49 2.01-4.5 4.5-4.5s4.5 2.01 4.5 4.5v6c0 2.49-2.01 4.5-4.5 4.5S7.5 14.49 7.5 12V6Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnPrimary"
|
||||
android:pathData="M5.88 10.5c0-0.48-0.4-0.88-0.88-0.88s-0.88 0.4-0.88 0.88V12c0 4.05 3.07 7.4 7 7.83v1.3H8c-0.48 0-0.88 0.39-0.88 0.87s0.4 0.88 0.88 0.88h8c0.48 0 0.88-0.4 0.88-0.88s-0.4-0.88-0.88-0.88h-3.13v-1.3c3.94-0.43 7-3.77 7-7.82v-1.5c0-0.48-0.39-0.88-0.87-0.88s-0.88 0.4-0.88 0.88V12c0 3.38-2.74 6.13-6.12 6.13S5.87 15.38 5.87 12v-1.5Z"/>
|
||||
</vector>
|
||||
21
app/src/main/res/drawable/symbol_mic_slash_compact_16.xml
Normal file
21
app/src/main/res/drawable/symbol_mic_slash_compact_16.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="16dp"
|
||||
android:height="16dp"
|
||||
android:viewportWidth="16"
|
||||
android:viewportHeight="16">
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M4.6 7.25V7.07l3.57 3.58H8c-1.88 0-3.4-1.52-3.4-3.4Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M8.42 11.85C8.71 11.84 9 11.8 9.26 11.73l1.03 1.04c-0.51 0.2-1.06 0.33-1.64 0.37v0.96h2.1c0.36 0 0.65 0.3 0.65 0.65 0 0.36-0.3 0.65-0.65 0.65h-5.5c-0.36 0-0.65-0.3-0.65-0.65 0-0.36 0.3-0.65 0.65-0.65h2.1v-0.96c-2.86-0.2-5.13-2.53-5.25-5.42V7.27 6.75c0-0.36 0.3-0.65 0.65-0.65 0.36 0 0.65 0.3 0.65 0.65v0.5 0.42c0.1 2.27 1.91 4.09 4.18 4.18H8h0.42Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M12.07 9.6L13 10.53c0.53-0.82 0.85-1.78 0.89-2.82V7.27 6.75c0-0.36-0.3-0.65-0.65-0.65-0.36 0-0.65 0.3-0.65 0.65v0.5 0.42c-0.03 0.7-0.22 1.35-0.53 1.92Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M10.07 7.6l1.04 1.03c0.19-0.42 0.29-0.89 0.29-1.38v-3.5c0-1.88-1.52-3.4-3.4-3.4-1.4 0-2.6 0.85-3.12 2.05l1.04 1.05C6.07 2.43 6.94 1.65 8 1.65c1.16 0 2.1 0.94 2.1 2.1v3.5c0 0.12-0.01 0.23-0.03 0.35Z"/>
|
||||
<path
|
||||
android:fillColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
android:pathData="M2.46 1.54c-0.25-0.25-0.67-0.25-0.92 0s-0.25 0.67 0 0.92l12 12c0.25 0.25 0.67 0.25 0.92 0s0.25-0.67 0-0.92l-12-12Z"/>
|
||||
</vector>
|
||||
@@ -3,7 +3,7 @@
|
||||
<item android:state_checked="true">
|
||||
<layer-list>
|
||||
<item android:drawable="@drawable/webrtc_call_screen_circle_checked" />
|
||||
<item android:bottom="14dp" android:drawable="@drawable/symbol_mic_fill_24" android:left="14dp" android:right="14dp" android:top="14dp" />
|
||||
<item android:bottom="14dp" android:drawable="@drawable/symbol_mic_fill_white_24" android:left="14dp" android:right="14dp" android:top="14dp" />
|
||||
</layer-list>
|
||||
</item>
|
||||
<item>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
android:left="4dp"
|
||||
android:right="4dp"
|
||||
android:drawable="@drawable/webrtc_call_screen_circle_checked" />
|
||||
<item android:bottom="14dp" android:drawable="@drawable/symbol_mic_fill_24" android:left="14dp" android:right="14dp" android:top="14dp" />
|
||||
<item android:bottom="14dp" android:drawable="@drawable/symbol_mic_fill_white_24" android:left="14dp" android:right="14dp" android:top="14dp" />
|
||||
</layer-list>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,24 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout 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:layout_width="match_parent"
|
||||
android:layout_height="94dp">
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="94dp"
|
||||
tools:viewBindingIgnore="true">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="64dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:background="@drawable/call_participant_update_window_background">
|
||||
android:background="@drawable/call_participant_update_window_background"
|
||||
android:elevation="4dp">
|
||||
|
||||
<org.thoughtcrime.securesms.components.AvatarImageView
|
||||
android:id="@+id/avatar"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginVertical="8dp"
|
||||
android:layout_marginStart="8dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -29,32 +33,36 @@
|
||||
|
||||
<org.thoughtcrime.securesms.badges.BadgeImageView
|
||||
android:id="@+id/badge"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginTop="22dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:contentDescription="@string/ImageView__badge"
|
||||
app:badge_size="medium"
|
||||
app:badge_size="small"
|
||||
app:layout_constraintStart_toStartOf="@id/avatar"
|
||||
app:layout_constraintTop_toTopOf="@id/avatar"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:height="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="14dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginBottom="14dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textAppearance="@style/Signal.Text.BodyMedium"
|
||||
android:textColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toEndOf="@id/avatar"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="@tools:sample/lorem/random" />
|
||||
app:layout_constraintVertical_bias="1.0"
|
||||
app:layout_goneMarginStart="24dp"
|
||||
tools:text="Kiera joined" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</FrameLayout>
|
||||
57
app/src/main/res/layout/call_state_update.xml
Normal file
57
app/src/main/res/layout/call_state_update.xml
Normal file
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="94dp"
|
||||
tools:viewBindingIgnore="true">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:background="@drawable/call_participant_update_window_background"
|
||||
android:elevation="4dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_marginVertical="16dp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:background="@drawable/circle_ultramarine"
|
||||
tools:src="@drawable/ic_profile_80"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginTop="14dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:layout_marginBottom="14dp"
|
||||
android:gravity="center_vertical"
|
||||
android:textAppearance="@style/Signal.Text.BodyMedium"
|
||||
android:textColor="@color/signal_light_colorOnSecondaryContainer"
|
||||
app:layout_constrainedWidth="true"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toEndOf="@id/icon"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias="1.0"
|
||||
app:layout_goneMarginStart="24dp"
|
||||
tools:text="Kiera joined" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</FrameLayout>
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge 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"
|
||||
tools:parentTag="org.thoughtcrime.securesms.components.webrtc.WebRtcCallView">
|
||||
tools:parentTag="org.thoughtcrime.securesms.components.webrtc.WebRtcCallView"
|
||||
tools:viewBindingIgnore="true">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/fold_top_guideline"
|
||||
@@ -64,8 +64,8 @@
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textColor="@color/signal_light_colorOnPrimary"
|
||||
android:visibility="gone"
|
||||
app:drawableTopCompat="@drawable/symbol_video_slash_fill_24"
|
||||
app:drawableTint="@color/signal_light_colorOnPrimary"
|
||||
app:drawableTopCompat="@drawable/symbol_video_slash_fill_24"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</FrameLayout>
|
||||
@@ -216,247 +216,108 @@
|
||||
android:layout_height="@dimen/webrtc_button_size"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginBottom="30dp"
|
||||
android:contentDescription="@string/WebRtcCallView__speaker"
|
||||
android:scaleType="fitXY"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallView__speaker"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_button_labels_barrier"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toStartOf="@id/call_screen_camera_direction_toggle"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:srcCompat="@drawable/webrtc_call_screen_speaker_toggle"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_speaker_toggle_label"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:lines="2"
|
||||
android:text="@string/WebRtcCallView__speaker"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Subtitle"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constrainedHeight="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_speaker_toggle"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_speaker_toggle"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_speaker_toggle"
|
||||
app:layout_constraintVertical_bias="0"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/call_screen_camera_direction_toggle"
|
||||
android:layout_width="@dimen/webrtc_button_size"
|
||||
android:layout_height="@dimen/webrtc_button_size"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginBottom="30dp"
|
||||
android:clickable="false"
|
||||
android:contentDescription="@string/WebRtcCallView__flip"
|
||||
android:scaleType="fitXY"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallView__flip"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_button_labels_barrier"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toStartOf="@id/call_screen_video_toggle"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toEndOf="@id/call_screen_speaker_toggle"
|
||||
app:srcCompat="@drawable/webrtc_call_screen_camera_toggle"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_camera_direction_toggle_label"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:lines="2"
|
||||
android:text="@string/WebRtcCallView__flip"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Subtitle"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constrainedHeight="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_camera_direction_toggle"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_camera_direction_toggle"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_camera_direction_toggle"
|
||||
app:layout_constraintVertical_bias="0"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.AccessibleToggleButton
|
||||
android:id="@+id/call_screen_video_toggle"
|
||||
style="@style/WebRtcCallV2CompoundButton"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginBottom="30dp"
|
||||
android:background="@drawable/webrtc_call_screen_video_toggle"
|
||||
android:contentDescription="@string/WebRtcCallView__camera"
|
||||
android:stateListAnimator="@null"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallView__camera"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_button_labels_barrier"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toStartOf="@id/call_screen_audio_mic_toggle"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toEndOf="@id/call_screen_camera_direction_toggle"
|
||||
tools:checked="true"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_video_toggle_label"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:lines="2"
|
||||
android:text="@string/WebRtcCallView__camera"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Subtitle"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constrainedHeight="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_video_toggle"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_video_toggle"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_video_toggle"
|
||||
app:layout_constraintVertical_bias="0"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.AccessibleToggleButton
|
||||
android:id="@+id/call_screen_audio_mic_toggle"
|
||||
style="@style/WebRtcCallV2CompoundButton"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginBottom="30dp"
|
||||
android:background="@drawable/webrtc_call_screen_mic_toggle"
|
||||
android:contentDescription="@string/WebRtcCallView__unmute"
|
||||
android:stateListAnimator="@null"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallView__unmute"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_button_labels_barrier"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toStartOf="@id/call_screen_audio_ring_toggle"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toEndOf="@id/call_screen_video_toggle"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_audio_mic_toggle_label"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:lines="2"
|
||||
android:text="@string/WebRtcCallView__mute"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Subtitle"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constrainedHeight="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_audio_mic_toggle"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_audio_mic_toggle"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_audio_mic_toggle"
|
||||
app:layout_constraintVertical_bias="0"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.AccessibleToggleButton
|
||||
android:id="@+id/call_screen_audio_ring_toggle"
|
||||
style="@style/WebRtcCallV2CompoundButton"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginBottom="30dp"
|
||||
android:background="@drawable/webrtc_call_screen_ring_toggle"
|
||||
android:stateListAnimator="@null"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_button_labels_barrier"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toStartOf="@id/call_screen_end_call"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toEndOf="@id/call_screen_audio_mic_toggle" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_audio_ring_toggle_label"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:lines="2"
|
||||
android:text="@string/WebRtcCallView__ring"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Subtitle"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constrainedHeight="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_audio_ring_toggle"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_audio_ring_toggle"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_audio_ring_toggle"
|
||||
app:layout_constraintVertical_bias="0" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/call_screen_end_call"
|
||||
android:layout_width="@dimen/webrtc_button_size"
|
||||
android:layout_height="@dimen/webrtc_button_size"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_marginBottom="30dp"
|
||||
android:clickable="false"
|
||||
android:contentDescription="@string/WebRtcCallView__end_call"
|
||||
android:scaleType="fitXY"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallView__end_call"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_button_labels_barrier"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toEndOf="@id/call_screen_audio_ring_toggle"
|
||||
app:srcCompat="@drawable/webrtc_call_screen_hangup"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_end_call_label"
|
||||
android:layout_width="64dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:lines="2"
|
||||
android:text="@string/WebRtcCallView__end_call"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Subtitle"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constrainedHeight="true"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_start_call_controls"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_end_call"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_end_call"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_end_call"
|
||||
app:layout_constraintVertical_bias="0"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/call_screen_button_labels_barrier"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
app:barrierDirection="top"
|
||||
app:constraint_referenced_ids="call_screen_speaker_toggle_label,call_screen_camera_direction_toggle_label,call_screen_video_toggle_label,call_screen_audio_mic_toggle_label,call_screen_audio_ring_toggle_label,call_screen_end_call_label" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/call_screen_decline_call"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginStart="66dp"
|
||||
android:layout_marginBottom="65dp"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallScreen__decline"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_navigation_bar_guideline"
|
||||
app:layout_constraintEnd_toStartOf="@id/call_screen_answer_call"
|
||||
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
||||
@@ -464,28 +325,14 @@
|
||||
app:srcCompat="@drawable/webrtc_call_screen_hangup"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_decline_call_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:text="@string/WebRtcCallScreen__decline"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_decline_call"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_decline_call"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_decline_call"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/call_screen_answer_call"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginEnd="66dp"
|
||||
android:layout_marginBottom="65dp"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallScreen__answer"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_navigation_bar_guideline"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
||||
@@ -493,45 +340,17 @@
|
||||
app:srcCompat="@drawable/webrtc_call_screen_answer"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_answer_call_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:text="@string/WebRtcCallScreen__answer"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="@id/call_screen_answer_call"
|
||||
app:layout_constraintStart_toStartOf="@id/call_screen_answer_call"
|
||||
app:layout_constraintTop_toBottomOf="@id/call_screen_answer_call"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/call_screen_answer_without_video"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/WebRtcCallScreen__answer_without_video"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_answer_without_video_label"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:srcCompat="@drawable/webrtc_call_screen_answer_without_video"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/call_screen_answer_without_video_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="9dp"
|
||||
android:hyphenationFrequency="normal"
|
||||
android:text="@string/WebRtcCallScreen__answer_without_video"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toTopOf="@id/call_screen_answer_call"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:srcCompat="@drawable/webrtc_call_screen_answer_without_video"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<LinearLayout
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
android:layout_marginTop="8dp"
|
||||
android:drawablePadding="4dp"
|
||||
android:gravity="center"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textAppearance="@style/Signal.Text.BodyMedium"
|
||||
android:textColor="@color/core_white"
|
||||
android:visibility="gone"
|
||||
app:drawableStartCompat="@drawable/ic_signal_logo_small"
|
||||
@@ -49,7 +49,7 @@
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_horizontal"
|
||||
android:maxLines="2"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body1.Bold"
|
||||
android:textAppearance="@style/Signal.Text.HeadlineMedium"
|
||||
android:textColor="@color/core_white"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@@ -62,7 +62,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:textAppearance="@style/TextAppearance.Signal.Body2"
|
||||
android:textAppearance="@style/Signal.Text.BodyMedium"
|
||||
android:textColor="@color/core_white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
@@ -5777,5 +5777,17 @@
|
||||
<!-- Activity title in title bar -->
|
||||
<string name="NewCallActivity__new_call">New call</string>
|
||||
|
||||
<!-- Call state update popups -->
|
||||
<!-- Displayed when the user enables group call ringing -->
|
||||
<string name="CallStateUpdatePopupWindow__ringing_on">Ringing on</string>
|
||||
<!-- Displayed when the user disables group call ringing -->
|
||||
<string name="CallStateUpdatePopupWindow__ringing_off">Ringing off</string>
|
||||
<!-- Displayed when the user cannot enable group call ringing -->
|
||||
<string name="CallStateUpdatePopupWindow__group_is_too_large">Group is too large to ring the participants</string>
|
||||
<!-- Displayed when the user turns on their mic -->
|
||||
<string name="CallStateUpdatePopupWindow__mic_on">Mic on</string>
|
||||
<!-- Displayed when the user turns off their mic -->
|
||||
<string name="CallStateUpdatePopupWindow__mic_off">Mic off</string>
|
||||
|
||||
<!-- EOF -->
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user