@@ -19,7 +19,8 @@ class ViewModel: ObservableObject, ViewModelProtocol {
1919 var totalSize : Int64 = 0
2020
2121 var derivedData : [ DirectoryModel ] = [ ]
22- var deviceSupport : [ DirectoryModel ] = [ ]
22+ var iOSDeviceSupport : [ DirectoryModel ] = [ ]
23+ var watchOSDeviceSupport : [ DirectoryModel ] = [ ]
2324 var archives : [ DirectoryModel ] = [ ]
2425 var iOSDeviceLogs : [ DirectoryModel ] = [ ]
2526 var documentationCache : [ DirectoryModel ] = [ ]
@@ -40,26 +41,41 @@ class ViewModel: ObservableObject, ViewModelProtocol {
4041
4142 let derivedDataDirectories = directoryManager. getSubDirectoriesForPath ( path: directoryManager. getDerivedDataPath ( ) )
4243 directoriesCount += derivedDataDirectories. count
44+ DispatchQueue . global ( qos: . utility) . async {
45+ self . calculateSize ( ofDirectory: & self . derivedData, subDirectories: derivedDataDirectories, type: . derivedData)
46+ }
4347
44- let deviceSupportDirectories = directoryManager. getSubDirectoriesForPath ( path: directoryManager. getDeviceSupportPath ( ) )
45- directoriesCount += deviceSupportDirectories. count
48+ let iOSDeviceSupportDirectories = directoryManager. getSubDirectoriesForPath ( path: directoryManager. getIOSDeviceSupportPath ( ) )
49+ directoriesCount += iOSDeviceSupportDirectories. count
50+ DispatchQueue . global ( qos: . utility) . async {
51+ self . calculateSize ( ofDirectory: & self . iOSDeviceSupport, subDirectories: iOSDeviceSupportDirectories, type: . iOSDeviceSupport)
52+ }
53+
54+ let watchOSDeviceSupportDirectories = directoryManager. getSubDirectoriesForPath ( path: directoryManager. getWatchOSDeviceSupportPath ( ) )
55+ directoriesCount += watchOSDeviceSupportDirectories. count
56+ DispatchQueue . global ( qos: . utility) . async {
57+ self . calculateSize ( ofDirectory: & self . watchOSDeviceSupport, subDirectories: watchOSDeviceSupportDirectories, type: . watchOSDeviceSupport)
58+ }
4659
4760 let archivesDirectories = directoryManager. getSubDirectoriesForPath ( path: directoryManager. getArchivesPath ( ) )
4861 directoriesCount += archivesDirectories. count
62+ DispatchQueue . global ( qos: . utility) . async {
63+ self . calculateSize ( ofDirectory: & self . archives, subDirectories: archivesDirectories, type: . archives)
64+ }
4965
5066 let iOSDeviceLogsDirectories = directoryManager. getSubDirectoriesForPath ( path: directoryManager. getIOSDeviceLogsPath ( ) )
5167 directoriesCount += iOSDeviceLogsDirectories. count
68+ DispatchQueue . global ( qos: . utility) . async {
69+ self . calculateSize ( ofDirectory: & self . iOSDeviceLogs, subDirectories: iOSDeviceLogsDirectories, type: . iOSDeviceLogs)
70+ }
5271
5372 let documentationCacheDirectories = directoryManager. getSubDirectoriesForPath ( path: directoryManager. getDocumentationCachePath ( ) )
5473 directoriesCount += documentationCacheDirectories. count
55-
5674 DispatchQueue . global ( qos: . utility) . async {
57- self . calculateSize ( ofDirectory: & self . derivedData, subDirectories: derivedDataDirectories, type: . derivedData)
58- self . calculateSize ( ofDirectory: & self . deviceSupport, subDirectories: deviceSupportDirectories, type: . deviceSupport)
59- self . calculateSize ( ofDirectory: & self . archives, subDirectories: archivesDirectories, type: . archives)
60- self . calculateSize ( ofDirectory: & self . iOSDeviceLogs, subDirectories: iOSDeviceLogsDirectories, type: . iOSDeviceLogs)
6175 self . calculateSize ( ofDirectory: & self . documentationCache, subDirectories: documentationCacheDirectories, type: . documentationCache)
62-
76+ }
77+
78+ DispatchQueue . global ( qos: . utility) . async {
6379 self . isScanStarted. toggle ( )
6480 self . isReadyToBeCleaned. toggle ( )
6581
@@ -93,10 +109,14 @@ class ViewModel: ObservableObject, ViewModelProtocol {
93109 directories = derivedData
94110 directoryName = " Derived Data "
95111 circleColor = . pink
96- case . deviceSupport :
97- directories = deviceSupport
98- directoryName = " Device Support "
112+ case . iOSDeviceSupport :
113+ directories = iOSDeviceSupport
114+ directoryName = " iOS Device Support"
99115 circleColor = Color ( . cyan)
116+ case . watchOSDeviceSupport:
117+ directories = watchOSDeviceSupport
118+ directoryName = " watchOS Device Support "
119+ circleColor = . green
100120 case . archives:
101121 directories = archives
102122 directoryName = " Archives "
@@ -107,7 +127,7 @@ class ViewModel: ObservableObject, ViewModelProtocol {
107127 circleColor = . purple
108128 case . documentationCache:
109129 directories = documentationCache
110- directoryName = " Doc. Cache"
130+ directoryName = " Documentation Cache"
111131 circleColor = . gray
112132 }
113133
@@ -122,7 +142,8 @@ class ViewModel: ObservableObject, ViewModelProtocol {
122142 totalSize = 0
123143
124144 derivedData. removeAll ( )
125- deviceSupport. removeAll ( )
145+ iOSDeviceSupport. removeAll ( )
146+ watchOSDeviceSupport. removeAll ( )
126147 archives. removeAll ( )
127148 iOSDeviceLogs. removeAll ( )
128149 documentationCache. removeAll ( )
@@ -131,7 +152,7 @@ class ViewModel: ObservableObject, ViewModelProtocol {
131152 }
132153 func getViewModelForPieChart( ) -> PieChartViewModelProtocol {
133154 var viewModel = PieChartViewModel ( )
134- viewModel. createItems ( derivedData: derivedData, deviceSupport : deviceSupport , archives: archives, iOSDeviceLogs: iOSDeviceLogs, documentationCache: documentationCache)
155+ viewModel. createItems ( derivedData: derivedData, iOSDeviceSupport : iOSDeviceSupport , watchOSDeviceSupport : watchOSDeviceSupport , archives: archives, iOSDeviceLogs: iOSDeviceLogs, documentationCache: documentationCache)
135156
136157 return viewModel
137158 }
@@ -143,7 +164,8 @@ class ViewModel: ObservableObject, ViewModelProtocol {
143164
144165 DispatchQueue . global ( qos: . userInitiated) . async {
145166 self . directoryManager. cleanDirectory ( forType: . derivedData)
146- self . directoryManager. cleanDirectory ( forType: . deviceSupport)
167+ self . directoryManager. cleanDirectory ( forType: . iOSDeviceSupport)
168+ self . directoryManager. cleanDirectory ( forType: . watchOSDeviceSupport)
147169 self . directoryManager. cleanDirectory ( forType: . archives)
148170 self . directoryManager. cleanDirectory ( forType: . iOSDeviceLogs)
149171 self . directoryManager. cleanDirectory ( forType: . documentationCache)
0 commit comments