From c35e240ad86f585ca03d5beb9cd2aede3cbadb42 Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 30 Mar 2022 11:49:38 +0800 Subject: [PATCH] =?UTF-8?q?[feedback]=E9=80=82=E9=85=8D=E6=B2=89=E6=B5=B8?= =?UTF-8?q?=E5=BC=8F=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo_core_function_devatools/ext/BadCaseExt.kt | 6 ++++-- .../feedback/biz/FeedBackView.kt | 2 +- .../com/mogo/eagle/core/utilcode/util/BarUtils.java | 10 ++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/BadCaseExt.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/BadCaseExt.kt index a62b8fecd6..b654967248 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/BadCaseExt.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/ext/BadCaseExt.kt @@ -25,6 +25,7 @@ import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope import com.mogo.eagle.core.utilcode.kotlin.shape import com.mogo.eagle.core.utilcode.reminder.Reminder import com.mogo.eagle.core.utilcode.reminder.api.impl.PopupWindowReminder +import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.WindowUtils import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -66,8 +67,9 @@ internal fun Context.toast(text: CharSequence, duration: Long = 2, unit: TimeUni } @SuppressLint("ClickableViewAccessibility") -internal fun Context.pop(content: View, width: Int, height: Int, key: String, fitSystemWindow: Boolean = true, onOuterViewClicked:((focus: View) -> Unit)? = null): () -> Unit { +internal fun Context.pop(content: View, width: Int, height: Int, key: String, onOuterViewClicked:((focus: View) -> Unit)? = null): () -> Unit { val activity = (this as? FragmentActivity) ?: throw IllegalStateException("please use Activity to trigger pop show.") + val isImmersiveMode = BarUtils.isImmersiveMode(activity) var tempReminder: PopupWindowReminder? = null activity.lifecycleScope.launchWhenResumed { val pop = PopupWindow(width, height).also { @@ -128,7 +130,7 @@ internal fun Context.pop(content: View, width: Int, height: Int, key: String, fi } override fun show() { - pop.showAtLocation(activity.window.decorView, Gravity.START, 0, if (fitSystemWindow) WindowUtils.getStatusBarHeight(activity) else 0) + pop.showAtLocation(activity.window.decorView, Gravity.START, 0, if (isImmersiveMode) 0 else BarUtils.getStatusBarHeight()) } override fun isOverride(): Boolean = false } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt index d9f0d42445..c607b16040 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/feedback/biz/FeedBackView.kt @@ -97,7 +97,7 @@ internal class FeedBackView : ConstraintLayout { transitionTo(0) } else { editOutRect.run { - transitionTo(-( it - top + height() + 300.PX)) + transitionTo(-( it - top + height() + 228.PX)) } } }.also { diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/BarUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/BarUtils.java index 4991f52736..78eae55bdb 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/BarUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/BarUtils.java @@ -733,4 +733,14 @@ public final class BarUtils { } return false; } + + /** + * 当前Activity是否是沉浸式模式 + */ + public static boolean isImmersiveMode(Activity activity) { + Window window = activity.getWindow(); + View decor = window.getDecorView(); + int systemUiVisibility = decor.getSystemUiVisibility(); + return (systemUiVisibility & View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) != 0; + } }