diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java
index 43d68e76c01..1782c67e97d 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java
@@ -70,7 +70,8 @@
TiC.PROPERTY_WINDOW_PIXEL_FORMAT,
TiC.PROPERTY_FLAG_SECURE,
TiC.PROPERTY_BAR_COLOR,
- TiC.PROPERTY_STATUS_BAR_COLOR
+ TiC.PROPERTY_STATUS_BAR_COLOR,
+ TiC.PROPERTY_UI_FLAGS
})
public class WindowProxy extends TiWindowProxy implements TiActivityWindow
@@ -328,6 +329,10 @@ public void windowCreated(TiBaseActivity activity, Bundle savedInstanceState)
win.setStatusBarColor(colorInt);
}
+ if (hasProperty(TiC.PROPERTY_UI_FLAGS)) {
+ win.getDecorView().setSystemUiVisibility(TiConvert.toInt(getProperty(TiC.PROPERTY_UI_FLAGS)));
+ }
+
// Handle titleAttributes property.
if (hasProperty(TiC.PROPERTY_TITLE_ATTRIBUTES)) {
KrollDict innerAttributes = getProperties().getKrollDict(TiC.PROPERTY_TITLE_ATTRIBUTES);
@@ -462,6 +467,13 @@ public void onPropertyChanged(String name, Object value)
}
}
+ if (name.equals(TiC.PROPERTY_UI_FLAGS)) {
+ if (windowActivity != null && windowActivity.get() != null) {
+ AppCompatActivity activity = windowActivity.get();
+ activity.getWindow().getDecorView().setSystemUiVisibility(TiConvert.toInt(value));
+ }
+ }
+
if (name.equals(TiC.PROPERTY_TITLE_ATTRIBUTES)) {
if (windowActivity != null && windowActivity.get() != null) {
// Get a reference to the ActionBar.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiC.java b/android/titanium/src/java/org/appcelerator/titanium/TiC.java
index 040d9a003fd..767b79e64fc 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiC.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiC.java
@@ -862,6 +862,7 @@ public class TiC
public static final String PROPERTY_JOBTITLE = "jobTitle";
public static final String PROPERTY_DEPARTMENT = "department";
public static final String PROPERTY_FIXED_SIZE = "fixedSize";
+ public static final String PROPERTY_UI_FLAGS = "uiFlags";
public static final String SIZE_AUTO = "auto";
public static final String URL_APP_PREFIX = "app://";
diff --git a/apidoc/Titanium/UI/Window.yml b/apidoc/Titanium/UI/Window.yml
index 9ebae2d4a9a..b17a8f5a30b 100644
--- a/apidoc/Titanium/UI/Window.yml
+++ b/apidoc/Titanium/UI/Window.yml
@@ -1537,6 +1537,16 @@ properties:
since: "3.3.0"
availability: creation
+ - name: uiFlags
+ summary: Additional UI flags to set on the Activity Window.
+ description: |
+ See [WindowManager.LayoutParams](https://developer.android.com/reference/android/view/View#setSystemUiVisibility\(int\)) for a
+ list of additional flags that can be assigned to this property. For example, you can use `8192` (SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) to set
+ the status bar text color to a dark color.
+ platforms: [android]
+ type: Number
+ since: "12.7.0"
+
- name: windowSoftInputMode
summary: |
Determines whether a window's soft input area (ie software keyboard) is visible
diff --git a/iphone/iphone/Titanium.plist b/iphone/iphone/Titanium.plist
index 997d287518d..c2bc373aac4 100644
--- a/iphone/iphone/Titanium.plist
+++ b/iphone/iphone/Titanium.plist
@@ -59,10 +59,6 @@
Can we use your microphone?
NSPhotoLibraryUsageDescription
Can we save to your photo library?
- UIAppFonts
-
- comic_zine_ot.otf
-
UILaunchStoryboardName
LaunchScreen
UIRequiresFullScreen
diff --git a/package-lock.json b/package-lock.json
index 0f2d21a575d..6b96c4de6b7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,7 +24,7 @@
"colors": "1.4.0",
"ejs": "3.1.9",
"fields": "0.1.24",
- "fs-extra": "11.2.0",
+ "fs-extra": "10.0.0",
"ioslib": "1.7.39",
"liveview": "1.5.6",
"lodash.merge": "4.6.2",
@@ -80,7 +80,7 @@
"nyc": "15.1.0",
"request-promise-native": "1.0.9",
"rollup": "2.76.0",
- "ssri": "10.0.4",
+ "ssri": "8.0.1",
"stream-splitter": "0.3.2",
"strip-ansi": "6.0.1",
"titanium": "6.1.1",
@@ -4957,6 +4957,18 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/cacache/node_modules/ssri": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+ "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
@@ -7757,16 +7769,17 @@
}
},
"node_modules/fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+ "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
+ "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
- "node": ">=14.14"
+ "node": ">=12"
}
},
"node_modules/fs-minipass": {
@@ -10732,6 +10745,18 @@
"node": ">=16 || 14 >=14.17"
}
},
+ "node_modules/make-fetch-happen/node_modules/ssri": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+ "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/map-obj": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
@@ -12777,6 +12802,18 @@
"node": ">=16 || 14 >=14.17"
}
},
+ "node_modules/pacote/node_modules/ssri": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+ "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -14812,22 +14849,16 @@
}
},
"node_modules/ssri": {
- "version": "10.0.4",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz",
- "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "minipass": "^5.0.0"
+ "minipass": "^3.1.1"
},
"engines": {
- "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
- }
- },
- "node_modules/ssri/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "engines": {
- "node": ">=8"
+ "node": ">= 8"
}
},
"node_modules/stack-trace": {
@@ -19887,6 +19918,14 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
+ },
+ "ssri": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+ "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "requires": {
+ "minipass": "^7.0.3"
+ }
}
}
},
@@ -21950,9 +21989,9 @@
"dev": true
},
"fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+ "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -24171,6 +24210,14 @@
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
"integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ=="
+ },
+ "ssri": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+ "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "requires": {
+ "minipass": "^7.0.3"
+ }
}
}
},
@@ -25687,6 +25734,14 @@
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
"integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ=="
+ },
+ "ssri": {
+ "version": "10.0.6",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz",
+ "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==",
+ "requires": {
+ "minipass": "^7.0.3"
+ }
}
}
},
@@ -27181,18 +27236,12 @@
}
},
"ssri": {
- "version": "10.0.4",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz",
- "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dev": true,
"requires": {
- "minipass": "^5.0.0"
- },
- "dependencies": {
- "minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="
- }
+ "minipass": "^3.1.1"
}
},
"stack-trace": {
diff --git a/package.json b/package.json
index 347236f6f39..5a958725048 100644
--- a/package.json
+++ b/package.json
@@ -99,7 +99,7 @@
"colors": "1.4.0",
"ejs": "3.1.9",
"fields": "0.1.24",
- "fs-extra": "11.2.0",
+ "fs-extra": "10.0.0",
"ioslib": "1.7.39",
"liveview": "1.5.6",
"lodash.merge": "4.6.2",
@@ -155,7 +155,7 @@
"nyc": "15.1.0",
"request-promise-native": "1.0.9",
"rollup": "2.76.0",
- "ssri": "10.0.4",
+ "ssri": "8.0.1",
"stream-splitter": "0.3.2",
"strip-ansi": "6.0.1",
"titanium": "6.1.1",