From 65563f84fc6d077c319dde392bfa2281d4e84ab6 Mon Sep 17 00:00:00 2001 From: Saint Date: Tue, 28 Feb 2023 17:03:58 -0500 Subject: [PATCH] sort of workoing --- RibbonRequest.swift | 10 +- SelectedRibbon.swift | 51 +++++ SelectedRibbonRequest.swift | 68 ++++++ gloss.xcodeproj/project.pbxproj | 8 + .../UserInterfaceState.xcuserstate | Bin 114114 -> 115114 bytes gloss/AppDatabase.swift | 26 ++- gloss/ContentView.swift | 216 +++++++++++++++--- gloss/Ribbon.swift | 41 +--- 8 files changed, 343 insertions(+), 77 deletions(-) create mode 100644 SelectedRibbon.swift create mode 100644 SelectedRibbonRequest.swift diff --git a/RibbonRequest.swift b/RibbonRequest.swift index 256efba..d07202e 100644 --- a/RibbonRequest.swift +++ b/RibbonRequest.swift @@ -15,6 +15,8 @@ import GRDBQuery /// } /// } + +var idColumn = Column("id") struct RibbonRequest: Queryable { // enum Ordering { // case byScore @@ -23,7 +25,7 @@ struct RibbonRequest: Queryable { /// The ordering used by the player request. // var ordering: Ordering - // var book: String + var id: Int64! // MARK: - Queryable Implementation @@ -47,7 +49,11 @@ struct RibbonRequest: Queryable { // This method is not required by Queryable, but it makes it easier func fetchValue(_ db: Database) throws -> [Ribbon] { - return try Ribbon.fetchAll(db) + if (id == nil) { + return try Ribbon.fetchAll(db) + } else { + return try Ribbon.filter(idColumn == id).fetchAll(db) + } // if book == "" { // return try Ribbon.filter(bookColumn == Ribbon.randomBook()).fetchAll(db) diff --git a/SelectedRibbon.swift b/SelectedRibbon.swift new file mode 100644 index 0000000..67e1a65 --- /dev/null +++ b/SelectedRibbon.swift @@ -0,0 +1,51 @@ +// +// Ribbon.swift +// gloss +// +// Created by Saint on 2/24/23. +// + +import GRDB +/// The Line struct. +/// +/// Identifiable conformance supports SwiftUI list animations, and type-safe +/// GRDB primary key methods. +/// Equatable conformance supports tests. +struct SelectedRibbon: Identifiable, Equatable { + /// The player id. + /// + /// Int64 is the recommended type for auto-incremented database ids. + /// Use nil for players that are not inserted yet in the database. + var id: Int64? + var ribbonId: Int64 +} + +extension SelectedRibbon { +} + +// MARK: - Persistence + +/// Make Line a Codable Record. +/// +/// See +extension SelectedRibbon: Codable, FetchableRecord, MutablePersistableRecord { + // Define database columns from CodingKeys + fileprivate enum Columns { + static let id = Column(CodingKeys.id) + static let ribbonId = Column(CodingKeys.ribbonId) + } + + /// Updates a player id after it has been inserted in the database. + mutating func didInsert(_ inserted: InsertionSuccess) { + id = inserted.rowID + } +} + +// MARK: - Line Database Requests + +/// Define some player requests used by the application. +/// +/// See +/// See +extension DerivableRequest { +} diff --git a/SelectedRibbonRequest.swift b/SelectedRibbonRequest.swift new file mode 100644 index 0000000..90a3ce9 --- /dev/null +++ b/SelectedRibbonRequest.swift @@ -0,0 +1,68 @@ +import Combine +import GRDB +import GRDBQuery + +/// A player request can be used with the `@Query` property wrapper in order to +/// feed a view with a list of players. +/// +/// For example: +/// +/// struct MyView: View { +/// @Query(SelectedRibbonRequest(ordering: .byName)) private var players: [SelectedRibbon] +/// +/// var body: some View { +/// List(players) { player in ... ) +/// } +/// } + +struct SelectedRibbonRequest: Queryable { + // enum Ordering { + // case byScore + // case byName + // } + + /// The ordering used by the player request. + // var ordering: Ordering + var id: Int64! + + // MARK: - Queryable Implementation + + static var defaultValue: [SelectedRibbon] { [] } + + func publisher(in appDatabase: AppDatabase) -> AnyPublisher<[SelectedRibbon], Error> { + // Build the publisher from the general-purpose read-only access + // granted by `appDatabase.reader`. + // Some apps will prefer to call a dedicated method of `appDatabase`. + ValueObservation + .tracking(fetchValue(_:)) + .publisher( + in: appDatabase.reader, + // The `.immediate` scheduling feeds the view right on + // subscription, and avoids an undesired animation when the + // application starts. + scheduling: .immediate) + .eraseToAnyPublisher() + } + + // This method is not required by Queryable, but it makes it easier + func fetchValue(_ db: Database) throws -> [SelectedRibbon] { + if (id == nil) { + return try SelectedRibbon.fetchAll(db) + } else { + return try SelectedRibbon.filter(idColumn == id).fetchAll(db) + } + + // if book == "" { + // return try SelectedRibbon.filter(bookColumn == SelectedRibbon.randomBook()).fetchAll(db) + // } else { + // return try SelectedRibbon.filter(bookColumn == book).fetchAll(db) + // } + // switch ordering { + // case .byScore: + // return try SelectedRibbon.all().fetchAll(db) + // case .byName: + // // return try SelectedRibbon.all().orderedByName().fetchAll(db) + // return try SelectedRibbon.all().fetchAll(db) + // } + } +} diff --git a/gloss.xcodeproj/project.pbxproj b/gloss.xcodeproj/project.pbxproj index 35b2bd0..c6917ce 100644 --- a/gloss.xcodeproj/project.pbxproj +++ b/gloss.xcodeproj/project.pbxproj @@ -27,6 +27,8 @@ 85942EE729AD083600307621 /* Introspect in Frameworks */ = {isa = PBXBuildFile; productRef = 85942EE629AD083600307621 /* Introspect */; }; 85942EE929AD51A100307621 /* Ribbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE829AD51A100307621 /* Ribbon.swift */; }; 85942EEB29AD55A400307621 /* RibbonRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEA29AD55A400307621 /* RibbonRequest.swift */; }; + 85942EED29AEA04200307621 /* SelectedRibbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEC29AEA04200307621 /* SelectedRibbon.swift */; }; + 85942EEF29AEA18300307621 /* SelectedRibbonRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEE29AEA18300307621 /* SelectedRibbonRequest.swift */; }; 85F01DF82978787800F317B4 /* AveriaSerifLibre-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DF72978787800F317B4 /* AveriaSerifLibre-Regular.ttf */; }; 85F01DFB2978790400F317B4 /* xe-Dogma-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DFA2978790400F317B4 /* xe-Dogma-Bold.ttf */; }; /* End PBXBuildFile section */ @@ -50,6 +52,8 @@ 85942EE329ACF54A00307621 /* ScrollableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollableView.swift; sourceTree = ""; }; 85942EE829AD51A100307621 /* Ribbon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ribbon.swift; sourceTree = ""; }; 85942EEA29AD55A400307621 /* RibbonRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RibbonRequest.swift; sourceTree = ""; }; + 85942EEC29AEA04200307621 /* SelectedRibbon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectedRibbon.swift; sourceTree = ""; }; + 85942EEE29AEA18300307621 /* SelectedRibbonRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectedRibbonRequest.swift; sourceTree = ""; }; 85F01DF72978787800F317B4 /* AveriaSerifLibre-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "AveriaSerifLibre-Regular.ttf"; sourceTree = ""; }; 85F01DFA2978790400F317B4 /* xe-Dogma-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "xe-Dogma-Bold.ttf"; sourceTree = ""; }; 85F01DFC29787B3500F317B4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; @@ -83,6 +87,8 @@ 85431A7C2905F4F500EE0760 = { isa = PBXGroup; children = ( + 85942EEC29AEA04200307621 /* SelectedRibbon.swift */, + 85942EEE29AEA18300307621 /* SelectedRibbonRequest.swift */, 85942EEA29AD55A400307621 /* RibbonRequest.swift */, 85942EE329ACF54A00307621 /* ScrollableView.swift */, 8590D96A29A8374B001EF84F /* json */, @@ -251,7 +257,9 @@ 8590D96929A18A6D001EF84F /* LineRequest.swift in Sources */, 8590D96E29A927CF001EF84F /* Seg.swift in Sources */, 852774C129A150B100458CA7 /* Line.swift in Sources */, + 85942EEF29AEA18300307621 /* SelectedRibbonRequest.swift in Sources */, 8590D96C29A92146001EF84F /* JsonImport.swift in Sources */, + 85942EED29AEA04200307621 /* SelectedRibbon.swift in Sources */, 85431A892905F4F500EE0760 /* glossApp.swift in Sources */, 85431A9C2905F5D800EE0760 /* SwiftUIView.swift in Sources */, 85942EE429ACF54A00307621 /* ScrollableView.swift in Sources */, diff --git a/gloss.xcodeproj/project.xcworkspace/xcuserdata/saint.xcuserdatad/UserInterfaceState.xcuserstate b/gloss.xcodeproj/project.xcworkspace/xcuserdata/saint.xcuserdatad/UserInterfaceState.xcuserstate index e2ec59e5793abb9fb8b9bf5947565965203fffcd..f6af036e3f1014e88c871e81d25e99973d63ce0b 100644 GIT binary patch literal 115114 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 z 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 literal 114114 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¬C>ScU!hwc3AGQ+)H`j!4%4;Qph9l>6Fi) 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 I(_ filename: String) -> T { extension AppDatabase { + func saveRibbon(_ ribbon: inout Ribbon) async throws { + // if ribbon.name.isEmpty { + // throw ValidationError.missingName + // } + ribbon = try await dbWriter.write { [ribbon] db in + try ribbon.saved(db) + } + } + + func saveSelectedRibbon(_ selectedRibbon: inout SelectedRibbon) async throws { + // if selectedRibbon.name.isEmpty { + // throw ValidationError.missingName + // } + selectedRibbon = try await dbWriter.write { [selectedRibbon] db in + try selectedRibbon.saved(db) + } + } + /// Create random Lines if the database is empty. func createRandomLinesIfEmpty() throws { @@ -103,6 +126,7 @@ extension AppDatabase { // try createRandomLines(db) _ = try Ribbon(id: nil, book: "bible.john", scrollOffset: 0).inserted(db) _ = try Ribbon(id: nil, book: "bible.john", scrollOffset: 2000).inserted(db) + _ = try SelectedRibbon(id: 1, ribbonId: 1).inserted(db) } } } @@ -135,7 +159,7 @@ extension AppDatabase { // MARK: - Database Access: Reads -// This demo app does not provide any specific reading method, and instead +// This demo app does not provide any specific reading method, and insteadKK // gives an unrestricted read-only access to the rest of the application. // In your app, you are free to choose another path, and define focused // reading methods. diff --git a/gloss/ContentView.swift b/gloss/ContentView.swift index f4fc5f9..cbe3134 100644 --- a/gloss/ContentView.swift +++ b/gloss/ContentView.swift @@ -14,6 +14,25 @@ let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "network // var curBook = "John" +extension UserDefaults { + + public func optionalInt(forKey defaultName: String) -> Int? { + let defaults = self + if let value = defaults.value(forKey: defaultName) { + return value as? Int + } + return nil + } + + public func optionalBool(forKey defaultName: String) -> Bool? { + let defaults = self + if let value = defaults.value(forKey: defaultName) { + return value as? Bool + } + return nil + } +} + extension UINavigationController { override open func viewDidLoad() { super.viewDidLoad() @@ -46,23 +65,132 @@ struct BlueButtonStyle: ButtonStyle { } } - -struct SwitchButton : View { - var ribbon: Ribbon - @Binding var selectedRibbon : Ribbon? - @Binding var book : String - @Binding var scrollOffset : CGFloat +struct PositionObservingView: View { + var coordinateSpace: CoordinateSpace +@Binding var position: CGPoint + @ViewBuilder var content: () -> Content var body: some View { - Button("meow") { - book = ribbon.book - selectedRibbon = ribbon - Print(ribbon.scrollOffset) - Print(scrollOffset) - scrollOffset = CGFloat(ribbon.scrollOffset) - //Print("hellosdf dddd") + content() + .background(GeometryReader { geometry in + Color.clear.preference( + key: PreferenceKey.self, + value: geometry.frame(in: coordinateSpace).origin +) + }) + .onPreferenceChange(PreferenceKey.self) { position in + self.position = position + // Print(self.position) + } + } +} + + +private extension PositionObservingView { + struct PreferenceKey: SwiftUI.PreferenceKey { + static var defaultValue: CGPoint { .zero } + + static func reduce(value: inout CGPoint, nextValue: () -> CGPoint) { + // No-op } - .buttonStyle(BlueButtonStyle()) + } +} + +struct OffsetObservingScrollView: View { + var axes: Axis.Set = [.vertical] + var showsIndicators = true + @Binding var offset: CGPoint + @ViewBuilder var content: () -> Content + + // The name of our coordinate space doesn't have to be + // stable between view updates (it just needs to be + // consistent within this view), so we'll simply use a + // plain UUID for it: + private let coordinateSpaceName = UUID() + + var body: some View { + ScrollView(axes, showsIndicators: showsIndicators) { + PositionObservingView( + coordinateSpace: .named(coordinateSpaceName), + position: Binding( + get: { offset }, + set: { newOffset in + offset = CGPoint( + x: -newOffset.x, + y: -newOffset.y +) + } + ), + content: content + ) + } + .coordinateSpace(name: coordinateSpaceName) + } +} + + +struct SwitchButton : View { + @State var ribbon: Ribbon + // @State var selectedRibbon: SelectedRibbon + @Binding var book : String + @Binding var scrollOffset : CGFloat + @Binding var readOffset: CGPoint + + @Environment(\.appDatabase) private var appDatabase + + + @Query(SelectedRibbonRequest()) private var sr: [SelectedRibbon] + + @State var saveOffset = CGFloat() + var body: some View { + // ForEach(sr) { selectedRibbon in + Button("meow", + action: { + Task { + var selectedRibbon = sr[0] + + saveOffset = CGFloat(readOffset.y) + Print("save/read offset", readOffset.y) + + Print("START") + _ = Print(ribbon) + _ = Print(selectedRibbon) + Print("START2") + + if (selectedRibbon.ribbonId != ribbon.id!) { + Print(ribbon.id!) + Print("switching") + book = ribbon.book + scrollOffset = CGFloat(ribbon.scrollOffset) + // scrollOffset = CGFloat(1500) + Print("setted offset value", scrollOffset) + selectedRibbon.ribbonId = ribbon.id! + _ = try await appDatabase.saveSelectedRibbon(&selectedRibbon) + _ = Print(selectedRibbon) + } + var editedRibbon = ribbon + editedRibbon.scrollOffset = Int(saveOffset) + Print("current ribbon offset after potential switch", editedRibbon.scrollOffset) + + _ = try await appDatabase.saveRibbon(&editedRibbon) + _ = Print(editedRibbon) + + Print("ribbon offset saved") + + Print("set offset value", scrollOffset) + Print("read offset value", readOffset.y) + + + Print("END") + _ = Print(ribbon) + _ = Print(selectedRibbon) + Print("END2") + } + } + + ) + .buttonStyle(BlueButtonStyle()) + // } } } @@ -75,32 +203,47 @@ struct ContentView: View { // @State var scrollTo1 : Int64? @State var selectedLine : Int64? @State var scrollOffset = CGFloat() - @State var selectedRibbon: Ribbon! + + // @State var selectedRibbon: Ribbon!, + // @State var selectedRibbon: Ribbon! + + // @State var selectedRibbonId = Int64(UserDefaults.standard.optionalInt(forKey: "selectedRibbonId") ?? 1) + + + @Query(SelectedRibbonRequest()) private var selectedRibbon: [SelectedRibbon] + + @State var endedDrag = true + + @State var readOffset = CGPoint() @Query(LineRequest(ordering: .byScore, book: "bible.john")) private var lines: [Line] + @Query(RibbonRequest()) private var ribbons: [Ribbon] - // @Query private var lines: [Line] + // @Query*RibbonRequest> private var selectedRibbon: [Ribbon] + + // @Query(RibbonRequest(id: Int64(UserDefaults.standard.optionalInt(forKey: "lastRibbonId") ?? 1))) private var selectedRibbon: [Ribbon] init() { UITableView.appearance().backgroundColor = UIColor(Color(red: 0.2, green: 0.2, blue: 0.2)) - // _lines = Query(LineRequest(ordering: .byScore, book: curBook)) + // _selectedRibbon = Query(RibbonRequest(id: Int64(UserDefaults.standard.optionalInt(forKey: "lastRibbonId") ?? 1))) } - // @Environment(\.managedObjectContext) private var viewContext - - var body: some View { GeometryReader { geometry in ZStack{ VStack{ - ForEach(ribbons) { ribbon in - SwitchButton(ribbon: ribbon, - selectedRibbon: $selectedRibbon, - book: $lines.book, - scrollOffset: $scrollOffset) - .buttonStyle(BlueButtonStyle()) + ForEach(ribbons) { ribbon in + ForEach(selectedRibbon) { sr in + SwitchButton(ribbon: ribbon, + // selectedRibbon:sr, + book: $lines.book, + scrollOffset: $scrollOffset, + readOffset: $readOffset + ) + .buttonStyle(BlueButtonStyle()) + } } } .frame(width: geometry.size.width, height: geometry.size.height, alignment: .topLeading) @@ -109,7 +252,8 @@ struct ContentView: View { // VStack (spacing: 0){ ScrollViewReader { proxy in //ScrollableView($offset, animationDuration: 0) { - ScrollView { + OffsetObservingScrollView(offset: $readOffset) + { // List { LazyVStack { ForEach(lines) { line in @@ -143,7 +287,10 @@ struct ContentView: View { .introspectScrollView { scrollView in //let width = scrollView.contentSize.width - scrollView.frame.width //Print(scrollView.contentOffset.x) - scrollView.contentOffset.y = scrollOffset + // Print("here") + if (scrollOffset != scrollView.contentOffset.y) { + scrollView.contentOffset.y = scrollOffset + } } .listStyle(PlainListStyle()) @@ -154,15 +301,15 @@ struct ContentView: View { .offset(x:30 , y:0) .offset(x: pulledOut.width) .offset(x: viewState.width, y: viewState.height) - .onAppear { - if (selectedRibbon != nil) { - Print(selectedRibbon) - //scrollOffset.y = scrollOffset - } - } .gesture( DragGesture() .onChanged { gesture in + + if (endedDrag) { + endedDrag = false + scrollOffset = readOffset.y - 20 + _ = Print("meow") + } // logger.error("hello222") // NSLog("hellooo") //Print(viewState.width) @@ -171,6 +318,7 @@ struct ContentView: View { // logger.log("hello") } .onEnded { _ in + endedDrag = true var pulledOutWidth = CGFloat(0) if (viewState.width < 0) { pulledOutWidth = CGFloat(0) diff --git a/gloss/Ribbon.swift b/gloss/Ribbon.swift index 5ad0fba..cabd501 100644 --- a/gloss/Ribbon.swift +++ b/gloss/Ribbon.swift @@ -49,44 +49,5 @@ extension Ribbon: Codable, FetchableRecord, MutablePersistableRecord { /// /// See /// See -extension DerivableRequest { - /// A request of players ordered by name. - /// - /// For example: - /// - /// let players: [Line] = try dbWriter.read { db in - /// try Line.all().orderedByName().fetchAll(db) - /// } - //func orderedByName() -> Self { - // // Sort by name in a localized case insensitive fashion - // // See https://github.com/groue/GRDB.swift/blob/master/README.md#string-comparison - // order(Line.Columns.name.collating(.localizedCaseInsensitiveCompare)) - //} - - ///// A request of players ordered by score. - ///// - ///// For example: - ///// - ///// let players: [Line] = try dbWriter.read { db in - ///// try Line.all().orderedByScore().fetchAll(db) - ///// } - ///// let bestLine: Line? = try dbWriter.read { db in - ///// try Line.all().orderedByScore().fetchOne(db) - ///// } - //func orderedByScore() -> Self { - // // Sort by descending score, and then by name, in a - // // localized case insensitive fashion - // // See https://github.com/groue/GRDB.swift/blob/master/README.md#string-comparison - // order( - // Line.Columns.score.desc, - // Line.Columns.name.collating(.localizedCaseInsensitiveCompare)) - //} +extension DerivableRequest { } - -// Ribbon.swift -// gloss -// -// Created by Saint on 2/27/23. -// - -import Foundation