changeset 2457:181e48c5dc0c

iOS: dw_feature_get(DW_FEATURE_DARK_MODE) will now return DW_DARK_MODE_DISABLED if forced off. DW_DARK_MODE_BASIC if enabled (automatic) but in light mode. DW_DARK_MODE_FULL if enabled (automatic) but in dark mode. DW_DARK_MODE_FORCED if forced on. DW_FEATURE_UNSUPPORTED if unsupported (prior to iOS 12 or the state cannot be determined).
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 13 Apr 2021 21:08:49 +0000
parents 54f760a257f3
children 689261c29745
files ios/dw.m
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ios/dw.m	Tue Apr 13 20:01:36 2021 +0000
+++ b/ios/dw.m	Tue Apr 13 21:08:49 2021 +0000
@@ -10632,11 +10632,20 @@
                 switch(style)
                 {
                     case UIUserInterfaceStyleLight:
-                        return DW_FEATURE_DISABLED;
+                        return DW_DARK_MODE_DISABLED;
                     case UIUserInterfaceStyleDark:
                         return DW_DARK_MODE_FORCED;
+                    default:  /* UIUserInterfaceStyleUnspecified */
+                        style = [[[[DWObj hiddenWindow] rootViewController] traitCollection] userInterfaceStyle];
+                }
+                switch(style)
+                {
+                    case UIUserInterfaceStyleLight:
+                        return DW_DARK_MODE_BASIC;
+                    case UIUserInterfaceStyleDark:
+                        return DW_DARK_MODE_FULL;
                     default: /* UIUserInterfaceStyleUnspecified */
-                        return DW_FEATURE_ENABLED;
+                        return DW_FEATURE_UNSUPPORTED;
                 }
             }
             return _dw_dark_mode_state;