/* * A set of helper functions to reduce boilerplate code */ /* * Simplify a numerical value into a string, * supressing trailing zeroes */ import "dart:io"; import "package:audioplayers/audioplayers.dart"; import "package:one_context/one_context.dart"; List debug_messages = []; void clearDebugMessage() => debug_messages.clear(); int debugMessageCount() => debug_messages.length; // Check if the debug log contains a given message bool debugContains(String msg, {bool raiseAssert = true}) { bool result = false; for (String element in debug_messages) { if (element.contains(msg)) { result = true; break; } } if (raiseAssert) { assert(result); } return result; } /* * Display a debug message if we are in testing mode, or running in debug mode */ void debug(dynamic msg) { if (Platform.environment.containsKey("FLUTTER_TEST")) { debug_messages.add(msg.toString()); } print("DEBUG: ${msg.toString()}"); } String simpleNumberString(double number) { // Ref: https://stackoverflow.com/questions/55152175/how-to-remove-trailing-zeros-using-dart return number.toStringAsFixed(number.truncateToDouble() == number ? 0 : 1); } /* * Play an audio file from the requested path. * * Note: If OneContext module fails the 'hasContext' check, * we will not attempt to play the sound */ Future playAudioFile(String path) async { // Debug message for unit testing debug("Playing audio file: '${path}'"); if (!OneContext.hasContext) { return; } final player = AudioCache(); player.play(path); }