respect_24_hour

This project makes it possible to check whether the device is using 12 or 24 hour time.

Supported Platforms

  • Android API 16+ (4.1+, the minimum version supported by Flutter).
  • iOS 8.0+ (the minimum version supported by Flutter).

Getting Started

There is only one getter which is static and can be called anywhere.

//returns bool indicative of whether the device is using 24-hour time format
await Respect24Hour.get24HourFormat;

Troubleshooting - iOS

Xcode 10, Flutter and Swift sometimes don't play along well.

"Could not find auto-linked library" errors

Example error log:

ld: warning: Could not find auto-linked library 'swiftCoreGraphics'
ld: warning: Could not find auto-linked library 'swiftFoundation'
ld: warning: Could not find auto-linked library 'swiftMetal'
ld: warning: Could not find auto-linked library 'swiftDarwin'
ld: warning: Could not find auto-linked library 'swiftUIKit'
ld: warning: Could not find auto-linked library 'swiftObjectiveC'
ld: warning: Could not find auto-linked library 'swiftCoreFoundation'
ld: warning: Could not find auto-linked library 'swiftDispatch'
ld: warning: Could not find auto-linked library 'swiftCoreMedia'
ld: warning: Could not find auto-linked library 'swiftQuartzCore'
ld: warning: Could not find auto-linked library 'swiftCore'
ld: warning: Could not find auto-linked library 'swiftCoreImage'
ld: warning: Could not find auto-linked library 'swiftCoreAudio'
ld: warning: Could not find auto-linked library 'swiftSwiftOnoneSupport'
Undefined symbols for architecture x86_64:
  "__swift_FORCE_LOAD_$_swiftCoreAudio", referenced from:
      __swift_FORCE_LOAD_$_swiftCoreAudio_$_respect_24_hour in librespect_24_hour.a(SwiftRespect24HourPlugin.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftCoreAudio_$_respect_24_hour)
  "__swift_FORCE_LOAD_$_swiftQuartzCore", referenced from:
      __swift_FORCE_LOAD_$_swiftQuartzCore_$_respect_24_hour in librespect_24_hour.a(SwiftRespect24HourPlugin.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftQuartzCore_$_respect_24_hour)
  "__swift_FORCE_LOAD_$_swiftMetal", referenced from:
      __swift_FORCE_LOAD_$_swiftMetal_$_respect_24_hour in librespect_24_hour.a(SwiftRespect24HourPlugin.o)
     (maybe you meant: __swift_FORCE_LOAD_$_swiftMetal_$_respect_24_hour)

Why is it happening:

When using swift code in pods without swift code in the app itself, such error might occur.

Solution:

Add a dummy .swift file to your project using XCode and when promted, agree to add a Briding-Header.

"'respect_24_hour/respect_24_hour-Swift.h' file not found" Error

Example error log:

.../.pub-cache/hosted/pub.dartlang.org/respect_24_hour-0.0.1/ios/Classes/Respect24HourPlugin.m:2:9: 'respect_24_hour/respect_24_hour-Swift.h' file not found

Why is it happening:

XCode 10 works differently with swift and objective-c files and sometimes the autogenerated file used for including swift code in objective-c files is referenced without package.

Solution:

Delete the 'respect_24_hour/' part from the error causing line - 'respect_24_hour/respect_24_hour-Swift.h'.
Result: respect_24_hour-Swift.h

Libraries

respect_24_hour

Dart

VM

dart:ffi
Foreign Function Interface for interoperability with the C programming language. [...]

Web

dart:html
HTML elements and other resources for web-based applications that need to interact with the browser and the DOM (Document Object Model). [...]
dart:js
Low-level support for interoperating with JavaScript. [...]
dart:js_util
Utility methods to efficiently manipulate typed JSInterop objects in cases where the name to call is not known at runtime. You should only use these methods when the same effect cannot be achieved with @JS annotations. These methods would be extension methods on JSObject if Dart supported extension methods.