From 787a5297042a32bafae36fe63b0739e2c2213d0f Mon Sep 17 00:00:00 2001 From: Yoshihide Sogawa <12043975+YoshihideSogawa@users.noreply.github.com> Date: Tue, 5 Mar 2019 11:01:40 +0900 Subject: [PATCH] Fix #110 --- .../android/floatingview/FloatingViewManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/jp/co/recruit_lifestyle/android/floatingview/FloatingViewManager.java b/library/src/main/java/jp/co/recruit_lifestyle/android/floatingview/FloatingViewManager.java index 3b970e7..4d37e16 100644 --- a/library/src/main/java/jp/co/recruit_lifestyle/android/floatingview/FloatingViewManager.java +++ b/library/src/main/java/jp/co/recruit_lifestyle/android/floatingview/FloatingViewManager.java @@ -32,6 +32,7 @@ import android.view.HapticFeedbackConstants; import android.view.MotionEvent; import android.view.View; +import android.view.WindowInsets; import android.view.WindowManager; import android.widget.FrameLayout; @@ -616,8 +617,14 @@ public static Rect findCutoutSafeArea(@NonNull Activity activity) { return safeInsetRect; } + // Fix: getDisplayCutout() on a null object reference (issue #110) + final WindowInsets windowInsets = activity.getWindow().getDecorView().getRootWindowInsets(); + if (windowInsets == null) { + return safeInsetRect; + } + // set safeInsetRect - final DisplayCutout displayCutout = activity.getWindow().getDecorView().getRootWindowInsets().getDisplayCutout(); + final DisplayCutout displayCutout = windowInsets.getDisplayCutout(); if (displayCutout != null) { safeInsetRect.set(displayCutout.getSafeInsetLeft(), displayCutout.getSafeInsetTop(), displayCutout.getSafeInsetRight(), displayCutout.getSafeInsetBottom()); }