Browse Source

Development

master
Dwayne Harris 6 years ago
parent
commit
5cdb221237
  1. 8
      elpha-ios.xcodeproj/project.pbxproj
  2. 126
      elpha-ios/AttachmentsManager.swift
  3. 30
      elpha-ios/Base.lproj/Main.storyboard
  4. 8
      elpha-ios/TimelineTableViewController.swift

8
elpha-ios.xcodeproj/project.pbxproj

@ -20,7 +20,7 @@
157405B42151A93E00EEAAEB /* InstancesDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157405B32151A93E00EEAAEB /* InstancesDataManager.swift */; };
157405D1215890D700EEAAEB /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 157405C3215890BC00EEAAEB /* Alamofire.framework */; };
1574147321696DB400C841BD /* AttachmentsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1574147221696DB400C841BD /* AttachmentsView.swift */; };
1574148D2169AD0100C841BD /* AttachmentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1574148C2169AD0100C841BD /* AttachmentManager.swift */; };
1574148D2169AD0100C841BD /* AttachmentsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1574148C2169AD0100C841BD /* AttachmentsManager.swift */; };
159026AE2162CF5600D362DD /* TimelineTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 159026AD2162CF5600D362DD /* TimelineTableViewCell.swift */; };
159026D02163069600D362DD /* Date+TimeAgo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 159026CF2163069600D362DD /* Date+TimeAgo.swift */; };
159048AF214F5015004F4014 /* InstancesTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 159048AE214F5015004F4014 /* InstancesTableViewCell.swift */; };
@ -283,7 +283,7 @@
157405B32151A93E00EEAAEB /* InstancesDataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesDataManager.swift; sourceTree = "<group>"; };
157405B7215890BC00EEAAEB /* Alamofire.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Alamofire.xcodeproj; path = Frameworks/Alamofire/Alamofire.xcodeproj; sourceTree = "<group>"; };
1574147221696DB400C841BD /* AttachmentsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentsView.swift; sourceTree = "<group>"; };
1574148C2169AD0100C841BD /* AttachmentManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentManager.swift; sourceTree = "<group>"; };
1574148C2169AD0100C841BD /* AttachmentsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentsManager.swift; sourceTree = "<group>"; };
159026AD2162CF5600D362DD /* TimelineTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineTableViewCell.swift; sourceTree = "<group>"; };
159026CF2163069600D362DD /* Date+TimeAgo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+TimeAgo.swift"; sourceTree = "<group>"; };
159048AE214F5015004F4014 /* InstancesTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesTableViewCell.swift; sourceTree = "<group>"; };
@ -356,7 +356,7 @@
151AD4AC2166DD0200F07403 /* Managers */ = {
isa = PBXGroup;
children = (
1574148C2169AD0100C841BD /* AttachmentManager.swift */,
1574148C2169AD0100C841BD /* AttachmentsManager.swift */,
15960E7B213272CD00C38CE9 /* AuthenticationManager.swift */,
15A79B42215EB959007A326E /* CoreDataManager.swift */,
157405B32151A93E00EEAAEB /* InstancesDataManager.swift */,
@ -798,7 +798,7 @@
15960E7321322BC700C38CE9 /* KeychainItemAccessibility.swift in Sources */,
159026D02163069600D362DD /* Date+TimeAgo.swift in Sources */,
15A79B43215EB959007A326E /* CoreDataManager.swift in Sources */,
1574148D2169AD0100C841BD /* AttachmentManager.swift in Sources */,
1574148D2169AD0100C841BD /* AttachmentsManager.swift in Sources */,
15960E822136668500C38CE9 /* TimelinesNavigationController.swift in Sources */,
159026AE2162CF5600D362DD /* TimelineTableViewCell.swift in Sources */,
1574147321696DB400C841BD /* AttachmentsView.swift in Sources */,

126
elpha-ios/AttachmentManager.swift → elpha-ios/AttachmentsManager.swift

@ -9,13 +9,18 @@
import AlamofireImage
import UIKit
class AttachmentManager {
class AttachmentsManager {
static func setupAttachmentsView(_ view: AttachmentsView, withAttachments attachments: NSOrderedSet?) {
guard let attachments = attachments, attachments.count > 0 else {
return
}
let placeholderImage = UIImage(named: "Help")
let halfWidth = (view.frame.width / 2) - 2
for subview in view.subviews as [UIView] {
subview.removeFromSuperview()
}
switch attachments.count {
case 0:
@ -41,10 +46,10 @@ class AttachmentManager {
view.addConstraint(getTrailingConstraint(from: imageView, to: view))
view.addConstraint(getTopConstraint(from: imageView, to: view))
view.addConstraint(getBottomConstraint(from: imageView, to: view))
view.addConstraint(getWidthConstraint(view: imageView, width: view.frame.width))
view.addConstraint(getHeightConstraint(view: imageView, height: view.frame.width))
imageView.addConstraint(getWidthConstraint(view: imageView, width: view.frame.width))
imageView.addConstraint(getHeightConstraint(view: imageView, height: view.frame.width))
case 2:
let filter = AspectScaledToFillSizeFilter(size: CGSize(width: (view.frame.width / 2) - 2, height: view.frame.width))
let filter = AspectScaledToFillSizeFilter(size: CGSize(width: halfWidth, height: view.frame.width))
let firstImageView = UIImageView()
let secondImageView = UIImageView()
@ -68,15 +73,19 @@ class AttachmentManager {
view.addSubview(firstImageView)
view.addSubview(secondImageView)
firstImageView.translatesAutoresizingMaskIntoConstraints = false
secondImageView.translatesAutoresizingMaskIntoConstraints = false
[firstImageView, secondImageView].forEach { imageView in
view.addConstraint(getLeadingConstraint(from: imageView, to: view))
view.addConstraint(getTrailingConstraint(from: imageView, to: view))
view.addConstraint(getTopConstraint(from: imageView, to: view))
view.addConstraint(getBottomConstraint(from: imageView, to: view))
view.addConstraint(getHeightConstraint(view: imageView, height: view.frame.width))
view.addConstraint(getWidthConstraint(view: imageView, width: (view.frame.width / 2) - 2))
imageView.addConstraint(getHeightConstraint(view: imageView, height: view.frame.width))
imageView.addConstraint(getWidthConstraint(view: imageView, width: halfWidth))
}
/*
let betweenConstraint = NSLayoutConstraint(
item: firstImageView,
attribute: NSLayoutConstraint.Attribute.trailing,
@ -88,9 +97,8 @@ class AttachmentManager {
)
view.addConstraint(betweenConstraint)
*/
case 3:
let halfWidth = (view.frame.width / 2) - 2
let primaryFilter = AspectScaledToFillSizeFilter(size: CGSize(width: halfWidth, height: view.frame.width))
let secondaryFilter = AspectScaledToFillSizeFilter(size: CGSize(width: halfWidth, height: halfWidth))
@ -124,55 +132,25 @@ class AttachmentManager {
view.addSubview(secondImageView)
view.addSubview(thirdImageView)
firstImageView.translatesAutoresizingMaskIntoConstraints = false
secondImageView.translatesAutoresizingMaskIntoConstraints = false
thirdImageView.translatesAutoresizingMaskIntoConstraints = false
view.addConstraint(getLeadingConstraint(from: firstImageView, to: view))
view.addConstraint(getTopConstraint(from: firstImageView, to: view))
view.addConstraint(getBottomConstraint(from: firstImageView, to: view))
view.addConstraint(getHeightConstraint(view: firstImageView, height: view.frame.width))
view.addConstraint(getWidthConstraint(view: firstImageView, width: halfWidth))
firstImageView.addConstraint(getHeightConstraint(view: firstImageView, height: view.frame.width))
firstImageView.addConstraint(getWidthConstraint(view: firstImageView, width: halfWidth))
view.addConstraint(getTopConstraint(from: secondImageView, to: view))
view.addConstraint(getBottomConstraint(from: thirdImageView, to: view))
[secondImageView, thirdImageView].forEach { imageView in
view.addConstraint(getTrailingConstraint(from: imageView, to: view))
view.addConstraint(getHeightConstraint(view: imageView, height: halfWidth))
view.addConstraint(getWidthConstraint(view: imageView, width: halfWidth))
imageView.addConstraint(getHeightConstraint(view: imageView, height: halfWidth))
imageView.addConstraint(getWidthConstraint(view: imageView, width: halfWidth))
}
let firstSecondConstraint = NSLayoutConstraint(
item: firstImageView,
attribute: NSLayoutConstraint.Attribute.trailing,
relatedBy: NSLayoutConstraint.Relation.equal,
toItem: secondImageView,
attribute: NSLayoutConstraint.Attribute.leading,
multiplier: 1,
constant: 4
)
let firstThirdConstraint = NSLayoutConstraint(
item: firstImageView,
attribute: NSLayoutConstraint.Attribute.trailing,
relatedBy: NSLayoutConstraint.Relation.equal,
toItem: thirdImageView,
attribute: NSLayoutConstraint.Attribute.leading,
multiplier: 1,
constant: 4
)
let secondThirdConstraint = NSLayoutConstraint(
item: secondImageView,
attribute: NSLayoutConstraint.Attribute.bottom,
relatedBy: NSLayoutConstraint.Relation.equal,
toItem: thirdImageView,
attribute: NSLayoutConstraint.Attribute.top,
multiplier: 1,
constant: 4
)
view.addConstraints([firstSecondConstraint, firstThirdConstraint, secondThirdConstraint])
default:
let halfWidth = (view.frame.width / 2) - 2
let filter = AspectScaledToFillSizeFilter(size: CGSize(width: halfWidth, height: halfWidth))
let firstImageView = UIImageView()
@ -213,9 +191,14 @@ class AttachmentManager {
view.addSubview(thirdImageView)
view.addSubview(fourthImageView)
firstImageView.translatesAutoresizingMaskIntoConstraints = false
secondImageView.translatesAutoresizingMaskIntoConstraints = false
thirdImageView.translatesAutoresizingMaskIntoConstraints = false
fourthImageView.translatesAutoresizingMaskIntoConstraints = false
[firstImageView, secondImageView, thirdImageView, fourthImageView].forEach { imageView in
view.addConstraint(getHeightConstraint(view: imageView, height: halfWidth))
view.addConstraint(getWidthConstraint(view: imageView, width: halfWidth))
imageView.addConstraint(getHeightConstraint(view: imageView, height: halfWidth))
imageView.addConstraint(getWidthConstraint(view: imageView, width: halfWidth))
}
[firstImageView, secondImageView].forEach { imageView in
@ -233,53 +216,6 @@ class AttachmentManager {
[secondImageView, fourthImageView].forEach { imageView in
view.addConstraint(getTrailingConstraint(from: imageView, to: view))
}
let firstBetweenConstraint = NSLayoutConstraint(
item: firstImageView,
attribute: NSLayoutConstraint.Attribute.trailing,
relatedBy: NSLayoutConstraint.Relation.equal,
toItem: secondImageView,
attribute: NSLayoutConstraint.Attribute.leading,
multiplier: 1,
constant: 4
)
let secondBetweenConstraint = NSLayoutConstraint(
item: secondImageView,
attribute: NSLayoutConstraint.Attribute.bottom,
relatedBy: NSLayoutConstraint.Relation.equal,
toItem: fourthImageView,
attribute: NSLayoutConstraint.Attribute.top,
multiplier: 1,
constant: 4
)
let thirdBetweenConstraint = NSLayoutConstraint(
item: fourthImageView,
attribute: NSLayoutConstraint.Attribute.leading,
relatedBy: NSLayoutConstraint.Relation.equal,
toItem: thirdImageView,
attribute: NSLayoutConstraint.Attribute.trailing,
multiplier: 1,
constant: 4
)
let fourthBetweenConstraint = NSLayoutConstraint(
item: thirdImageView,
attribute: NSLayoutConstraint.Attribute.top,
relatedBy: NSLayoutConstraint.Relation.equal,
toItem: firstImageView,
attribute: NSLayoutConstraint.Attribute.bottom,
multiplier: 1,
constant: 4
)
view.addConstraints([
firstBetweenConstraint,
secondBetweenConstraint,
thirdBetweenConstraint,
fourthBetweenConstraint,
])
}
}

30
elpha-ios/Base.lproj/Main.storyboard

@ -530,6 +530,34 @@
</objects>
<point key="canvasLocation" x="0.0" y="0.0"/>
</scene>
<!--Table View Controller-->
<scene sceneID="xaH-fS-tqR">
<objects>
<tableViewController id="tj3-Qd-mF6" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="O6N-C9-KlT">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" id="FJu-OY-Oh3">
<rect key="frame" x="0.0" y="28" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="FJu-OY-Oh3" id="Cgh-z5-gL3">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="tj3-Qd-mF6" id="TeQ-vs-0qB"/>
<outlet property="delegate" destination="tj3-Qd-mF6" id="qLd-Yg-iTR"/>
</connections>
</tableView>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="TpN-6y-NY1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1635" y="-992"/>
</scene>
<!--Timelines-->
<scene sceneID="6LG-kd-yOU">
<objects>
@ -776,7 +804,7 @@
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="249" text="Content" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VmZ-Cs-XbK">
<rect key="frame" x="8" y="78" width="398" height="43"/>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="40" id="THV-62-aTc"/>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="THV-62-aTc"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.090196078430000007" green="0.047058823530000002" blue="0.28627450980000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>

8
elpha-ios/TimelineTableViewController.swift

@ -95,9 +95,11 @@ class TimelineTableViewController: UITableViewController {
let predicate = NSPredicate(format: "statusID != %@", status.id!)
timeline.mutableSetValue(forKey: "boundaries").filter(using: predicate)
}
status.addToTimelines(timeline)
}
timeline.addToStatuses(NSSet(array: statuses))
// timeline.addToStatuses(NSSet(array: statuses))
CoreDataManager.shared.saveContext()
self.loading = false
@ -136,6 +138,7 @@ class TimelineTableViewController: UITableViewController {
}
}
/*
let request = NSFetchRequest<TimelineMO>(entityName: "Timeline")
request.predicate = NSPredicate(format: "name == %@", "Federated")
@ -148,6 +151,7 @@ class TimelineTableViewController: UITableViewController {
} catch {
print("\(error)")
}
*/
loading = true
@ -296,7 +300,7 @@ class TimelineTableViewController: UITableViewController {
if let attachments = status.attachments, attachments.count > 0 {
cell.attachmentsView.isHidden = false
AttachmentManager.setupAttachmentsView(cell.attachmentsView, withAttachments: attachments)
AttachmentsManager.setupAttachmentsView(cell.attachmentsView, withAttachments: attachments)
}
if let content = status.content {

Loading…
Cancel
Save