From d76c2c262711cbe3f5156deceb3663bfd61cc02d Mon Sep 17 00:00:00 2001 From: Alevtina Mashtaler Date: Sat, 10 Aug 2024 23:28:56 +0300 Subject: [PATCH 1/3] adding isRTL property on InsertMediaAdvancedSettingsVC --- .../InsertMediaAdvancedSettingsViewController.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift b/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift index 19752f3f80f..5841ef439b3 100644 --- a/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift +++ b/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift @@ -5,6 +5,8 @@ final class InsertMediaAdvancedSettingsViewController: ViewController { private let tableView = UITableView() typealias AdvancedSettings = InsertMediaSettings.Advanced + + var isRTL: Bool? var advancedSettings: AdvancedSettings { return AdvancedSettings(wrapTextAroundImage: textWrappingSwitch.isOn, imagePosition: imagePositionSettingsViewController.selectedImagePosition(isTextWrappingEnabled: textWrappingSwitch.isOn), imageType: imageTypeSettingsViewController.selectedImageType, imageSize: imageSizeSettingsViewController.selectedImageSize) From 97727c92412c288cfa9c09039a4abdbbfcada1e9 Mon Sep 17 00:00:00 2001 From: Alevtina Mashtaler Date: Sat, 10 Aug 2024 23:31:04 +0300 Subject: [PATCH 2/3] passing isRTL flag as a parameter of selectedImagePosition method and returning default image position based on it --- .../InsertMediaAdvancedSettingsViewController.swift | 4 ++-- ...nsertMediaImagePositionSettingsViewController.swift | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift b/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift index 5841ef439b3..116180b5d8b 100644 --- a/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift +++ b/Wikipedia/Code/Advanced Settings/InsertMediaAdvancedSettingsViewController.swift @@ -9,7 +9,7 @@ final class InsertMediaAdvancedSettingsViewController: ViewController { var isRTL: Bool? var advancedSettings: AdvancedSettings { - return AdvancedSettings(wrapTextAroundImage: textWrappingSwitch.isOn, imagePosition: imagePositionSettingsViewController.selectedImagePosition(isTextWrappingEnabled: textWrappingSwitch.isOn), imageType: imageTypeSettingsViewController.selectedImageType, imageSize: imageSizeSettingsViewController.selectedImageSize) + return AdvancedSettings(wrapTextAroundImage: textWrappingSwitch.isOn, imagePosition: imagePositionSettingsViewController.selectedImagePosition(isTextWrappingEnabled: textWrappingSwitch.isOn, isRTL: isRTL), imageType: imageTypeSettingsViewController.selectedImageType, imageSize: imageSizeSettingsViewController.selectedImageSize) } struct ViewModel { @@ -45,7 +45,7 @@ final class InsertMediaAdvancedSettingsViewController: ViewController { private var viewModels: [ViewModel] { let textWrappingViewModel = ViewModel(title: WMFLocalizedString("insert-media-image-text-wrapping-setting", value: "Wrap text around image", comment: "Title for image setting that wraps text around image"), accessoryView: textWrappingSwitch, accessoryType: .none, selectionStyle: .none) - let imagePositionViewModel = ViewModel(title: AdvancedSettings.ImagePosition.displayTitle, detailText: imagePositionSettingsViewController.selectedImagePosition(isTextWrappingEnabled: textWrappingSwitch.isOn).displayTitle, isEnabled: textWrappingSwitch.isOn) { [weak self] in + let imagePositionViewModel = ViewModel(title: AdvancedSettings.ImagePosition.displayTitle, detailText: imagePositionSettingsViewController.selectedImagePosition(isTextWrappingEnabled: textWrappingSwitch.isOn, isRTL: isRTL).displayTitle, isEnabled: textWrappingSwitch.isOn) { [weak self] in guard let self = self else { return } diff --git a/Wikipedia/Code/Advanced Settings/InsertMediaImagePositionSettingsViewController.swift b/Wikipedia/Code/Advanced Settings/InsertMediaImagePositionSettingsViewController.swift index 48faa738de4..0eaf3e8ed01 100644 --- a/Wikipedia/Code/Advanced Settings/InsertMediaImagePositionSettingsViewController.swift +++ b/Wikipedia/Code/Advanced Settings/InsertMediaImagePositionSettingsViewController.swift @@ -4,12 +4,16 @@ final class InsertMediaImagePositionSettingsViewController: ViewController { typealias ImagePosition = InsertMediaSettings.Advanced.ImagePosition - func selectedImagePosition(isTextWrappingEnabled: Bool) -> ImagePosition { + func selectedImagePosition(isTextWrappingEnabled: Bool, isRTL: Bool?) -> ImagePosition { guard isTextWrappingEnabled else { return .none } - guard let selectedIndexPath = selectedIndexPath else { - return .right + guard let selectedIndexPath = selectedIndexPath, isRTL != nil else { + if isRTL! { + return .left + } else { + return .right + } } return viewModels[selectedIndexPath.row].imagePosition } From cfeee2f42cd3094c64f2a81397991d0a4d696b04 Mon Sep 17 00:00:00 2001 From: Alevtina Mashtaler Date: Sat, 10 Aug 2024 23:31:35 +0300 Subject: [PATCH 3/3] getting isRTL value based on the language code --- Wikipedia/Code/InsertMediaSettingsViewController.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Wikipedia/Code/InsertMediaSettingsViewController.swift b/Wikipedia/Code/InsertMediaSettingsViewController.swift index 7a3df5cfb49..c6943af94f1 100644 --- a/Wikipedia/Code/InsertMediaSettingsViewController.swift +++ b/Wikipedia/Code/InsertMediaSettingsViewController.swift @@ -171,7 +171,7 @@ final class InsertMediaSettingsViewController: ViewController { private lazy var buttonView: InsertMediaSettingsButtonView = { let buttonView = InsertMediaSettingsButtonView.wmf_viewFromClassNib()! - let isRTL = UIApplication.shared.wmf_isRTL + let isRTL = MWKLanguageLinkController.isLanguageRTL(forContentLanguageCode: siteURL.wmf_contentLanguageCode) buttonView.buttonTitle = InsertMediaAdvancedSettingsViewController.title buttonView.buttonAction = { [weak self] _ in guard let self = self else { @@ -179,6 +179,7 @@ final class InsertMediaSettingsViewController: ViewController { } imageRecLoggingDelegate?.logInsertMediaSettingsViewControllerDidTapAdvancedSettings() self.insertMediaAdvancedSettingsViewController.apply(theme: self.theme) + self.insertMediaAdvancedSettingsViewController.isRTL = isRTL self.navigationController?.pushViewController(self.insertMediaAdvancedSettingsViewController, animated: true) } return buttonView