@@ -19,6 +19,9 @@ struct AppListView: View {
1919 @State var selectorOpenedURL : URLIdentifiable ? = nil
2020 @State var selectedIndex : String ? = nil
2121
22+ @State var isWarningPresented = false
23+ @State var temporaryOpenedURL : URLIdentifiable ? = nil
24+
2225 @AppStorage ( " isAdvertisementHidden " )
2326 var isAdvertisementHidden : Bool = false
2427
@@ -27,7 +30,8 @@ struct AppListView: View {
2730 !appList. isPaidProductInstalled &&
2831 !appList. filter. isSearching &&
2932 !appList. filter. showPatchedOnly &&
30- !appList. isRebuildNeeded
33+ !appList. isRebuildNeeded &&
34+ !appList. isSelectorMode
3135 }
3236
3337 var appString : String {
@@ -52,6 +56,33 @@ struct AppListView: View {
5256 }
5357
5458 var body : some View {
59+ if #available( iOS 15 , * ) {
60+ content
61+ . alert (
62+ NSLocalizedString ( " Notice " , comment: " " ) ,
63+ isPresented: $isWarningPresented,
64+ presenting: temporaryOpenedURL
65+ ) { result in
66+ Button ( role: . destructive) {
67+ selectorOpenedURL = result
68+ } label: {
69+ Text ( NSLocalizedString ( " Continue " , comment: " " ) )
70+ }
71+ Button ( role: . cancel) {
72+ temporaryOpenedURL = nil
73+ isWarningPresented = false
74+ } label: {
75+ Text ( NSLocalizedString ( " Cancel " , comment: " " ) )
76+ }
77+ } message: {
78+ Text ( OptionView . warningMessage ( [ $0. url] ) )
79+ }
80+ } else {
81+ content
82+ }
83+ }
84+
85+ var content : some View {
5586 NavigationView {
5687 ScrollViewReader { reader in
5788 ZStack {
@@ -77,13 +108,19 @@ struct AppListView: View {
77108 . environmentObject ( AppListModel ( selectorURL: urlWrapper. url) )
78109 }
79110 . onOpenURL { url in
80- guard url. isFileURL , (
81- url. pathExtension . lowercased ( ) == " dylib " ||
82- url . pathExtension . lowercased ( ) == " deb "
83- ) else {
111+ let ext = url. pathExtension . lowercased ( )
112+ guard url. isFileURL ,
113+ ext == " dylib " || ext == " deb "
114+ else {
84115 return
85116 }
86- selectorOpenedURL = URLIdentifiable ( url: preprocessURL ( url) )
117+ let urlIdent = URLIdentifiable ( url: preprocessURL ( url) )
118+ if ext == " deb " {
119+ temporaryOpenedURL = urlIdent
120+ isWarningPresented = true
121+ } else {
122+ selectorOpenedURL = urlIdent
123+ }
87124 }
88125 . onAppear {
89126 if Double . random ( in: 0 ..< 1 ) < 0.1 {
0 commit comments