Revert "remove all scaling effects for flipped UI"

This reverts commit 9170a313e4.
This commit is contained in:
Evgeny Poberezkin
2025-10-23 18:47:10 +01:00
parent 9170a313e4
commit e8849ecc2a
4 changed files with 51 additions and 55 deletions

View File

@@ -45,8 +45,7 @@ struct ChatListNavLink: View {
@EnvironmentObject var theme: AppTheme
@EnvironmentObject var chatTagsModel: ChatTagsModel
@Environment(\.dynamicTypeSize) private var userFont: DynamicTypeSize
// @AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = true
@State private var oneHandUI = false
@AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = false
@ObservedObject var chat: Chat
@Binding var parentSheet: SomeSheet<AnyView>?
@State private var showContactRequestDialog = false

View File

@@ -154,8 +154,7 @@ struct ChatListView: View {
// iOS 15 is required it to show/hide toolbar while chat is hidden/visible
@State private var viewOnScreen = true
// @AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = true
@State private var oneHandUI = false
@AppStorage(GROUP_DEFAULT_ONE_HAND_UI, store: groupDefaults) private var oneHandUI = true
@AppStorage(DEFAULT_ONE_HAND_UI_CARD_SHOWN) private var oneHandUICardShown = false
@AppStorage(DEFAULT_ADDRESS_CREATION_CARD_SHOWN) private var addressCreationCardShown = false
@AppStorage(DEFAULT_TOOLBAR_MATERIAL) private var toolbarMaterial = ToolbarMaterial.defaultMaterial
@@ -169,8 +168,7 @@ struct ChatListView: View {
}
private var viewBody: some View {
ZStack(alignment: .topLeading) {
// ZStack(alignment: oneHandUI ? .bottomLeading : .topLeading) {
ZStack(alignment: oneHandUI ? .bottomLeading : .topLeading) {
NavStackCompat(
isActive: Binding(
get: { chatModel.chatId != nil },
@@ -207,10 +205,9 @@ struct ChatListView: View {
chatList
.background(theme.colors.background)
.navigationBarTitleDisplayMode(.inline)
// .navigationBarHidden(searchMode || oneHandUI)
.navigationBarHidden(searchMode)
.navigationBarHidden(searchMode || oneHandUI)
}
// .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.onAppear {
if #unavailable(iOS 16.0), !viewOnScreen {
viewOnScreen = true
@@ -238,14 +235,14 @@ struct ChatListView: View {
secondaryButton: .cancel()
))
}
// .safeAreaInset(edge: .top) {
// if oneHandUI { Divider().background(tm) }
// }
// .safeAreaInset(edge: .bottom) {
// if oneHandUI {
// Divider().padding(.bottom, Self.hasHomeIndicator ? 0 : 8).background(tm)
// }
// }
.safeAreaInset(edge: .top) {
if oneHandUI { Divider().background(tm) }
}
.safeAreaInset(edge: .bottom) {
if oneHandUI {
Divider().padding(.bottom, Self.hasHomeIndicator ? 0 : 8).background(tm)
}
}
.sheet(item: $sheet) { sheet in
if #available(iOS 16.0, *) {
sheet.content.presentationDetents([.fraction(sheet.fraction)])
@@ -264,22 +261,22 @@ struct ChatListView: View {
@ViewBuilder func withToolbar(_ material: Material, content: () -> some View) -> some View {
if #available(iOS 16.0, *) {
// if oneHandUI {
// content()
// .toolbarBackground(.hidden, for: .bottomBar)
// .toolbar { bottomToolbar }
// } else {
if oneHandUI {
content()
.toolbarBackground(.hidden, for: .bottomBar)
.toolbar { bottomToolbar }
} else {
content()
.toolbarBackground(.automatic, for: .navigationBar)
.toolbarBackground(material)
.toolbar { topToolbar }
// }
}
} else {
// if oneHandUI {
// content().toolbar { bottomToolbarGroup() }
// } else {
if oneHandUI {
content().toolbar { bottomToolbarGroup() }
} else {
content().toolbar { topToolbar }
// }
}
}
}
@@ -354,17 +351,17 @@ struct ChatListView: View {
searchChatFilteredBySimplexLink: $searchChatFilteredBySimplexLink,
parentSheet: $sheet
)
// .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.listRowSeparator(.hidden)
.listRowBackground(Color.clear)
.frame(maxWidth: .infinity)
// .padding(.top, oneHandUI ? 8 : 0)
.padding(.top, oneHandUI ? 8 : 0)
.id("searchBar")
}
if #available(iOS 16.0, *) {
ForEach(cs, id: \.viewId) { chat in
ChatListNavLink(chat: chat, parentSheet: $sheet)
// .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.padding(.trailing, -16)
.disabled(chatModel.chatRunning != true || chatModel.deletedChats.contains(chat.chatInfo.id))
.listRowBackground(Color.clear)
@@ -373,7 +370,7 @@ struct ChatListView: View {
} else {
ForEach(cs, id: \.viewId) { chat in
ChatListNavLink(chat: chat, parentSheet: $sheet)
// .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.listRowSeparator(.hidden)
.listRowInsets(EdgeInsets())
.background { theme.colors.background } // Hides default list selection colour
@@ -383,14 +380,14 @@ struct ChatListView: View {
if !oneHandUICardShown {
OneHandUICard()
.padding(.vertical, 6)
// .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.listRowSeparator(.hidden)
.listRowBackground(Color.clear)
}
if !addressCreationCardShown {
AddressCreationCard()
.padding(.vertical, 6)
// .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.listRowSeparator(.hidden)
.listRowBackground(Color.clear)
}
@@ -415,7 +412,7 @@ struct ChatListView: View {
}
if cs.isEmpty && !chatModel.chats.isEmpty {
noChatsView()
// .scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.scaleEffect(x: 1, y: oneHandUI ? -1 : 1, anchor: .center)
.foregroundColor(.secondary)
}
}

View File

@@ -69,18 +69,18 @@ struct NewChatSheet: View {
}.onDisappear {
ConnectProgressManager.shared.cancelConnectProgress()
}
// if #available(iOS 16.0, *), oneHandUI {
// let sheetHeight: CGFloat = showArchive ? 575 : 500
// v.presentationDetents(
// allowSmallSheet ? [.height(sheetHeight), .large] : [.large],
// selection: Binding(
// get: { isLargeSheet || !allowSmallSheet ? .large : .height(sheetHeight) },
// set: { isLargeSheet = $0 == .large }
// )
// )
// } else {
if #available(iOS 16.0, *), oneHandUI {
let sheetHeight: CGFloat = showArchive ? 575 : 500
v.presentationDetents(
allowSmallSheet ? [.height(sheetHeight), .large] : [.large],
selection: Binding(
get: { isLargeSheet || !allowSmallSheet ? .large : .height(sheetHeight) },
set: { isLargeSheet = $0 == .large }
)
)
} else {
v
// }
}
}
private func viewBody(_ showArchive: Bool) -> some View {

View File

@@ -2003,7 +2003,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
@@ -2053,7 +2053,7 @@
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
@@ -2095,7 +2095,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2115,7 +2115,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
@@ -2140,7 +2140,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
GCC_OPTIMIZATION_LEVEL = s;
@@ -2177,7 +2177,7 @@
CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_BITCODE = NO;
ENABLE_CODE_COVERAGE = NO;
@@ -2214,7 +2214,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2265,7 +2265,7 @@
CLANG_TIDY_BUGPRONE_REDUNDANT_BRANCH_CONDITION = YES;
CLANG_TIDY_MISC_REDUNDANT_EXPRESSION = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -2316,7 +2316,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
@@ -2350,7 +2350,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CODE_SIGN_ENTITLEMENTS = "SimpleX SE/SimpleX SE.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 308;
CURRENT_PROJECT_VERSION = 307;
DEVELOPMENT_TEAM = 5NN7GUYB6T;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;