1- using CodectoryCore . UI . Wpf ;
1+ using AutoHDR . UWP ;
2+ using CodectoryCore . UI . Wpf ;
23using CodectoryCore . Windows ;
34using CodectoryCore . Windows . FileSystem ;
45using CodectoryCore . Windows . Icons ;
@@ -28,6 +29,7 @@ public class ApplicationItem : BaseViewModel, IEquatable<ApplicationItem>
2829 private string _applicationName ;
2930 private System . Drawing . Bitmap icon = null ;
3031 //private bool _restartProcess = false;
32+ private string _uwpFullPackageName = string . Empty ;
3133 private string _uwpFamilyPackageName = string . Empty ;
3234 private string _uwpApplicationID = string . Empty ;
3335 private string _uwpIconPath = string . Empty ;
@@ -38,22 +40,37 @@ public class ApplicationItem : BaseViewModel, IEquatable<ApplicationItem>
3840 public string DisplayName { get => displayName ; set { displayName = value ; OnPropertyChanged ( ) ; } }
3941 [ JsonProperty ]
4042 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 ( ) ; } }
4347 // public bool RestartProcess { get => _restartProcess; set { _restartProcess = value; OnPropertyChanged(); } }
44- [ JsonProperty ]
48+ [ JsonProperty ( Order = 0 ) ]
4549 public bool IsUWP { get => _isUWP ; set { _isUWP = value ; OnPropertyChanged ( ) ; } }
46- [ JsonProperty ]
50+ [ JsonProperty ( Order = 0 ) ]
4751 public bool IsUWPWepApp { get => _isUWPWebApp ; set { _isUWPWebApp = value ; OnPropertyChanged ( ) ; } }
4852 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 ( ) ; } }
5573
56- [ JsonProperty ]
5774 public string UWPIdentity { get => _uwpIdentity ; set { _uwpIdentity = value ; OnPropertyChanged ( ) ; } }
5875
5976 private ApplicationItem ( )
@@ -67,12 +84,31 @@ public ApplicationItem(string displayName, string applicationFilePath)
6784 ApplicationName = new FileInfo ( ApplicationFilePath ) . Name . Replace ( ".exe" , "" ) ;
6885 }
6986
70- public ApplicationItem ( UWP . UWPApp uwpApp ) : this ( uwpApp . Name , uwpApp . ExecutablePath )
87+ public ApplicationItem ( UWPApp uwpApp ) : this ( uwpApp . Name , uwpApp . ExecutablePath )
7188 {
7289 IsUWP = true ;
7390 IsUWPWepApp = true ;
7491 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 ;
76112 UWPIconPath = uwpApp . IconPath ;
77113 UWPIdentity = uwpApp . Identity ;
78114 }
0 commit comments