in WindowsSmartInk/SmartInkLaboratory/ViewModels/IconMapViewModel.cs [99:152]
public IconMapViewModel(IAppStateService state)
{
_state = state;
_state.PackageChanged += async(s, e) => {
if (_state.CurrentPackage == null)
{
//_storageFolder = null;
VisualStateChanged.Invoke(this, new VisualStateEventArgs { NewState = "NotMedia" });
return;
}
//_storageFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync(_state.CurrentPackage.Name, CreationCollisionOption.OpenIfExists);
IsMediaPackage = _state.CurrentPackage.IsMediaPackage;
//VisualStateChanged.Invoke(this, new VisualStateEventArgs { NewState = "HasPackage" });
var mediaState = (IsMediaPackage) ? "IsMedia" : "NotMedia";
VisualStateChanged.Invoke(this, new VisualStateEventArgs { NewState = mediaState });
};
_state.TagChanged += async (s,e)=>{
if (_state.CurrentPackage == null)
return;
if (_state.CurrentTag != null)
{
if (!_state.CurrentPackage.Tags.Contains(_state.CurrentTag.Name.ToLower()))
await _state.CurrentPackage.AddTagAsync(_state.CurrentTag.Id, _state.CurrentTag.Name);
if (IsMediaPackage)
await SetIconLocation(_state.CurrentTag.Id);
}
OpenFile.RaiseCanExecuteChanged();
};
this.OpenFile = new RelayCommand(async() => {
var picker = new FileOpenPicker();
picker.ViewMode =PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");
var file = await picker.PickSingleFileAsync();
if (file != null)
{
await UpdateIconAsync(file);
await _state.CurrentPackage.SaveAsync();
_state.IconUpdated();
}
},
()=> {
return _state.CurrentProject != null && CurrentTag != null; });
}