Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
PinYuanChen committed Aug 4, 2024
2 parents 2cbfc70 + e1e3636 commit 19e1ad5
Show file tree
Hide file tree
Showing 27 changed files with 334 additions and 91 deletions.
16 changes: 4 additions & 12 deletions MorseCode.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
objects = {

/* Begin PBXBuildFile section */
9B30F6492C5F52FF00E70CCB /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B30F6482C5F52FF00E70CCB /* Constants.swift */; };
9B32A5582BF6135000E8CCD4 /* LoadMorseRecordUseCaseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B32A5572BF6135000E8CCD4 /* LoadMorseRecordUseCaseTests.swift */; };
9B32A55A2BF6168D00E8CCD4 /* MorseRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B32A5592BF6168D00E8CCD4 /* MorseRecord.swift */; };
9B372BD62C52473C0061A5C2 /* CacheMorseRecordUseCaseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B372BD52C52473C0061A5C2 /* CacheMorseRecordUseCaseTests.swift */; };
Expand All @@ -23,7 +24,6 @@
9BB03D502BFC895E006C00B7 /* CodableMorseRecordStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB03D4F2BFC895E006C00B7 /* CodableMorseRecordStore.swift */; };
9BB5FFDF2B34E382000B7C30 /* MorseCodeConvertorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB5FFDE2B34E382000B7C30 /* MorseCodeConvertorTests.swift */; };
9BB5FFE42B34E455000B7C30 /* XCTestCase+MemoryLeakTracking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB5FFE32B34E455000B7C30 /* XCTestCase+MemoryLeakTracking.swift */; };
9BB5FFE92B34EB15000B7C30 /* MorseCodeDict.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BB5FFE82B34EB15000B7C30 /* MorseCodeDict.swift */; };
CD24FC432B3C1A34005F6959 /* FlashManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD24FC422B3C1A34005F6959 /* FlashManagerTests.swift */; };
CD74A6DD2B3E704400BB8E6C /* FlashManagerPrototype.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD74A6DC2B3E704400BB8E6C /* FlashManagerPrototype.swift */; };
CDD04C062B357EAC006D29B7 /* MorseCodeConvertorPrototype.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDD04C052B357EAC006D29B7 /* MorseCodeConvertorPrototype.swift */; };
Expand All @@ -43,6 +43,7 @@
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
9B30F6482C5F52FF00E70CCB /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
9B32A5572BF6135000E8CCD4 /* LoadMorseRecordUseCaseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadMorseRecordUseCaseTests.swift; sourceTree = "<group>"; };
9B32A5592BF6168D00E8CCD4 /* MorseRecord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseRecord.swift; sourceTree = "<group>"; };
9B372BD52C52473C0061A5C2 /* CacheMorseRecordUseCaseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheMorseRecordUseCaseTests.swift; sourceTree = "<group>"; };
Expand All @@ -60,7 +61,6 @@
9BB03D4F2BFC895E006C00B7 /* CodableMorseRecordStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodableMorseRecordStore.swift; sourceTree = "<group>"; };
9BB5FFDE2B34E382000B7C30 /* MorseCodeConvertorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseCodeConvertorTests.swift; sourceTree = "<group>"; };
9BB5FFE32B34E455000B7C30 /* XCTestCase+MemoryLeakTracking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCTestCase+MemoryLeakTracking.swift"; sourceTree = "<group>"; };
9BB5FFE82B34EB15000B7C30 /* MorseCodeDict.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseCodeDict.swift; sourceTree = "<group>"; };
CD24FC422B3C1A34005F6959 /* FlashManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlashManagerTests.swift; sourceTree = "<group>"; };
CD74A6DC2B3E704400BB8E6C /* FlashManagerPrototype.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlashManagerPrototype.swift; sourceTree = "<group>"; };
CDD04C052B357EAC006D29B7 /* MorseCodeConvertorPrototype.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseCodeConvertorPrototype.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -162,6 +162,7 @@
9B372BD72C5249310061A5C2 /* MorseFlash */,
9B10B18A2BF1FED900DD0233 /* MorseCache */,
CDD04C042B357E09006D29B7 /* MorseFeature */,
9B30F6482C5F52FF00E70CCB /* Constants.swift */,
);
path = MorseCode;
sourceTree = "<group>";
Expand Down Expand Up @@ -211,22 +212,13 @@
path = Helpers;
sourceTree = "<group>";
};
CDD04BE92B355B06006D29B7 /* Resources */ = {
isa = PBXGroup;
children = (
9BB5FFE82B34EB15000B7C30 /* MorseCodeDict.swift */,
);
path = Resources;
sourceTree = "<group>";
};
CDD04C042B357E09006D29B7 /* MorseFeature */ = {
isa = PBXGroup;
children = (
9B32A5592BF6168D00E8CCD4 /* MorseRecord.swift */,
9BB03D4A2BFB8057006C00B7 /* MorseRecordLoaderPrototype.swift */,
CDD04C052B357EAC006D29B7 /* MorseCodeConvertorPrototype.swift */,
CD74A6DC2B3E704400BB8E6C /* FlashManagerPrototype.swift */,
CDD04BE92B355B06006D29B7 /* Resources */,
);
path = MorseFeature;
sourceTree = "<group>";
Expand Down Expand Up @@ -359,11 +351,11 @@
files = (
9BB03D502BFC895E006C00B7 /* CodableMorseRecordStore.swift in Sources */,
9BB03D422BFB3E37006C00B7 /* LocalMorseRecord.swift in Sources */,
9BB5FFE92B34EB15000B7C30 /* MorseCodeDict.swift in Sources */,
9B32A55A2BF6168D00E8CCD4 /* MorseRecord.swift in Sources */,
9BB03D402BF763AE006C00B7 /* MorseRecordStore.swift in Sources */,
CDD04C062B357EAC006D29B7 /* MorseCodeConvertorPrototype.swift in Sources */,
CD74A6DD2B3E704400BB8E6C /* FlashManagerPrototype.swift in Sources */,
9B30F6492C5F52FF00E70CCB /* Constants.swift in Sources */,
9B372BDB2C524A450061A5C2 /* MorseConvertor.swift in Sources */,
CDD90F802B3D4A9000A89614 /* FlashManager.swift in Sources */,
9BB03D3E2BF76368006C00B7 /* LocalMorseRecordLoader.swift in Sources */,
Expand Down
63 changes: 63 additions & 0 deletions MorseCode/Constants.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
//
// Constants.swift
// MorseCode
//
// Created by Champion Chen on 2024/8/4.
//

import Foundation

public let validCharacters = Array("ABCDEFGHIJKLMNOPQRSTUVWXYZ").map { String($0) }

public let validNumbers = Array(0...9).map { String($0) }

public let validSigns = [".", ",", "?", "!", "-", "/", "@", "(", ")"]

public let morseCodeDict = [
"0": "-----",
"1": ".----",
"2": "..---",
"3": "...--",
"4": "....-",
"5": ".....",
"6": "-....",
"7": "--...",
"8": "---..",
"9": "----.",
"A": ".-",
"B": "-...",
"C": "-.-.",
"D": "-..",
"E": ".",
"F": "..-.",
"G": "--.",
"H": "....",
"I": "..",
"J": ".---",
"K": "-.-",
"L": ".-..",
"M": "--",
"N": "-.",
"O": "---",
"P": ".--.",
"Q": "--.-",
"R": ".-.",
"S": "...",
"T": "-",
"U": "..-",
"V": "...-",
"W": ".--",
"X": "-..-",
"Y": "-.--",
"Z": "--..",
".": ".-.-.-",
",": "--..--",
"?": "..--..",
"!": "-.-.--",
"-": "-....-",
"/": "-..-.",
"@": ".--.-.",
"(": "-.--.",
")": "-.--.-",
" ": " "
]
2 changes: 1 addition & 1 deletion MorseCode/MorseConvertor/MorseConvertor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class MorseConvertor: MorseCodeConvertorPrototype {
let shortPauseSpace = " "
let longPauseSpace = " "

for char in input.lowercased() {
for char in input.uppercased() {
guard let mCode = morseCodeDict["\(char)"] else {
continue
}
Expand Down
57 changes: 0 additions & 57 deletions MorseCode/MorseFeature/Resources/MorseCodeDict.swift

This file was deleted.

60 changes: 52 additions & 8 deletions MorseCodeApp/MorseCodeApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@
9B10B1942BF490EA00DD0233 /* MorseCodePresenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B10B1932BF490EA00DD0233 /* MorseCodePresenterTests.swift */; };
9B10B1982BF4B24000DD0233 /* LocalizationHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B10B1972BF4B24000DD0233 /* LocalizationHelper.swift */; };
9B10B1992BF4B59300DD0233 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9B10B19A2BF4B59300DD0233 /* LaunchScreen.storyboard */; };
9B30F6442C5F31A100E70CCB /* MorseTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B30F6432C5F31A100E70CCB /* MorseTableViewController.swift */; };
9B30F6462C5F3AB400E70CCB /* MorseTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B30F6452C5F3AB400E70CCB /* MorseTableViewCell.swift */; };
9B30F64D2C5F60D800E70CCB /* MorseTableViewControllerSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B30F64C2C5F60D800E70CCB /* MorseTableViewControllerSnapshotTests.swift */; };
9B30F6502C5F625B00E70CCB /* MorseTableViewController_dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B30F64E2C5F625B00E70CCB /* MorseTableViewController_dark.png */; };
9B30F6512C5F625B00E70CCB /* MorseTableViewController_light.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B30F64F2C5F625B00E70CCB /* MorseTableViewController_light.png */; };
9B32A5422BF5A23A00E8CCD4 /* XCTestCase+Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B32A5412BF5A23A00E8CCD4 /* XCTestCase+Snapshot.swift */; };
9B32A5442BF5A26C00E8CCD4 /* UIViewController+Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B32A5432BF5A26C00E8CCD4 /* UIViewController+Snapshot.swift */; };
9B32A54F2BF5A64300E8CCD4 /* MorseCodeViewController_extraExtraExtraLarge.png in Resources */ = {isa = PBXBuildFile; fileRef = 9B32A54C2BF5A64300E8CCD4 /* MorseCodeViewController_extraExtraExtraLarge.png */; };
Expand Down Expand Up @@ -84,6 +89,11 @@
9B10B1932BF490EA00DD0233 /* MorseCodePresenterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseCodePresenterTests.swift; sourceTree = "<group>"; };
9B10B1972BF4B24000DD0233 /* LocalizationHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationHelper.swift; sourceTree = "<group>"; };
9B10B19A2BF4B59300DD0233 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
9B30F6432C5F31A100E70CCB /* MorseTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseTableViewController.swift; sourceTree = "<group>"; };
9B30F6452C5F3AB400E70CCB /* MorseTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseTableViewCell.swift; sourceTree = "<group>"; };
9B30F64C2C5F60D800E70CCB /* MorseTableViewControllerSnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MorseTableViewControllerSnapshotTests.swift; sourceTree = "<group>"; };
9B30F64E2C5F625B00E70CCB /* MorseTableViewController_dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MorseTableViewController_dark.png; sourceTree = "<group>"; };
9B30F64F2C5F625B00E70CCB /* MorseTableViewController_light.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MorseTableViewController_light.png; sourceTree = "<group>"; };
9B32A5412BF5A23A00E8CCD4 /* XCTestCase+Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Snapshot.swift"; sourceTree = "<group>"; };
9B32A5432BF5A26C00E8CCD4 /* UIViewController+Snapshot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Snapshot.swift"; sourceTree = "<group>"; };
9B32A54C2BF5A64300E8CCD4 /* MorseCodeViewController_extraExtraExtraLarge.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MorseCodeViewController_extraExtraExtraLarge.png; sourceTree = "<group>"; };
Expand Down Expand Up @@ -153,25 +163,25 @@
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
9B10B18C2BF48E2900DD0233 /* Main */ = {
9B10B18C2BF48E2900DD0233 /* Convert */ = {
isa = PBXGroup;
children = (
9B10B18E2BF48E6C00DD0233 /* Presenter */,
CD4ED4EB2B3C00D600197428 /* Views */,
CD4ED4EA2B3C00C500197428 /* ViewControllers */,
);
path = Main;
path = Convert;
sourceTree = "<group>";
};
9B10B18D2BF48E5200DD0233 /* Main */ = {
9B10B18D2BF48E5200DD0233 /* Convert */ = {
isa = PBXGroup;
children = (
9B32A54B2BF5A62200E8CCD4 /* snapshots */,
CD00A98E2B3A74F60042E9F6 /* MorseCodeViewControllerSnapshotTests.swift */,
9B10B1932BF490EA00DD0233 /* MorseCodePresenterTests.swift */,
9BFED5A72C5A2A4600B6E203 /* MorseCodeViewControllerTests.swift */,
);
path = Main;
path = Convert;
sourceTree = "<group>";
};
9B10B18E2BF48E6C00DD0233 /* Presenter */ = {
Expand All @@ -182,6 +192,33 @@
path = Presenter;
sourceTree = "<group>";
};
9B30F6422C5F317D00E70CCB /* Table */ = {
isa = PBXGroup;
children = (
9B30F6432C5F31A100E70CCB /* MorseTableViewController.swift */,
9B30F6452C5F3AB400E70CCB /* MorseTableViewCell.swift */,
);
path = Table;
sourceTree = "<group>";
};
9B30F64A2C5F606400E70CCB /* Table */ = {
isa = PBXGroup;
children = (
9B30F64B2C5F607600E70CCB /* snapshots */,
9B30F64C2C5F60D800E70CCB /* MorseTableViewControllerSnapshotTests.swift */,
);
path = Table;
sourceTree = "<group>";
};
9B30F64B2C5F607600E70CCB /* snapshots */ = {
isa = PBXGroup;
children = (
9B30F64E2C5F625B00E70CCB /* MorseTableViewController_dark.png */,
9B30F64F2C5F625B00E70CCB /* MorseTableViewController_light.png */,
);
path = snapshots;
sourceTree = "<group>";
};
9B32A54B2BF5A62200E8CCD4 /* snapshots */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -327,7 +364,8 @@
9BFED59B2C593D4200B6E203 /* MainQueueDispatchDecorator.swift */,
9BFED5AD2C5B403800B6E203 /* WeakRefVirtualProxy.swift */,
9B3E83D82BFF446600A17D12 /* MainTabBar */,
9B10B18C2BF48E2900DD0233 /* Main */,
9B30F6422C5F317D00E70CCB /* Table */,
9B10B18C2BF48E2900DD0233 /* Convert */,
9B3E83D22BFF431F00A17D12 /* Records */,
CD00A9982B3A7B950042E9F6 /* Extensions */,
CDD10AC62B397F3D008ED95F /* Assets.xcassets */,
Expand All @@ -351,7 +389,8 @@
isa = PBXGroup;
children = (
CD00A9892B3A74D40042E9F6 /* Helpers */,
9B10B18D2BF48E5200DD0233 /* Main */,
9B10B18D2BF48E5200DD0233 /* Convert */,
9B30F64A2C5F606400E70CCB /* Table */,
9B9123D02C07311300F8D031 /* Records */,
9BFED59D2C59ECC300B6E203 /* LocalizationTests.swift */,
);
Expand Down Expand Up @@ -464,10 +503,12 @@
files = (
9BFED59A2C593B5E00B6E203 /* RecordsViewController_empty_dark.png in Resources */,
9B32A5512BF5A64300E8CCD4 /* MorseCodeViewController_dark.png in Resources */,
9B30F6512C5F625B00E70CCB /* MorseTableViewController_light.png in Resources */,
9BE8C3342C52C2DB00D0CF1F /* RecordsViewController_light.png in Resources */,
9BFED5982C593B5700B6E203 /* RecordsViewController_empty_light.png in Resources */,
9B32A54F2BF5A64300E8CCD4 /* MorseCodeViewController_extraExtraExtraLarge.png in Resources */,
9B32A5502BF5A64300E8CCD4 /* MorseCodeViewController_light.png in Resources */,
9B30F6502C5F625B00E70CCB /* MorseTableViewController_dark.png in Resources */,
9BE8C3332C52C2DB00D0CF1F /* RecordsViewController_dark.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -481,13 +522,15 @@
files = (
CDD10ABE2B397F3C008ED95F /* AppDelegate.swift in Sources */,
9BFED59C2C593D4200B6E203 /* MainQueueDispatchDecorator.swift in Sources */,
9B30F6462C5F3AB400E70CCB /* MorseTableViewCell.swift in Sources */,
9BFED5AE2C5B403800B6E203 /* WeakRefVirtualProxy.swift in Sources */,
9B9123C82C05B33000F8D031 /* MorseRecordCell.swift in Sources */,
9B3E83DE2BFF481900A17D12 /* MainTabBarController.swift in Sources */,
9B3E83D72BFF437400A17D12 /* RecordsViewController.swift in Sources */,
9B9123CA2C05B7D000F8D031 /* UITableView+Ext.swift in Sources */,
CD00A99A2B3A7BC30042E9F6 /* UIColor+Ext.swift in Sources */,
CD4ED4F12B3C04E800197428 /* CustomButton.swift in Sources */,
9B30F6442C5F31A100E70CCB /* MorseTableViewController.swift in Sources */,
CD00A9882B3A74B90042E9F6 /* MorseCodeViewController.swift in Sources */,
9B3E83DA2BFF44B200A17D12 /* TabBarItemType.swift in Sources */,
9B9123D42C084D6100F8D031 /* RecordsPresenter.swift in Sources */,
Expand Down Expand Up @@ -517,6 +560,7 @@
9B32A5422BF5A23A00E8CCD4 /* XCTestCase+Snapshot.swift in Sources */,
9BFED5A82C5A2A4600B6E203 /* MorseCodeViewControllerTests.swift in Sources */,
CD00A98F2B3A74F60042E9F6 /* MorseCodeViewControllerSnapshotTests.swift in Sources */,
9B30F64D2C5F60D800E70CCB /* MorseTableViewControllerSnapshotTests.swift in Sources */,
9B9123D22C08412900F8D031 /* RecordsPresenterTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -696,7 +740,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.1.1;
MARKETING_VERSION = 2.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.pinyuanchen.MorseCodeApp;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down Expand Up @@ -727,7 +771,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.1.1;
MARKETING_VERSION = 2.2.0;
PRODUCT_BUNDLE_IDENTIFIER = com.pinyuanchen.MorseCodeApp;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
13 changes: 10 additions & 3 deletions MorseCodeApp/MorseCodeApp/MainTabBar/MainTabBarController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,16 @@ class MainTabBarController: UITabBarController {
required init(viewControllers: [UIViewController]) {
super.init(nibName: nil, bundle: nil)
setViewControllers(viewControllers, animated: false)
tabBar.backgroundColor = .bg1B262F
tabBar.tintColor = .txt5BC5A5
tabBar.unselectedItemTintColor = .white.withAlphaComponent(0.6)
let appearance = UITabBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = .bg1B262F
appearance.stackedLayoutAppearance.selected.iconColor = .txt5BC5A5
appearance.stackedLayoutAppearance.selected.titleTextAttributes = [.foregroundColor: UIColor.txt5BC5A5]
appearance.stackedLayoutAppearance.normal.iconColor = UIColor.white.withAlphaComponent(0.6)
appearance.stackedLayoutAppearance.normal.titleTextAttributes = [.foregroundColor: UIColor.white.withAlphaComponent(0.6)]

tabBar.standardAppearance = appearance
tabBar.scrollEdgeAppearance = appearance
}

@available(*, unavailable)
Expand Down
Loading

0 comments on commit 19e1ad5

Please sign in to comment.