public static async Task InitializationFinished(IActivatedEventArgs e)
{
var filePickerArgs = e as FileOpenPickerContinuationEventArgs;
if (filePickerArgs != null)
{
var pickerArgs = filePickerArgs;
var files = pickerArgs.Files;
if (files.Count == 1)
{
if (ServiceLocator.PictureService.SupportedImageFileTypes.
Contains(Path.GetExtension(files[0].Name)))
{
ServiceLocator.PictureService.RecievedFiles(
filePickerArgs.Files);
}
if (ServiceLocator.SoundService.SupportedFileTypes.
Contains(Path.GetExtension(files[0].Name)))
{
ServiceLocator.SoundService.RecievedFiles(
filePickerArgs.Files);
}
}
}
var activationArgs = e as FileActivatedEventArgs;
if (activationArgs != null)
{
try
{
if (activationArgs.Files.Count == 1 &&
StorageConstants.SupportedCatrobatFileTypes.Contains(
Path.GetExtension(activationArgs.Files[0].Name)))
{
var catrobatFileStream = (await ((StorageFile)activationArgs.Files[0]).
OpenReadAsync()).AsStream();
await TryAddProgram(catrobatFileStream);
}
var imageFiles =
(from StorageFile file in activationArgs.Files
where ServiceLocator.PictureService.
SupportedImageFileTypes.Contains(Path.GetExtension(file.Name))
select file).ToList();
if (imageFiles.Count > 0)
ServiceLocator.PictureService.RecievedFiles(imageFiles);
}
catch (Exception exc)
{
// TODO: Handle error
//var messageDialog1 = new MessageDialog("Cannot read recieved file: " + exc.Message);
//messageDialog1.ShowAsync();
}
}
if (e.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs eventArgs = e as ProtocolActivatedEventArgs;
string absoluteUri = eventArgs.Uri.AbsoluteUri;
if (absoluteUri.Contains("pocketcode:c="))
{
int hashIndex = absoluteUri.IndexOf("c=") + 2;
string recoveryHash = absoluteUri.Substring(hashIndex);
ServiceLocator.WebCommunicationService.SetRecoveryHash(recoveryHash);
}
}
}