Skip to content

Commit 811ea6a

Browse files
authored
Merge pull request #90 from TaskarCenterAtUW/feature-ui-bug-fixes
Feature UI bug fixes
2 parents edff28b + 08a92d5 commit 811ea6a

File tree

14 files changed

+79
-102
lines changed

14 files changed

+79
-102
lines changed

GoInfoGame/GoInfoGame/UI/CustomComponents/ImageGridItemView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ struct ImageGridItemView: View {
8989
} else {
9090
return (minWidth: isLabelBelow ? 70 : 0,
9191
maxWidth: isLabelBelow ? 70 : .infinity,
92-
minHeight: isLabelBelow ? 70 : 150,
93-
maxHeight: isLabelBelow ? 70 : 150)
92+
minHeight: isLabelBelow ? 70 : 130,
93+
maxHeight: isLabelBelow ? 70 : 130)
9494
}
9595
}
9696

GoInfoGame/GoInfoGame/UI/Map/CustomMap.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ struct CustomMap: UIViewRepresentable {
9494
contextualString = "The \(selectedQuest.title!) is on \(streetName == "" ? "the street" : streetName) at \(distance) meters"
9595
}
9696
self.contextualInfo?(contextualString)
97-
}
97+
}
9898
}
9999
}
100100
// Deselect the annotation to prevent re-adding on selection

GoInfoGame/GoInfoGame/UI/Profile/ProfileView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ struct LoginView: View {
193193
.sheet(isPresented: $isSafariViewControllerPresented) {
194194
OAuthViewController()
195195
}
196-
.navigationBarHidden(true)
196+
.navigationBarHidden(false)
197197
.padding()
198198
}
199199

GoInfoGame/GoInfoGame/UI/QuestsList/QuestsListUIView.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ struct QuestsListUIView : View {
5454
func getSheetSize(sheetSize: SheetSize) -> Set<PresentationDetent> {
5555
if sheetSize == .SMALL {
5656
return [.height(250)]
57-
} else if sheetSize == .LARGE {
57+
} else if sheetSize == .MEDIUM {
58+
return [.height(450)]
59+
}else if sheetSize == .LARGE {
5860
return [.height(600)]
5961
} else if sheetSize == .XLARGE {
6062
return [.height(800)]

GoInfoGame/GoInfoGame/quests/CrossingKerbHeight/CrossingKerbHeightForm.swift

Lines changed: 48 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ struct CrossingKerbHeightForm: View, QuestForm {
1717
@Environment(\.presentationMode) var presentationMode
1818

1919
@EnvironmentObject var contextualInfo: ContextualInfo
20-
20+
2121
let imageData: [ImageData] = [
2222
ImageData(id:"kerb_height_raised",type: "raised", imageName: "kerb_height_raised", tag: "raised", optionName: LocalizedStrings.questKerbHeightRaised.localized),
2323
ImageData(id:"kerb_height_lowered",type: "lowered", imageName: "kerb_height_lowered", tag: "lowered", optionName: LocalizedStrings.questKerbHeightLowered.localized),
@@ -29,54 +29,65 @@ struct CrossingKerbHeightForm: View, QuestForm {
2929
var body: some View {
3030
ScrollView {
3131
VStack {
32-
DismissButtonView {
33-
withAnimation {
34-
presentationMode.wrappedValue.dismiss()
35-
}
32+
DismissButtonView {
33+
withAnimation {
34+
presentationMode.wrappedValue.dismiss()
3635
}
37-
QuestionHeader(icon: Image("kerb_type"), title: LocalizedStrings.questCrossingKerbHeightTitle.localized, contextualInfo: contextualInfo.info).padding(.bottom,10)
38-
VStack(alignment: .leading){
39-
Text(LocalizedStrings.selectOne.localized).font(.caption).foregroundColor(.gray)
40-
ImageGridItemView(gridCount: 2, isLabelBelow: false, imageData: imageData, isImageRotated: false, isDisplayImageOnly: false, isScrollable: false, allowMultipleSelection: false, onTap: { (selectedImage) in
41-
}, selectedImages: $selectedImage)
42-
Divider()
43-
HStack() {
44-
Spacer()
45-
Button {
46-
showOtherAlert = true
47-
} label: {
48-
Text(LocalizedStrings.otherAnswers.localized).foregroundColor(.orange)
49-
}
36+
}
37+
QuestionHeader(icon: Image("kerb_type"), title: LocalizedStrings.questCrossingKerbHeightTitle.localized, contextualInfo: contextualInfo.info).padding(.top,10)
38+
.padding(.leading,10)
39+
ZStack {
40+
VStack(alignment: .leading) {
41+
Text(LocalizedStrings.selectOne.localized)
42+
.font(.caption)
43+
.foregroundColor(.gray).padding(.bottom,10)
44+
45+
ImageGridItemView(gridCount: 2,
46+
isLabelBelow: false,
47+
imageData: imageData,
48+
isImageRotated: false,
49+
isDisplayImageOnly: false,
50+
isScrollable: false,
51+
allowMultipleSelection: false,
52+
onTap: { selectedImage in },
53+
selectedImages: $selectedImage)
54+
55+
}.padding()
56+
VStack {
57+
Spacer()
58+
HStack {
5059
Spacer()
5160
if !selectedImage.isEmpty {
52-
Button() {
61+
Button(action: {
5362
let answer = KerbHeightTypeAnswer.fromString(selectedImage.first ?? "")
5463
action?(answer ?? KerbHeightTypeAnswer.none)
55-
}label: {
64+
}) {
5665
Image(systemName: "checkmark.circle.fill")
5766
.font(Font.system(size: 40))
5867
.foregroundColor(.orange)
68+
.padding()
5969
}
6070
}
61-
}.padding(.top,10)
62-
} .padding()
63-
.background(
64-
RoundedRectangle(cornerRadius: 10)
65-
.fill(Color.white)
66-
.shadow(color: .gray, radius: 2, x: 0, y: 2))
67-
71+
}
72+
}
6873
}
69-
}
70-
71-
/// if user selects other answers option
72-
if showOtherAlert {
73-
/// display leave a note instead alert
74-
CustomSureAlert(alertTitle: LocalizedStrings.questLeaveNewNoteTitle.localized, content: LocalizedStrings.questLeaveNewNoteDescription.localized,leftBtnLabel: LocalizedStrings.questLeaveNewNoteNo.localized, rightBtnLabel:LocalizedStrings.questLeaveNewNoteYes.localized, isDontShowCheckVisible: false, onCancel: {
75-
self.showOtherAlert = false
76-
}, onConfirm: {
77-
self.showOtherAlert = false
78-
})
74+
.background(
75+
RoundedRectangle(cornerRadius: 10)
76+
.fill(Color.white)
77+
.shadow(color: .gray, radius: 2, x: 0, y: 2))
78+
7979
}
80+
}
81+
82+
/// if user selects other answers option
83+
if showOtherAlert {
84+
/// display leave a note instead alert
85+
CustomSureAlert(alertTitle: LocalizedStrings.questLeaveNewNoteTitle.localized, content: LocalizedStrings.questLeaveNewNoteDescription.localized,leftBtnLabel: LocalizedStrings.questLeaveNewNoteNo.localized, rightBtnLabel:LocalizedStrings.questLeaveNewNoteYes.localized, isDontShowCheckVisible: false, onCancel: {
86+
self.showOtherAlert = false
87+
}, onConfirm: {
88+
self.showOtherAlert = false
89+
})
90+
}
8091

8192
}
8293
}

GoInfoGame/GoInfoGame/quests/CrossingMarking/CrossMarking.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class CrossMarking: QuestBase, Quest {
2020
var changesetComment: String = ""
2121
var relationData: Element? = nil
2222
var displayUnit: DisplayUnit {
23-
DisplayUnit(title: self.title, description: "",parent: self,sheetSize:.LARGE )
23+
DisplayUnit(title: self.title, description: "",parent: self,sheetSize:.MEDIUM )
2424
}
2525
var filterExpression: ElementFilterExpression? {
2626
if(_internalExpression != nil){
@@ -60,6 +60,7 @@ class CrossMarking: QuestBase, Quest {
6060
enum CrossingAnswer: String {
6161
case yes = "Yes"
6262
case no = "No"
63+
case none = "none"
6364
}
6465

6566
struct TextItem<T> {

GoInfoGame/GoInfoGame/quests/CrossingMarking/CrossMarkingForm.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import SwiftUI
1111
struct CrossMarkingForm : View,QuestForm{
1212
var action: ((CrossingAnswer) -> Void)?
1313
typealias AnswerClass = CrossingAnswer
14-
@State private var selectedAnswer: CrossingAnswer?
14+
@State private var selectedAnswer = CrossingAnswer.none;
1515
@State private var showAlert = false
1616

1717
@Environment(\.presentationMode) var presentationMode
@@ -38,22 +38,22 @@ struct CrossMarkingForm : View,QuestForm{
3838
ForEach(items, id: \.titleId) { item in
3939
RadioItem(textItem: item, isSelected: item.value == selectedAnswer) {
4040
selectedAnswer = item.value
41-
action?(selectedAnswer ?? .no)
4241
}
4342
.frame(maxWidth: .infinity, alignment: .leading)
44-
.padding()
43+
.padding(.top,5)
44+
.padding(.bottom,5)
4545
}}.padding(.top,10)
46-
Divider()
47-
Button {
48-
showAlert = true
49-
} label: {
50-
Text(LocalizedStrings.cantSay.localized).foregroundColor(.orange)
46+
if selectedAnswer != CrossingAnswer.none {
47+
Button() {
48+
/// applying final selected answer
49+
action?(selectedAnswer)
50+
}label: {
51+
Image(systemName: "checkmark.circle.fill")
52+
.font(Font.system(size: 40))
53+
.foregroundColor(.orange)
54+
}
5155
}
52-
.alert(isPresented: $showAlert) {
53-
Alert(title: Text("More Questions"))
54-
}
55-
.padding()
56-
}
56+
}.padding()
5757
.background(
5858
RoundedRectangle(cornerRadius: 10)
5959
.fill(Color.white)

GoInfoGame/GoInfoGame/quests/CrossingType/CrossingType.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class CrossingType: QuestBase, Quest {
2424
var relationData: Element? = nil
2525
var _internalExpression: ElementFilterExpression?
2626
var displayUnit: DisplayUnit {
27-
DisplayUnit(title: self.title, description: "",parent: self,sheetSize:.LARGE )
27+
DisplayUnit(title: self.title, description: "",parent: self,sheetSize:.MEDIUM )
2828
}
2929
var filterExpression: ElementFilterExpression? {
3030
if(_internalExpression != nil){

GoInfoGame/GoInfoGame/quests/CrossingType/CrossingTypeForm.swift

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ struct CrossingTypeForm: View, QuestForm {
3333
withAnimation {
3434
presentationMode.wrappedValue.dismiss()
3535
}
36-
}
36+
}.padding(.top,5)
3737
QuestionHeader(icon:Image("pedestrian_crossing"), title: LocalizedStrings.questCrossingTypeTitle.localized, contextualInfo: contextualInfo.info)
3838
VStack(alignment:.center){
3939
VStack (alignment: .leading){
@@ -43,15 +43,7 @@ struct CrossingTypeForm: View, QuestForm {
4343
print("selected crossing type tag ->",selectedAnswer.rawValue)
4444
}, selectedImages: $selectedImage)
4545
}
46-
Divider()
47-
HStack() {
48-
Spacer()
49-
Button {
50-
self.showOtherAlert.toggle()
51-
} label: {
52-
Text(LocalizedStrings.cantSay.localized.uppercased()).foregroundColor(.orange)
53-
}.frame(alignment: .center)
54-
Spacer()
46+
VStack() {
5547
if selectedAnswer != .none {
5648
Button() {
5749

GoInfoGame/GoInfoGame/quests/SidewalkSurface/SidewalkSurfaceForm.swift

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,15 @@ struct SidewalkSurfaceForm: QuestForm ,View {
5151
contextualInfo: contextualInfo.info)
5252
.padding(.bottom,10)
5353
// Quest Body
54+
5455
VStack(alignment: .leading){
5556
Text(LocalizedStrings.select.localized).font(.caption).foregroundColor(.gray)
5657
/// Grid view for displaying selectable surfaces
5758
ImageGridItemView(gridCount: 3, isLabelBelow: true, imageData: imagesFromSurfaces, isImageRotated: false, isDisplayImageOnly: false, isScrollable: true, allowMultipleSelection: false, onTap: { (selectedImage) in
5859
selectedAnswer = SidewalkSurfaceAnswer(value: SurfaceAndNote(surface: Surface(rawValue: selectedImage.first ?? ""),note: ""))
5960
print("selectedAnswer:", selectedAnswer)
60-
print("Clicked Tag: \(selectedImage)")}, selectedImages: $selectedImage)
61-
Divider()
62-
HStack() {
63-
Spacer()
64-
Button {
65-
showAlert = true
66-
} label: {
67-
Text(LocalizedStrings.otherAnswers.localized).foregroundColor(.orange)
68-
}.frame(alignment: .center)
61+
print("Clicked Tag: \(selectedImage)")}, selectedImages: $selectedImage).frame(height: 350)
62+
HStack(alignment: .center) {
6963
Spacer()
7064
if selectedAnswer.value.surface != Surface.none {
7165
Button() {

0 commit comments

Comments
 (0)