From 5f4d527a4cff9ca9dddb6fb3e50d3d8ed94b54b2 Mon Sep 17 00:00:00 2001 From: Karthikeyan Ganesan Date: Thu, 26 Apr 2018 19:06:43 +0100 Subject: [PATCH] Defect fix (#306) * add SYSTEM_ALERT_WINDOW permission to draw overlay * TYPE_APPLICATION_OVERLAY - add type check * add version check * add import lib * permission move to main app manifest * set layoutparams --- android/src/main/AndroidManifest.xml | 1 - .../java/com/beefe/picker/PickerViewModule.java | 16 +++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 005069d..e11dfaa 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,3 +1,2 @@ - diff --git a/android/src/main/java/com/beefe/picker/PickerViewModule.java b/android/src/main/java/com/beefe/picker/PickerViewModule.java index 40f2d8d..b89ce33 100644 --- a/android/src/main/java/com/beefe/picker/PickerViewModule.java +++ b/android/src/main/java/com/beefe/picker/PickerViewModule.java @@ -12,6 +12,7 @@ import android.view.Window; import android.view.WindowManager; import android.widget.RelativeLayout; import android.widget.TextView; +import android.os.Build; import com.beefe.picker.util.MIUIUtils; import com.beefe.picker.view.OnSelectedListener; @@ -358,10 +359,15 @@ public class PickerViewModule extends ReactContextBaseJavaModule implements Life WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); Window window = dialog.getWindow(); if (window != null) { - if (MIUIUtils.isMIUI()) { - layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION; - }else { - //layoutParams.type = WindowManager.LayoutParams.TYPE_TOAST; + if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; + window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY); + }else{ + if (MIUIUtils.isMIUI()) { + layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION; + }else { + //layoutParams.type = WindowManager.LayoutParams.TYPE_TOAST; + } } layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; layoutParams.format = PixelFormat.TRANSPARENT; @@ -369,7 +375,7 @@ public class PickerViewModule extends ReactContextBaseJavaModule implements Life layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; layoutParams.height = height; layoutParams.gravity = Gravity.BOTTOM; - window.setAttributes(layoutParams); + window.setAttributes(layoutParams); } } else { dialog.dismiss(); -- 2.26.2