You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by jc...@apache.org on 2022/09/01 22:49:52 UTC

[cordova-plugin-statusbar] branch default-fix updated: fix(android)!:styleDefault not working on new devices

This is an automated email from the ASF dual-hosted git repository.

jcesarmobile pushed a commit to branch default-fix
in repository https://gitbox.apache.org/repos/asf/cordova-plugin-statusbar.git


The following commit(s) were added to refs/heads/default-fix by this push:
     new ad91c8b  fix(android)!:styleDefault not working on new devices
ad91c8b is described below

commit ad91c8bbf9c02db21bf8b843ae031269b62d24b8
Author: jcesarmobile <jc...@gmail.com>
AuthorDate: Fri Sep 2 00:49:44 2022 +0200

    fix(android)!:styleDefault not working on new devices
---
 src/android/StatusBar.java | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/android/StatusBar.java b/src/android/StatusBar.java
index 2d28960..593e379 100644
--- a/src/android/StatusBar.java
+++ b/src/android/StatusBar.java
@@ -26,6 +26,9 @@ import android.view.View;
 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;
@@ -253,8 +256,9 @@ public class StatusBar extends CordovaPlugin {
     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",
@@ -267,12 +271,12 @@ public class StatusBar extends CordovaPlugin {
                 };
 
                 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;
                 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org