diff --git a/package.json b/package.json
index 5e9b6c10..47c22719 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,10 @@
"cordova": ">=3.0.0"
},
"4.0.0": {
+ "cordova-android": ">=10.0.0",
+ "cordova": ">=3.0.0"
+ },
+ "5.0.0": {
"cordova": ">100"
}
}
diff --git a/plugin.xml b/plugin.xml
index 146f8cbf..247ab07f 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -29,6 +29,7 @@
+
diff --git a/src/android/StatusBar.java b/src/android/StatusBar.java
index 2e40eb03..8d123e10 100644
--- a/src/android/StatusBar.java
+++ b/src/android/StatusBar.java
@@ -28,6 +28,9 @@
import android.view.Window;
import android.view.WindowManager;
+import androidx.core.view.WindowCompat;
+import androidx.core.view.WindowInsetsControllerCompat;
+
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaArgs;
import org.apache.cordova.CordovaInterface;
@@ -343,8 +346,9 @@ private void setStatusBarTransparent(final boolean transparent) {
private void setStatusBarStyle(final String style) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (style != null && !style.isEmpty()) {
- View decorView = cordova.getActivity().getWindow().getDecorView();
- int uiOptions = decorView.getSystemUiVisibility();
+ Window window = cordova.getActivity().getWindow();
+ View decorView = window.getDecorView();
+ WindowInsetsControllerCompat windowInsetsControllerCompat = WindowCompat.getInsetsController(window, decorView);
String[] darkContentStyles = {
"default",
@@ -357,12 +361,12 @@ private void setStatusBarStyle(final String style) {
};
if (Arrays.asList(darkContentStyles).contains(style.toLowerCase())) {
- decorView.setSystemUiVisibility(uiOptions | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
+ windowInsetsControllerCompat.setAppearanceLightStatusBars(true);
return;
}
if (Arrays.asList(lightContentStyles).contains(style.toLowerCase())) {
- decorView.setSystemUiVisibility(uiOptions & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
+ windowInsetsControllerCompat.setAppearanceLightStatusBars(false);
return;
}