Skip to content

Commit

Permalink
Merge pull request #527 from willowtreeapps/feature/485/edit-category…
Browse files Browse the repository at this point in the history
…-styling-updates

485 | Edit Category Details screen design updates 📝 🎨
  • Loading branch information
moyerr authored Apr 4, 2022
2 parents fe846d8 + 942099d commit 61f1c86
Show file tree
Hide file tree
Showing 20 changed files with 295 additions and 785 deletions.
23 changes: 16 additions & 7 deletions CrowdinExport/en.xliff
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,6 @@
<target>Delete All</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Edit Phrases" xml:space="preserve">
<source>Edit Phrases</source>
<target>Edit Phrases</target>
<note>Edit Phrases</note>
</trans-unit>
<trans-unit id="No Entries" xml:space="preserve">
<source>No Entries</source>
<target>No Entries</target>
Expand Down Expand Up @@ -112,11 +107,21 @@
<target>Are you sure you want to delete? Removed phrases cannot be restored.</target>
<note>Delete phrase confirmation alert title</note>
</trans-unit>
<trans-unit id="category_editor.detail.button.edit_phrases.title" xml:space="preserve">
<source>Edit Phrases</source>
<target>Edit Phrases</target>
<note>Edit Phrases button label within the category detail screen</note>
</trans-unit>
<trans-unit id="category_editor.detail.button.remove_category.title" xml:space="preserve">
<source>Remove Category</source>
<target>Remove Category</target>
<note>Remove category button label within the category detail screen.</note>
</trans-unit>
<trans-unit id="category_editor.detail.button.rename_category.title" xml:space="preserve">
<source>Rename Category</source>
<target>Rename Category</target>
<note>Rename Category button label within the category detail screen</note>
</trans-unit>
<trans-unit id="category_editor.detail.button.show_category.title" xml:space="preserve">
<source>Show Category</source>
<target>Show Category</target>
Expand Down Expand Up @@ -255,6 +260,11 @@
<target>Vocable failed to reset. Please try again or reinstall Vocable if the issue persists.</target>
<note>Reset app settings failure alert</note>
</trans-unit>
<trans-unit id="settings.alert.reset_app_settings_failure.button.ok" xml:space="preserve">
<source>OK</source>
<target>OK</target>
<note>Button dismissing the alert informing the user that Vocable's application settings failed to reset</note>
</trans-unit>
<trans-unit id="settings.alert.reset_app_settings_success.body" xml:space="preserve">
<source>Vocable has been reset successfully</source>
<target>Vocable has been reset successfully</target>
Expand All @@ -263,8 +273,7 @@
<trans-unit id="settings.alert.reset_app_settings_success.button.ok" xml:space="preserve">
<source>OK</source>
<target>OK</target>
<note>Button dismissing the alert informing the user that Vocable's application settings failed to reset
Button dismissing the alert informing the user that Vocable's application settings were successfully reset</note>
<note>Button dismissing the alert informing the user that Vocable's application settings were successfully reset</note>
</trans-unit>
<trans-unit id="settings.alert.surrender_gaze_confirmation.body" xml:space="preserve">
<source>You're about to be taken outside of the Vocable app. You may lose head tracking control.</source>
Expand Down
44 changes: 0 additions & 44 deletions Vocable.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,7 @@
64A220BE2452173C0014EA80 /* Root.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 64A220BD2452173C0014EA80 /* Root.storyboard */; };
64A54545242A490700218BE8 /* GazeEatingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64A54544242A490700218BE8 /* GazeEatingView.swift */; };
64B32588254B550600023566 /* EditCategoryDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64B32587254B550500023566 /* EditCategoryDetailViewController.swift */; };
64B32593254B562B00023566 /* EditCategoryDetailTitleCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64B32592254B562B00023566 /* EditCategoryDetailTitleCollectionViewCell.swift */; };
64B3259B254B591D00023566 /* EditCategoryRemoveCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64B32597254B591C00023566 /* EditCategoryRemoveCollectionViewCell.swift */; };
64B3259C254B591D00023566 /* EditCategoryToggleCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64B32598254B591D00023566 /* EditCategoryToggleCollectionViewCell.swift */; };
64B3259D254B591D00023566 /* EditCategoryRemoveCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 64B32599254B591D00023566 /* EditCategoryRemoveCollectionViewCell.xib */; };
64B3259E254B591D00023566 /* EditCategoryToggleCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 64B3259A254B591D00023566 /* EditCategoryToggleCollectionViewCell.xib */; };
64D04A58242951C00006962D /* GazeableAlertPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64D04A57242951C00006962D /* GazeableAlertPresentationController.swift */; };
64E9CD60258D35B400A2DC1F /* EditCategoryDetailsHeaderCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 64E9CD5F258D35B400A2DC1F /* EditCategoryDetailsHeaderCollectionViewCell.xib */; };
64F49906245B40BC00348592 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B005AE6245B21ED004919F4 /* SettingsViewController.swift */; };
64F8A5FA245CC9FA00B7C0F9 /* EditPhrasesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BE7E9892459F7C3007B01F2 /* EditPhrasesViewController.swift */; };
6B005AE3245B057E004919F4 /* VocableCollectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B005AE2245B057E004919F4 /* VocableCollectionViewController.swift */; };
Expand Down Expand Up @@ -159,9 +153,6 @@
A99AF23323FDA8B600BE1184 /* SuggestionCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99AF23223FDA8B600BE1184 /* SuggestionCollectionViewCell.swift */; };
A99AF23523FDA8DC00BE1184 /* SuggestionCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A99AF23423FDA8DC00BE1184 /* SuggestionCollectionViewCell.xib */; };
A9B32C8C240EB6250084E151 /* KeyboardModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B32C8B240EB6250084E151 /* KeyboardModel.swift */; };
A9B696052433C422004E6960 /* EditCategoriesDefaultCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9B696042433C422004E6960 /* EditCategoriesDefaultCollectionViewCell.xib */; };
A9B6960B2433CCFD004E6960 /* EditCategoriesDefaultCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B6960A2433CCFD004E6960 /* EditCategoriesDefaultCollectionViewCell.swift */; };
A9B6960D2433CD30004E6960 /* EditCategoriesCompactCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9B6960C2433CD30004E6960 /* EditCategoriesCompactCollectionViewCell.xib */; };
A9B696112433CF31004E6960 /* EditCategoriesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B696102433CF31004E6960 /* EditCategoriesViewController.swift */; };
A9C32CFF242271F3000EC6F7 /* Phrase+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9C32CFE242271F3000EC6F7 /* Phrase+Helpers.swift */; };
A9CF2AEF242D44EE005633A7 /* TimingSensitivityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9CF2AEE242D44EE005633A7 /* TimingSensitivityViewController.swift */; };
Expand Down Expand Up @@ -243,13 +234,7 @@
64A220BD2452173C0014EA80 /* Root.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Root.storyboard; sourceTree = "<group>"; };
64A54544242A490700218BE8 /* GazeEatingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GazeEatingView.swift; sourceTree = "<group>"; };
64B32587254B550500023566 /* EditCategoryDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditCategoryDetailViewController.swift; sourceTree = "<group>"; };
64B32592254B562B00023566 /* EditCategoryDetailTitleCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditCategoryDetailTitleCollectionViewCell.swift; sourceTree = "<group>"; };
64B32597254B591C00023566 /* EditCategoryRemoveCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditCategoryRemoveCollectionViewCell.swift; sourceTree = "<group>"; };
64B32598254B591D00023566 /* EditCategoryToggleCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditCategoryToggleCollectionViewCell.swift; sourceTree = "<group>"; };
64B32599254B591D00023566 /* EditCategoryRemoveCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = EditCategoryRemoveCollectionViewCell.xib; sourceTree = "<group>"; };
64B3259A254B591D00023566 /* EditCategoryToggleCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = EditCategoryToggleCollectionViewCell.xib; sourceTree = "<group>"; };
64D04A57242951C00006962D /* GazeableAlertPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GazeableAlertPresentationController.swift; sourceTree = "<group>"; };
64E9CD5F258D35B400A2DC1F /* EditCategoryDetailsHeaderCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = EditCategoryDetailsHeaderCollectionViewCell.xib; sourceTree = "<group>"; };
6B005AE2245B057E004919F4 /* VocableCollectionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VocableCollectionViewController.swift; sourceTree = "<group>"; };
6B005AE4245B06F3004919F4 /* VocableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VocableViewController.swift; sourceTree = "<group>"; };
6B005AE6245B21ED004919F4 /* SettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -394,9 +379,6 @@
A99AF23223FDA8B600BE1184 /* SuggestionCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuggestionCollectionViewCell.swift; sourceTree = "<group>"; };
A99AF23423FDA8DC00BE1184 /* SuggestionCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SuggestionCollectionViewCell.xib; sourceTree = "<group>"; };
A9B32C8B240EB6250084E151 /* KeyboardModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardModel.swift; sourceTree = "<group>"; };
A9B696042433C422004E6960 /* EditCategoriesDefaultCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = EditCategoriesDefaultCollectionViewCell.xib; sourceTree = "<group>"; };
A9B6960A2433CCFD004E6960 /* EditCategoriesDefaultCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditCategoriesDefaultCollectionViewCell.swift; sourceTree = "<group>"; };
A9B6960C2433CD30004E6960 /* EditCategoriesCompactCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = EditCategoriesCompactCollectionViewCell.xib; sourceTree = "<group>"; };
A9B696102433CF31004E6960 /* EditCategoriesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditCategoriesViewController.swift; sourceTree = "<group>"; };
A9C32CFE242271F3000EC6F7 /* Phrase+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Phrase+Helpers.swift"; sourceTree = "<group>"; };
A9CF2AEE242D44EE005633A7 /* TimingSensitivityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimingSensitivityViewController.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -597,22 +579,6 @@
path = Root;
sourceTree = "<group>";
};
64E9CD67258D3E5500A2DC1F /* Cells */ = {
isa = PBXGroup;
children = (
A9B6960C2433CD30004E6960 /* EditCategoriesCompactCollectionViewCell.xib */,
A9B6960A2433CCFD004E6960 /* EditCategoriesDefaultCollectionViewCell.swift */,
A9B696042433C422004E6960 /* EditCategoriesDefaultCollectionViewCell.xib */,
64E9CD5F258D35B400A2DC1F /* EditCategoryDetailsHeaderCollectionViewCell.xib */,
64B32592254B562B00023566 /* EditCategoryDetailTitleCollectionViewCell.swift */,
64B32597254B591C00023566 /* EditCategoryRemoveCollectionViewCell.swift */,
64B32599254B591D00023566 /* EditCategoryRemoveCollectionViewCell.xib */,
64B32598254B591D00023566 /* EditCategoryToggleCollectionViewCell.swift */,
64B3259A254B591D00023566 /* EditCategoryToggleCollectionViewCell.xib */,
);
name = Cells;
sourceTree = "<group>";
};
6B05020527F3516F000CFE5A /* CategoryReordering */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -788,7 +754,6 @@
children = (
A9B696102433CF31004E6960 /* EditCategoriesViewController.swift */,
64B32587254B550500023566 /* EditCategoryDetailViewController.swift */,
64E9CD67258D3E5500A2DC1F /* Cells */,
);
path = EditCategories;
sourceTree = "<group>";
Expand Down Expand Up @@ -1060,29 +1025,24 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
64E9CD60258D35B400A2DC1F /* EditCategoryDetailsHeaderCollectionViewCell.xib in Resources */,
A9CF2AF5242D4EF1005633A7 /* SensitivityCollectionViewCell.xib in Resources */,
718D7FB0241954C400FDEF93 /* EditPhrasesCollectionViewCell.xib in Resources */,
71DBE5EB240DE4D000BA8D01 /* WarningView.xib in Resources */,
A99AF23523FDA8DC00BE1184 /* SuggestionCollectionViewCell.xib in Resources */,
A9299C7723F5FC6F00903AB6 /* KeyboardKeyCollectionViewCell.xib in Resources */,
A96D61D724229F7400577144 /* SettingsCollectionViewCell.xib in Resources */,
64B3259D254B591D00023566 /* EditCategoryRemoveCollectionViewCell.xib in Resources */,
71B856442416CEB600CB163B /* ToastView.xib in Resources */,
A98E8A2523F1DBF200BF1F22 /* SettingsFooterCollectionViewCell.xib in Resources */,
6B4F3C5E25A5132D008A3CB2 /* Listening.wav in Resources */,
6B724A4E25E046BA0033891F /* SettingsFooterTextSupplementaryView.xib in Resources */,
274540282460DD0F0056EF98 /* Presets.strings in Resources */,
A9B696052433C422004E6960 /* EditCategoriesDefaultCollectionViewCell.xib in Resources */,
A9B6960D2433CD30004E6960 /* EditCategoriesCompactCollectionViewCell.xib in Resources */,
30B979B82425583E00309D7C /* InfoPlist.strings in Resources */,
A9F56FC824365BE8008162B6 /* SpeakFunctionKeyboardKeyCollectionViewCell.xib in Resources */,
130C00C420D2AD2C007C3163 /* LaunchScreen.storyboard in Resources */,
6B4F3C5D25A5132D008A3CB2 /* Paused.wav in Resources */,
6B9DFA6923E88A1B0037673E /* GazeLib.scnassets in Resources */,
6BE23D562444DCBE0032CAE4 /* Localizable.strings in Resources */,
130C00C120D2AD2C007C3163 /* Assets.xcassets in Resources */,
64B3259E254B591D00023566 /* EditCategoryToggleCollectionViewCell.xib in Resources */,
2745402E2460DD760056EF98 /* presets.json in Resources */,
64A220BE2452173C0014EA80 /* Root.storyboard in Resources */,
2631B366251181C400B94402 /* GoogleService-Info.plist in Resources */,
Expand Down Expand Up @@ -1189,9 +1149,7 @@
64A220BB2452171C0014EA80 /* RootViewController.swift in Sources */,
6B17CD8023EA045D0050BCB8 /* ViewControllerWrapperView.swift in Sources */,
B8DA9DF223F30BAF00FEBE19 /* Cell+NibLoading.swift in Sources */,
64B3259C254B591D00023566 /* EditCategoryToggleCollectionViewCell.swift in Sources */,
6BB56BA82422AC2500EA787E /* ToastView.swift in Sources */,
64B3259B254B591D00023566 /* EditCategoryRemoveCollectionViewCell.swift in Sources */,
A9DFCC20242D020100136136 /* PublishedValue.swift in Sources */,
6B5C73A727DFE61600004713 /* PredicateBuilders.swift in Sources */,
A9C32CFF242271F3000EC6F7 /* Phrase+Helpers.swift in Sources */,
Expand All @@ -1214,7 +1172,6 @@
6B9DFA7623E8D59A0037673E /* UICollectionView+Gaze.swift in Sources */,
6B9DFA7023E88A630037673E /* InterpolableValues.swift in Sources */,
A9DE16FE23F48FD30094DB64 /* TextSuggestionController.swift in Sources */,
A9B6960B2433CCFD004E6960 /* EditCategoriesDefaultCollectionViewCell.swift in Sources */,
A91030B227E3BF6600281C97 /* VocableListCellContentView.swift in Sources */,
6BE7E9882459DFD5007B01F2 /* VocableNavigationBar.swift in Sources */,
6B5C490D245CB92700A4433C /* CategoryDetailViewController.swift in Sources */,
Expand Down Expand Up @@ -1246,7 +1203,6 @@
6B823BCB23F4ADE30099F65E /* Pulse.swift in Sources */,
6B5C49112460AEF900A4433C /* RootEditTextViewController.swift in Sources */,
A9CF2AEF242D44EE005633A7 /* TimingSensitivityViewController.swift in Sources */,
64B32593254B562B00023566 /* EditCategoryDetailTitleCollectionViewCell.swift in Sources */,
6459943E25895D9C0010EEFF /* SpeechRecognitionController.swift in Sources */,
4E014DAA27EA53BC00561FC8 /* NSRange+.swift in Sources */,
B8DA9DF423F30BD200FEBE19 /* VectorUtils.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,11 +144,18 @@ final class VocableListCellContentView: UIView, UIContentView {
}

private func updatePrimaryLabelButton(with configuration: VocableListContentConfiguration?) {
primaryLabelButton.contentHorizontalAlignment = configuration?.primaryContentHorizontalAlignment ?? .center
primaryLabelButton.setTrailingAccessory(configuration?.accessory)
primaryLabelButton.setAttributedTitle(configuration?.attributedTitle, for: .normal)
primaryLabelButton.accessibilityLabel = configuration?.accessibilityLabel
primaryLabelButton.accessibilityIdentifier = configuration?.accessibilityIdentifier
primaryLabelButton.addTarget(self, action: #selector(handlePrimaryActionSelection(_:)), for: .primaryActionTriggered)
primaryLabelButton.isEnabled = configuration?.isPrimaryActionEnabled ?? true

if let backgroundColor = configuration?.primaryBackgroundColor {
primaryLabelButton.setFillColor(backgroundColor, for: .normal)
primaryLabelButton.setFillColor(backgroundColor.disabled(blending: .collectionViewBackgroundColor), for: .disabled)
}
}

private func updateLeadingActionAccessoryButtons(with configuration: VocableListContentConfiguration?) {
Expand Down
11 changes: 11 additions & 0 deletions Vocable/Common/VocableListCell/VocableListCellPrimaryButton.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@ final class VocableListCellPrimaryButton: GazeableButton {
private var trailingAccessoryViewLayoutGuide = UILayoutGuide()
private(set) var trailingAccessoryView: UIView?

override var isEnabled: Bool {
didSet {
trailingAccessoryView?.alpha = isEnabled ? 1 : 0.5
}
}

init() {
super.init(frame: .zero)
commonInit()
}

override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ struct VocableListContentConfiguration: UIContentConfiguration, Equatable {
var actionsConfiguration: ActionsConfiguration
var accessibilityIdentifier: String?
var accessibilityLabel: String?
var primaryBackgroundColor: UIColor = .defaultCellBackgroundColor
var primaryContentHorizontalAlignment: UIControl.ContentHorizontalAlignment = .leading

var traitCollectionChangeHandler: TraitCollectionChangeHandler?

Expand Down Expand Up @@ -95,6 +97,14 @@ struct VocableListContentConfiguration: UIContentConfiguration, Equatable {
self.accessibilityIdentifier = accessibilityIdentifier
}

static func disclosureCellConfiguration(withTitle title: String, action: @escaping () -> Void) -> VocableListContentConfiguration {
.init(title: title, accessory: .disclosureIndicator(), primaryAction: action)
}

static func toggleCellConfiguration(withTitle title: String, isOn: Bool, action: @escaping () -> Void) -> VocableListContentConfiguration {
.init(title: title, accessory: .toggle(isOn: isOn), primaryAction: action)
}

func makeContentView() -> UIView & UIContentView {
VocableListCellContentView(configuration: self)
}
Expand Down
Loading

0 comments on commit 61f1c86

Please sign in to comment.