Detailed changes
@@ -67,7 +67,7 @@ dependencies {
implementation "androidx.preference:preference:1.2.1"
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'com.google.android.material:material:1.13.0-alpha12'
- implementation 'androidx.work:work-runtime:2.9.1'
+ implementation 'androidx.work:work-runtime:2.10.0'
implementation "androidx.emoji2:emoji2:1.5.0"
freeImplementation "androidx.emoji2:emoji2-bundled:1.5.0"
@@ -96,7 +96,7 @@ dependencies {
implementation "com.squareup.retrofit2:converter-gson:2.11.0"
implementation "com.squareup.okhttp3:okhttp:4.12.0"
- implementation 'com.google.guava:guava:33.4.0-android'
+ implementation 'com.google.guava:guava:33.4.6-android'
quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.13.52'
implementation 'im.conversations.webrtc:webrtc-android:129.0.0'
@@ -112,11 +112,11 @@ ext {
android {
namespace 'eu.siacs.conversations'
- compileSdk 34
+ compileSdk 35
defaultConfig {
minSdkVersion 23
- targetSdkVersion 34
+ targetSdkVersion 35
versionCode 42140
versionName "2.18.1"
archivesBaseName += "-$versionName"
@@ -5,6 +5,7 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -2,9 +2,9 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
-
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -2,9 +2,9 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
-
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -1,6 +1,7 @@
package de.gultsch.common;
import android.net.Uri;
+import androidx.annotation.NonNull;
import com.google.common.base.MoreObjects;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
@@ -11,7 +12,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.NonNull;
public class MiniUri {
@@ -1,17 +1,15 @@
package de.gultsch.minidns;
+import androidx.annotation.NonNull;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
-
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import javax.annotation.Nonnull;
-
public final class DNSServer {
public final InetAddress inetAddress;
@@ -76,7 +74,7 @@ public final class DNSServer {
}
@Override
- @Nonnull
+ @NonNull
public String toString() {
return MoreObjects.toStringHelper(this)
.add("inetAddress", inetAddress)
@@ -1,20 +1,16 @@
package eu.siacs.conversations.services;
-import android.content.Context;
+import static eu.siacs.conversations.entities.Transferable.VALID_CRYPTO_EXTENSIONS;
+
import android.os.PowerManager;
import android.os.SystemClock;
import android.util.Log;
-
+import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
-
-import org.bouncycastle.crypto.engines.AESEngine;
-import org.bouncycastle.crypto.io.CipherInputStream;
-import org.bouncycastle.crypto.io.CipherOutputStream;
-import org.bouncycastle.crypto.modes.AEADBlockCipher;
-import org.bouncycastle.crypto.modes.GCMBlockCipher;
-import org.bouncycastle.crypto.params.AEADParameters;
-import org.bouncycastle.crypto.params.KeyParameter;
-
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.utils.Compatibility;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -22,20 +18,18 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.concurrent.atomic.AtomicLong;
-
-import javax.annotation.Nullable;
-
-import eu.siacs.conversations.Config;
-import eu.siacs.conversations.R;
-import eu.siacs.conversations.entities.DownloadableFile;
-import eu.siacs.conversations.utils.Compatibility;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import okio.BufferedSink;
import okio.Okio;
import okio.Source;
-
-import static eu.siacs.conversations.entities.Transferable.VALID_CRYPTO_EXTENSIONS;
+import org.bouncycastle.crypto.engines.AESEngine;
+import org.bouncycastle.crypto.io.CipherInputStream;
+import org.bouncycastle.crypto.io.CipherOutputStream;
+import org.bouncycastle.crypto.modes.AEADBlockCipher;
+import org.bouncycastle.crypto.modes.GCMBlockCipher;
+import org.bouncycastle.crypto.params.AEADParameters;
+import org.bouncycastle.crypto.params.KeyParameter;
public class AbstractConnectionManager {
@@ -50,18 +44,19 @@ public class AbstractConnectionManager {
public static InputStream upgrade(DownloadableFile file, InputStream is) {
if (file.getKey() != null && file.getIv() != null) {
AEADBlockCipher cipher = new GCMBlockCipher(new AESEngine());
- cipher.init(true, new AEADParameters(new KeyParameter(file.getKey()), 128, file.getIv()));
+ cipher.init(
+ true, new AEADParameters(new KeyParameter(file.getKey()), 128, file.getIv()));
return new CipherInputStream(is, cipher);
} else {
return is;
}
}
+ // For progress tracking see:
+ // https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/Progress.java
- //For progress tracking see:
- //https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/Progress.java
-
- public static RequestBody requestBody(final DownloadableFile file, final ProgressListener progressListener) {
+ public static RequestBody requestBody(
+ final DownloadableFile file, final ProgressListener progressListener) {
return new RequestBody() {
@Override
@@ -94,7 +89,8 @@ public class AbstractConnectionManager {
void onProgress(long progress);
}
- public static OutputStream createOutputStream(DownloadableFile file, boolean append, boolean decrypt) {
+ public static OutputStream createOutputStream(
+ DownloadableFile file, boolean append, boolean decrypt) {
FileOutputStream os;
try {
os = new FileOutputStream(file, append);
@@ -107,7 +103,8 @@ public class AbstractConnectionManager {
}
try {
AEADBlockCipher cipher = new GCMBlockCipher(new AESEngine());
- cipher.init(false, new AEADParameters(new KeyParameter(file.getKey()), 128, file.getIv()));
+ cipher.init(
+ false, new AEADParameters(new KeyParameter(file.getKey()), 128, file.getIv()));
return new CipherOutputStream(os, cipher);
} catch (Exception e) {
Log.d(Config.LOGTAG, "unable to create cipher output stream", e);
@@ -120,7 +117,9 @@ public class AbstractConnectionManager {
}
public long getAutoAcceptFileSize() {
- final long autoAcceptFileSize = this.mXmppConnectionService.getLongPreference("auto_accept_file_size", R.integer.auto_accept_filesize);
+ final long autoAcceptFileSize =
+ this.mXmppConnectionService.getLongPreference(
+ "auto_accept_file_size", R.integer.auto_accept_filesize);
return autoAcceptFileSize <= 0 ? -1 : autoAcceptFileSize;
}
@@ -130,7 +129,9 @@ public class AbstractConnectionManager {
public void updateConversationUi(boolean force) {
synchronized (LAST_UI_UPDATE_CALL) {
- if (force || SystemClock.elapsedRealtime() - LAST_UI_UPDATE_CALL.get() >= UI_REFRESH_THRESHOLD) {
+ if (force
+ || SystemClock.elapsedRealtime() - LAST_UI_UPDATE_CALL.get()
+ >= UI_REFRESH_THRESHOLD) {
LAST_UI_UPDATE_CALL.set(SystemClock.elapsedRealtime());
mXmppConnectionService.updateConversationUi();
}
@@ -138,7 +139,8 @@ public class AbstractConnectionManager {
}
public PowerManager.WakeLock createWakeLock(final String name) {
- final PowerManager powerManager = ContextCompat.getSystemService(mXmppConnectionService, PowerManager.class);
+ final PowerManager powerManager =
+ ContextCompat.getSystemService(mXmppConnectionService, PowerManager.class);
return powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, name);
}
@@ -160,7 +162,7 @@ public class AbstractConnectionManager {
}
public static Extension of(String path) {
- //TODO accept List<String> pathSegments
+ // TODO accept List<String> pathSegments
final int pos = path.lastIndexOf('/');
final String filename = path.substring(pos + 1).toLowerCase();
final String[] parts = filename.split("\\.");
@@ -2,18 +2,15 @@ package eu.siacs.conversations.ui;
import android.content.Intent;
import android.os.Bundle;
-
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
-import eu.siacs.conversations.ui.util.SettingsUtils;
-
public class ConversationActivity extends AppCompatActivity {
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- startActivity(new Intent(this, ConversationsActivity.class));
- finish();
- }
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ startActivity(new Intent(this, ConversationsActivity.class));
+ finish();
+ }
}
@@ -1,18 +1,17 @@
package eu.siacs.conversations.xmpp.jingle;
+import androidx.annotation.NonNull;
import com.google.common.collect.ImmutableSet;
-
import java.util.Locale;
import java.util.Set;
-import javax.annotation.Nonnull;
-
public enum Media {
-
- VIDEO, AUDIO, UNKNOWN;
+ VIDEO,
+ AUDIO,
+ UNKNOWN;
@Override
- @Nonnull
+ @NonNull
public String toString() {
return super.toString().toLowerCase(Locale.ROOT);
}
@@ -1,5 +1,6 @@
package eu.siacs.conversations.xmpp.jingle;
+import androidx.annotation.NonNull;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
@@ -25,7 +26,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.annotation.Nonnull;
public class RtpContentMap extends AbstractContentMap<RtpDescription, IceUdpTransportInfo> {
@@ -491,7 +491,7 @@ public class RtpContentMap extends AbstractContentMap<RtpDescription, IceUdpTran
}
@Override
- @Nonnull
+ @NonNull
public String toString() {
return MoreObjects.toStringHelper(this)
.add("added", added)
@@ -1,23 +1,18 @@
package eu.siacs.conversations.xmpp.jingle;
import android.util.Log;
-
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.google.common.base.CaseFormat;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
-
import eu.siacs.conversations.Config;
-
+import java.util.UUID;
import org.webrtc.MediaStreamTrack;
import org.webrtc.PeerConnection;
import org.webrtc.RtpSender;
import org.webrtc.RtpTransceiver;
-import java.util.UUID;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
class TrackWrapper<T extends MediaStreamTrack> {
public final T track;
public final RtpSender rtpSender;
@@ -63,7 +58,7 @@ class TrackWrapper<T extends MediaStreamTrack> {
}
public static <T extends MediaStreamTrack> RtpTransceiver getTransceiver(
- @Nonnull final PeerConnection peerConnection, final TrackWrapper<T> trackWrapper) {
+ @NonNull final PeerConnection peerConnection, final TrackWrapper<T> trackWrapper) {
final RtpSender rtpSender = trackWrapper.rtpSender;
final String rtpSenderId;
try {
@@ -2,12 +2,15 @@ package eu.siacs.conversations.xmpp.jingle;
import android.content.Context;
import android.util.Log;
-
+import androidx.annotation.Nullable;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
-
+import eu.siacs.conversations.Config;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Set;
import org.webrtc.Camera2Enumerator;
import org.webrtc.CameraEnumerationAndroid;
import org.webrtc.CameraEnumerator;
@@ -17,14 +20,6 @@ import org.webrtc.PeerConnectionFactory;
import org.webrtc.SurfaceTextureHelper;
import org.webrtc.VideoSource;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Set;
-
-import javax.annotation.Nullable;
-
-import eu.siacs.conversations.Config;
-
class VideoSourceWrapper {
private static final int CAPTURING_RESOLUTION = 1920;
@@ -151,7 +146,7 @@ class VideoSourceWrapper {
return videoSourceWrapper;
}
}
- if (deviceNames.size() == 0) {
+ if (deviceNames.isEmpty()) {
return null;
} else {
return of(enumerator, Iterables.get(deviceNames, 0), deviceNames);
@@ -3,6 +3,8 @@ package eu.siacs.conversations.xmpp.jingle;
import android.content.Context;
import android.os.Build;
import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
@@ -22,8 +24,6 @@ import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.webrtc.AudioSource;
import org.webrtc.AudioTrack;
import org.webrtc.CandidatePairChangeEvent;
@@ -661,7 +661,7 @@ public class WebRTCWrapper {
MoreExecutors.directExecutor());
}
- @Nonnull
+ @NonNull
private ListenableFuture<PeerConnection> getPeerConnectionFuture() {
final PeerConnection peerConnection = this.peerConnection;
if (peerConnection == null) {
@@ -671,7 +671,7 @@ public class WebRTCWrapper {
}
}
- @Nonnull
+ @NonNull
private PeerConnection requirePeerConnection() {
final PeerConnection peerConnection = this.peerConnection;
if (peerConnection == null) {
@@ -680,7 +680,7 @@ public class WebRTCWrapper {
return peerConnection;
}
- @Nonnull
+ @NonNull
private PeerConnectionFactory requirePeerConnectionFactory() {
final PeerConnectionFactory peerConnectionFactory = this.peerConnectionFactory;
if (peerConnectionFactory == null) {
@@ -5,6 +5,7 @@ import static eu.siacs.conversations.xmpp.jingle.WebRTCWrapper.logDescription;
import android.content.Context;
import android.util.Log;
+import androidx.annotation.NonNull;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.io.Closeables;
@@ -41,7 +42,6 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
-import javax.annotation.Nonnull;
import org.webrtc.CandidatePairChangeEvent;
import org.webrtc.DataChannel;
import org.webrtc.IceCandidate;
@@ -437,7 +437,7 @@ public class WebRTCDataChannelTransport implements Transport {
localDescriptionExecutorService);
}
- @Nonnull
+ @NonNull
private PeerConnectionFactory requirePeerConnectionFactory() {
final PeerConnectionFactory peerConnectionFactory = this.peerConnectionFactory;
if (peerConnectionFactory == null) {
@@ -446,7 +446,7 @@ public class WebRTCDataChannelTransport implements Transport {
return peerConnectionFactory;
}
- @Nonnull
+ @NonNull
private PeerConnection requirePeerConnection() {
final var future = this.peerConnectionFuture;
if (future != null && future.isDone()) {
@@ -3,6 +3,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -3,6 +3,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -20,6 +21,6 @@
<androidx.emoji2.emojipicker.EmojiPickerView
android:id="@+id/emoji_picker"
android:layout_width="match_parent"
- android:layout_height="match_parent"/>
+ android:layout_height="match_parent" />
</LinearLayout>
</layout>
@@ -4,7 +4,8 @@
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
@@ -6,6 +6,7 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -6,6 +6,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -5,7 +5,8 @@
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
@@ -5,6 +5,7 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
@@ -6,6 +6,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -5,6 +5,7 @@
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,7 +4,8 @@
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
@@ -5,7 +5,8 @@
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<LinearLayout
android:id="@+id/pip_placeholder"
@@ -5,6 +5,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -20,10 +21,10 @@
</com.google.android.material.appbar.AppBarLayout>
<ListView
- android:background="@drawable/background_search"
android:id="@+id/search_results"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="@drawable/background_search"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:listSelector="@android:color/transparent"
@@ -4,7 +4,8 @@
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
@@ -5,6 +5,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
tools:context=".ui.ShareLocationActivity">
<com.google.android.material.appbar.AppBarLayout
@@ -5,6 +5,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -3,7 +3,8 @@
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
@@ -4,7 +4,8 @@
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
@@ -51,9 +52,9 @@
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:contentDescription="@string/add_contact_or_create_or_join_group_chat"
- app:sdMainFabClosedSrc="@drawable/ic_add_24dp"
app:sdMainFabClosedBackgroundColor="?colorPrimaryContainer"
app:sdMainFabClosedIconColor="?colorOnPrimaryContainer"
+ app:sdMainFabClosedSrc="@drawable/ic_add_24dp"
app:sdMainFabOpenedBackgroundColor="?colorPrimaryContainer"
app:sdMainFabOpenedIconColor="?colorOnPrimaryContainer"
app:sdOverlayLayout="@id/overlay"
@@ -3,7 +3,8 @@
<RelativeLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
@@ -14,6 +14,7 @@
<style name="Theme.Conversations3.SplashScreen" parent="@style/Theme.Conversations3">
<item name="android:windowBackground">@drawable/background_splash_screen</item>
<item name="android:windowLightStatusBar">true</item>
+ <item name="android:windowFullscreen">true</item>
</style>
<style name="Theme.Conversations3.Dialog" parent="@style/Theme.Conversations3">
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
@@ -5,6 +5,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
@@ -4,6 +4,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout