remove method

  1. @override
Future<bool> remove(
  1. ProtocolScheme scheme
)
override

Used to remove a scheme.

Implementation

@override
Future<bool> remove(ProtocolScheme scheme) async {
  final String? filename = await findDesktopFileWithScheme(scheme);

  if (filename != null) {
    final File? file = await findDesktopFile(filename);
    if (file != null) {
      await file.writeAsString(
        (await file.readAsString()).split('\n').map((final String x) {
          if (x.startsWith('MimeType=')) {
            final List<String> mimes =
                x.replaceFirst('MimeType=', '').split(';');
            mimes.remove(scheme.scheme);
            return 'MimeType=${mimes.join(';')}';
          }
          return x;
        }).join('\n'),
      );

      return true;
    }
  }

  return false;
}