spm: complex refactor, document of package

This commit is contained in:
Joe Mattiello
2023-03-10 19:23:32 -05:00
parent 1f2693bea6
commit 128b180c1f
40 changed files with 905 additions and 745 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +0,0 @@
//
// PackageConfigs.swift
// PackageConfigs
//
// Created by Joseph Mattiello on 03/02/23.
// Copyright © 2023 Joseph Mattiello. All rights reserved.
//
// Dummy
public final class PackageConfigs { }

View File

@@ -131,7 +131,7 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Qlg-m3-lXg">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<subviews>
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NEy-yr-cLS" customClass="AppBannerView" customModule="SideStore" customModuleProvider="target">
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NEy-yr-cLS" customClass="AppBannerView" customModule="SideStoreAppKit">
<rect key="frame" x="37" y="287" width="300" height="93"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</view>
@@ -660,7 +660,7 @@ World</string>
<rect key="frame" x="0.0" y="0.0" width="375" height="60"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mos-e4-dQ7" customClass="AppBannerView" customModule="SideStore" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mos-e4-dQ7" customClass="AppBannerView" customModule="SideStoreAppKit">
<rect key="frame" x="8" y="0.0" width="359" height="60"/>
</view>
</subviews>
@@ -816,7 +816,7 @@ World</string>
<rect key="frame" x="0.0" y="0.0" width="375" height="80"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1w8-fI-98T" customClass="AppBannerView" customModule="SideStore" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1w8-fI-98T" customClass="AppBannerView" customModule="SideStoreAppKit">
<rect key="frame" x="8" y="0.0" width="359" height="80"/>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
@@ -835,7 +835,7 @@ World</string>
</connections>
</collectionViewCell>
</cells>
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="Header" id="th0-G6-bRt" customClass="TextCollectionReusableView" customModule="SideStore" customModuleProvider="target">
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="Header" id="th0-G6-bRt" customClass="TextCollectionReusableView" customModule="SideStoreAppKit">
<rect key="frame" x="0.0" y="0.0" width="375" height="60"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
@@ -856,7 +856,7 @@ World</string>
<outlet property="textLabel" destination="83Z-Ih-nOW" id="xxM-HD-iJS"/>
</connections>
</collectionReusableView>
<collectionReusableView key="sectionFooterView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="Footer" id="xMh-lD-r6C" customClass="TextCollectionReusableView" customModule="SideStore" customModuleProvider="target">
<collectionReusableView key="sectionFooterView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="Footer" id="xMh-lD-r6C" customClass="TextCollectionReusableView" customModule="SideStoreAppKit">
<rect key="frame" x="0.0" y="170" width="375" height="50"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
@@ -962,7 +962,7 @@ World</string>
<rect key="frame" x="0.0" y="0.0" width="375" height="80"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LW1-CC-bWu" customClass="AppBannerView" customModule="SideStore" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LW1-CC-bWu" customClass="AppBannerView" customModule="SideStoreAppKit">
<rect key="frame" x="8" y="0.0" width="359" height="80"/>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
@@ -981,7 +981,7 @@ World</string>
</connections>
</collectionViewCell>
</cells>
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="Header" id="8N7-JY-mcA" customClass="TextCollectionReusableView" customModule="SideStore" customModuleProvider="target">
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="Header" id="8N7-JY-mcA" customClass="TextCollectionReusableView" customModule="SideStoreAppKit">
<rect key="frame" x="0.0" y="0.0" width="375" height="200"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>

View File

@@ -20,7 +20,7 @@
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="5gU-g3-Fsy">
<rect key="frame" x="16" y="0.0" width="343" height="369"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ziA-mP-AY2" customClass="AppBannerView" customModule="SideStore" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ziA-mP-AY2" customClass="AppBannerView" customModule="SideStoreAppKit">
<rect key="frame" x="0.0" y="0.0" width="343" height="88"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>

View File

@@ -30,7 +30,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="uYl-PH-DuP">
<rect key="frame" x="0.0" y="0.0" width="343" height="125"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Nop-pL-Icx" customClass="AppBannerView" customModule="SideStore" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Nop-pL-Icx" customClass="AppBannerView" customModule="SideStoreAppKit">
<rect key="frame" x="0.0" y="0.0" width="343" height="88"/>
<constraints>
<constraint firstAttribute="height" constant="88" id="EPP-7O-1Ad"/>

View File

@@ -8,6 +8,7 @@
import UIKit
@objc
final class PermissionCollectionViewCell: UICollectionViewCell {
@IBOutlet var button: UIButton!
@IBOutlet var textLabel: UILabel!
@@ -26,6 +27,7 @@ final class PermissionCollectionViewCell: UICollectionViewCell {
}
}
@objc
final class AppContentTableViewCell: UITableViewCell {
override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize {
// Ensure cell is laid out so it will report correct size.

View File

@@ -13,7 +13,9 @@ import RoxasUIKit
import Nuke
final class AppViewController: UIViewController {
@objc
@objcMembers
public final class AppViewController: UIViewController {
var app: StoreApp!
private var contentViewController: AppContentViewController!
@@ -46,11 +48,11 @@ final class AppViewController: UIViewController {
private var _preferredStatusBarStyle: UIStatusBarStyle = .default
override var preferredStatusBarStyle: UIStatusBarStyle {
public override var preferredStatusBarStyle: UIStatusBarStyle {
_preferredStatusBarStyle
}
override func viewDidLoad() {
public override func viewDidLoad() {
super.viewDidLoad()
navigationBarTitleView.sizeToFit()
@@ -123,7 +125,7 @@ final class AppViewController: UIViewController {
}
}
override func viewWillAppear(_ animated: Bool) {
public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
prepareBlur()
@@ -137,7 +139,7 @@ final class AppViewController: UIViewController {
}, completion: nil)
}
override func viewDidAppear(_ animated: Bool) {
public override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
_shouldResetLayout = true
@@ -145,7 +147,7 @@ final class AppViewController: UIViewController {
view.layoutIfNeeded()
}
override func viewWillDisappear(_ animated: Bool) {
public override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Guard against "dismissing" when presenting via 3D Touch pop.
@@ -164,7 +166,7 @@ final class AppViewController: UIViewController {
})
}
override func viewDidDisappear(_ animated: Bool) {
public override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
if navigationController == nil {
@@ -172,7 +174,7 @@ final class AppViewController: UIViewController {
}
}
override func prepare(for segue: UIStoryboardSegue, sender _: Any?) {
public override func prepare(for segue: UIStoryboardSegue, sender _: Any?) {
guard segue.identifier == "embedAppContentViewController" else { return }
contentViewController = segue.destination as? AppContentViewController
@@ -185,7 +187,7 @@ final class AppViewController: UIViewController {
}
}
override func viewDidLayoutSubviews() {
public override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if _shouldResetLayout {
@@ -311,7 +313,7 @@ final class AppViewController: UIViewController {
bannerView.backgroundEffectView.backgroundColor = .clear
}
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
public override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
_shouldResetLayout = true
}
@@ -496,7 +498,7 @@ private extension AppViewController {
}
extension AppViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_: UIScrollView) {
public func scrollViewDidScroll(_: UIScrollView) {
view.setNeedsLayout()
view.layoutIfNeeded()
}

View File

@@ -8,6 +8,7 @@
import UIKit
@objc
final class BannerCollectionViewCell: UICollectionViewCell {
private(set) var errorBadge: UIView?
@IBOutlet private(set) var bannerView: AppBannerView!

View File

@@ -8,7 +8,8 @@
import UIKit
class TextCollectionReusableView: UICollectionReusableView {
@objc
public class TextCollectionReusableView: UICollectionReusableView {
@IBOutlet var textLabel: UILabel!
@IBOutlet var topLayoutConstraint: NSLayoutConstraint!

View File

@@ -9,6 +9,7 @@
import RoxasUIKit
import UIKit
@objc
final class InstalledAppCollectionViewCell: UICollectionViewCell {
private(set) var deactivateBadge: UIView?
@@ -52,11 +53,13 @@ final class InstalledAppCollectionViewCell: UICollectionViewCell {
}
}
@objc
final class InstalledAppsCollectionFooterView: UICollectionReusableView {
@IBOutlet var textLabel: UILabel!
@IBOutlet var button: UIButton!
}
@objc
final class NoUpdatesCollectionViewCell: UICollectionViewCell {
@IBOutlet var blurView: UIVisualEffectView!
@@ -67,6 +70,7 @@ final class NoUpdatesCollectionViewCell: UICollectionViewCell {
}
}
@objc
final class UpdatesCollectionHeaderView: UICollectionReusableView {
let button = PillButton(type: .system)

View File

@@ -8,6 +8,7 @@
import UIKit
@objc
final class NewsCollectionViewCell: UICollectionViewCell {
@IBOutlet var titleLabel: UILabel!
@IBOutlet var captionLabel: UILabel!

View File

@@ -8,6 +8,7 @@
import UIKit
@objc
final class PatronCollectionViewCell: UICollectionViewCell {
@IBOutlet var textLabel: UILabel!
}

View File

@@ -1,5 +1,5 @@
//
// SharedTests.swift
// SideStoreSharedTests.swift
// SideStore
//
// Created by Joseph Mattiello on 2/28/23.
@@ -7,9 +7,9 @@
//
import XCTest
@testable import Shared
@testable import SideStoreShared
class SharedTests: XCTestCase {
class SideStoreSharedTests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.