@@ -44,7 +44,7 @@ struct AppListView: View {
4444 OptionView ( app)
4545 }
4646 } label: {
47- if #available( iOS 16 . 0 , * ) {
47+ if #available( iOS 16 , * ) {
4848 AppListCell ( app: app)
4949 } else {
5050 AppListCell ( app: app)
@@ -58,7 +58,7 @@ struct AppListView: View {
5858 Button {
5959 UIApplication . shared. open ( App . advertisementApp. url)
6060 } label: {
61- if #available( iOS 16 . 0 , * ) {
61+ if #available( iOS 16 , * ) {
6262 AppListCell ( app: App . advertisementApp)
6363 } else {
6464 AppListCell ( app: App . advertisementApp)
@@ -82,6 +82,25 @@ struct AppListView: View {
8282 }
8383 }
8484
85+ var appListFooter : some View {
86+ VStack ( alignment: . leading, spacing: 20 ) {
87+ if !appList. filter. showPatchedOnly {
88+ Text ( NSLocalizedString ( " Only removable system applications are eligible and listed. " , comment: " " ) )
89+ . font ( . footnote)
90+ }
91+
92+ if !appList. isSelectorMode {
93+ if #available( iOS 16 , * ) {
94+ appListFooterView
95+ . padding ( . top, 8 )
96+ } else {
97+ appListFooterView
98+ . padding ( . top, 2 )
99+ }
100+ }
101+ }
102+ }
103+
85104 var appListView : some View {
86105 List {
87106 if AppListModel . hasTrollStore && appList. isRebuildNeeded {
@@ -103,7 +122,7 @@ struct AppListView: View {
103122 Spacer ( )
104123
105124 if appList. isRebuilding {
106- if #available( iOS 16 . 0 , * ) {
125+ if #available( iOS 16 , * ) {
107126 ProgressView ( )
108127 . progressViewStyle ( CircularProgressViewStyle ( ) )
109128 . controlSize ( . large)
@@ -128,12 +147,24 @@ struct AppListView: View {
128147 Section {
129148 filteredAppList ( appList. userApplications)
130149 } header: {
131- Text ( NSLocalizedString ( " User Applications " , comment: " " ) )
132- . font ( . footnote)
150+ if #available( iOS 15 , * ) {
151+ Text ( NSLocalizedString ( " User Applications " , comment: " " ) )
152+ . font ( . footnote)
153+ } else {
154+ Text ( NSLocalizedString ( " User Applications " , comment: " " ) )
155+ . font ( . footnote)
156+ . padding ( . horizontal, 16 )
157+ }
133158 } footer: {
134159 if !appList. filter. isSearching && !appList. filter. showPatchedOnly && appList. unsupportedCount > 0 {
135- Text ( String ( format: NSLocalizedString ( " And %d more unsupported user applications. " , comment: " " ) , appList. unsupportedCount) )
136- . font ( . footnote)
160+ if #available( iOS 15 , * ) {
161+ Text ( String ( format: NSLocalizedString ( " And %d more unsupported user applications. " , comment: " " ) , appList. unsupportedCount) )
162+ . font ( . footnote)
163+ } else {
164+ Text ( String ( format: NSLocalizedString ( " And %d more unsupported user applications. " , comment: " " ) , appList. unsupportedCount) )
165+ . font ( . footnote)
166+ . padding ( . horizontal, 16 )
167+ }
137168 }
138169 }
139170
@@ -146,32 +177,34 @@ struct AppListView: View {
146177
147178 filteredAppList ( appList. trollApplications)
148179 } header: {
149- Text ( NSLocalizedString ( " TrollStore Applications " , comment: " " ) )
150- . font ( . footnote)
180+ if #available( iOS 15 , * ) {
181+ Text ( NSLocalizedString ( " TrollStore Applications " , comment: " " ) )
182+ . font ( . footnote)
183+ } else {
184+ Text ( NSLocalizedString ( " TrollStore Applications " , comment: " " ) )
185+ . font ( . footnote)
186+ . padding ( . horizontal, 16 )
187+ }
151188 }
152189
153190 Section {
154191 filteredAppList ( appList. appleApplications)
155192 } header: {
156- Text ( NSLocalizedString ( " Injectable System Applications " , comment: " " ) )
157- . font ( . footnote)
193+ if #available( iOS 15 , * ) {
194+ Text ( NSLocalizedString ( " Injectable System Applications " , comment: " " ) )
195+ . font ( . footnote)
196+ } else {
197+ Text ( NSLocalizedString ( " Injectable System Applications " , comment: " " ) )
198+ . font ( . footnote)
199+ . padding ( . horizontal, 16 )
200+ }
158201 } footer: {
159202 if !appList. filter. isSearching {
160- VStack ( alignment: . leading, spacing: 20 ) {
161- if !appList. filter. showPatchedOnly {
162- Text ( NSLocalizedString ( " Only removable system applications are eligible and listed. " , comment: " " ) )
163- . font ( . footnote)
164- }
165-
166- if !appList. isSelectorMode {
167- if #available( iOS 16 . 0 , * ) {
168- appListFooterView
169- . padding ( . top, 8 )
170- } else {
171- appListFooterView
172- . padding ( . top, 2 )
173- }
174- }
203+ if #available( iOS 15 , * ) {
204+ appListFooter
205+ } else {
206+ appListFooter
207+ . padding ( . horizontal, 16 )
175208 }
176209 }
177210 }
@@ -200,7 +233,7 @@ struct AppListView: View {
200233 Button {
201234 appList. filter. showPatchedOnly. toggle ( )
202235 } label: {
203- if #available( iOS 15 . 0 , * ) {
236+ if #available( iOS 15 , * ) {
204237 Image ( systemName: appList. filter. showPatchedOnly
205238 ? " line.3.horizontal.decrease.circle.fill "
206239 : " line.3.horizontal.decrease.circle " )
@@ -217,7 +250,7 @@ struct AppListView: View {
217250
218251 var body : some View {
219252 NavigationView {
220- if #available( iOS 15 . 0 , * ) {
253+ if #available( iOS 15 , * ) {
221254 appListView
222255 . refreshable {
223256 withAnimation {
0 commit comments