mirror of
https://gitlab.com/TheOneWithTheBraid/dart_pkpass.git
synced 2025-07-06 13:28:48 +00:00
Feature: implement advanced number and date formatting
This commit is contained in:
parent
0b994f6f9b
commit
2666eccf3e
4 changed files with 205 additions and 67 deletions
|
@ -1,29 +0,0 @@
|
|||
import '../models/pass_structure_dictionary.dart';
|
||||
import 'color_helper.dart';
|
||||
|
||||
abstract class MaybeDecode {
|
||||
const MaybeDecode._();
|
||||
|
||||
static int? maybeColor(String? colorCode) {
|
||||
if (colorCode == null) return null;
|
||||
return fromCssColor(colorCode);
|
||||
}
|
||||
|
||||
static DateTime? maybeDateTime(String? timeStamp) {
|
||||
if (timeStamp == null) return null;
|
||||
return DateTime.tryParse(timeStamp);
|
||||
}
|
||||
|
||||
static PassTextAlign? maybeTextAlign(String? align) {
|
||||
switch (align) {
|
||||
case 'PKTextAlignmentLeft':
|
||||
return PassTextAlign.left;
|
||||
case 'PKTextAlignmentCenter':
|
||||
return PassTextAlign.center;
|
||||
case 'PKTextAlignmentRight':
|
||||
return PassTextAlign.right;
|
||||
default:
|
||||
return PassTextAlign.natural;
|
||||
}
|
||||
}
|
||||
}
|
61
lib/pkpass/utils/maybe_decode.dart
Normal file
61
lib/pkpass/utils/maybe_decode.dart
Normal file
|
@ -0,0 +1,61 @@
|
|||
import '../models/pass_structure_dictionary.dart';
|
||||
import 'color_helper.dart';
|
||||
|
||||
abstract class MaybeDecode {
|
||||
const MaybeDecode._();
|
||||
|
||||
static int? maybeColor(String? colorCode) {
|
||||
if (colorCode == null) return null;
|
||||
return fromCssColor(colorCode);
|
||||
}
|
||||
|
||||
static DateTime? maybeDateTime(String? timeStamp) {
|
||||
if (timeStamp == null) return null;
|
||||
return DateTime.tryParse(timeStamp);
|
||||
}
|
||||
|
||||
static PassTextAlign? maybeTextAlign(String? align) {
|
||||
switch (align) {
|
||||
case 'PKTextAlignmentLeft':
|
||||
return PassTextAlign.left;
|
||||
case 'PKTextAlignmentCenter':
|
||||
return PassTextAlign.center;
|
||||
case 'PKTextAlignmentRight':
|
||||
return PassTextAlign.right;
|
||||
default:
|
||||
return PassTextAlign.natural;
|
||||
}
|
||||
}
|
||||
|
||||
static PassTextDateStyle? maybeDateStyle(String? style) {
|
||||
switch (style) {
|
||||
case 'PKDateStyleNone':
|
||||
return PassTextDateStyle.None;
|
||||
case 'PKDateStyleShort':
|
||||
return PassTextDateStyle.Short;
|
||||
case 'PKDateStyleMedium':
|
||||
return PassTextDateStyle.Medium;
|
||||
case 'PKDateStyleLong':
|
||||
return PassTextDateStyle.Long;
|
||||
case 'PKDateStyleFull':
|
||||
return PassTextDateStyle.Full;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static PassTextNumberStyle? maybeNumberStyle(String? style) {
|
||||
switch (style) {
|
||||
case 'PKNumberStyleDecimal':
|
||||
return PassTextNumberStyle.Decimal;
|
||||
case 'PKNumberStylePercent':
|
||||
return PassTextNumberStyle.Percent;
|
||||
case 'PKNumberStyleScientific':
|
||||
return PassTextNumberStyle.Scientific;
|
||||
case 'PKNumberStyleSpellOut':
|
||||
return PassTextNumberStyle.SpellOut;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue