Browse Source

Development

master
Dwayne Harris 6 years ago
parent
commit
1384fc6f12
  1. 4
      elpha-ios.xcodeproj/project.pbxproj
  2. 241
      elpha-ios/Base.lproj/Main.storyboard
  3. 5
      elpha-ios/MainStatusTableViewCell.swift
  4. 25
      elpha-ios/SecondViewController.swift
  5. 44
      elpha-ios/StatusTableViewController.swift
  6. 8
      elpha-ios/StatusView.swift
  7. 28
      elpha-ios/TimelineTableViewController.swift

4
elpha-ios.xcodeproj/project.pbxproj

@ -30,7 +30,6 @@
159026D02163069600D362DD /* Date+TimeAgo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 159026CF2163069600D362DD /* Date+TimeAgo.swift */; };
159048AF214F5015004F4014 /* InstancesTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 159048AE214F5015004F4014 /* InstancesTableViewCell.swift */; };
15960E5B213145E100C38CE9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15960E5A213145E100C38CE9 /* AppDelegate.swift */; };
15960E5F213145E100C38CE9 /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15960E5E213145E100C38CE9 /* SecondViewController.swift */; };
15960E62213145E100C38CE9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 15960E60213145E100C38CE9 /* Main.storyboard */; };
15960E64213145E200C38CE9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 15960E63213145E200C38CE9 /* Assets.xcassets */; };
15960E67213145E200C38CE9 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 15960E65213145E200C38CE9 /* LaunchScreen.storyboard */; };
@ -269,7 +268,6 @@
159048AE214F5015004F4014 /* InstancesTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesTableViewCell.swift; sourceTree = "<group>"; };
15960E57213145E100C38CE9 /* elpha-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "elpha-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; };
15960E5A213145E100C38CE9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
15960E5E213145E100C38CE9 /* SecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = "<group>"; };
15960E61213145E100C38CE9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
15960E63213145E200C38CE9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
15960E66213145E200C38CE9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
@ -464,7 +462,6 @@
15960E83213774FC00C38CE9 /* InstancesTableViewController.swift */,
157405A72150588A00EEAAEB /* InstanceViewController.swift */,
15960E792132387A00C38CE9 /* MainTabBarController.swift */,
15960E5E213145E100C38CE9 /* SecondViewController.swift */,
156FF0302174797E0074D9CA /* StatusTableViewController.swift */,
15960E812136668500C38CE9 /* TimelinesNavigationController.swift */,
15BB72A82171A6BE002F1FA4 /* TimelinesTableViewController.swift */,
@ -744,7 +741,6 @@
157405B42151A93E00EEAAEB /* InstancesDataManager.swift in Sources */,
156FF0312174797E0074D9CA /* StatusTableViewController.swift in Sources */,
15131EF4216DB8B90092B252 /* AccountTableViewController.swift in Sources */,
15960E5F213145E100C38CE9 /* SecondViewController.swift in Sources */,
15F998352162C0E8009E58DA /* MastodonDataManager.swift in Sources */,
15960E7A2132387A00C38CE9 /* MainTabBarController.swift in Sources */,
15960E7C213272CD00C38CE9 /* AuthenticationManager.swift in Sources */,

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

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="49e-Tb-3d3">
<device id="retina6_1" orientation="portrait">
<device id="retina5_9" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
@ -15,17 +15,17 @@
<objects>
<viewController id="Bed-pj-wE9" customClass="AuthenticateViewController" customModule="elpha_ios" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="ITR-hY-wTb">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enter a Mastodon Instance" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nru-sM-bKD">
<rect key="frame" x="10" y="417" width="394" height="21"/>
<rect key="frame" x="10" y="375" width="355" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.54117647058823526" green="0.4823529411764706" blue="0.68235294117647061" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="02G-kI-p4F">
<rect key="frame" x="10" y="458" width="394" height="40"/>
<rect key="frame" x="10" y="416" width="355" height="40"/>
<color key="backgroundColor" name="Secondary"/>
<color key="tintColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
@ -36,7 +36,7 @@
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" keyboardType="URL" smartDashesType="no" smartInsertDeleteType="no" smartQuotesType="no"/>
</textField>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="awW-03-3TB">
<rect key="frame" x="80" y="518" width="254" height="40"/>
<rect key="frame" x="80" y="476" width="215" height="40"/>
<color key="backgroundColor" name="Text"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="gl3-OE-jFa"/>
@ -49,10 +49,10 @@
</connections>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TUU-fE-p3J">
<rect key="frame" x="0.0" y="806" width="414" height="90"/>
<rect key="frame" x="0.0" y="722" width="375" height="90"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ABr-tX-v5Y">
<rect key="frame" x="151" y="30" width="112" height="30"/>
<rect key="frame" x="131.66666666666666" y="30" width="112" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="TdG-vz-Mhq"/>
</constraints>
@ -72,13 +72,13 @@
</constraints>
</view>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Logo" translatesAutoresizingMaskIntoConstraints="NO" id="sjL-eq-q6s">
<rect key="frame" x="0.0" y="192" width="414" height="175"/>
<rect key="frame" x="0.0" y="150" width="375" height="175"/>
<constraints>
<constraint firstAttribute="height" constant="175" id="O4x-xb-MbJ"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kt3-Mk-URm">
<rect key="frame" x="167.5" y="568" width="79" height="27"/>
<rect key="frame" x="148" y="526" width="79" height="27"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<state key="normal" title="Privacy Policy">
<color key="titleColor" name="Secondary"/>
@ -122,25 +122,25 @@
<objects>
<tableViewController id="bRx-56-pJs" customClass="InstancesTableViewController" customModule="elpha_ios" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="120" sectionHeaderHeight="28" sectionFooterHeight="28" id="MsU-Kh-W9V">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<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" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="InstancesTableViewCell" rowHeight="120" id="t5I-4e-rPV" customClass="InstancesTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="28" width="414" height="120"/>
<rect key="frame" x="0.0" y="28" width="375" height="120"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="t5I-4e-rPV" id="Awg-lg-91F">
<rect key="frame" x="0.0" y="0.0" width="376" height="119.5"/>
<rect key="frame" x="0.0" y="0.0" width="341" height="119.66666666666667"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Instance Placeholder" translatesAutoresizingMaskIntoConstraints="NO" id="3lE-eD-RSI">
<rect key="frame" x="20" y="11" width="100" height="98"/>
<rect key="frame" x="16" y="11" width="100" height="98"/>
<constraints>
<constraint firstAttribute="width" constant="100" id="Sf5-1G-8gX"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="scl-0p-jQO">
<rect key="frame" x="128" y="11" width="232" height="30"/>
<rect key="frame" x="124" y="11" width="201" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="v20-Wv-cjD"/>
</constraints>
@ -149,7 +149,7 @@
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EuF-dW-Uua">
<rect key="frame" x="205.5" y="46" width="53" height="46"/>
<rect key="frame" x="201.66666666666666" y="46" width="53" height="46"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Statuses" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GvU-C8-JYy">
<rect key="frame" x="0.0" y="8" width="53" height="16"/>
@ -179,10 +179,10 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ir1-Wt-maG">
<rect key="frame" x="128" y="46" width="37.5" height="46"/>
<rect key="frame" x="124.00000000000001" y="46" width="37.666666666666671" height="46"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Users" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="x17-3V-ix0">
<rect key="frame" x="0.0" y="8" width="37.5" height="16"/>
<rect key="frame" x="0.0" y="8" width="37.666666666666664" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="cyk-90-Tuq"/>
</constraints>
@ -191,7 +191,7 @@
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4fE-NE-pXx">
<rect key="frame" x="0.0" y="29" width="37.5" height="17"/>
<rect key="frame" x="0.0" y="29" width="37.666666666666664" height="17"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -264,23 +264,23 @@
<objects>
<viewController storyboardIdentifier="InstanceViewController" id="mhy-lU-rss" customClass="InstanceViewController" customModule="elpha_ios" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="PuO-1l-eXq">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UZR-kd-UxJ">
<rect key="frame" x="0.0" y="140" width="414" height="722"/>
<rect key="frame" x="0.0" y="140" width="375" height="638"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uMx-PR-Og0">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="snd-Ts-rva">
<rect key="frame" x="0.0" y="0.0" width="414" height="200"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="200"/>
<constraints>
<constraint firstAttribute="height" constant="200" id="VeP-LC-gew"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ztD-p8-9YN">
<rect key="frame" x="8" y="210" width="398" height="18"/>
<rect key="frame" x="8" y="210" width="359" height="18"/>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
<color key="textColor" name="Primary"/>
<nil key="highlightedColor"/>
@ -396,10 +396,10 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VCU-ri-lAU">
<rect key="frame" x="272" y="248" width="134" height="60"/>
<rect key="frame" x="272" y="248" width="95" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Uptime" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="U9l-Vd-tpX">
<rect key="frame" x="0.0" y="8" width="134" height="16"/>
<rect key="frame" x="0.0" y="8" width="95" height="16"/>
<constraints>
<constraint firstAttribute="height" constant="16" id="pdS-qH-b3B"/>
</constraints>
@ -408,7 +408,7 @@
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SL3-SA-8IS">
<rect key="frame" x="0.0" y="29" width="134" height="31"/>
<rect key="frame" x="0.0" y="29" width="95" height="31"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -487,40 +487,40 @@
<objects>
<tableViewController storyboardIdentifier="AccountTableViewController" id="X5f-Me-0D2" customClass="AccountTableViewController" customModule="elpha_ios" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="BA3-TV-fdC">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<view key="tableHeaderView" contentMode="scaleToFill" id="ygB-F6-Moa">
<rect key="frame" x="0.0" y="0.0" width="414" height="489"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="489"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="0jO-Rb-lcz">
<rect key="frame" x="0.0" y="0.0" width="414" height="200"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="200"/>
<constraints>
<constraint firstAttribute="height" constant="200" id="HWQ-9W-TLG"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="d7X-u9-Seq">
<rect key="frame" x="172" y="165" width="70" height="70"/>
<rect key="frame" x="152.66666666666666" y="165" width="70" height="70"/>
<constraints>
<constraint firstAttribute="height" constant="70" id="6Ni-kg-YNd"/>
<constraint firstAttribute="width" constant="70" id="ItK-PQ-Zdt"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Display Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MGa-Tw-aUj">
<rect key="frame" x="142.5" y="250" width="129.5" height="24"/>
<rect key="frame" x="122.66666666666667" y="250" width="129.66666666666663" height="24"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Username" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XET-LP-bGO">
<rect key="frame" x="174" y="279" width="66" height="17"/>
<rect key="frame" x="154.66666666666666" y="279" width="66" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="d8Z-vZ-agH">
<rect key="frame" x="20" y="311" width="374" height="50"/>
<rect key="frame" x="20" y="311" width="335" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="a6x-gd-oBT"/>
</constraints>
@ -529,16 +529,16 @@
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="D5v-MR-CuQ">
<rect key="frame" x="20" y="376" width="118" height="65"/>
<rect key="frame" x="20" y="376" width="105" height="65"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Toots" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kTz-EN-Zgx">
<rect key="frame" x="8" y="10" width="102" height="14.5"/>
<rect key="frame" x="8" y="10" width="89" height="14.666666666666664"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" name="Secondary"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Eab-8s-Drh">
<rect key="frame" x="8" y="32.5" width="102" height="24"/>
<rect key="frame" x="8" y="32.666666666666686" width="89" height="24"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -555,16 +555,16 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="TkS-vn-sW3">
<rect key="frame" x="148" y="376" width="118" height="65"/>
<rect key="frame" x="135" y="376" width="105" height="65"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Following" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FxQ-nq-jYw">
<rect key="frame" x="8" y="10" width="102" height="14.5"/>
<rect key="frame" x="8" y="10" width="89" height="14.666666666666664"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" name="Secondary"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l3U-wO-M4g">
<rect key="frame" x="8" y="32.5" width="102" height="24"/>
<rect key="frame" x="8" y="32.666666666666686" width="89" height="24"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -581,16 +581,16 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rqF-sG-ZE7">
<rect key="frame" x="276" y="376" width="118" height="65"/>
<rect key="frame" x="250" y="376" width="105" height="65"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Followers" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="piT-tX-tUe">
<rect key="frame" x="8" y="10" width="102" height="14.5"/>
<rect key="frame" x="8" y="10" width="89" height="14.666666666666664"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" name="Secondary"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="J8H-VZ-dwT">
<rect key="frame" x="8" y="32.5" width="102" height="24"/>
<rect key="frame" x="8" y="32.666666666666686" width="89" height="24"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -607,7 +607,7 @@
</constraints>
</view>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="lwU-IL-uAN">
<rect key="frame" x="10" y="451" width="394" height="29"/>
<rect key="frame" x="10" y="451" width="355" height="29"/>
<segments>
<segment title="Toots"/>
<segment title="Toots &amp; Replies"/>
@ -653,14 +653,14 @@
</view>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="AccountTableViewCell" id="nLQ-4Q-SwI" customClass="AccountTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="517" width="414" height="44"/>
<rect key="frame" x="0.0" y="517" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="nLQ-4Q-SwI" id="y0d-Ka-W2g">
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XFR-lZ-fvp" customClass="StatusView" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</subviews>
@ -718,7 +718,6 @@
<tabBar key="tabBar" contentMode="scaleToFill" id="W28-zg-YXA">
<rect key="frame" x="0.0" y="975" width="768" height="49"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<color key="tintColor" red="0.54117647059999996" green="0.4823529412" blue="0.68235294120000001" alpha="1" colorSpace="calibratedRGB"/>
<color key="selectedImageTintColor" red="0.54117647059999996" green="0.4823529412" blue="0.68235294120000001" alpha="1" colorSpace="calibratedRGB"/>
</tabBar>
@ -739,10 +738,9 @@
<tabBarItem key="tabBarItem" title="Timelines" image="Timelines" id="acW-dT-cKf"/>
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" largeTitles="YES" id="MdH-tW-gfk">
<rect key="frame" x="0.0" y="44" width="414" height="96"/>
<rect key="frame" x="0.0" y="44" width="375" height="96"/>
<autoresizingMask key="autoresizingMask"/>
<color key="tintColor" red="0.090196078430000007" green="0.047058823530000002" blue="0.28627450980000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="barTintColor" name="Secondary"/>
<textAttributes key="titleTextAttributes">
<color key="textColor" red="0.090196078430000007" green="0.047058823530000002" blue="0.28627450980000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</textAttributes>
@ -764,15 +762,15 @@
<objects>
<tableViewController title="Timelines" definesPresentationContext="YES" providesPresentationContextTransitionStyle="YES" modalPresentationStyle="overCurrentContext" id="ohq-uu-dqB" customClass="TimelinesTableViewController" customModule="elpha_ios" customModuleProvider="target" 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="au7-dg-KQQ">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<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" showsReorderControl="YES" indentationWidth="10" reuseIdentifier="TimelinesTableViewCell" rowHeight="100" id="HWA-v6-ifS" customClass="TimelinesTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="28" width="414" height="100"/>
<rect key="frame" x="0.0" y="28" width="375" height="100"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="HWA-v6-ifS" id="Xod-r8-3b7">
<rect key="frame" x="0.0" y="0.0" width="414" height="99.5"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="99.666666666666671"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="pn3-vi-rIP">
@ -783,7 +781,7 @@
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Timeline" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="65I-lo-p71">
<rect key="frame" x="73" y="39.5" width="313" height="21"/>
<rect key="frame" x="73" y="39.333333333333336" width="278" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -821,19 +819,19 @@
<objects>
<tableViewController id="9RY-uh-Cwh" customClass="TimelineTableViewController" customModule="elpha_ios" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="fgT-hp-jpg">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<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="none" indentationWidth="10" reuseIdentifier="TimelineTableViewCell" id="ltf-IW-WJt" customClass="TimelineTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="28" width="414" height="44"/>
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="ltf-IW-WJt" id="n6I-gD-BmS">
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7lS-OI-rcY" customClass="StatusView" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</subviews>
@ -875,19 +873,19 @@
<objects>
<tableViewController storyboardIdentifier="StatusTableViewController" id="RAJ-ub-len" customClass="StatusTableViewController" customModule="elpha_ios" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="3Kx-zr-iiy">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="MainStatusTableViewCell" rowHeight="245" id="8ys-Fm-1Yg" customClass="MainStatusTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="55.5" width="414" height="245"/>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" reuseIdentifier="MainStatusTableViewCell" rowHeight="582" id="8ys-Fm-1Yg" customClass="MainStatusTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="55.333333333333314" width="375" height="582"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="8ys-Fm-1Yg" id="Hj7-kC-H7L">
<rect key="frame" x="0.0" y="0.0" width="414" height="245"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="582"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7I8-6E-s1Q">
<rect key="frame" x="0.0" y="21" width="414" height="60"/>
<rect key="frame" x="0.0" y="21" width="375" height="60"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="LHS-vw-fZE">
<rect key="frame" x="8" y="0.0" width="55" height="55"/>
@ -897,13 +895,13 @@
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Display Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vDe-e6-p1i">
<rect key="frame" x="71" y="0.0" width="335" height="23"/>
<rect key="frame" x="71" y="0.0" width="296" height="23"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="19"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Username" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8fE-Hr-jgf">
<rect key="frame" x="71" y="25" width="335" height="19.5"/>
<rect key="frame" x="71" y="25" width="296" height="19.333333333333329"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" name="Primary"/>
<nil key="highlightedColor"/>
@ -922,26 +920,29 @@
<constraint firstAttribute="trailing" secondItem="8fE-Hr-jgf" secondAttribute="trailing" constant="8" id="qe7-8Y-2Te"/>
<constraint firstAttribute="height" constant="60" id="sS1-Yz-Efq"/>
</constraints>
<connections>
<outletCollection property="gestureRecognizers" destination="9oO-pp-jqy" appends="YES" id="BaS-cR-tSR"/>
</connections>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Content" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AT3-0d-kQ3">
<rect key="frame" x="8" y="96" width="398" height="100"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="C8A-x8-8TG">
<rect key="frame" x="8" y="204" width="160" height="30"/>
<rect key="frame" x="8" y="533" width="160" height="30"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Clock" translatesAutoresizingMaskIntoConstraints="NO" id="me9-4K-dS0">
<rect key="frame" x="0.0" y="7.5" width="15" height="15"/>
<rect key="frame" x="0.0" y="7.6666666666666288" width="15" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="5dr-8g-kIx"/>
<constraint firstAttribute="width" constant="15" id="k1I-ba-8Nj"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Timestamp" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="peo-RN-z7p">
<rect key="frame" x="23" y="7.5" width="137" height="15"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="January 1st, 2018" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="peo-RN-z7p">
<rect key="frame" x="23" y="0.0" width="137" height="15.666666666666666"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="9:00 AM" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Apt-wY-ttS">
<rect key="frame" x="23" y="14.333333333333371" width="137" height="15.666666666666664"/>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<color key="textColor" name="Primary"/>
<nil key="highlightedColor"/>
</label>
@ -949,19 +950,22 @@
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="me9-4K-dS0" firstAttribute="centerY" secondItem="C8A-x8-8TG" secondAttribute="centerY" id="Ptv-cd-e1w"/>
<constraint firstItem="peo-RN-z7p" firstAttribute="centerY" secondItem="C8A-x8-8TG" secondAttribute="centerY" id="ePa-f9-Qd5"/>
<constraint firstItem="peo-RN-z7p" firstAttribute="top" secondItem="C8A-x8-8TG" secondAttribute="top" id="YL7-OU-RIQ"/>
<constraint firstItem="Apt-wY-ttS" firstAttribute="leading" secondItem="me9-4K-dS0" secondAttribute="trailing" constant="8" id="ZCq-Gp-f3M"/>
<constraint firstAttribute="trailing" secondItem="peo-RN-z7p" secondAttribute="trailing" id="fZX-tG-y6E"/>
<constraint firstAttribute="bottom" secondItem="Apt-wY-ttS" secondAttribute="bottom" id="hDW-Hd-ctD"/>
<constraint firstAttribute="height" constant="30" id="hls-KD-1cF"/>
<constraint firstAttribute="trailing" secondItem="Apt-wY-ttS" secondAttribute="trailing" id="l9T-vX-VBW"/>
<constraint firstAttribute="width" constant="160" id="mLk-eo-x6G"/>
<constraint firstItem="peo-RN-z7p" firstAttribute="leading" secondItem="me9-4K-dS0" secondAttribute="trailing" constant="8" id="qjg-WR-UCo"/>
<constraint firstItem="me9-4K-dS0" firstAttribute="leading" secondItem="C8A-x8-8TG" secondAttribute="leading" id="yO3-ig-Jeh"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Iqe-xC-DYy">
<rect key="frame" x="278" y="204" width="60" height="30"/>
<rect key="frame" x="239" y="533" width="60" height="30"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Ew-31-ZWY">
<rect key="frame" x="34" y="6.5" width="26" height="17"/>
<rect key="frame" x="34" y="6.6666666666666288" width="26" height="17"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
@ -985,16 +989,16 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9oD-Y0-ilp">
<rect key="frame" x="346" y="204" width="60" height="30"/>
<rect key="frame" x="307" y="533" width="60" height="30"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tch-E4-Saw">
<rect key="frame" x="26" y="6.5" width="26" height="17"/>
<rect key="frame" x="26" y="6.6666666666666288" width="26" height="17"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Star Regular" translatesAutoresizingMaskIntoConstraints="NO" id="B1s-Wp-hBJ">
<rect key="frame" x="3" y="7.5" width="15" height="15"/>
<rect key="frame" x="3" y="7.6666666666666288" width="15" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="cf2-O1-ELz"/>
<constraint firstAttribute="width" constant="15" id="kiV-NO-p9O"/>
@ -1012,16 +1016,16 @@
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FZi-le-bmF">
<rect key="frame" x="210" y="204" width="60" height="30"/>
<rect key="frame" x="171" y="533" width="60" height="30"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="100" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="06U-FB-yto">
<rect key="frame" x="34" y="6.5" width="26" height="17"/>
<rect key="frame" x="34" y="6.6666666666666288" width="26" height="17"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Message" translatesAutoresizingMaskIntoConstraints="NO" id="Jcf-Cv-8ki">
<rect key="frame" x="11" y="7.5" width="15" height="15"/>
<rect key="frame" x="11" y="7.6666666666666288" width="15" height="15"/>
<constraints>
<constraint firstAttribute="width" constant="15" id="Vdk-0O-uij"/>
<constraint firstAttribute="height" constant="15" id="iPv-15-UbD"/>
@ -1038,28 +1042,59 @@
<constraint firstAttribute="trailing" secondItem="06U-FB-yto" secondAttribute="trailing" id="uJ8-JC-1Ql"/>
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="hBh-J5-s0Y">
<rect key="frame" x="0.0" y="96" width="375" height="422"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bsb-4z-qCl">
<rect key="frame" x="0.0" y="0.0" width="375" height="32"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Content" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AT3-0d-kQ3">
<rect key="frame" x="8" y="0.0" width="359" height="32"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="Text"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="AT3-0d-kQ3" secondAttribute="trailing" constant="8" id="4Jm-CO-cjk"/>
<constraint firstItem="AT3-0d-kQ3" firstAttribute="top" secondItem="bsb-4z-qCl" secondAttribute="top" id="4Op-Mw-LlV"/>
<constraint firstItem="AT3-0d-kQ3" firstAttribute="leading" secondItem="bsb-4z-qCl" secondAttribute="leading" constant="8" id="fxj-Hk-a9U"/>
<constraint firstAttribute="bottom" secondItem="AT3-0d-kQ3" secondAttribute="bottom" id="ld8-0e-sbI"/>
</constraints>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7SO-v5-Rfd">
<rect key="frame" x="0.0" y="47" width="375" height="375"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="width" secondItem="7SO-v5-Rfd" secondAttribute="height" multiplier="1:1" id="OxV-Aa-cex"/>
</constraints>
</view>
</subviews>
</stackView>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="7I8-6E-s1Q" secondAttribute="trailing" id="5hL-Ma-O1w"/>
<constraint firstAttribute="trailing" secondItem="AT3-0d-kQ3" secondAttribute="trailing" constant="8" id="6Wd-QF-Ar9"/>
<constraint firstItem="C8A-x8-8TG" firstAttribute="top" secondItem="hBh-J5-s0Y" secondAttribute="bottom" constant="15" id="6u3-CR-ugk"/>
<constraint firstItem="7I8-6E-s1Q" firstAttribute="leading" secondItem="Hj7-kC-H7L" secondAttribute="leading" id="7SB-qd-J9a"/>
<constraint firstAttribute="bottomMargin" secondItem="Iqe-xC-DYy" secondAttribute="bottom" id="8ha-tf-hUF"/>
<constraint firstAttribute="bottomMargin" secondItem="Iqe-xC-DYy" secondAttribute="bottom" constant="8" id="8ha-tf-hUF"/>
<constraint firstItem="9oD-Y0-ilp" firstAttribute="trailing" secondItem="Hj7-kC-H7L" secondAttribute="trailing" constant="-8" id="G9j-ww-Gdd"/>
<constraint firstItem="Iqe-xC-DYy" firstAttribute="leading" secondItem="FZi-le-bmF" secondAttribute="trailing" constant="8" id="LAx-si-6tE"/>
<constraint firstItem="7I8-6E-s1Q" firstAttribute="top" secondItem="Hj7-kC-H7L" secondAttribute="topMargin" constant="10" id="LFk-zl-zWh"/>
<constraint firstAttribute="bottomMargin" secondItem="C8A-x8-8TG" secondAttribute="bottom" id="P1P-t1-WWV"/>
<constraint firstAttribute="bottomMargin" secondItem="C8A-x8-8TG" secondAttribute="bottom" constant="8" id="P1P-t1-WWV"/>
<constraint firstItem="C8A-x8-8TG" firstAttribute="leading" secondItem="Hj7-kC-H7L" secondAttribute="leading" constant="8" id="RQp-9M-JGO"/>
<constraint firstItem="9oD-Y0-ilp" firstAttribute="leading" secondItem="Iqe-xC-DYy" secondAttribute="trailing" constant="8" id="aEe-hr-rkn"/>
<constraint firstAttribute="bottomMargin" secondItem="FZi-le-bmF" secondAttribute="bottom" id="b5a-AF-czf"/>
<constraint firstAttribute="bottomMargin" secondItem="FZi-le-bmF" secondAttribute="bottom" constant="8" id="b5a-AF-czf"/>
<constraint firstItem="9oD-Y0-ilp" firstAttribute="leading" secondItem="Iqe-xC-DYy" secondAttribute="trailing" constant="8" id="eK7-1F-CoL"/>
<constraint firstItem="C8A-x8-8TG" firstAttribute="top" secondItem="AT3-0d-kQ3" secondAttribute="bottom" constant="8" id="iS5-Sb-byC"/>
<constraint firstAttribute="bottomMargin" secondItem="9oD-Y0-ilp" secondAttribute="bottom" id="jti-av-CLh"/>
<constraint firstItem="AT3-0d-kQ3" firstAttribute="leading" secondItem="Hj7-kC-H7L" secondAttribute="leading" constant="8" id="uff-zi-rPT"/>
<constraint firstItem="AT3-0d-kQ3" firstAttribute="top" secondItem="7I8-6E-s1Q" secondAttribute="bottom" constant="15" id="xNg-ZQ-vkn"/>
<constraint firstAttribute="trailing" secondItem="hBh-J5-s0Y" secondAttribute="trailing" id="hUd-hg-QQ3"/>
<constraint firstAttribute="bottomMargin" secondItem="9oD-Y0-ilp" secondAttribute="bottom" constant="8" id="jti-av-CLh"/>
<constraint firstItem="hBh-J5-s0Y" firstAttribute="leading" secondItem="Hj7-kC-H7L" secondAttribute="leading" id="pah-y0-owx"/>
<constraint firstItem="hBh-J5-s0Y" firstAttribute="top" secondItem="7I8-6E-s1Q" secondAttribute="bottom" constant="15" id="zWI-ul-ujD"/>
</constraints>
</tableViewCellContentView>
<connections>
<outlet property="accountView" destination="7I8-6E-s1Q" id="tw8-M7-TNT"/>
<outlet property="attachmentsView" destination="7SO-v5-Rfd" id="C4P-E0-mtG"/>
<outlet property="avatarImageView" destination="LHS-vw-fZE" id="PpS-hb-Hes"/>
<outlet property="boostsImageView" destination="X4x-5e-3Ms" id="dxE-vb-Ctp"/>
<outlet property="boostsLabel" destination="3Ew-31-ZWY" id="Nc5-8A-0tr"/>
@ -1069,19 +1104,20 @@
<outlet property="favoritesLabel" destination="Tch-E4-Saw" id="lly-D4-fkY"/>
<outlet property="repliesImageView" destination="Jcf-Cv-8ki" id="4Ie-E4-Re9"/>
<outlet property="repliesLabel" destination="06U-FB-yto" id="h7Y-aI-h91"/>
<outlet property="timestampLabel" destination="peo-RN-z7p" id="zM1-lG-G9p"/>
<outlet property="timestampDateLabel" destination="peo-RN-z7p" id="qZb-yJ-U0X"/>
<outlet property="timestampTimeLabel" destination="Apt-wY-ttS" id="UyV-kj-s3w"/>
<outlet property="usernameLabel" destination="8fE-Hr-jgf" id="hiJ-he-cm4"/>
</connections>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="StatusTableViewCell" rowHeight="120" id="cLF-Rc-b4K" customClass="StatusTableViewCell" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="300.5" width="414" height="120"/>
<rect key="frame" x="0.0" y="637.33333333333337" width="375" height="120"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="cLF-Rc-b4K" id="jhE-cB-Cj1">
<rect key="frame" x="0.0" y="0.0" width="414" height="120"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="120"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fRl-xT-b9t" customClass="StatusView" customModule="elpha_ios" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="414" height="120"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="120"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
</subviews>
@ -1116,8 +1152,13 @@
</refreshControl>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="3LK-Q6-p6V" userLabel="First Responder" sceneMemberID="firstResponder"/>
<tapGestureRecognizer id="9oO-pp-jqy">
<connections>
<action selector="accountViewTapped:" destination="RAJ-ub-len" id="8BS-4Z-ZQz"/>
</connections>
</tapGestureRecognizer>
</objects>
<point key="canvasLocation" x="2702.898550724638" y="-22.098214285714285"/>
<point key="canvasLocation" x="2701.5999999999999" y="-22.167487684729064"/>
</scene>
<!--Navigation Controller-->
<scene sceneID="UVY-Um-jQm">
@ -1125,10 +1166,9 @@
<navigationController automaticallyAdjustsScrollViewInsets="NO" id="SqQ-GI-iCq" sceneMemberID="viewController">
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" largeTitles="YES" id="QFN-sS-62X">
<rect key="frame" x="0.0" y="44" width="414" height="96"/>
<rect key="frame" x="0.0" y="44" width="375" height="96"/>
<autoresizingMask key="autoresizingMask"/>
<color key="tintColor" red="0.090196078430000007" green="0.047058823530000002" blue="0.28627450980000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="barTintColor" name="Secondary"/>
<textAttributes key="titleTextAttributes">
<color key="textColor" red="0.090196078430000007" green="0.047058823530000002" blue="0.28627450980000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</textAttributes>
@ -1152,10 +1192,9 @@
<tabBarItem key="tabBarItem" title="Account" image="Account" id="cPa-gy-q4n"/>
<toolbarItems/>
<navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" largeTitles="YES" id="5mb-Wh-DRp">
<rect key="frame" x="0.0" y="44" width="414" height="96"/>
<rect key="frame" x="0.0" y="44" width="375" height="96"/>
<autoresizingMask key="autoresizingMask"/>
<color key="tintColor" red="0.090196078430000007" green="0.047058823530000002" blue="0.28627450980000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="barTintColor" name="Secondary"/>
<textAttributes key="titleTextAttributes">
<color key="textColor" red="0.090196078430000007" green="0.047058823530000002" blue="0.28627450980000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</textAttributes>

5
elpha-ios/MainStatusTableViewCell.swift

@ -13,7 +13,6 @@ class MainStatusTableViewCell: UITableViewCell {
@IBOutlet var displayNameLabel: UILabel!
@IBOutlet var usernameLabel: UILabel!
@IBOutlet var contentLabel: UILabel!
@IBOutlet var timestampLabel: UILabel!
@IBOutlet var repliesImageView: UIImageView!
@IBOutlet var repliesLabel: UILabel!
@IBOutlet var boostsImageView: UIImageView!
@ -21,5 +20,7 @@ class MainStatusTableViewCell: UITableViewCell {
@IBOutlet var favoritesImageView: UIImageView!
@IBOutlet var favoritesLabel: UILabel!
@IBOutlet var accountView: UIView!
@IBOutlet var timestampDateLabel: UILabel!
@IBOutlet var timestampTimeLabel: UILabel!
@IBOutlet var attachmentsView: UIView!
}

25
elpha-ios/SecondViewController.swift

@ -1,25 +0,0 @@
//
// SecondViewController.swift
// elpha-ios
//
// Created by Dwayne Harris on 8/25/18.
// Copyright © 2018 Elpha. All rights reserved.
//
import UIKit
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

44
elpha-ios/StatusTableViewController.swift

@ -46,6 +46,10 @@ class StatusTableViewController: UITableViewController {
}
}
@IBAction func accountViewTapped(_ sender: Any) {
self.accountTapped(account: status!.account!)
}
func fetchStatuses(completion: @escaping (Error?) -> Void) {
if let status = status {
loading = true
@ -121,6 +125,7 @@ class StatusTableViewController: UITableViewController {
}
}
ancestors.reverse()
descendants.reverse()
} catch {
print("\(error)")
@ -133,21 +138,29 @@ extension StatusTableViewController {
return 3
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
let height = CGFloat(25)
switch section {
case 0: return ancestors.count > 0 ? height : 0
case 2: return descendants.count > 0 ? height : 0
default: return height
}
}
override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
switch section {
case 0: return ancestors.count > 0 ? "In Reply To" : nil
case 1: return "Toot"
case 2: return descendants.count > 0 ? "Replies" : nil
default: return nil
default: return "Toot"
}
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch section {
case 0: return ancestors.count
case 1: return 1
case 2: return descendants.count
default: return 0
default: return 1
}
}
@ -155,9 +168,8 @@ extension StatusTableViewController {
var status: StatusMO
switch indexPath.section {
case 0: status = self.ancestors[indexPath.row]
case 1: status = self.status!
case 2: status = self.descendants[indexPath.row]
default: fatalError("")
default: status = self.status!
}
if status == self.status {
@ -187,7 +199,7 @@ extension StatusTableViewController {
if let content = status.content {
do {
let styledContent = "<style>html * { font-size: 15px; color: #170c49; font-family: -apple-system } p { margin: 0; padding: 0 }</style> \(content)"
let styledContent = "<style>html * { font-size: 16px; color: #170c49; font-family: -apple-system }</style> \(content)"
let attributedText = try NSAttributedString(
data: styledContent.data(using: String.Encoding.unicode, allowLossyConversion: true)!,
options: [.documentType: NSAttributedString.DocumentType.html],
@ -200,11 +212,25 @@ extension StatusTableViewController {
}
}
cell.attachmentsView.backgroundColor = UIColor.white
cell.attachmentsView.isHidden = true
if let attachments = status.attachments, attachments.count > 0 {
cell.attachmentsView.isHidden = false
AttachmentsManager.setupAttachmentsView(cell.attachmentsView, withAttachments: attachments)
}
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .medium
dateFormatter.timeStyle = .none
cell.timestampDateLabel.text = dateFormatter.string(from: status.createdAt!)
dateFormatter.dateStyle = .none
dateFormatter.timeStyle = .short
cell.timestampTimeLabel.text = dateFormatter.string(from: status.createdAt!)
cell.timestampLabel.text = dateFormatter.string(from: status.createdAt!)
cell.repliesLabel.text = NumberFormatter.localizedString(from: NSNumber(value: status.repliesCount), number: .decimal)
cell.boostsLabel.text = NumberFormatter.localizedString(from: NSNumber(value: status.reblogsCount), number: .decimal)
cell.favoritesLabel.text = NumberFormatter.localizedString(from: NSNumber(value: status.favoritesCount), number: .decimal)

8
elpha-ios/StatusView.swift

@ -69,7 +69,11 @@ class StatusView: UIView {
@IBAction func mainViewTapped(_ sender: Any) {
if let delegate = delegate, let status = status {
delegate.statusTapped(status: status)
if let reblog = status.reblog {
delegate.statusTapped(status: reblog)
} else {
delegate.statusTapped(status: status)
}
}
}
@ -122,7 +126,7 @@ class StatusView: UIView {
if let content = status.content {
do {
let styledContent = "<style>html * { font-size: 15px; color: #170c49; font-family: -apple-system } p { margin: 0; padding: 0 }</style> \(content)"
let styledContent = "<style>html * { font-size: 15px; color: #170c49; font-family: -apple-system }</style> \(content)"
let attributedText = try NSAttributedString(
data: styledContent.data(using: String.Encoding.unicode, allowLossyConversion: true)!,
options: [.documentType: NSAttributedString.DocumentType.html],

28
elpha-ios/TimelineTableViewController.swift

@ -66,7 +66,11 @@ class TimelineTableViewController: UITableViewController, TimelinesTableViewCont
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// fetchTimeline()
fetchTimeline { error in
if error != nil {
print("\(String(describing: error))")
}
}
}
@objc func more() {
@ -271,8 +275,28 @@ extension TimelineTableViewController: NSFetchedResultsControllerDelegate {
}
}
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
tableView.beginUpdates()
}
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
switch type {
case NSFetchedResultsChangeType.insert:
tableView.insertRows(at: [newIndexPath!], with: UITableView.RowAnimation.none)
case NSFetchedResultsChangeType.delete:
tableView.deleteRows(at: [indexPath!], with: UITableView.RowAnimation.none)
case NSFetchedResultsChangeType.update:
if let cell = tableView.cellForRow(at: indexPath!) as? TimelineTableViewCell {
cell.statusView.update(withStatus: anObject as! StatusMO)
}
case NSFetchedResultsChangeType.move:
tableView.deleteRows(at: [indexPath!], with: UITableView.RowAnimation.fade)
tableView.insertRows(at: [newIndexPath!], with: UITableView.RowAnimation.fade)
}
}
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
self.tableView.reloadData()
tableView.endUpdates()
}
}

Loading…
Cancel
Save