From 0cfecd41f7f258814a82b9229606e498a4bbdb95 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Fri, 3 May 2024 14:04:34 +0400 Subject: [PATCH] reverse chat list wip --- .../ios/Shared/Views/ChatList/ChatsView.swift | 3 ++- apps/ios/Shared/Views/Home/HomeView.swift | 25 ++++++++++++------- .../UserSettings/AppearanceSettings.swift | 4 +++ .../Views/UserSettings/SettingsView.swift | 2 ++ 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/apps/ios/Shared/Views/ChatList/ChatsView.swift b/apps/ios/Shared/Views/ChatList/ChatsView.swift index ed36f49e3b..82d19c367d 100644 --- a/apps/ios/Shared/Views/ChatList/ChatsView.swift +++ b/apps/ios/Shared/Views/ChatList/ChatsView.swift @@ -23,6 +23,7 @@ struct ChatsView: View { @State private var newChatMenuOption: NewChatMenuOption? = nil // TODO remove? @AppStorage(DEFAULT_SHOW_UNREAD_AND_FAVORITES) private var showUnreadAndFavorites = false + @AppStorage(DEFAULT_CHAT_LIST_REVERSED) private var chatListReversed = false var body: some View { if #available(iOS 16.0, *) { @@ -65,7 +66,7 @@ struct ChatsView: View { } @ViewBuilder private var chatList: some View { - let cs = filteredChats() + let cs = chatListReversed ? filteredChats().reversed() : filteredChats() ZStack { VStack { List { diff --git a/apps/ios/Shared/Views/Home/HomeView.swift b/apps/ios/Shared/Views/Home/HomeView.swift index 854ac2663f..16e3b53b13 100644 --- a/apps/ios/Shared/Views/Home/HomeView.swift +++ b/apps/ios/Shared/Views/Home/HomeView.swift @@ -51,16 +51,13 @@ struct HomeView: View { switch homeTab { case .settings: settingsView() case .contacts: contactsView() - case .chats: - chatsView() - .padding(.top, searchInBottom ? 10 : 40) + case .chats: chatsView() case .newChat: newChatView() } VStack { topToolbar() .background(BlurView(style: .systemMaterial).ignoresSafeArea()) - .frame(height: 40) Spacer() } @@ -273,11 +270,21 @@ struct HomeView: View { private func chatsView() -> some View { // TODO onboarding buttons (remove?) - ChatsView( - searchText: $searchText, - searchShowingSimplexLink: $searchShowingSimplexLink, - searchChatFilteredBySimplexLink: $searchChatFilteredBySimplexLink - ) + // TODO for reversed chat list start at bottom + VStack { + Spacer() + .frame(height: searchInBottom ? 0 : 45) // account for topToolbar height + + ChatsView( + searchText: $searchText, + searchShowingSimplexLink: $searchShowingSimplexLink, + searchChatFilteredBySimplexLink: $searchChatFilteredBySimplexLink + ) + + Spacer() + .frame(height: searchInBottom ? 90 : 50) // account for bottomToolbar height + } + .padding(.top, 5) } @ViewBuilder private func newChatView() -> some View { diff --git a/apps/ios/Shared/Views/UserSettings/AppearanceSettings.swift b/apps/ios/Shared/Views/UserSettings/AppearanceSettings.swift index fbe8b37156..2bf686d0a8 100644 --- a/apps/ios/Shared/Views/UserSettings/AppearanceSettings.swift +++ b/apps/ios/Shared/Views/UserSettings/AppearanceSettings.swift @@ -26,6 +26,7 @@ struct AppearanceSettings: View { @State private var uiTintColor = getUIAccentColorDefault() @AppStorage(DEFAULT_PROFILE_IMAGE_CORNER_RADIUS) private var profileImageCornerRadius = defaultProfileImageCorner @AppStorage(DEFAULT_SEARCH_IN_BOTTOM) private var searchInBottom = false + @AppStorage(DEFAULT_CHAT_LIST_REVERSED) private var chatListReversed = false var body: some View { VStack{ @@ -44,6 +45,9 @@ struct AppearanceSettings: View { settingsRow("magnifyingglass") { Toggle("Search in bottom", isOn: $searchInBottom) } + settingsRow("message") { + Toggle("Reverse chat list", isOn: $chatListReversed) + } } Section("App icon") { diff --git a/apps/ios/Shared/Views/UserSettings/SettingsView.swift b/apps/ios/Shared/Views/UserSettings/SettingsView.swift index 80612be48c..cf08903828 100644 --- a/apps/ios/Shared/Views/UserSettings/SettingsView.swift +++ b/apps/ios/Shared/Views/UserSettings/SettingsView.swift @@ -47,6 +47,7 @@ let DEFAULT_ACCENT_COLOR_BLUE = "accentColorBlue" let DEFAULT_USER_INTERFACE_STYLE = "userInterfaceStyle" let DEFAULT_PROFILE_IMAGE_CORNER_RADIUS = "profileImageCornerRadius" let DEFAULT_SEARCH_IN_BOTTOM = "searchInBottom" +let DEFAULT_CHAT_LIST_REVERSED = "chatListReversed" let DEFAULT_CONNECT_VIA_LINK_TAB = "connectViaLinkTab" let DEFAULT_LIVE_MESSAGE_ALERT_SHOWN = "liveMessageAlertShown" let DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE = "showHiddenProfilesNotice" @@ -91,6 +92,7 @@ let appDefaults: [String: Any] = [ DEFAULT_USER_INTERFACE_STYLE: 0, DEFAULT_PROFILE_IMAGE_CORNER_RADIUS: defaultProfileImageCorner, DEFAULT_SEARCH_IN_BOTTOM: false, + DEFAULT_CHAT_LIST_REVERSED: false, DEFAULT_CONNECT_VIA_LINK_TAB: ConnectViaLinkTab.scan.rawValue, DEFAULT_LIVE_MESSAGE_ALERT_SHOWN: false, DEFAULT_SHOW_HIDDEN_PROFILES_NOTICE: true,