mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-05-03 20:46:28 +00:00
Light rework of timezone management: we only use it and store it during Meeting creation/edition. After, we reset and display everything based on current device timezone
This commit is contained in:
parent
bd3b8d8731
commit
a851537428
3 changed files with 16 additions and 19 deletions
|
|
@ -215,7 +215,7 @@ struct MeetingFragment: View {
|
|||
.foregroundStyle(Color.grayMain2c800)
|
||||
.frame(width: 24, height: 24)
|
||||
.padding(.leading, 15)
|
||||
Text(meetingViewModel.currentTimeZone.formattedString())
|
||||
Text(meetingViewModel.selectedTimezone.formattedString())
|
||||
.default_text_style(styleSize: 14)
|
||||
Spacer()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ struct ScheduleMeetingFragment: View {
|
|||
showDatePicker.toggle()
|
||||
}
|
||||
Spacer()
|
||||
}
|
||||
}.padding(.bottom, -5)
|
||||
|
||||
if !meetingViewModel.allDayMeeting {
|
||||
HStack(spacing: 10) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class MeetingViewModel: ObservableObject {
|
|||
@Published var conferenceUri: String = ""
|
||||
|
||||
@Published var selectedTimezoneIdx = 0
|
||||
var currentTimeZone = TimeZone.current
|
||||
var selectedTimezone = TimeZone.current
|
||||
var knownTimezones : [String] = []
|
||||
|
||||
var conferenceScheduler: ConferenceScheduler?
|
||||
|
|
@ -67,7 +67,7 @@ class MeetingViewModel: ObservableObject {
|
|||
}
|
||||
})
|
||||
knownTimezones = tzIds
|
||||
selectedTimezoneIdx = knownTimezones.firstIndex(where: {$0 == currentTimeZone.identifier}) ?? 0
|
||||
selectedTimezoneIdx = knownTimezones.firstIndex(where: {$0 == selectedTimezone.identifier}) ?? 0
|
||||
computeDateLabels()
|
||||
computeTimeLabels()
|
||||
}
|
||||
|
|
@ -85,44 +85,41 @@ class MeetingViewModel: ObservableObject {
|
|||
conferenceUri = ""
|
||||
fromDate = Calendar.current.date(byAdding: .hour, value: 1, to: Date.now)!
|
||||
toDate = Calendar.current.date(byAdding: .hour, value: 2, to: Date.now)!
|
||||
selectedTimezone = TimeZone.current
|
||||
selectedTimezoneIdx = knownTimezones.firstIndex(where: {$0 == selectedTimezone.identifier}) ?? 0
|
||||
computeDateLabels()
|
||||
computeTimeLabels()
|
||||
}
|
||||
|
||||
func updateTimezone(timeZone: TimeZone) {
|
||||
currentTimeZone = timeZone
|
||||
selectedTimezone = timeZone
|
||||
computeDateLabels()
|
||||
computeTimeLabels()
|
||||
}
|
||||
|
||||
func computeDateLabels() {
|
||||
var weekDayFormat = Date.FormatStyle().weekday(.wide)
|
||||
weekDayFormat.timeZone = currentTimeZone
|
||||
var dayNumberFormat = Date.FormatStyle().day(.twoDigits)
|
||||
dayNumberFormat.timeZone = currentTimeZone
|
||||
var monthFormat = Date.FormatStyle().month(.wide)
|
||||
monthFormat.timeZone = currentTimeZone
|
||||
let formatter = DateFormatter()
|
||||
formatter.timeZone = selectedTimezone
|
||||
formatter.dateFormat = "EEEE d MMM"
|
||||
|
||||
fromDateStr = "\(fromDate.formatted(weekDayFormat)) \(fromDate.formatted(dayNumberFormat)), \(fromDate.formatted(monthFormat))"
|
||||
fromDateStr = formatter.string(from: fromDate)
|
||||
Log.info("\(MeetingViewModel.TAG) computed start date is \(fromDateStr)")
|
||||
toDateStr = "\(toDate.formatted(weekDayFormat)) \(toDate.formatted(dayNumberFormat)), \(toDate.formatted(monthFormat))"
|
||||
fromDateStr = formatter.string(from: toDate)
|
||||
Log.info("\(MeetingViewModel.TAG)) computed end date is \(toDateStr)")
|
||||
}
|
||||
|
||||
func computeTimeLabels() {
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateFormat = Locale.current.identifier == "fr_FR" ? "HH:mm" : "h:mm a"
|
||||
formatter.timeZone = currentTimeZone
|
||||
formatter.timeZone = selectedTimezone
|
||||
fromTime = formatter.string(from: fromDate)
|
||||
toTime = formatter.string(from: toDate)
|
||||
}
|
||||
|
||||
func getFullDateString() -> String {
|
||||
var day = fromDate.formatted(Date.FormatStyle().weekday(.abbreviated))
|
||||
var dayNumber = fromDate.formatted(Date.FormatStyle().day(.twoDigits))
|
||||
var month = fromDate.formatted(Date.FormatStyle().month(.wide))
|
||||
var year = fromDate.formatted(Date.FormatStyle().year(.defaultDigits))
|
||||
return "\(day). \(dayNumber) \(month) \(year) | \(allDayMeeting ? "All day" : "\(fromTime) - \(toTime)")"
|
||||
let formatter = DateFormatter()
|
||||
formatter.dateFormat = "EEE d MMM yyyy"
|
||||
return "\(formatter.string(from: fromDate)) | \(allDayMeeting ? "All day" : "\(fromTime) - \(toTime)")"
|
||||
}
|
||||
|
||||
func addParticipants(participantsToAdd: [SelectedAddressModel]) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue