@@ -31,6 +31,7 @@ namespace winrt::YtFlowApp::implementation
3131 m_type = value;
3232 m_propertyChanged (*this , PropertyChangedEventArgs (L" Type" ));
3333 m_propertyChanged (*this , PropertyChangedEventArgs (L" IsManualGroup" ));
34+ m_propertyChanged (*this , PropertyChangedEventArgs (L" IsSubscription" ));
3435 m_propertyChanged (*this , PropertyChangedEventArgs (L" DisplayType" ));
3536 m_propertyChanged (*this , PropertyChangedEventArgs (L" DisplayTypeIcon" ));
3637 m_propertyChanged (*this , PropertyChangedEventArgs (L" TooltipText" ));
@@ -39,13 +40,17 @@ namespace winrt::YtFlowApp::implementation
3940 {
4041 return m_type == L" manual" ;
4142 }
43+ bool ProxyGroupModel::IsSubscription () const
44+ {
45+ return m_type == L" subscription" ;
46+ }
4247 hstring ProxyGroupModel::DisplayType () const
4348 {
4449 if (IsManualGroup ())
4550 {
4651 return L" Local" ;
4752 }
48- else if (m_type == L" subscription " )
53+ if (IsSubscription () )
4954 {
5055 return L" Subscription" ;
5156 }
@@ -65,7 +70,7 @@ namespace winrt::YtFlowApp::implementation
6570 {
6671 return m_name + L" (Local)" ;
6772 }
68- else if (m_type == L" subscription " )
73+ else if (IsSubscription () )
6974 {
7075 return m_name + L" (Subscription)" ;
7176 }
@@ -83,6 +88,18 @@ namespace winrt::YtFlowApp::implementation
8388 {
8489 return m_subscriptionDownloadUsed;
8590 }
91+ hstring ProxyGroupModel::SubscriptionTotalUsed () const
92+ {
93+ return m_subscriptionTotalUsed;
94+ }
95+ double ProxyGroupModel::SubscriptionPercentUsed () const
96+ {
97+ return m_subscriptionPercentUsed;
98+ }
99+ bool ProxyGroupModel::SubscriptionHasDataUsage () const
100+ {
101+ return m_subscriptionHasDataUsage;
102+ }
86103 hstring ProxyGroupModel::SubscriptionBytesTotal () const
87104 {
88105 return m_subscriptionBytesTotal;
@@ -91,6 +108,10 @@ namespace winrt::YtFlowApp::implementation
91108 {
92109 return m_subscriptionRetrievedAt;
93110 }
111+ hstring ProxyGroupModel::SubscriptionExpireAt () const
112+ {
113+ return m_subscriptionExpireAt;
114+ }
94115 void ProxyGroupModel::AttachSubscriptionInfo (FfiProxyGroupSubscription const &subscription)
95116 {
96117 m_subscriptionUrl = to_hstring (subscription.url );
@@ -100,23 +121,67 @@ namespace winrt::YtFlowApp::implementation
100121 {
101122 m_subscriptionUploadUsed = HumanizeByte (subscription.upload_bytes_used .value ());
102123 }
124+ else
125+ {
126+ m_subscriptionUploadUsed = L" " ;
127+ }
103128 if (subscription.download_bytes_used .has_value ())
104129 {
105130 m_subscriptionDownloadUsed = HumanizeByte (subscription.download_bytes_used .value ());
106131 }
132+ else
133+ {
134+ m_subscriptionDownloadUsed = L" " ;
135+ }
107136 if (subscription.bytes_total .has_value ())
108137 {
109138 m_subscriptionBytesTotal = HumanizeByte (subscription.bytes_total .value ());
110139 }
140+ else
141+ {
142+ m_subscriptionBytesTotal = L" " ;
143+ }
144+ if (subscription.upload_bytes_used .has_value () && subscription.download_bytes_used .has_value () &&
145+ subscription.bytes_total .has_value ())
146+ {
147+ m_subscriptionHasDataUsage = true ;
148+ m_subscriptionTotalUsed =
149+ HumanizeByte (subscription.upload_bytes_used .value () + subscription.download_bytes_used .value ());
150+ m_subscriptionPercentUsed =
151+ (subscription.upload_bytes_used .value () + subscription.download_bytes_used .value ()) /
152+ static_cast <double >(subscription.bytes_total .value ()) * 100 ;
153+ }
154+ else
155+ {
156+ m_subscriptionHasDataUsage = false ;
157+ m_subscriptionTotalUsed = L" " ;
158+ m_subscriptionPercentUsed = 0 ;
159+ }
111160 if (subscription.retrieved_at .has_value ())
112161 {
113- m_subscriptionRetrievedAt = to_hstring (subscription.retrieved_at .value ());
162+ m_subscriptionRetrievedAt = FormatNaiveDateTime (subscription.retrieved_at .value ().c_str ());
163+ }
164+ else
165+ {
166+ m_subscriptionRetrievedAt = L" Never" ;
167+ }
168+ if (subscription.expires_at .has_value ())
169+ {
170+ m_subscriptionExpireAt = FormatNaiveDateTime (subscription.expires_at .value ().c_str ());
171+ }
172+ else
173+ {
174+ m_subscriptionExpireAt = L" " ;
114175 }
115176 m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionUrl" ));
116177 m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionUploadUsed" ));
117178 m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionDownloadUsed" ));
179+ m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionTotalUsed" ));
180+ m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionPercentUsed" ));
181+ m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionHasDataUsage" ));
118182 m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionBytesTotal" ));
119183 m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionRetrievedAt" ));
184+ m_propertyChanged (*this , PropertyChangedEventArgs (L" SubscriptionExpireAt" ));
120185 }
121186
122187 IObservableVector<ProxyModel> ProxyGroupModel::Proxies () const
0 commit comments