From 0b62bb81685b84bbbc8cfcbdbd5399a66dc59044 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 28 Jan 2021 14:24:54 -0400 Subject: [PATCH] Fix wallpaper in landscape mode with notched devices. --- .../securesms/AvatarPreviewActivity.java | 2 +- .../securesms/MediaPreviewActivity.java | 2 +- .../securesms/WebRtcCallActivity.java | 2 +- .../InsetAwareConstraintLayout.java | 10 ---------- .../conversation/ConversationActivity.java | 2 +- .../securesms/util/FullscreenHelper.java | 20 ++++++++++++++++--- .../ChatWallpaperPreviewActivity.java | 2 +- .../main/res/layout/conversation_activity.xml | 14 ++++++------- .../layout/conversation_reaction_scrubber.xml | 8 ++++---- .../main/res/layout/system_ui_guidelines.xml | 14 ------------- 10 files changed, 33 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java index dc72ab0365..5b47c0eb22 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/AvatarPreviewActivity.java @@ -125,7 +125,7 @@ public final class AvatarPreviewActivity extends PassphraseRequiredActivity { toolbar.setTitle(recipient.getDisplayName(context)); }); - FullscreenHelper fullscreenHelper = new FullscreenHelper(this); + FullscreenHelper fullscreenHelper = FullscreenHelper.createWithShortEdgesCutoutMode(this); findViewById(android.R.id.content).setOnClickListener(v -> fullscreenHelper.toggleUiVisibility()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java index aa06149ff9..3d0a3f3e2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java @@ -159,7 +159,7 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity viewModel = ViewModelProviders.of(this).get(MediaPreviewViewModel.class); - fullscreenHelper = new FullscreenHelper(this); + fullscreenHelper = FullscreenHelper.createWithShortEdgesCutoutMode(this); getSupportActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java index 641fbc3604..212fd66a9e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java @@ -108,7 +108,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.webrtc_call_activity); - fullscreenHelper = new FullscreenHelper(this); + fullscreenHelper = FullscreenHelper.createWithShortEdgesCutoutMode(this); setVolumeControlStream(AudioManager.STREAM_VOICE_CALL); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/InsetAwareConstraintLayout.java b/app/src/main/java/org/thoughtcrime/securesms/components/InsetAwareConstraintLayout.java index 34f6e3fd63..63587a3578 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/InsetAwareConstraintLayout.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/InsetAwareConstraintLayout.java @@ -33,8 +33,6 @@ public class InsetAwareConstraintLayout extends ConstraintLayout { protected boolean fitSystemWindows(Rect insets) { Guideline statusBarGuideline = findViewById(R.id.status_bar_guideline); Guideline navigationBarGuideline = findViewById(R.id.navigation_bar_guideline); - Guideline parentStartGuideline = findViewById(R.id.parent_start_guideline); - Guideline parentEndGuideline = findViewById(R.id.parent_end_guideline); if (statusBarGuideline != null) { statusBarGuideline.setGuidelineBegin(insets.top); @@ -44,14 +42,6 @@ public class InsetAwareConstraintLayout extends ConstraintLayout { navigationBarGuideline.setGuidelineEnd(insets.bottom); } - if (parentStartGuideline != null) { - parentStartGuideline.setGuidelineBegin(insets.left); - } - - if (parentEndGuideline != null) { - parentEndGuideline.setGuidelineEnd(insets.right); - } - return true; } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index ee6dbeadbd..6bb056f9d9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -420,7 +420,7 @@ public class ConversationActivity extends PassphraseRequiredActivity return; } - new FullscreenHelper(this).showSystemUI(); + FullscreenHelper.createWithDefaultCutoutMode(this).showSystemUI(); ConversationIntents.Args args = ConversationIntents.Args.from(getIntent()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FullscreenHelper.java b/app/src/main/java/org/thoughtcrime/securesms/util/FullscreenHelper.java index 5b50d9f7c9..12bb95f166 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FullscreenHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FullscreenHelper.java @@ -18,14 +18,28 @@ public final class FullscreenHelper { @NonNull private final Activity activity; - public FullscreenHelper(@NonNull Activity activity) { - this.activity = activity; + public static @NonNull FullscreenHelper createWithDefaultCutoutMode(@NonNull Activity activity) { + FullscreenHelper helper = new FullscreenHelper(activity); + + helper.showSystemUI(); + + return helper; + } + + public static @NonNull FullscreenHelper createWithShortEdgesCutoutMode(@NonNull Activity activity) { + FullscreenHelper helper = new FullscreenHelper(activity); if (Build.VERSION.SDK_INT >= 28) { activity.getWindow().getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; } - showSystemUI(); + helper.showSystemUI(); + + return helper; + } + + private FullscreenHelper(@NonNull Activity activity) { + this.activity = activity; } public void configureToolbarSpacer(@NonNull View spacer) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperPreviewActivity.java index f41901cf0e..411bfd980c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperPreviewActivity.java @@ -90,7 +90,7 @@ public class ChatWallpaperPreviewActivity extends PassphraseRequiredActivity { bubble2.setText(getString(R.string.ChatWallpaperPreviewActivity__set_wallpaper_for_s, recipient.getDisplayName(this))); } - new FullscreenHelper(this).showSystemUI(); + FullscreenHelper.createWithDefaultCutoutMode(this).showSystemUI(); WindowUtil.setLightStatusBarFromTheme(this); WindowUtil.setLightNavigationBarFromTheme(this); } diff --git a/app/src/main/res/layout/conversation_activity.xml b/app/src/main/res/layout/conversation_activity.xml index ab7746c1a5..7a8b6b881a 100644 --- a/app/src/main/res/layout/conversation_activity.xml +++ b/app/src/main/res/layout/conversation_activity.xml @@ -27,8 +27,8 @@ + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/status_bar_guideline"> diff --git a/app/src/main/res/layout/conversation_reaction_scrubber.xml b/app/src/main/res/layout/conversation_reaction_scrubber.xml index ff33416cf4..05e7b2988c 100644 --- a/app/src/main/res/layout/conversation_reaction_scrubber.xml +++ b/app/src/main/res/layout/conversation_reaction_scrubber.xml @@ -5,12 +5,12 @@ android:id="@+id/conversation_reaction_scrubber" android:layout_width="0dp" android:layout_height="0dp" - app:layout_constraintTop_toTopOf="@+id/status_bar_guideline" - app:layout_constraintBottom_toBottomOf="@+id/navigation_bar_guideline" - app:layout_constraintStart_toStartOf="@+id/parent_start_guideline" - app:layout_constraintEnd_toEndOf="@+id/parent_end_guideline" android:elevation="1000dp" android:visibility="gone" + app:layout_constraintBottom_toBottomOf="@+id/navigation_bar_guideline" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@+id/status_bar_guideline" tools:visibility="visible"> - - - - \ No newline at end of file