From e3870f56562edc970936cc2ea0d8e50aea6a49db Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 29 Jun 2021 12:38:40 -0400 Subject: [PATCH] Fix Customize Reactions shadow. --- ...WithAnyEmojiBottomSheetDialogFragment.java | 12 +++++++++++ .../reactions/edit/EditReactionsActivity.kt | 8 ++++++++ .../reactions/edit/EditReactionsFragment.kt | 20 +++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java index 2c7c510898..ebee706b90 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiBottomSheetDialogFragment.java @@ -10,6 +10,8 @@ import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; import android.widget.FrameLayout; import androidx.annotation.NonNull; @@ -56,6 +58,7 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee private static final String ARG_MESSAGE_ID = "arg_message_id"; private static final String ARG_IS_MMS = "arg_is_mms"; private static final String ARG_START_PAGE = "arg_start_page"; + private static final String ARG_SHADOWS = "arg_shadows"; private static final String ARG_RECENT_KEY = "arg_recent_key"; private static final String ARG_EDIT = "arg_edit"; @@ -102,6 +105,7 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee args.putLong(ARG_MESSAGE_ID, -1); args.putBoolean(ARG_IS_MMS, false); args.putInt(ARG_START_PAGE, -1); + args.putBoolean(ARG_SHADOWS, false); args.putString(ARG_RECENT_KEY, REACTION_STORAGE_KEY); fragment.setArguments(args); @@ -151,6 +155,14 @@ public final class ReactWithAnyEmojiBottomSheetDialogFragment extends BottomShee public void onSlide(@NonNull View bottomSheet, float slideOffset) { } }); + boolean shadows = requireArguments().getBoolean(ARG_SHADOWS, true); + if (!shadows) { + Window window = dialog.getWindow(); + if (window != null) { + window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); + } + } + return dialog; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsActivity.kt index cd8bd07e20..3cccf25f6b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsActivity.kt @@ -1,9 +1,13 @@ package org.thoughtcrime.securesms.reactions.edit import android.os.Bundle +import android.view.View +import androidx.core.content.ContextCompat import org.thoughtcrime.securesms.PassphraseRequiredActivity +import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme import org.thoughtcrime.securesms.util.DynamicTheme +import org.thoughtcrime.securesms.util.WindowUtil class EditReactionsActivity : PassphraseRequiredActivity() { @@ -13,6 +17,10 @@ class EditReactionsActivity : PassphraseRequiredActivity() { super.onCreate(savedInstanceState, ready) theme.onCreate(this) + @Suppress("DEPRECATION") + findViewById(android.R.id.content).systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + WindowUtil.setStatusBarColor(window, ContextCompat.getColor(this, R.color.transparent)) + if (savedInstanceState == null) { supportFragmentManager.beginTransaction() .replace(android.R.id.content, EditReactionsFragment()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt index 775af5eca7..9d87235cb1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/edit/EditReactionsFragment.kt @@ -1,6 +1,7 @@ package org.thoughtcrime.securesms.reactions.edit import android.animation.ObjectAnimator +import android.os.Build import android.os.Bundle import android.view.View import android.view.animation.Animation @@ -8,6 +9,7 @@ import android.view.animation.AnimationUtils import androidx.appcompat.widget.Toolbar import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet +import androidx.core.view.ViewCompat import androidx.lifecycle.ViewModelProviders import androidx.transition.ChangeBounds import androidx.transition.Transition @@ -44,6 +46,7 @@ class EditReactionsFragment : LoggingFragment(R.layout.edit_reactions_fragment), toolbar.setNavigationOnClickListener { requireActivity().onBackPressed() } + configureToolbar() reactionViews = listOf( view.findViewById(R.id.reaction_1), @@ -86,6 +89,23 @@ class EditReactionsFragment : LoggingFragment(R.layout.edit_reactions_fragment), view.setOnClickListener { viewModel.setSelection(EditReactionsViewModel.NO_SELECTION) } } + private fun configureToolbar() { + if (Build.VERSION.SDK_INT == 19) { + updateToolbarTopMargin(ViewUtil.getStatusBarHeight(toolbar)) + } else { + ViewCompat.setOnApplyWindowInsetsListener(toolbar) { _, insets -> + updateToolbarTopMargin(insets.systemWindowInsetTop) + insets + } + } + } + + private fun updateToolbarTopMargin(topMargin: Int) { + val layoutParams = toolbar.layoutParams as ConstraintLayout.LayoutParams + layoutParams.topMargin = topMargin + toolbar.layoutParams = layoutParams + } + private fun select(emojiImageView: EmojiImageView) { val set = ConstraintSet() set.clone(scrubber)