mirror of
https://github.com/oxen-io/session-android.git
synced 2025-08-25 19:12:19 +00:00
Add immersive mode for calling.
This commit is contained in:

committed by
Greyson Parrelli

parent
ac197f42f2
commit
db3098f633
@@ -27,7 +27,9 @@ import android.media.AudioManager;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Rational;
|
import android.util.Rational;
|
||||||
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
|
import android.view.WindowInsetsController;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -35,6 +37,8 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
import androidx.appcompat.app.AppCompatDelegate;
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.lifecycle.ViewModelProviders;
|
import androidx.lifecycle.ViewModelProviders;
|
||||||
|
import androidx.transition.Transition;
|
||||||
|
import androidx.transition.TransitionListenerAdapter;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
@@ -58,8 +62,10 @@ import org.thoughtcrime.securesms.ringrtc.RemotePeer;
|
|||||||
import org.thoughtcrime.securesms.service.WebRtcCallService;
|
import org.thoughtcrime.securesms.service.WebRtcCallService;
|
||||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||||
import org.thoughtcrime.securesms.util.EllapsedTimeFormatter;
|
import org.thoughtcrime.securesms.util.EllapsedTimeFormatter;
|
||||||
|
import org.thoughtcrime.securesms.util.FullscreenHelper;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
|
import org.thoughtcrime.securesms.util.WindowUtil;
|
||||||
import org.whispersystems.libsignal.IdentityKey;
|
import org.whispersystems.libsignal.IdentityKey;
|
||||||
import org.whispersystems.signalservice.api.messages.calls.HangupMessage;
|
import org.whispersystems.signalservice.api.messages.calls.HangupMessage;
|
||||||
import org.whispersystems.signalservice.api.messages.calls.OfferMessage;
|
import org.whispersystems.signalservice.api.messages.calls.OfferMessage;
|
||||||
@@ -80,6 +86,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
|||||||
|
|
||||||
private CallParticipantsListUpdatePopupWindow participantUpdateWindow;
|
private CallParticipantsListUpdatePopupWindow participantUpdateWindow;
|
||||||
|
|
||||||
|
private FullscreenHelper fullscreenHelper;
|
||||||
private WebRtcCallView callScreen;
|
private WebRtcCallView callScreen;
|
||||||
private TooltipPopup videoTooltip;
|
private TooltipPopup videoTooltip;
|
||||||
private WebRtcCallViewModel viewModel;
|
private WebRtcCallViewModel viewModel;
|
||||||
@@ -100,8 +107,8 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
|||||||
|
|
||||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
setContentView(R.layout.webrtc_call_activity);
|
setContentView(R.layout.webrtc_call_activity);
|
||||||
//noinspection ConstantConditions
|
|
||||||
getSupportActionBar().hide();
|
fullscreenHelper = new FullscreenHelper(this);
|
||||||
|
|
||||||
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
|
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
|
||||||
|
|
||||||
@@ -636,6 +643,16 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showSystemUI() {
|
||||||
|
fullscreenHelper.showSystemUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void hideSystemUI() {
|
||||||
|
fullscreenHelper.hideSystemUI();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAudioOutputChanged(@NonNull WebRtcAudioOutput audioOutput) {
|
public void onAudioOutputChanged(@NonNull WebRtcAudioOutput audioOutput) {
|
||||||
switch (audioOutput) {
|
switch (audioOutput) {
|
||||||
|
@@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.components.webrtc;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.ColorMatrix;
|
import android.graphics.ColorMatrix;
|
||||||
import android.graphics.ColorMatrixColorFilter;
|
import android.graphics.ColorMatrixColorFilter;
|
||||||
|
import android.graphics.Rect;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -28,7 +29,6 @@ import androidx.transition.TransitionSet;
|
|||||||
import androidx.viewpager2.widget.MarginPageTransformer;
|
import androidx.viewpager2.widget.MarginPageTransformer;
|
||||||
import androidx.viewpager2.widget.ViewPager2;
|
import androidx.viewpager2.widget.ViewPager2;
|
||||||
|
|
||||||
import com.annimon.stream.OptionalLong;
|
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||||
import com.google.android.material.button.MaterialButton;
|
import com.google.android.material.button.MaterialButton;
|
||||||
@@ -160,7 +160,6 @@ public class WebRtcCallView extends FrameLayout {
|
|||||||
View decline = findViewById(R.id.call_screen_decline_call);
|
View decline = findViewById(R.id.call_screen_decline_call);
|
||||||
View answerLabel = findViewById(R.id.call_screen_answer_call_label);
|
View answerLabel = findViewById(R.id.call_screen_answer_call_label);
|
||||||
View declineLabel = findViewById(R.id.call_screen_decline_call_label);
|
View declineLabel = findViewById(R.id.call_screen_decline_call_label);
|
||||||
Guideline statusBarGuideline = findViewById(R.id.call_screen_status_bar_guideline);
|
|
||||||
View cancelStartCall = findViewById(R.id.call_screen_start_call_cancel);
|
View cancelStartCall = findViewById(R.id.call_screen_start_call_cancel);
|
||||||
|
|
||||||
callParticipantsPager.setPageTransformer(new MarginPageTransformer(ViewUtil.dpToPx(4)));
|
callParticipantsPager.setPageTransformer(new MarginPageTransformer(ViewUtil.dpToPx(4)));
|
||||||
@@ -227,9 +226,6 @@ public class WebRtcCallView extends FrameLayout {
|
|||||||
largeLocalRenderNoVideoAvatar.setAlpha(0.6f);
|
largeLocalRenderNoVideoAvatar.setAlpha(0.6f);
|
||||||
largeLocalRenderNoVideoAvatar.setColorFilter(new ColorMatrixColorFilter(greyScaleMatrix));
|
largeLocalRenderNoVideoAvatar.setColorFilter(new ColorMatrixColorFilter(greyScaleMatrix));
|
||||||
|
|
||||||
int statusBarHeight = ViewUtil.getStatusBarHeight(this);
|
|
||||||
statusBarGuideline.setGuidelineBegin(statusBarHeight);
|
|
||||||
|
|
||||||
errorButton.setOnClickListener(v -> {
|
errorButton.setOnClickListener(v -> {
|
||||||
if (controlsListener != null) {
|
if (controlsListener != null) {
|
||||||
controlsListener.onCancelStartCall();
|
controlsListener.onCancelStartCall();
|
||||||
@@ -246,6 +242,26 @@ public class WebRtcCallView extends FrameLayout {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean fitSystemWindows(Rect insets) {
|
||||||
|
Guideline statusBarGuideline = findViewById(R.id.call_screen_status_bar_guideline);
|
||||||
|
Guideline navigationBarGuideline = findViewById(R.id.call_screen_navigation_bar_guideline);
|
||||||
|
|
||||||
|
statusBarGuideline.setGuidelineBegin(insets.top);
|
||||||
|
navigationBarGuideline.setGuidelineEnd(insets.bottom);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onWindowSystemUiVisibilityChanged(int visible) {
|
||||||
|
if ((visible & SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) {
|
||||||
|
pictureInPictureGestureHelper.setVerticalBoundaries(toolbar.getBottom(), videoToggle.getTop());
|
||||||
|
} else {
|
||||||
|
pictureInPictureGestureHelper.clearVerticalBoundaries();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDetachedFromWindow() {
|
protected void onDetachedFromWindow() {
|
||||||
super.onDetachedFromWindow();
|
super.onDetachedFromWindow();
|
||||||
@@ -515,6 +531,10 @@ public class WebRtcCallView extends FrameLayout {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
cancelFadeOut();
|
cancelFadeOut();
|
||||||
|
|
||||||
|
if (controlsListener != null) {
|
||||||
|
controlsListener.showSystemUI();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
controls = webRtcControls;
|
controls = webRtcControls;
|
||||||
@@ -581,12 +601,10 @@ public class WebRtcCallView extends FrameLayout {
|
|||||||
private void fadeOutControls() {
|
private void fadeOutControls() {
|
||||||
fadeControls(ConstraintSet.GONE);
|
fadeControls(ConstraintSet.GONE);
|
||||||
controlsListener.onControlsFadeOut();
|
controlsListener.onControlsFadeOut();
|
||||||
pictureInPictureGestureHelper.clearVerticalBoundaries();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fadeInControls() {
|
private void fadeInControls() {
|
||||||
fadeControls(ConstraintSet.VISIBLE);
|
fadeControls(ConstraintSet.VISIBLE);
|
||||||
pictureInPictureGestureHelper.setVerticalBoundaries(toolbar.getBottom(), videoToggle.getTop());
|
|
||||||
|
|
||||||
scheduleFadeOut();
|
scheduleFadeOut();
|
||||||
}
|
}
|
||||||
@@ -630,6 +648,15 @@ public class WebRtcCallView extends FrameLayout {
|
|||||||
.setDuration(TRANSITION_DURATION_MILLIS);
|
.setDuration(TRANSITION_DURATION_MILLIS);
|
||||||
|
|
||||||
TransitionManager.endTransitions(parent);
|
TransitionManager.endTransitions(parent);
|
||||||
|
|
||||||
|
if (controlsListener != null) {
|
||||||
|
if (controlsVisible) {
|
||||||
|
controlsListener.showSystemUI();
|
||||||
|
} else {
|
||||||
|
controlsListener.hideSystemUI();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TransitionManager.beginDelayedTransition(parent, transition);
|
TransitionManager.beginDelayedTransition(parent, transition);
|
||||||
|
|
||||||
ConstraintSet constraintSet = new ConstraintSet();
|
ConstraintSet constraintSet = new ConstraintSet();
|
||||||
@@ -714,6 +741,8 @@ public class WebRtcCallView extends FrameLayout {
|
|||||||
void onStartCall(boolean isVideoCall);
|
void onStartCall(boolean isVideoCall);
|
||||||
void onCancelStartCall();
|
void onCancelStartCall();
|
||||||
void onControlsFadeOut();
|
void onControlsFadeOut();
|
||||||
|
void showSystemUI();
|
||||||
|
void hideSystemUI();
|
||||||
void onAudioOutputChanged(@NonNull WebRtcAudioOutput audioOutput);
|
void onAudioOutputChanged(@NonNull WebRtcAudioOutput audioOutput);
|
||||||
void onVideoChanged(boolean isVideoEnabled);
|
void onVideoChanged(boolean isVideoEnabled);
|
||||||
void onMicChanged(boolean isMicEnabled);
|
void onMicChanged(boolean isMicEnabled);
|
||||||
|
@@ -4,6 +4,7 @@ import android.app.Activity;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
|
import android.view.WindowInsetsController;
|
||||||
|
|
||||||
import androidx.annotation.ColorInt;
|
import androidx.annotation.ColorInt;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
@@ -13,11 +13,11 @@
|
|||||||
android:id="@+id/call_screen_participants_pager"
|
android:id="@+id/call_screen_participants_pager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
android:orientation="vertical"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
android:orientation="vertical" />
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
@@ -28,9 +28,15 @@
|
|||||||
|
|
||||||
<ViewStub
|
<ViewStub
|
||||||
android:id="@+id/group_call_call_full_view"
|
android:id="@+id/group_call_call_full_view"
|
||||||
android:layout="@layout/group_call_call_full"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"/>
|
android:layout_height="match_parent"
|
||||||
|
android:layout="@layout/group_call_call_full" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/call_screen_header_gradient"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="160dp"
|
||||||
|
android:background="@drawable/webrtc_call_screen_header_gradient" />
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/call_screen"
|
android:id="@+id/call_screen"
|
||||||
@@ -44,29 +50,27 @@
|
|||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
tools:layout_constraintGuide_begin="48dp" />
|
tools:layout_constraintGuide_begin="48dp" />
|
||||||
|
|
||||||
<View
|
<androidx.constraintlayout.widget.Guideline
|
||||||
android:id="@+id/call_screen_header_gradient"
|
android:id="@+id/call_screen_navigation_bar_guideline"
|
||||||
android:layout_width="0dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="160dp"
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/webrtc_call_screen_header_gradient"
|
android:orientation="horizontal"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
tools:layout_constraintGuide_end="48dp" />
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<Space
|
<Space
|
||||||
android:id="@+id/call_screen_footer_gradient_spacer"
|
android:id="@+id/call_screen_footer_gradient_spacer"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="30dp"
|
android:layout_height="30dp"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/call_screen_footer_gradient_barrier"/>
|
app:layout_constraintBottom_toBottomOf="@id/call_screen_footer_gradient_barrier" />
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/call_screen_footer_gradient"
|
android:id="@+id/call_screen_footer_gradient"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
|
android:layout_margin="-40dp"
|
||||||
android:background="@drawable/webrtc_call_screen_header_gradient"
|
android:background="@drawable/webrtc_call_screen_header_gradient"
|
||||||
android:rotation="180"
|
android:rotation="180"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:layout_margin="-40dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@id/call_screen_footer_gradient_spacer"
|
app:layout_constraintTop_toTopOf="@id/call_screen_footer_gradient_spacer"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
@@ -93,7 +97,7 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="1"
|
app:layout_constraintHorizontal_bias="1"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@id/call_screen_status_bar_guideline"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintVertical_bias="0">
|
app:layout_constraintVertical_bias="0">
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<androidx.cardview.widget.CardView
|
||||||
@@ -209,7 +213,7 @@
|
|||||||
android:layout_marginStart="66dp"
|
android:layout_marginStart="66dp"
|
||||||
android:layout_marginBottom="65dp"
|
android:layout_marginBottom="65dp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toTopOf="@id/call_screen_navigation_bar_guideline"
|
||||||
app:layout_constraintEnd_toStartOf="@id/call_screen_answer_call"
|
app:layout_constraintEnd_toStartOf="@id/call_screen_answer_call"
|
||||||
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@@ -236,7 +240,7 @@
|
|||||||
android:layout_marginEnd="66dp"
|
android:layout_marginEnd="66dp"
|
||||||
android:layout_marginBottom="65dp"
|
android:layout_marginBottom="65dp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toTopOf="@id/call_screen_navigation_bar_guideline"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
app:layout_constraintHorizontal_chainStyle="spread_inside"
|
||||||
app:layout_constraintStart_toEndOf="@id/call_screen_decline_call"
|
app:layout_constraintStart_toEndOf="@id/call_screen_decline_call"
|
||||||
@@ -285,13 +289,13 @@
|
|||||||
android:id="@+id/call_screen_start_call_controls"
|
android:id="@+id/call_screen_start_call_controls"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingStart="16dp"
|
android:paddingStart="16dp"
|
||||||
android:paddingEnd="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:paddingBottom="32dp"
|
android:paddingBottom="32dp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:gravity="center"
|
app:layout_constraintBottom_toTopOf="@id/call_screen_navigation_bar_guideline"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
tools:visibility="visible">
|
tools:visibility="visible">
|
||||||
@@ -336,18 +340,18 @@
|
|||||||
android:textColor="@color/core_white"
|
android:textColor="@color/core_white"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:backgroundTint="@color/transparent_white_40"
|
app:backgroundTint="@color/transparent_white_40"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toTopOf="@id/call_screen_navigation_bar_guideline"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<ViewStub
|
<ViewStub
|
||||||
android:id="@+id/call_screen_group_call_speaker_hint"
|
android:id="@+id/call_screen_group_call_speaker_hint"
|
||||||
android:layout="@layout/group_call_speaker_hint"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="24dp"
|
android:layout_marginBottom="24dp"
|
||||||
android:inflatedId="@+id/call_screen_group_call_speaker_hint_view"
|
android:inflatedId="@+id/call_screen_group_call_speaker_hint_view"
|
||||||
|
android:layout="@layout/group_call_speaker_hint"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/call_screen_footer_gradient_barrier"
|
app:layout_constraintBottom_toTopOf="@+id/call_screen_footer_gradient_barrier"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
@@ -282,6 +282,8 @@
|
|||||||
<item name="android:windowLightStatusBar" tools:ignore="NewApi">false</item>
|
<item name="android:windowLightStatusBar" tools:ignore="NewApi">false</item>
|
||||||
<item name="android:navigationBarColor" tools:ignore="NewApi">@color/core_black</item>
|
<item name="android:navigationBarColor" tools:ignore="NewApi">@color/core_black</item>
|
||||||
<item name="android:windowLightNavigationBar" tools:ignore="NewApi">false</item>
|
<item name="android:windowLightNavigationBar" tools:ignore="NewApi">false</item>
|
||||||
|
<item name="windowActionBar">false</item>
|
||||||
|
<item name="windowNoTitle">true</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Theme.Signal.Light.BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
|
<style name="Theme.Signal.Light.BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
|
||||||
|
Reference in New Issue
Block a user