Skip to content

Commit

Permalink
Handle Protocol Activation and Redirection #37
Browse files Browse the repository at this point in the history
  • Loading branch information
YehudaKremer committed Apr 16, 2021
1 parent faeb0f8 commit 341f30b
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
7 changes: 7 additions & 0 deletions lib/src/configuration.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ class Configuration {
String? executableFileName;
String? iconsBackgroundColor;
List<String>? signtoolOptions;
String? protocolActivation;
String? fileExtension;
bool debugSigning = false;
bool isUsingTestCertificate = false;
Iterable<String>? languages;
Expand Down Expand Up @@ -66,6 +68,11 @@ class Configuration {
.split(' ')
.where((o) => o.trim().length > 0)
.toList();
protocolActivation = config?['protocol_activation']?.toString().replaceAll(':', '');
fileExtension = config?['file_extension']?.toString();
if (fileExtension != null && !fileExtension!.startsWith('.')) {
fileExtension = '.$fileExtension';
}
architecture = config?['architecture']?.toString();
capabilities = config?['capabilities']?.toString();
languages = _getLanguages(config);
Expand Down
31 changes: 31 additions & 0 deletions lib/src/manifest.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'dart:io';
import 'utils/injector.dart';
import 'utils/log.dart';
import 'configuration.dart';
import 'utils/extensions.dart';

class Manifest {
Configuration _config;
Expand Down Expand Up @@ -89,6 +90,7 @@ class Manifest {
<Applications>
<Application Id="${_config.appName!.replaceAll('_', '')}" Executable="${_config.executableFileName}" EntryPoint="Windows.FullTrustApplication">
${_getVisualElements()}
${_getExtensions()}
</Application>
</Applications>
</Package>''';
Expand Down Expand Up @@ -149,6 +151,35 @@ class Manifest {
}
}

String _getExtensions() {
if (!_config.protocolActivation.isNull || !_config.fileExtension.isNull) {
return '''<Extensions>
${!_config.protocolActivation.isNull ? _getProtocolActivation() : ''}
${!_config.fileExtension.isNull ? _getFileExtension() : ''}
</Extensions>''';
} else {
return '';
}
}

String _getProtocolActivation() {
return '''<uap:Extension Category="windows.protocol">
<uap:Protocol Name="${_config.protocolActivation}">
<uap:DisplayName>${_config.protocolActivation} URI Scheme</uap:DisplayName>
</uap:Protocol>
</uap:Extension>''';
}

String _getFileExtension() {
return '''<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="${_config.fileExtension}">
<uap:SupportedFileTypes>
<uap:FileType>${_config.fileExtension}</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>''';
}

bool _hasCapability(String capability) => _config.capabilities!
.split(',')
.map((e) => e.trim().toLowerCase())
Expand Down

0 comments on commit 341f30b

Please sign in to comment.