diff --git a/iosApp/Source/App/AppState.swift b/iosApp/Source/App/AppState.swift index 1af54d86..0155351f 100644 --- a/iosApp/Source/App/AppState.swift +++ b/iosApp/Source/App/AppState.swift @@ -12,11 +12,14 @@ import SwiftUI class AppState: ObservableObject { - @Published var snackbarQueue: Deque = Deque() + @Published + var snackbarQueue: Deque = Deque() - @Published var snackbarQueueForSheet: Deque = Deque() + @Published + var snackbarQueueForSheet: Deque = Deque() - @Published var path = NavigationPath() + @Published + var path = NavigationPath() init() { path.append(CompactViewRoute.feed) diff --git a/iosApp/Source/App/CompactView.swift b/iosApp/Source/App/CompactView.swift index 9f1c64cf..5a29fe7f 100644 --- a/iosApp/Source/App/CompactView.swift +++ b/iosApp/Source/App/CompactView.swift @@ -19,11 +19,11 @@ struct CompactView: View { @Binding var selectedDrawerItem: DrawerItem? - let homeViewModel: HomeViewModel - @State var navDrawerState: NavDrawerState = NavDrawerState(timeline: [], categories: [], feedSourcesByCategory: [:]) + let homeViewModel: HomeViewModel + var body: some View { NavigationStack(path: $appState.path) { SidebarDrawer( diff --git a/iosApp/Source/App/ContentView.swift b/iosApp/Source/App/ContentView.swift index 15b56c3c..bde93ad2 100644 --- a/iosApp/Source/App/ContentView.swift +++ b/iosApp/Source/App/ContentView.swift @@ -4,9 +4,14 @@ import KMPNativeCoroutinesAsync struct ContentView: View { - @EnvironmentObject var appState: AppState - @EnvironmentObject var browserSelector: BrowserSelector - @StateObject var homeViewModel = KotlinDependencies.shared.getHomeViewModel() + @EnvironmentObject + var appState: AppState + + @EnvironmentObject + var browserSelector: BrowserSelector + + @StateObject + var homeViewModel = KotlinDependencies.shared.getHomeViewModel() var body: some View { ZStack { @@ -26,9 +31,14 @@ struct ContentView: View { private struct HomeContainer: View { - @EnvironmentObject var appState: AppState - @Environment(\.horizontalSizeClass) private var horizontalSizeClass - @StateObject var homeViewModel = KotlinDependencies.shared.getHomeViewModel() + @EnvironmentObject + var appState: AppState + + @Environment(\.horizontalSizeClass) + private var horizontalSizeClass + + @StateObject + var homeViewModel = KotlinDependencies.shared.getHomeViewModel() @State private var selectedDrawerItem: DrawerItem? = DrawerItem.Timeline() diff --git a/iosApp/Source/App/FeedFlowApp.swift b/iosApp/Source/App/FeedFlowApp.swift index ec1a5153..469f5b7e 100644 --- a/iosApp/Source/App/FeedFlowApp.swift +++ b/iosApp/Source/App/FeedFlowApp.swift @@ -5,9 +5,14 @@ import FirebaseCore @main struct FeedFlowApp: App { - @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate - @StateObject var appState: AppState = AppState() - @StateObject var browserSelector: BrowserSelector = BrowserSelector() + @UIApplicationDelegateAdaptor(AppDelegate.self) + private var delegate + + @StateObject + private var appState: AppState = AppState() + + @StateObject + private var browserSelector: BrowserSelector = BrowserSelector() init() { #if !DEBUG diff --git a/iosApp/Source/App/RegularView.swift b/iosApp/Source/App/RegularView.swift index 22d54458..268a5b72 100644 --- a/iosApp/Source/App/RegularView.swift +++ b/iosApp/Source/App/RegularView.swift @@ -17,11 +17,11 @@ struct RegularView: View { @State var navDrawerState: NavDrawerState = NavDrawerState(timeline: [], categories: [], feedSourcesByCategory: [:]) - var drawerItems: [DrawerItem] = [] @Binding var selectedDrawerItem: DrawerItem? + var drawerItems: [DrawerItem] = [] let homeViewModel: HomeViewModel var body: some View { diff --git a/iosApp/Source/Home/Components/FeedListView.swift b/iosApp/Source/Home/Components/FeedListView.swift index 2567c71f..ead0fab3 100644 --- a/iosApp/Source/Home/Components/FeedListView.swift +++ b/iosApp/Source/Home/Components/FeedListView.swift @@ -12,9 +12,14 @@ import shared import OrderedCollections struct FeedListView: View { - @Environment(\.openURL) var openURL - @EnvironmentObject var indexHolder: HomeListIndexHolder - @EnvironmentObject var browserSelector: BrowserSelector + @Environment(\.openURL) + private var openURL + + @EnvironmentObject + private var indexHolder: HomeListIndexHolder + + @EnvironmentObject + private var browserSelector: BrowserSelector var loadingState: FeedUpdateStatus? var feedState: [FeedItem] diff --git a/iosApp/Source/Home/HomeScreen.swift b/iosApp/Source/Home/HomeScreen.swift index 9a5a4838..6dc881f2 100644 --- a/iosApp/Source/Home/HomeScreen.swift +++ b/iosApp/Source/Home/HomeScreen.swift @@ -11,19 +11,35 @@ import KMPNativeCoroutinesAsync import shared import OrderedCollections +// swiftlint:disable file_length struct HomeScreen: View { - @EnvironmentObject var appState: AppState - @EnvironmentObject var browserSelector: BrowserSelector - @StateObject var indexHolder = HomeListIndexHolder() + @EnvironmentObject + private var appState: AppState - @Environment(\.scenePhase) var scenePhase + @EnvironmentObject + private var browserSelector: BrowserSelector - @State var loadingState: FeedUpdateStatus? - @State var feedState: [FeedItem] = [] - @State var showLoading: Bool = true - @State var sheetToShow: HomeSheetToShow? - @State var unreadCount = 0 + @StateObject + private var indexHolder = HomeListIndexHolder() + + @Environment(\.scenePhase) + private var scenePhase + + @State + var loadingState: FeedUpdateStatus? + + @State + var feedState: [FeedItem] = [] + + @State + var showLoading: Bool = true + + @State + private var sheetToShow: HomeSheetToShow? + + @State + var unreadCount = 0 let homeViewModel: HomeViewModel @@ -121,21 +137,38 @@ struct HomeScreen: View { struct HomeContent: View { - @EnvironmentObject var indexHolder: HomeListIndexHolder - @EnvironmentObject var browserSelector: BrowserSelector - @EnvironmentObject var appState: AppState + @EnvironmentObject + private var indexHolder: HomeListIndexHolder + + @EnvironmentObject + private var browserSelector: BrowserSelector + + @EnvironmentObject + private var appState: AppState + + @Environment(\.horizontalSizeClass) + private var horizontalSizeClass + + @Environment(\.dismiss) + private var dismiss + + @Environment(\.openURL) + private var openURL + + @Binding + var loadingState: FeedUpdateStatus? - @Environment(\.horizontalSizeClass) private var horizontalSizeClass - @Environment(\.dismiss) private var dismiss + @Binding + var feedState: [FeedItem] - @Environment(\.openURL) private var openURL + @Binding + var showLoading: Bool - @Binding var loadingState: FeedUpdateStatus? - @Binding var feedState: [FeedItem] - @Binding var showLoading: Bool - @Binding var unreadCount: Int + @Binding + var unreadCount: Int - @Binding var sheetToShow: HomeSheetToShow? + @Binding + var sheetToShow: HomeSheetToShow? let onRefresh: () -> Void let updateReadStatus: (Int32) -> Void @@ -390,3 +423,4 @@ struct HomeContentSettings_Previews: PreviewProvider { .environmentObject(BrowserSelector()) } } +// swiftlint:enable file_length diff --git a/iosApp/Source/Settings/About/AboutScreen.swift b/iosApp/Source/Settings/About/AboutScreen.swift index 90cc3f3d..09585f01 100644 --- a/iosApp/Source/Settings/About/AboutScreen.swift +++ b/iosApp/Source/Settings/About/AboutScreen.swift @@ -12,9 +12,14 @@ import shared struct AboutScreen: View { - @Environment(\.openURL) var openURL - @State private var showLicensesSheet = false - @State private var licensesContent: String = "" + @Environment(\.openURL) + private var openURL + + @State + private var showLicensesSheet = false + + @State + private var licensesContent: String = "" var body: some View { diff --git a/iosApp/Source/Settings/About/LicensesScreen.swift b/iosApp/Source/Settings/About/LicensesScreen.swift index c8a02b9a..e21aac51 100644 --- a/iosApp/Source/Settings/About/LicensesScreen.swift +++ b/iosApp/Source/Settings/About/LicensesScreen.swift @@ -11,7 +11,9 @@ import shared struct LicensesScreen: View { - @Environment(\.presentationMode) var presentationMode + @Environment(\.presentationMode) + private var presentationMode + let htmlContent: String var body: some View { diff --git a/iosApp/Source/Settings/AddFeed/AddFeedScreen.swift b/iosApp/Source/Settings/AddFeed/AddFeedScreen.swift index 2511d5c8..a30a60d6 100644 --- a/iosApp/Source/Settings/AddFeed/AddFeedScreen.swift +++ b/iosApp/Source/Settings/AddFeed/AddFeedScreen.swift @@ -12,18 +12,35 @@ import KMPNativeCoroutinesAsync struct AddFeedScreen: View { - @EnvironmentObject var appState: AppState - @Environment(\.presentationMode) var presentationMode - - @State private var feedURL = "" - @State private var showError = false - @State private var errorMessage = "" - @State private var isCategoriesSelectorExpanded = false - @State private var headerMessage = localizer.no_category_selected_header.localized - @State private var categoryItems: [CategoriesState.CategoryItem] = [] - @State private var newCategoryName = "" - - @StateObject var addFeedViewModel: AddFeedViewModel = KotlinDependencies.shared.getAddFeedViewModel() + @EnvironmentObject + private var appState: AppState + + @Environment(\.presentationMode) + private var presentationMode + + @State + private var feedURL = "" + + @State + private var showError = false + + @State + private var errorMessage = "" + + @State + private var isCategoriesSelectorExpanded = false + + @State + private var headerMessage = localizer.no_category_selected_header.localized + + @State + private var categoryItems: [CategoriesState.CategoryItem] = [] + + @State + private var newCategoryName = "" + + @StateObject + private var addFeedViewModel: AddFeedViewModel = KotlinDependencies.shared.getAddFeedViewModel() var body: some View { VStack(alignment: .leading) { diff --git a/iosApp/Source/Settings/Feeds/FeedSourceListScreen.swift b/iosApp/Source/Settings/Feeds/FeedSourceListScreen.swift index d430ee1e..c867a8c1 100644 --- a/iosApp/Source/Settings/Feeds/FeedSourceListScreen.swift +++ b/iosApp/Source/Settings/Feeds/FeedSourceListScreen.swift @@ -13,10 +13,14 @@ import NukeUI struct FeedSourceListScreen: View { - @EnvironmentObject var appState: AppState - @StateObject var feedSourceViewModel = KotlinDependencies.shared.getFeedSourceListViewModel() + @EnvironmentObject + private var appState: AppState - @State var feedState: [FeedSourceState] = [] + @StateObject + private var feedSourceViewModel = KotlinDependencies.shared.getFeedSourceListViewModel() + + @State + private var feedState: [FeedSourceState] = [] var body: some View { FeedSourceListContent( @@ -40,10 +44,14 @@ struct FeedSourceListScreen: View { private struct FeedSourceListContent: View { - @Environment(\.presentationMode) var presentationMode + @Environment(\.presentationMode) + private var presentationMode + + @State + private var showAddFeed = false - @State private var showAddFeed = false - @Binding var feedState: [FeedSourceState] + @Binding + var feedState: [FeedSourceState] let deleteFeedSource: (FeedSource) -> Void diff --git a/iosApp/Source/Settings/ImportExport/ImportExportScreen.swift b/iosApp/Source/Settings/ImportExport/ImportExportScreen.swift index 66632872..e4adc7eb 100644 --- a/iosApp/Source/Settings/ImportExport/ImportExportScreen.swift +++ b/iosApp/Source/Settings/ImportExport/ImportExportScreen.swift @@ -12,12 +12,17 @@ import KMPNativeCoroutinesAsync struct ImportExportScreen: View { - @EnvironmentObject var appState: AppState - @StateObject var viewModel = KotlinDependencies.shared.getImportExportViewModel() + @EnvironmentObject + private var appState: AppState - @State var feedImportExportState: FeedImportExportState = FeedImportExportState.Idle() + @StateObject + private var viewModel = KotlinDependencies.shared.getImportExportViewModel() - @State var sheetToShow: ImportExportSheetToShow? + @State + private var feedImportExportState: FeedImportExportState = FeedImportExportState.Idle() + + @State + private var sheetToShow: ImportExportSheetToShow? var body: some View { ImportExportContent( @@ -85,10 +90,14 @@ struct ImportExportScreen: View { struct ImportExportContent: View { - @Environment(\.presentationMode) var presentationMode + @Environment(\.presentationMode) + var presentationMode + + @Binding + var feedImportExportState: FeedImportExportState - @Binding var feedImportExportState: FeedImportExportState - @Binding var sheetToShow: ImportExportSheetToShow? + @Binding + var sheetToShow: ImportExportSheetToShow? let onExportClick: () -> Void let onRetryClick: () -> Void diff --git a/iosApp/Source/UI/Components/Snackbar.swift b/iosApp/Source/UI/Components/Snackbar.swift index 72f5e063..d430acc1 100644 --- a/iosApp/Source/UI/Components/Snackbar.swift +++ b/iosApp/Source/UI/Components/Snackbar.swift @@ -11,10 +11,14 @@ import Collections struct Snackbar: View { - @Binding var messageQueue: Deque - @State private var snackbarData: SnackbarData = SnackbarData() + @Binding + var messageQueue: Deque - @State private var showBanner: Bool = false + @State + private var snackbarData: SnackbarData = SnackbarData() + + @State + private var showBanner: Bool = false var body: some View {