Moved application code to the Application layer

Imported Win10 project
Code cleanup
WIP - Use common UWP services for Win8.1 and Win10
This commit is contained in:
Geoffroy BONNEVILLE
2020-04-06 20:20:45 +02:00
parent e795a8c3c4
commit 56d93a5187
292 changed files with 48614 additions and 837 deletions

View File

@@ -0,0 +1,29 @@
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Data;
namespace ModernKeePass.Converters
{
[Obsolete]
public class BooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var boolean = value as bool? ?? false;
return boolean ? Visibility.Visible : Visibility.Collapsed;
}
// No need to implement this
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
var visibility = value as Visibility? ?? Visibility.Visible;
switch (visibility)
{
case Visibility.Visible: return true;
case Visibility.Collapsed: return false;
default:
throw new ArgumentOutOfRangeException(nameof(value));
}
}
}
}

View File

@@ -0,0 +1,22 @@
using System;
using Windows.UI;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
namespace ModernKeePass.Converters
{
public class ColorToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var color = value is Color color1 ? color1 : default(Color);
if (color == default(Color) && parameter is SolidColorBrush) return (SolidColorBrush) parameter;
return new SolidColorBrush(color);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return (value as SolidColorBrush)?.Color ?? new Color();
}
}
}

View File

@@ -0,0 +1,27 @@
using System;
using Windows.UI;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
namespace ModernKeePass.Converters
{
public class DiscreteIntToSolidColorBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var status = System.Convert.ToInt32(value);
switch (status)
{
case 1: return new SolidColorBrush(Colors.Red);
case 3: return new SolidColorBrush(Colors.Yellow);
case 5: return new SolidColorBrush(Colors.Green);
default: return new SolidColorBrush(Colors.Black);
}
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,31 @@
using System;
using Windows.UI;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
namespace ModernKeePass.Converters
{
public class DoubleToSolidColorBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
try
{
var currentValue = (double) value;
var maxValue = double.Parse(parameter as string);
var green = System.Convert.ToByte(currentValue / maxValue * byte.MaxValue);
var red = (byte) (byte.MaxValue - green);
return new SolidColorBrush(Color.FromArgb(255, red, green, 0));
}
catch (OverflowException)
{
return new SolidColorBrush(Color.FromArgb(255, 0, byte.MaxValue, 0));
}
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,20 @@
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Data;
namespace ModernKeePass.Converters
{
class EmptyStringToVisibilityConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var text = value is string ? value.ToString() : string.Empty;
return string.IsNullOrEmpty(text) ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,122 @@
using System;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
using ModernKeePass.Domain.Enums;
namespace ModernKeePass.Converters
{
public class IconToSymbolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var icon = (Icon) value;
switch (icon)
{
case Icon.Delete: return Symbol.Delete;
case Icon.Edit: return Symbol.Edit;
case Icon.Save: return Symbol.Save;
case Icon.Cancel: return Symbol.Cancel;
case Icon.Accept: return Symbol.Accept;
case Icon.Home: return Symbol.Home;
case Icon.Camera: return Symbol.Camera;
case Icon.Setting: return Symbol.Setting;
case Icon.Mail: return Symbol.Mail;
case Icon.Find: return Symbol.Find;
case Icon.Help: return Symbol.Help;
case Icon.Clock: return Symbol.Clock;
case Icon.Crop: return Symbol.Crop;
case Icon.World: return Symbol.World;
case Icon.Flag: return Symbol.Flag;
case Icon.PreviewLink: return Symbol.PreviewLink;
case Icon.Document: return Symbol.Document;
case Icon.ProtectedDocument: return Symbol.ProtectedDocument;
case Icon.ContactInfo: return Symbol.ContactInfo;
case Icon.ViewAll: return Symbol.ViewAll;
case Icon.Rotate: return Symbol.Rotate;
case Icon.List: return Symbol.List;
case Icon.Shop: return Symbol.Shop;
case Icon.BrowsePhotos: return Symbol.BrowsePhotos;
case Icon.Caption: return Symbol.Caption;
case Icon.Repair: return Symbol.Repair;
case Icon.Page: return Symbol.Page2;
case Icon.Paste: return Symbol.Paste;
case Icon.Important: return Symbol.Important;
case Icon.SlideShow: return Symbol.SlideShow;
case Icon.MapDrive: return Symbol.MapDrive;
case Icon.ContactPresence: return Symbol.ContactPresence;
case Icon.Contact: return Symbol.Contact2;
case Icon.Folder: return Symbol.Folder;
case Icon.View: return Symbol.View;
case Icon.Permissions: return Symbol.Permissions;
case Icon.Map: return Symbol.Map;
case Icon.CellPhone: return Symbol.CellPhone;
case Icon.OutlineStar: return Symbol.OutlineStar;
case Icon.Calculator: return Symbol.Calculator;
case Icon.Library: return Symbol.Library;
case Icon.SyncFolder: return Symbol.SyncFolder;
case Icon.GoToStart: return Symbol.GoToStart;
case Icon.ZeroBars: return Symbol.ZeroBars;
case Icon.FourBars: return Symbol.FourBars;
case Icon.Scan: return Symbol.Scan;
case Icon.ReportHacked: return Symbol.ReportHacked;
default: return Symbol.Stop;
}
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
var symbol = (Symbol) value;
switch (symbol)
{
case Symbol.Delete: return Icon.Delete;
case Symbol.Edit: return Icon.Edit;
case Symbol.Save: return Icon.Save;
case Symbol.Cancel: return Icon.Cancel;
case Symbol.Accept: return Icon.Accept;
case Symbol.Home: return Icon.Home;
case Symbol.Camera: return Icon.Camera;
case Symbol.Setting: return Icon.Setting;
case Symbol.Mail: return Icon.Mail;
case Symbol.Find: return Icon.Find;
case Symbol.Help: return Icon.Help;
case Symbol.Clock: return Icon.Clock;
case Symbol.Crop: return Icon.Crop;
case Symbol.World: return Icon.World;
case Symbol.Flag: return Icon.Flag;
case Symbol.PreviewLink: return Icon.PreviewLink;
case Symbol.Document: return Icon.Document;
case Symbol.ProtectedDocument: return Icon.ProtectedDocument;
case Symbol.ContactInfo: return Icon.ContactInfo;
case Symbol.ViewAll: return Icon.ViewAll;
case Symbol.Rotate: return Icon.Rotate;
case Symbol.List: return Icon.List;
case Symbol.Shop: return Icon.Shop;
case Symbol.BrowsePhotos: return Icon.BrowsePhotos;
case Symbol.Caption: return Icon.Caption;
case Symbol.Repair: return Icon.Repair;
case Symbol.Page2: return Icon.Page;
case Symbol.Paste: return Icon.Paste;
case Symbol.Important: return Icon.Important;
case Symbol.SlideShow: return Icon.SlideShow;
case Symbol.MapDrive: return Icon.MapDrive;
case Symbol.ContactPresence: return Icon.ContactPresence;
case Symbol.Contact2: return Icon.Contact;
case Symbol.Folder: return Icon.Folder;
case Symbol.View: return Icon.View;
case Symbol.Permissions: return Icon.Permissions;
case Symbol.Map: return Icon.Map;
case Symbol.CellPhone: return Icon.CellPhone;
case Symbol.OutlineStar: return Icon.OutlineStar;
case Symbol.Calculator: return Icon.Calculator;
case Symbol.Library: return Icon.Library;
case Symbol.SyncFolder: return Icon.SyncFolder;
case Symbol.GoToStart: return Icon.GoToStart;
case Symbol.ZeroBars: return Icon.ZeroBars;
case Symbol.FourBars: return Icon.FourBars;
case Symbol.Scan: return Icon.Scan;
case Symbol.ReportHacked: return Icon.ReportHacked;
default: return Icon.Stop;
}
}
}
}

View File

@@ -0,0 +1,28 @@
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Data;
namespace ModernKeePass.Converters
{
public class InverseBooleanToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var boolean = value as bool? ?? false;
return boolean ? Visibility.Collapsed : Visibility.Visible;
}
// No need to implement this
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
var visibility = value as Visibility? ?? Visibility.Visible;
switch (visibility)
{
case Visibility.Visible: return false;
case Visibility.Collapsed: return true;
default:
throw new ArgumentOutOfRangeException(nameof(value));
}
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
using Windows.UI.Xaml.Data;
namespace ModernKeePass.Converters
{
public class NullToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return value != null;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,24 @@
using System;
using Windows.UI.Xaml.Data;
namespace ModernKeePass.Converters
{
public class PluralizationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var pluralizationOptionString = parameter as string;
var pluralizationOptions = pluralizationOptionString?.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
if (pluralizationOptions == null || pluralizationOptions.Length != 2) return string.Empty;
var count = value is int ? (int) value : 0;
var text = count == 1 ? pluralizationOptions[0] : pluralizationOptions[1];
return $"{count} {text}";
}
// No need to implement this
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,27 @@
using System;
using Windows.UI.Xaml.Data;
namespace ModernKeePass.Converters
{
public class ProgressBarLegalValuesConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var legalValuesOptionString = parameter as string;
var legalValuesOptions = legalValuesOptionString?.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
if (legalValuesOptions == null || legalValuesOptions.Length != 2) return 0;
var minValue = double.Parse(legalValuesOptions[0]);
var maxValue = double.Parse(legalValuesOptions[1]);
var count = value is double ? (double)value : 0;
if (count > maxValue) return maxValue;
if (count < minValue) return minValue;
return count;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,20 @@
using System;
using Windows.UI.Xaml.Data;
namespace ModernKeePass.Converters
{
public class TextToWidthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var fontSize = double.Parse(parameter as string);
var text = value as string;
return text?.Length * fontSize ?? 0;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
}