1
- using CodectoryCore . UI . Wpf ;
1
+ using AutoHDR . UWP ;
2
+ using CodectoryCore . UI . Wpf ;
2
3
using CodectoryCore . Windows ;
3
4
using CodectoryCore . Windows . FileSystem ;
4
5
using CodectoryCore . Windows . Icons ;
@@ -28,6 +29,7 @@ public class ApplicationItem : BaseViewModel, IEquatable<ApplicationItem>
28
29
private string _applicationName ;
29
30
private System . Drawing . Bitmap icon = null ;
30
31
//private bool _restartProcess = false;
32
+ private string _uwpFullPackageName = string . Empty ;
31
33
private string _uwpFamilyPackageName = string . Empty ;
32
34
private string _uwpApplicationID = string . Empty ;
33
35
private string _uwpIconPath = string . Empty ;
@@ -38,22 +40,37 @@ public class ApplicationItem : BaseViewModel, IEquatable<ApplicationItem>
38
40
public string DisplayName { get => displayName ; set { displayName = value ; OnPropertyChanged ( ) ; } }
39
41
[ JsonProperty ]
40
42
public string ApplicationName { get => _applicationName ; set { _applicationName = value ; OnPropertyChanged ( ) ; } }
41
- [ JsonProperty ]
42
- public string ApplicationFilePath { get => _applicationFilePath ; set { _applicationFilePath = value ; try { Icon = IconHelper . GetFileIcon ( value ) ; } catch { } OnPropertyChanged ( ) ; } }
43
+ [ JsonProperty ( Order = 1 ) ]
44
+ public string ApplicationFilePath {
45
+ get => _applicationFilePath ;
46
+ set { _applicationFilePath = value ; try { if ( ! IsUWP && ! IsUWPWepApp ) Icon = IconHelper . GetFileIcon ( value ) ; } catch { } OnPropertyChanged ( ) ; } }
43
47
// public bool RestartProcess { get => _restartProcess; set { _restartProcess = value; OnPropertyChanged(); } }
44
- [ JsonProperty ]
48
+ [ JsonProperty ( Order = 0 ) ]
45
49
public bool IsUWP { get => _isUWP ; set { _isUWP = value ; OnPropertyChanged ( ) ; } }
46
- [ JsonProperty ]
50
+ [ JsonProperty ( Order = 0 ) ]
47
51
public bool IsUWPWepApp { get => _isUWPWebApp ; set { _isUWPWebApp = value ; OnPropertyChanged ( ) ; } }
48
52
public Bitmap Icon { get => icon ; set { icon = value ; OnPropertyChanged ( ) ; } }
49
- [ JsonProperty ]
50
- public string UWPFamilyPackageName { get => _uwpFamilyPackageName ; set { _uwpFamilyPackageName = value ; OnPropertyChanged ( ) ; } }
51
- [ JsonProperty ]
52
- public string UWPApplicationID { get => _uwpApplicationID ; set { _uwpApplicationID = value ; OnPropertyChanged ( ) ; } }
53
- [ JsonProperty ]
54
- public string UWPIconPath { get => _uwpIconPath ; set { _uwpIconPath = value ; try { Icon = new Bitmap ( Bitmap . FromFile ( value ) ) ; } catch { } OnPropertyChanged ( ) ; } }
53
+ [ JsonProperty ( Order = 1 ) ]
54
+ public string UWPFullPackageName {
55
+ get => _uwpFullPackageName ;
56
+ set { _uwpFullPackageName = value ; OnPropertyChanged ( ) ; LoadUWPData ( ) ; }
57
+ }
58
+
59
+ [ JsonProperty ( Order = 0 ) ]
60
+ public string UWPFamilyPackageName
61
+ {
62
+ get => _uwpFamilyPackageName ;
63
+ set { _uwpFamilyPackageName = value ; OnPropertyChanged ( ) ; }
64
+ }
65
+
66
+ [ JsonProperty ( Order = 2 ) ]
67
+ public string UWPApplicationID {
68
+ get => _uwpApplicationID ;
69
+ set { _uwpApplicationID = value ; OnPropertyChanged ( ) ; if ( string . IsNullOrEmpty ( UWPFullPackageName ) ) LoadUWPData ( ) ; } }
70
+ public string UWPIconPath {
71
+ get => _uwpIconPath ;
72
+ set { _uwpIconPath = value ; try { if ( IsUWP || IsUWPWepApp ) Icon = new Bitmap ( Bitmap . FromFile ( value ) ) ; } catch { } OnPropertyChanged ( ) ; } }
55
73
56
- [ JsonProperty ]
57
74
public string UWPIdentity { get => _uwpIdentity ; set { _uwpIdentity = value ; OnPropertyChanged ( ) ; } }
58
75
59
76
private ApplicationItem ( )
@@ -67,12 +84,31 @@ public ApplicationItem(string displayName, string applicationFilePath)
67
84
ApplicationName = new FileInfo ( ApplicationFilePath ) . Name . Replace ( ".exe" , "" ) ;
68
85
}
69
86
70
- public ApplicationItem ( UWP . UWPApp uwpApp ) : this ( uwpApp . Name , uwpApp . ExecutablePath )
87
+ public ApplicationItem ( UWPApp uwpApp ) : this ( uwpApp . Name , uwpApp . ExecutablePath )
71
88
{
72
89
IsUWP = true ;
73
90
IsUWPWepApp = true ;
74
91
UWPFamilyPackageName = uwpApp . FamilyPackageName ;
75
- UWPApplicationID = uwpApp . ApplicationID ;
92
+ _uwpFullPackageName = uwpApp . FullPackageName ;
93
+ _uwpApplicationID = uwpApp . ApplicationID ;
94
+ UWPIconPath = uwpApp . IconPath ;
95
+ UWPIdentity = uwpApp . Identity ;
96
+ }
97
+
98
+ private void LoadUWPData ( )
99
+ {
100
+ if ( ! IsUWP && ! IsUWPWepApp )
101
+ return ;
102
+ UWPApp uwpApp ;
103
+ //Compatibility for old UWP handling
104
+ if ( string . IsNullOrEmpty ( UWPFullPackageName ) )
105
+ uwpApp = UWPAppsManager . GetUWPApp ( UWPFamilyPackageName , UWPApplicationID ) ;
106
+ else
107
+ uwpApp = UWPAppsManager . GetUWPApp ( UWPFullPackageName ) ;
108
+
109
+ UWPFamilyPackageName = uwpApp . FamilyPackageName ;
110
+ _uwpFullPackageName = uwpApp . FullPackageName ;
111
+ _uwpApplicationID = uwpApp . ApplicationID ;
76
112
UWPIconPath = uwpApp . IconPath ;
77
113
UWPIdentity = uwpApp . Identity ;
78
114
}
0 commit comments