parse method

  1. @override
SMSParsedResult? parse(
  1. Result result
)
override

Attempts to parse the raw Result's contents as a particular type of information (email, URL, etc.) and return a ParsedResult encapsulating the result of parsing.

@param theResult the raw Result to parse @return ParsedResult encapsulating the parsing result

Implementation

@override
SMSParsedResult? parse(Result result) {
  final rawText = ResultParser.getMassagedText(result);
  if (!(rawText.startsWith('smsto:') ||
      rawText.startsWith('SMSTO:') ||
      rawText.startsWith('mmsto:') ||
      rawText.startsWith('MMSTO:'))) {
    return null;
  }
  // Thanks to dominik.wild for suggesting this enhancement to support
  // smsto:number:body URIs
  String number = rawText.substring(6);
  String? body;
  final bodyStart = number.indexOf(':');
  if (bodyStart >= 0) {
    body = number.substring(bodyStart + 1);
    number = number.substring(0, bodyStart);
  }
  return SMSParsedResult.single(number, null, null, body);
}