Rename classes to more accurately describe their usage in the application.
This commit is contained in:
parent
717d09b2be
commit
12d4d2dbb1
@ -14,7 +14,7 @@
|
|||||||
5127B23A222B4849006D641D /* DetailKeyboardShortcuts.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5127B237222B4849006D641D /* DetailKeyboardShortcuts.plist */; };
|
5127B23A222B4849006D641D /* DetailKeyboardShortcuts.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5127B237222B4849006D641D /* DetailKeyboardShortcuts.plist */; };
|
||||||
512E08E62268800D00BDCFDD /* FolderTreeControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97A11ED9F180007D329B /* FolderTreeControllerDelegate.swift */; };
|
512E08E62268800D00BDCFDD /* FolderTreeControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97A11ED9F180007D329B /* FolderTreeControllerDelegate.swift */; };
|
||||||
512E08E72268801200BDCFDD /* FeedTreeControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97611ED9EB96007D329B /* FeedTreeControllerDelegate.swift */; };
|
512E08E72268801200BDCFDD /* FeedTreeControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849A97611ED9EB96007D329B /* FeedTreeControllerDelegate.swift */; };
|
||||||
512E09012268907400BDCFDD /* MasterTableViewSectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 512E08F722688F7C00BDCFDD /* MasterTableViewSectionHeader.swift */; };
|
512E09012268907400BDCFDD /* MasterFeedTableViewSectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 512E08F722688F7C00BDCFDD /* MasterFeedTableViewSectionHeader.swift */; };
|
||||||
512E09352268B25900BDCFDD /* UISplitViewController-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 512E092B2268B25500BDCFDD /* UISplitViewController-Extensions.swift */; };
|
512E09352268B25900BDCFDD /* UISplitViewController-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 512E092B2268B25500BDCFDD /* UISplitViewController-Extensions.swift */; };
|
||||||
512E094D2268B8AB00BDCFDD /* DeleteCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B99C9C1FAE83C600ECDEDB /* DeleteCommand.swift */; };
|
512E094D2268B8AB00BDCFDD /* DeleteCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B99C9C1FAE83C600ECDEDB /* DeleteCommand.swift */; };
|
||||||
5183CCD0226E1E880010922C /* NonIntrinsicLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5183CCCF226E1E880010922C /* NonIntrinsicLabel.swift */; };
|
5183CCD0226E1E880010922C /* NonIntrinsicLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5183CCCF226E1E880010922C /* NonIntrinsicLabel.swift */; };
|
||||||
@ -50,10 +50,10 @@
|
|||||||
51C4525A226508D600C03939 /* UIStoryboard-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C4524E226506F400C03939 /* UIStoryboard-Extensions.swift */; };
|
51C4525A226508D600C03939 /* UIStoryboard-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C4524E226506F400C03939 /* UIStoryboard-Extensions.swift */; };
|
||||||
51C4525B226508DA00C03939 /* UIImage-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C4524F226506F400C03939 /* UIImage-Extensions.swift */; };
|
51C4525B226508DA00C03939 /* UIImage-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C4524F226506F400C03939 /* UIImage-Extensions.swift */; };
|
||||||
51C4525C226508DF00C03939 /* String-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45250226506F400C03939 /* String-Extensions.swift */; };
|
51C4525C226508DF00C03939 /* String-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45250226506F400C03939 /* String-Extensions.swift */; };
|
||||||
51C45268226508F600C03939 /* MasterUnreadCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45261226508F600C03939 /* MasterUnreadCountView.swift */; };
|
51C45268226508F600C03939 /* MasterFeedUnreadCountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45261226508F600C03939 /* MasterFeedUnreadCountView.swift */; };
|
||||||
51C45269226508F600C03939 /* MasterTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45262226508F600C03939 /* MasterTableViewCell.swift */; };
|
51C45269226508F600C03939 /* MasterFeedTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45262226508F600C03939 /* MasterFeedTableViewCell.swift */; };
|
||||||
51C4526A226508F600C03939 /* MasterTableViewCellLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45263226508F600C03939 /* MasterTableViewCellLayout.swift */; };
|
51C4526A226508F600C03939 /* MasterFeedTableViewCellLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45263226508F600C03939 /* MasterFeedTableViewCellLayout.swift */; };
|
||||||
51C4526B226508F600C03939 /* MasterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45264226508F600C03939 /* MasterViewController.swift */; };
|
51C4526B226508F600C03939 /* MasterFeedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C45264226508F600C03939 /* MasterFeedViewController.swift */; };
|
||||||
51C452762265091600C03939 /* MasterTimelineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C4526E2265091600C03939 /* MasterTimelineViewController.swift */; };
|
51C452762265091600C03939 /* MasterTimelineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C4526E2265091600C03939 /* MasterTimelineViewController.swift */; };
|
||||||
51C452772265091600C03939 /* MultilineUILabelSizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C452702265091600C03939 /* MultilineUILabelSizer.swift */; };
|
51C452772265091600C03939 /* MultilineUILabelSizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C452702265091600C03939 /* MultilineUILabelSizer.swift */; };
|
||||||
51C452782265091600C03939 /* MasterTimelineCellData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C452712265091600C03939 /* MasterTimelineCellData.swift */; };
|
51C452782265091600C03939 /* MasterTimelineCellData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C452712265091600C03939 /* MasterTimelineCellData.swift */; };
|
||||||
@ -610,7 +610,7 @@
|
|||||||
5126EE96226CB48A00C22AFC /* NavigationStateController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationStateController.swift; sourceTree = "<group>"; };
|
5126EE96226CB48A00C22AFC /* NavigationStateController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationStateController.swift; sourceTree = "<group>"; };
|
||||||
5127B236222B4849006D641D /* DetailKeyboardDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DetailKeyboardDelegate.swift; sourceTree = "<group>"; };
|
5127B236222B4849006D641D /* DetailKeyboardDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DetailKeyboardDelegate.swift; sourceTree = "<group>"; };
|
||||||
5127B237222B4849006D641D /* DetailKeyboardShortcuts.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = DetailKeyboardShortcuts.plist; sourceTree = "<group>"; };
|
5127B237222B4849006D641D /* DetailKeyboardShortcuts.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = DetailKeyboardShortcuts.plist; sourceTree = "<group>"; };
|
||||||
512E08F722688F7C00BDCFDD /* MasterTableViewSectionHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MasterTableViewSectionHeader.swift; sourceTree = "<group>"; };
|
512E08F722688F7C00BDCFDD /* MasterFeedTableViewSectionHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MasterFeedTableViewSectionHeader.swift; sourceTree = "<group>"; };
|
||||||
512E092B2268B25500BDCFDD /* UISplitViewController-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UISplitViewController-Extensions.swift"; sourceTree = "<group>"; };
|
512E092B2268B25500BDCFDD /* UISplitViewController-Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UISplitViewController-Extensions.swift"; sourceTree = "<group>"; };
|
||||||
5183CCCF226E1E880010922C /* NonIntrinsicLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonIntrinsicLabel.swift; sourceTree = "<group>"; };
|
5183CCCF226E1E880010922C /* NonIntrinsicLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonIntrinsicLabel.swift; sourceTree = "<group>"; };
|
||||||
5183CCD9226E31A50010922C /* NonIntrinsicImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonIntrinsicImageView.swift; sourceTree = "<group>"; };
|
5183CCD9226E31A50010922C /* NonIntrinsicImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonIntrinsicImageView.swift; sourceTree = "<group>"; };
|
||||||
@ -623,10 +623,10 @@
|
|||||||
51C45250226506F400C03939 /* String-Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String-Extensions.swift"; sourceTree = "<group>"; };
|
51C45250226506F400C03939 /* String-Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String-Extensions.swift"; sourceTree = "<group>"; };
|
||||||
51C45254226507D200C03939 /* AppAssets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppAssets.swift; sourceTree = "<group>"; };
|
51C45254226507D200C03939 /* AppAssets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppAssets.swift; sourceTree = "<group>"; };
|
||||||
51C45255226507D200C03939 /* AppDefaults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDefaults.swift; sourceTree = "<group>"; };
|
51C45255226507D200C03939 /* AppDefaults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDefaults.swift; sourceTree = "<group>"; };
|
||||||
51C45261226508F600C03939 /* MasterUnreadCountView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterUnreadCountView.swift; sourceTree = "<group>"; };
|
51C45261226508F600C03939 /* MasterFeedUnreadCountView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterFeedUnreadCountView.swift; sourceTree = "<group>"; };
|
||||||
51C45262226508F600C03939 /* MasterTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterTableViewCell.swift; sourceTree = "<group>"; };
|
51C45262226508F600C03939 /* MasterFeedTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterFeedTableViewCell.swift; sourceTree = "<group>"; };
|
||||||
51C45263226508F600C03939 /* MasterTableViewCellLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterTableViewCellLayout.swift; sourceTree = "<group>"; };
|
51C45263226508F600C03939 /* MasterFeedTableViewCellLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterFeedTableViewCellLayout.swift; sourceTree = "<group>"; };
|
||||||
51C45264226508F600C03939 /* MasterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterViewController.swift; sourceTree = "<group>"; };
|
51C45264226508F600C03939 /* MasterFeedViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterFeedViewController.swift; sourceTree = "<group>"; };
|
||||||
51C4526E2265091600C03939 /* MasterTimelineViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterTimelineViewController.swift; sourceTree = "<group>"; };
|
51C4526E2265091600C03939 /* MasterTimelineViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterTimelineViewController.swift; sourceTree = "<group>"; };
|
||||||
51C452702265091600C03939 /* MultilineUILabelSizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultilineUILabelSizer.swift; sourceTree = "<group>"; };
|
51C452702265091600C03939 /* MultilineUILabelSizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultilineUILabelSizer.swift; sourceTree = "<group>"; };
|
||||||
51C452712265091600C03939 /* MasterTimelineCellData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterTimelineCellData.swift; sourceTree = "<group>"; };
|
51C452712265091600C03939 /* MasterTimelineCellData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MasterTimelineCellData.swift; sourceTree = "<group>"; };
|
||||||
@ -932,33 +932,33 @@
|
|||||||
path = Extensions;
|
path = Extensions;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
51C4525D226508F600C03939 /* Master */ = {
|
51C4525D226508F600C03939 /* MasterFeed */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
51C45264226508F600C03939 /* MasterViewController.swift */,
|
51C45264226508F600C03939 /* MasterFeedViewController.swift */,
|
||||||
51C45260226508F600C03939 /* Cell */,
|
51C45260226508F600C03939 /* Cell */,
|
||||||
);
|
);
|
||||||
path = Master;
|
path = MasterFeed;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
51C45260226508F600C03939 /* Cell */ = {
|
51C45260226508F600C03939 /* Cell */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
512E08F722688F7C00BDCFDD /* MasterTableViewSectionHeader.swift */,
|
512E08F722688F7C00BDCFDD /* MasterFeedTableViewSectionHeader.swift */,
|
||||||
51C45262226508F600C03939 /* MasterTableViewCell.swift */,
|
51C45262226508F600C03939 /* MasterFeedTableViewCell.swift */,
|
||||||
51C45263226508F600C03939 /* MasterTableViewCellLayout.swift */,
|
51C45263226508F600C03939 /* MasterFeedTableViewCellLayout.swift */,
|
||||||
51C45261226508F600C03939 /* MasterUnreadCountView.swift */,
|
51C45261226508F600C03939 /* MasterFeedUnreadCountView.swift */,
|
||||||
);
|
);
|
||||||
path = Cell;
|
path = Cell;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
51C4526D2265091600C03939 /* Timeline */ = {
|
51C4526D2265091600C03939 /* MasterTimeline */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
51C4526E2265091600C03939 /* MasterTimelineViewController.swift */,
|
51C4526E2265091600C03939 /* MasterTimelineViewController.swift */,
|
||||||
51C4526F2265091600C03939 /* Cell */,
|
51C4526F2265091600C03939 /* Cell */,
|
||||||
);
|
);
|
||||||
path = Timeline;
|
path = MasterTimeline;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
51C4526F2265091600C03939 /* Cell */ = {
|
51C4526F2265091600C03939 /* Cell */ = {
|
||||||
@ -1534,8 +1534,8 @@
|
|||||||
51C45254226507D200C03939 /* AppAssets.swift */,
|
51C45254226507D200C03939 /* AppAssets.swift */,
|
||||||
51C45255226507D200C03939 /* AppDefaults.swift */,
|
51C45255226507D200C03939 /* AppDefaults.swift */,
|
||||||
5126EE96226CB48A00C22AFC /* NavigationStateController.swift */,
|
5126EE96226CB48A00C22AFC /* NavigationStateController.swift */,
|
||||||
51C4525D226508F600C03939 /* Master */,
|
51C4525D226508F600C03939 /* MasterFeed */,
|
||||||
51C4526D2265091600C03939 /* Timeline */,
|
51C4526D2265091600C03939 /* MasterTimeline */,
|
||||||
51C4527D2265092C00C03939 /* Detail */,
|
51C4527D2265092C00C03939 /* Detail */,
|
||||||
51C452802265093600C03939 /* Add */,
|
51C452802265093600C03939 /* Add */,
|
||||||
5183CCDB226F1EEB0010922C /* Progress */,
|
5183CCDB226F1EEB0010922C /* Progress */,
|
||||||
@ -2160,7 +2160,7 @@
|
|||||||
84F3EE1720DEC97E003FADEB /* FeedFinder.swift in Sources */,
|
84F3EE1720DEC97E003FADEB /* FeedFinder.swift in Sources */,
|
||||||
51C45291226509C800C03939 /* SmartFeed.swift in Sources */,
|
51C45291226509C800C03939 /* SmartFeed.swift in Sources */,
|
||||||
51C452A722650A3D00C03939 /* RSImage-Extensions.swift in Sources */,
|
51C452A722650A3D00C03939 /* RSImage-Extensions.swift in Sources */,
|
||||||
51C45269226508F600C03939 /* MasterTableViewCell.swift in Sources */,
|
51C45269226508F600C03939 /* MasterFeedTableViewCell.swift in Sources */,
|
||||||
51C4528F226509BD00C03939 /* UnreadFeed.swift in Sources */,
|
51C4528F226509BD00C03939 /* UnreadFeed.swift in Sources */,
|
||||||
5183CCDD226F1F5C0010922C /* NavigationProgressView.swift in Sources */,
|
5183CCDD226F1F5C0010922C /* NavigationProgressView.swift in Sources */,
|
||||||
51C452772265091600C03939 /* MultilineUILabelSizer.swift in Sources */,
|
51C452772265091600C03939 /* MultilineUILabelSizer.swift in Sources */,
|
||||||
@ -2170,7 +2170,7 @@
|
|||||||
51C4525C226508DF00C03939 /* String-Extensions.swift in Sources */,
|
51C4525C226508DF00C03939 /* String-Extensions.swift in Sources */,
|
||||||
51C452792265091600C03939 /* MasterTimelineTableViewCell.swift in Sources */,
|
51C452792265091600C03939 /* MasterTimelineTableViewCell.swift in Sources */,
|
||||||
51C452852265093600C03939 /* AddFeedFolderPickerData.swift in Sources */,
|
51C452852265093600C03939 /* AddFeedFolderPickerData.swift in Sources */,
|
||||||
51C4526B226508F600C03939 /* MasterViewController.swift in Sources */,
|
51C4526B226508F600C03939 /* MasterFeedViewController.swift in Sources */,
|
||||||
5126EE97226CB48A00C22AFC /* NavigationStateController.swift in Sources */,
|
5126EE97226CB48A00C22AFC /* NavigationStateController.swift in Sources */,
|
||||||
51C4525A226508D600C03939 /* UIStoryboard-Extensions.swift in Sources */,
|
51C4525A226508D600C03939 /* UIStoryboard-Extensions.swift in Sources */,
|
||||||
51C452A622650A3500C03939 /* Node-Extensions.swift in Sources */,
|
51C452A622650A3500C03939 /* Node-Extensions.swift in Sources */,
|
||||||
@ -2187,7 +2187,7 @@
|
|||||||
51C4527C2265091600C03939 /* MasterTimelineCellLayout.swift in Sources */,
|
51C4527C2265091600C03939 /* MasterTimelineCellLayout.swift in Sources */,
|
||||||
51C4529A22650A0400C03939 /* ArticleStyle.swift in Sources */,
|
51C4529A22650A0400C03939 /* ArticleStyle.swift in Sources */,
|
||||||
51C4527F2265092C00C03939 /* DetailViewController.swift in Sources */,
|
51C4527F2265092C00C03939 /* DetailViewController.swift in Sources */,
|
||||||
51C4526A226508F600C03939 /* MasterTableViewCellLayout.swift in Sources */,
|
51C4526A226508F600C03939 /* MasterFeedTableViewCellLayout.swift in Sources */,
|
||||||
51C452AE2265104D00C03939 /* TimelineStringFormatter.swift in Sources */,
|
51C452AE2265104D00C03939 /* TimelineStringFormatter.swift in Sources */,
|
||||||
512E08E62268800D00BDCFDD /* FolderTreeControllerDelegate.swift in Sources */,
|
512E08E62268800D00BDCFDD /* FolderTreeControllerDelegate.swift in Sources */,
|
||||||
51C4529922650A0000C03939 /* ArticleStylesManager.swift in Sources */,
|
51C4529922650A0000C03939 /* ArticleStylesManager.swift in Sources */,
|
||||||
@ -2206,8 +2206,8 @@
|
|||||||
51C4527A2265091600C03939 /* SingleLineUILabelSizer.swift in Sources */,
|
51C4527A2265091600C03939 /* SingleLineUILabelSizer.swift in Sources */,
|
||||||
51C4529B22650A1000C03939 /* FaviconDownloader.swift in Sources */,
|
51C4529B22650A1000C03939 /* FaviconDownloader.swift in Sources */,
|
||||||
5183CCE3226F314C0010922C /* ProgressTableViewController.swift in Sources */,
|
5183CCE3226F314C0010922C /* ProgressTableViewController.swift in Sources */,
|
||||||
512E09012268907400BDCFDD /* MasterTableViewSectionHeader.swift in Sources */,
|
512E09012268907400BDCFDD /* MasterFeedTableViewSectionHeader.swift in Sources */,
|
||||||
51C45268226508F600C03939 /* MasterUnreadCountView.swift in Sources */,
|
51C45268226508F600C03939 /* MasterFeedUnreadCountView.swift in Sources */,
|
||||||
5183CCD0226E1E880010922C /* NonIntrinsicLabel.swift in Sources */,
|
5183CCD0226E1E880010922C /* NonIntrinsicLabel.swift in Sources */,
|
||||||
51C452B1226510E600C03939 /* InitialFeedDownloader.swift in Sources */,
|
51C452B1226510E600C03939 /* InitialFeedDownloader.swift in Sources */,
|
||||||
51C4529F22650A1900C03939 /* AuthorAvatarDownloader.swift in Sources */,
|
51C4529F22650A1900C03939 /* AuthorAvatarDownloader.swift in Sources */,
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="H1p-Uh-vWS">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="H1p-Uh-vWS">
|
||||||
<device id="retina4_0" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
@ -35,11 +31,11 @@
|
|||||||
<objects>
|
<objects>
|
||||||
<viewController storyboardIdentifier="DetailViewController" title="Detail" useStoryboardIdentifierAsRestorationIdentifier="YES" id="JEX-9P-axG" customClass="DetailViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
<viewController storyboardIdentifier="DetailViewController" title="Detail" useStoryboardIdentifierAsRestorationIdentifier="YES" id="JEX-9P-axG" customClass="DetailViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
<view key="view" contentMode="scaleToFill" id="svH-Pt-448">
|
<view key="view" contentMode="scaleToFill" id="svH-Pt-448">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="t8d-md-Yhc">
|
<wkWebView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="t8d-md-Yhc">
|
||||||
<rect key="frame" x="0.0" y="64" width="320" height="460"/>
|
<rect key="frame" x="0.0" y="64" width="600" height="492"/>
|
||||||
<color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
<color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
<wkWebViewConfiguration key="configuration">
|
<wkWebViewConfiguration key="configuration">
|
||||||
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
|
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
|
||||||
@ -121,15 +117,15 @@
|
|||||||
<objects>
|
<objects>
|
||||||
<tableViewController storyboardIdentifier="MasterTimelineViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="Kyk-vK-QRX" customClass="MasterTimelineViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
<tableViewController storyboardIdentifier="MasterTimelineViewController" useStoryboardIdentifierAsRestorationIdentifier="YES" id="Kyk-vK-QRX" customClass="MasterTimelineViewController" customModule="NetNewsWire" 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="mtv-Ik-FoJ">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" id="mtv-Ik-FoJ">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
<prototypes>
|
<prototypes>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="Cell" rowHeight="208" id="T5d-L4-OKG" customClass="MasterTimelineTableViewCell" customModule="NetNewsWire" customModuleProvider="target">
|
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="Cell" rowHeight="208" id="T5d-L4-OKG" customClass="MasterTimelineTableViewCell" customModule="NetNewsWire" customModuleProvider="target">
|
||||||
<rect key="frame" x="0.0" y="28" width="320" height="208"/>
|
<rect key="frame" x="0.0" y="28" width="600" height="208"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="T5d-L4-OKG" id="QKC-jN-XDy">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="T5d-L4-OKG" id="QKC-jN-XDy">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="207.5"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="207.5"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
</tableViewCellContentView>
|
</tableViewCellContentView>
|
||||||
<connections>
|
<connections>
|
||||||
@ -203,17 +199,17 @@
|
|||||||
<!--Master-->
|
<!--Master-->
|
||||||
<scene sceneID="smW-Zh-WAh">
|
<scene sceneID="smW-Zh-WAh">
|
||||||
<objects>
|
<objects>
|
||||||
<tableViewController storyboardIdentifier="MasterViewController" title="Master" useStoryboardIdentifierAsRestorationIdentifier="YES" clearsSelectionOnViewWillAppear="NO" id="7bK-jq-Zjz" customClass="MasterViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
<tableViewController storyboardIdentifier="MasterViewController" title="Master" useStoryboardIdentifierAsRestorationIdentifier="YES" clearsSelectionOnViewWillAppear="NO" id="7bK-jq-Zjz" customClass="MasterFeedViewController" customModule="NetNewsWire" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="r7i-6Z-zg0">
|
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" sectionFooterHeight="18" id="r7i-6Z-zg0">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
||||||
<prototypes>
|
<prototypes>
|
||||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="Cell" id="zNG-5C-pQm" customClass="MasterTableViewCell" customModule="NetNewsWire" customModuleProvider="target">
|
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" indentationWidth="10" reuseIdentifier="Cell" id="zNG-5C-pQm" customClass="MasterFeedTableViewCell" customModule="NetNewsWire" customModuleProvider="target">
|
||||||
<rect key="frame" x="0.0" y="55.5" width="320" height="44"/>
|
<rect key="frame" x="0.0" y="55.5" width="600" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="zNG-5C-pQm" id="5gB-Jr-qIo">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="zNG-5C-pQm" id="5gB-Jr-qIo">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="43.5"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="43.5"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
</tableViewCellContentView>
|
</tableViewCellContentView>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
|
@ -11,13 +11,13 @@ import RSCore
|
|||||||
import Account
|
import Account
|
||||||
import RSTree
|
import RSTree
|
||||||
|
|
||||||
protocol MasterTableViewCellDelegate: class {
|
protocol MasterFeedTableViewCellDelegate: class {
|
||||||
func disclosureSelected(_ sender: MasterTableViewCell, expanding: Bool)
|
func disclosureSelected(_ sender: MasterFeedTableViewCell, expanding: Bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
class MasterTableViewCell : UITableViewCell {
|
class MasterFeedTableViewCell : UITableViewCell {
|
||||||
|
|
||||||
weak var delegate: MasterTableViewCellDelegate?
|
weak var delegate: MasterFeedTableViewCellDelegate?
|
||||||
var allowDisclosureSelection = false
|
var allowDisclosureSelection = false
|
||||||
|
|
||||||
override var accessibilityLabel: String? {
|
override var accessibilityLabel: String? {
|
||||||
@ -96,7 +96,7 @@ class MasterTableViewCell : UITableViewCell {
|
|||||||
return UIImageView(image: AppAssets.feedImage)
|
return UIImageView(image: AppAssets.feedImage)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
private let unreadCountView = MasterUnreadCountView(frame: CGRect.zero)
|
private let unreadCountView = MasterFeedUnreadCountView(frame: CGRect.zero)
|
||||||
private var showingEditControl = false
|
private var showingEditControl = false
|
||||||
private var disclosureButton: UIButton?
|
private var disclosureButton: UIButton?
|
||||||
|
|
||||||
@ -113,7 +113,7 @@ class MasterTableViewCell : UITableViewCell {
|
|||||||
override func layoutSubviews() {
|
override func layoutSubviews() {
|
||||||
super.layoutSubviews()
|
super.layoutSubviews()
|
||||||
let shouldShowDisclosure = !(showingEditControl && showsReorderControl)
|
let shouldShowDisclosure = !(showingEditControl && showsReorderControl)
|
||||||
let layout = MasterTableViewCellLayout(cellSize: bounds.size, insets: safeAreaInsets, shouldShowImage: shouldShowImage, label: titleView, unreadCountView: unreadCountView, showingEditingControl: showingEditControl, indent: indentationLevel == 1, shouldShowDisclosure: shouldShowDisclosure)
|
let layout = MasterFeedTableViewCellLayout(cellSize: bounds.size, insets: safeAreaInsets, shouldShowImage: shouldShowImage, label: titleView, unreadCountView: unreadCountView, showingEditingControl: showingEditControl, indent: indentationLevel == 1, shouldShowDisclosure: shouldShowDisclosure)
|
||||||
layoutWith(layout)
|
layoutWith(layout)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ class MasterTableViewCell : UITableViewCell {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private extension MasterTableViewCell {
|
private extension MasterFeedTableViewCell {
|
||||||
|
|
||||||
func commonInit() {
|
func commonInit() {
|
||||||
theme()
|
theme()
|
||||||
@ -166,7 +166,7 @@ private extension MasterTableViewCell {
|
|||||||
view.translatesAutoresizingMaskIntoConstraints = false
|
view.translatesAutoresizingMaskIntoConstraints = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func layoutWith(_ layout: MasterTableViewCellLayout) {
|
func layoutWith(_ layout: MasterFeedTableViewCellLayout) {
|
||||||
faviconImageView.setFrameIfNotEqual(layout.faviconRect)
|
faviconImageView.setFrameIfNotEqual(layout.faviconRect)
|
||||||
titleView.setFrameIfNotEqual(layout.titleRect)
|
titleView.setFrameIfNotEqual(layout.titleRect)
|
||||||
unreadCountView.setFrameIfNotEqual(layout.unreadCountRect)
|
unreadCountView.setFrameIfNotEqual(layout.unreadCountRect)
|
@ -9,7 +9,7 @@
|
|||||||
import UIKit
|
import UIKit
|
||||||
import RSCore
|
import RSCore
|
||||||
|
|
||||||
struct MasterTableViewCellLayout {
|
struct MasterFeedTableViewCellLayout {
|
||||||
|
|
||||||
private static let indent = CGFloat(integerLiteral: 14)
|
private static let indent = CGFloat(integerLiteral: 14)
|
||||||
private static let editingControlIndent = CGFloat(integerLiteral: 40)
|
private static let editingControlIndent = CGFloat(integerLiteral: 40)
|
||||||
@ -25,14 +25,14 @@ struct MasterTableViewCellLayout {
|
|||||||
let unreadCountRect: CGRect
|
let unreadCountRect: CGRect
|
||||||
let disclosureButtonRect: CGRect
|
let disclosureButtonRect: CGRect
|
||||||
|
|
||||||
init(cellSize: CGSize, insets: UIEdgeInsets, shouldShowImage: Bool, label: UILabel, unreadCountView: MasterUnreadCountView, showingEditingControl: Bool, indent: Bool, shouldShowDisclosure: Bool) {
|
init(cellSize: CGSize, insets: UIEdgeInsets, shouldShowImage: Bool, label: UILabel, unreadCountView: MasterFeedUnreadCountView, showingEditingControl: Bool, indent: Bool, shouldShowDisclosure: Bool) {
|
||||||
|
|
||||||
var initialIndent = MasterTableViewCellLayout.marginLeft + insets.left
|
var initialIndent = MasterFeedTableViewCellLayout.marginLeft + insets.left
|
||||||
if indent {
|
if indent {
|
||||||
initialIndent += MasterTableViewCellLayout.indent
|
initialIndent += MasterFeedTableViewCellLayout.indent
|
||||||
}
|
}
|
||||||
if showingEditingControl {
|
if showingEditingControl {
|
||||||
initialIndent += MasterTableViewCellLayout.editingControlIndent
|
initialIndent += MasterFeedTableViewCellLayout.editingControlIndent
|
||||||
}
|
}
|
||||||
|
|
||||||
let bounds = CGRect(x: initialIndent, y: 0.0, width: floor(cellSize.width - initialIndent - insets.right), height: floor(cellSize.height))
|
let bounds = CGRect(x: initialIndent, y: 0.0, width: floor(cellSize.width - initialIndent - insets.right), height: floor(cellSize.height))
|
||||||
@ -40,8 +40,8 @@ struct MasterTableViewCellLayout {
|
|||||||
// Favicon
|
// Favicon
|
||||||
var rFavicon = CGRect.zero
|
var rFavicon = CGRect.zero
|
||||||
if shouldShowImage {
|
if shouldShowImage {
|
||||||
rFavicon = CGRect(x: bounds.origin.x, y: 0.0, width: MasterTableViewCellLayout.imageSize.width, height: MasterTableViewCellLayout.imageSize.height)
|
rFavicon = CGRect(x: bounds.origin.x, y: 0.0, width: MasterFeedTableViewCellLayout.imageSize.width, height: MasterFeedTableViewCellLayout.imageSize.height)
|
||||||
rFavicon = MasterTableViewCellLayout.centerVertically(rFavicon, bounds)
|
rFavicon = MasterFeedTableViewCellLayout.centerVertically(rFavicon, bounds)
|
||||||
}
|
}
|
||||||
self.faviconRect = rFavicon
|
self.faviconRect = rFavicon
|
||||||
|
|
||||||
@ -50,12 +50,12 @@ struct MasterTableViewCellLayout {
|
|||||||
|
|
||||||
var rLabel = CGRect(x: 0.0, y: 0.0, width: labelSize.width, height: labelSize.height)
|
var rLabel = CGRect(x: 0.0, y: 0.0, width: labelSize.width, height: labelSize.height)
|
||||||
if shouldShowImage {
|
if shouldShowImage {
|
||||||
rLabel.origin.x = rFavicon.maxX + MasterTableViewCellLayout.imageMarginRight
|
rLabel.origin.x = rFavicon.maxX + MasterFeedTableViewCellLayout.imageMarginRight
|
||||||
} else {
|
} else {
|
||||||
rLabel.origin.x = bounds.minX
|
rLabel.origin.x = bounds.minX
|
||||||
}
|
}
|
||||||
|
|
||||||
rLabel = MasterTableViewCellLayout.centerVertically(rLabel, bounds)
|
rLabel = MasterFeedTableViewCellLayout.centerVertically(rLabel, bounds)
|
||||||
|
|
||||||
// Unread Count
|
// Unread Count
|
||||||
let unreadCountSize = unreadCountView.intrinsicContentSize
|
let unreadCountSize = unreadCountView.intrinsicContentSize
|
||||||
@ -66,11 +66,11 @@ struct MasterTableViewCellLayout {
|
|||||||
|
|
||||||
rUnread.size = unreadCountSize
|
rUnread.size = unreadCountSize
|
||||||
rUnread.origin.x = bounds.maxX -
|
rUnread.origin.x = bounds.maxX -
|
||||||
(unreadCountSize.width + MasterTableViewCellLayout.unreadCountMarginRight + MasterTableViewCellLayout.disclosureButtonSize.width)
|
(unreadCountSize.width + MasterFeedTableViewCellLayout.unreadCountMarginRight + MasterFeedTableViewCellLayout.disclosureButtonSize.width)
|
||||||
rUnread = MasterTableViewCellLayout.centerVertically(rUnread, bounds)
|
rUnread = MasterFeedTableViewCellLayout.centerVertically(rUnread, bounds)
|
||||||
|
|
||||||
// Cap the Title width based on the unread indicator button
|
// Cap the Title width based on the unread indicator button
|
||||||
let labelMaxX = rUnread.minX - MasterTableViewCellLayout.unreadCountMarginLeft
|
let labelMaxX = rUnread.minX - MasterFeedTableViewCellLayout.unreadCountMarginLeft
|
||||||
if rLabel.maxX > labelMaxX {
|
if rLabel.maxX > labelMaxX {
|
||||||
rLabel.size.width = labelMaxX - rLabel.minX
|
rLabel.size.width = labelMaxX - rLabel.minX
|
||||||
}
|
}
|
||||||
@ -82,9 +82,9 @@ struct MasterTableViewCellLayout {
|
|||||||
var rDisclosure = CGRect.zero
|
var rDisclosure = CGRect.zero
|
||||||
if shouldShowDisclosure {
|
if shouldShowDisclosure {
|
||||||
|
|
||||||
rDisclosure.size = MasterTableViewCellLayout.disclosureButtonSize
|
rDisclosure.size = MasterFeedTableViewCellLayout.disclosureButtonSize
|
||||||
rDisclosure.origin.x = bounds.maxX - MasterTableViewCellLayout.disclosureButtonSize.width
|
rDisclosure.origin.x = bounds.maxX - MasterFeedTableViewCellLayout.disclosureButtonSize.width
|
||||||
rDisclosure = MasterTableViewCellLayout.centerVertically(rDisclosure, bounds)
|
rDisclosure = MasterFeedTableViewCellLayout.centerVertically(rDisclosure, bounds)
|
||||||
|
|
||||||
// Cap the Title width based on the disclosure button
|
// Cap the Title width based on the disclosure button
|
||||||
let labelMaxX = rDisclosure.minX
|
let labelMaxX = rDisclosure.minX
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
class MasterTableViewSectionHeader: UITableViewHeaderFooterView {
|
class MasterFeedTableViewSectionHeader: UITableViewHeaderFooterView {
|
||||||
|
|
||||||
override var accessibilityLabel: String? {
|
override var accessibilityLabel: String? {
|
||||||
set {}
|
set {}
|
||||||
@ -63,7 +63,7 @@ class MasterTableViewSectionHeader: UITableViewHeaderFooterView {
|
|||||||
return label
|
return label
|
||||||
}()
|
}()
|
||||||
|
|
||||||
private let unreadCountView = MasterUnreadCountView(frame: CGRect.zero)
|
private let unreadCountView = MasterFeedUnreadCountView(frame: CGRect.zero)
|
||||||
private var disclosureView: UIImageView = {
|
private var disclosureView: UIImageView = {
|
||||||
let iView = UIImageView()
|
let iView = UIImageView()
|
||||||
iView.contentMode = .center
|
iView.contentMode = .center
|
||||||
@ -82,14 +82,14 @@ class MasterTableViewSectionHeader: UITableViewHeaderFooterView {
|
|||||||
|
|
||||||
override func layoutSubviews() {
|
override func layoutSubviews() {
|
||||||
super.layoutSubviews()
|
super.layoutSubviews()
|
||||||
let layout = MasterTableViewCellLayout(cellSize: bounds.size, insets: safeAreaInsets, shouldShowImage: false, label: titleView, unreadCountView: unreadCountView, showingEditingControl: false, indent: true, shouldShowDisclosure: true)
|
let layout = MasterFeedTableViewCellLayout(cellSize: bounds.size, insets: safeAreaInsets, shouldShowImage: false, label: titleView, unreadCountView: unreadCountView, showingEditingControl: false, indent: true, shouldShowDisclosure: true)
|
||||||
layoutWith(layout)
|
layoutWith(layout)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private extension MasterTableViewSectionHeader {
|
private extension MasterFeedTableViewSectionHeader {
|
||||||
|
|
||||||
func commonInit() {
|
func commonInit() {
|
||||||
let view = UIView()
|
let view = UIView()
|
||||||
@ -114,7 +114,7 @@ private extension MasterTableViewSectionHeader {
|
|||||||
view.translatesAutoresizingMaskIntoConstraints = false
|
view.translatesAutoresizingMaskIntoConstraints = false
|
||||||
}
|
}
|
||||||
|
|
||||||
func layoutWith(_ layout: MasterTableViewCellLayout) {
|
func layoutWith(_ layout: MasterFeedTableViewCellLayout) {
|
||||||
titleView.setFrameIfNotEqual(layout.titleRect)
|
titleView.setFrameIfNotEqual(layout.titleRect)
|
||||||
unreadCountView.setFrameIfNotEqual(layout.unreadCountRect)
|
unreadCountView.setFrameIfNotEqual(layout.unreadCountRect)
|
||||||
disclosureView.setFrameIfNotEqual(layout.disclosureButtonRect)
|
disclosureView.setFrameIfNotEqual(layout.disclosureButtonRect)
|
@ -16,7 +16,7 @@ private let textFont = UIFont.systemFont(ofSize: 11.0, weight: UIFont.Weight.sem
|
|||||||
private var textAttributes: [NSAttributedString.Key: AnyObject] = [NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.font: textFont, NSAttributedString.Key.kern: NSNull()]
|
private var textAttributes: [NSAttributedString.Key: AnyObject] = [NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.font: textFont, NSAttributedString.Key.kern: NSNull()]
|
||||||
private var textSizeCache = [Int: CGSize]()
|
private var textSizeCache = [Int: CGSize]()
|
||||||
|
|
||||||
class MasterUnreadCountView : UIView {
|
class MasterFeedUnreadCountView : UIView {
|
||||||
|
|
||||||
var unreadCount = 0 {
|
var unreadCount = 0 {
|
||||||
didSet {
|
didSet {
|
@ -12,7 +12,7 @@ import Articles
|
|||||||
import RSCore
|
import RSCore
|
||||||
import RSTree
|
import RSTree
|
||||||
|
|
||||||
class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
class MasterFeedViewController: ProgressTableViewController, UndoableCommandRunner {
|
||||||
|
|
||||||
@IBOutlet weak var markAllAsReadButton: UIBarButtonItem!
|
@IBOutlet weak var markAllAsReadButton: UIBarButtonItem!
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
|
|
||||||
navigationItem.rightBarButtonItem = editButtonItem
|
navigationItem.rightBarButtonItem = editButtonItem
|
||||||
|
|
||||||
tableView.register(MasterTableViewSectionHeader.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
tableView.register(MasterFeedTableViewSectionHeader.self, forHeaderFooterViewReuseIdentifier: "SectionHeader")
|
||||||
|
|
||||||
NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil)
|
NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil)
|
||||||
NotificationCenter.default.addObserver(self, selector: #selector(faviconDidBecomeAvailable(_:)), name: .FaviconDidBecomeAvailable, object: nil)
|
NotificationCenter.default.addObserver(self, selector: #selector(faviconDidBecomeAvailable(_:)), name: .FaviconDidBecomeAvailable, object: nil)
|
||||||
@ -76,7 +76,7 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
if let account = representedObject as? Account {
|
if let account = representedObject as? Account {
|
||||||
if let node = navState.rootNode.childNodeRepresentingObject(account) {
|
if let node = navState.rootNode.childNodeRepresentingObject(account) {
|
||||||
let sectionIndex = navState.rootNode.indexOfChild(node)!
|
let sectionIndex = navState.rootNode.indexOfChild(node)!
|
||||||
if let headerView = tableView.headerView(forSection: sectionIndex) as? MasterTableViewSectionHeader {
|
if let headerView = tableView.headerView(forSection: sectionIndex) as? MasterFeedTableViewSectionHeader {
|
||||||
headerView.unreadCount = account.unreadCount
|
headerView.unreadCount = account.unreadCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -161,7 +161,7 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "SectionHeader") as! MasterTableViewSectionHeader
|
let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "SectionHeader") as! MasterFeedTableViewSectionHeader
|
||||||
headerView.name = nameProvider.nameForDisplay
|
headerView.name = nameProvider.nameForDisplay
|
||||||
|
|
||||||
guard let sectionNode = navState.rootNode.childAtIndex(section) else {
|
guard let sectionNode = navState.rootNode.childAtIndex(section) else {
|
||||||
@ -194,7 +194,7 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
|
|
||||||
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||||
|
|
||||||
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! MasterTableViewCell
|
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! MasterFeedTableViewCell
|
||||||
|
|
||||||
guard let node = navState.nodeFor(indexPath) else {
|
guard let node = navState.nodeFor(indexPath) else {
|
||||||
return cell
|
return cell
|
||||||
@ -446,7 +446,7 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
|
|
||||||
guard let sectionIndex = sender.view?.tag,
|
guard let sectionIndex = sender.view?.tag,
|
||||||
let sectionNode = navState.rootNode.childAtIndex(sectionIndex),
|
let sectionNode = navState.rootNode.childAtIndex(sectionIndex),
|
||||||
let headerView = sender.view as? MasterTableViewSectionHeader
|
let headerView = sender.view as? MasterFeedTableViewSectionHeader
|
||||||
else {
|
else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -471,7 +471,7 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
|
|
||||||
// MARK: API
|
// MARK: API
|
||||||
|
|
||||||
func configure(_ cell: MasterTableViewCell, _ node: Node) {
|
func configure(_ cell: MasterFeedTableViewCell, _ node: Node) {
|
||||||
|
|
||||||
cell.delegate = self
|
cell.delegate = self
|
||||||
if node.parent?.representedObject is Folder {
|
if node.parent?.representedObject is Folder {
|
||||||
@ -489,11 +489,11 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func configureUnreadCount(_ cell: MasterTableViewCell, _ node: Node) {
|
func configureUnreadCount(_ cell: MasterFeedTableViewCell, _ node: Node) {
|
||||||
cell.unreadCount = unreadCountFor(node)
|
cell.unreadCount = unreadCountFor(node)
|
||||||
}
|
}
|
||||||
|
|
||||||
func configureFavicon(_ cell: MasterTableViewCell, _ node: Node) {
|
func configureFavicon(_ cell: MasterFeedTableViewCell, _ node: Node) {
|
||||||
cell.faviconImage = imageFor(node)
|
cell.faviconImage = imageFor(node)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -581,7 +581,7 @@ class MasterViewController: ProgressTableViewController, UndoableCommandRunner {
|
|||||||
|
|
||||||
// MARK: OPML Document Picker
|
// MARK: OPML Document Picker
|
||||||
|
|
||||||
extension MasterViewController: UIDocumentPickerDelegate {
|
extension MasterFeedViewController: UIDocumentPickerDelegate {
|
||||||
|
|
||||||
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
|
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
|
||||||
|
|
||||||
@ -599,9 +599,9 @@ extension MasterViewController: UIDocumentPickerDelegate {
|
|||||||
|
|
||||||
// MARK: MasterTableViewCellDelegate
|
// MARK: MasterTableViewCellDelegate
|
||||||
|
|
||||||
extension MasterViewController: MasterTableViewCellDelegate {
|
extension MasterFeedViewController: MasterFeedTableViewCellDelegate {
|
||||||
|
|
||||||
func disclosureSelected(_ sender: MasterTableViewCell, expanding: Bool) {
|
func disclosureSelected(_ sender: MasterFeedTableViewCell, expanding: Bool) {
|
||||||
if expanding {
|
if expanding {
|
||||||
expand(sender)
|
expand(sender)
|
||||||
} else {
|
} else {
|
||||||
@ -613,7 +613,7 @@ extension MasterViewController: MasterTableViewCellDelegate {
|
|||||||
|
|
||||||
// MARK: Private
|
// MARK: Private
|
||||||
|
|
||||||
private extension MasterViewController {
|
private extension MasterFeedViewController {
|
||||||
|
|
||||||
@objc private func refreshAccounts(_ sender: Any) {
|
@objc private func refreshAccounts(_ sender: Any) {
|
||||||
AccountManager.shared.refreshAll()
|
AccountManager.shared.refreshAll()
|
||||||
@ -633,7 +633,7 @@ private extension MasterViewController {
|
|||||||
applyToCellsForRepresentedObject(representedObject, configureUnreadCount)
|
applyToCellsForRepresentedObject(representedObject, configureUnreadCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
func applyToCellsForRepresentedObject(_ representedObject: AnyObject, _ callback: (MasterTableViewCell, Node) -> Void) {
|
func applyToCellsForRepresentedObject(_ representedObject: AnyObject, _ callback: (MasterFeedTableViewCell, Node) -> Void) {
|
||||||
applyToAvailableCells { (cell, node) in
|
applyToAvailableCells { (cell, node) in
|
||||||
if node.representedObject === representedObject {
|
if node.representedObject === representedObject {
|
||||||
callback(cell, node)
|
callback(cell, node)
|
||||||
@ -641,12 +641,12 @@ private extension MasterViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func applyToAvailableCells(_ callback: (MasterTableViewCell, Node) -> Void) {
|
func applyToAvailableCells(_ callback: (MasterFeedTableViewCell, Node) -> Void) {
|
||||||
tableView.visibleCells.forEach { cell in
|
tableView.visibleCells.forEach { cell in
|
||||||
guard let indexPath = tableView.indexPath(for: cell), let node = navState.nodeFor(indexPath) else {
|
guard let indexPath = tableView.indexPath(for: cell), let node = navState.nodeFor(indexPath) else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
callback(cell as! MasterTableViewCell, node)
|
callback(cell as! MasterFeedTableViewCell, node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -663,7 +663,7 @@ private extension MasterViewController {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func expand(_ cell: MasterTableViewCell) {
|
func expand(_ cell: MasterFeedTableViewCell) {
|
||||||
guard let indexPath = tableView.indexPath(for: cell) else {
|
guard let indexPath = tableView.indexPath(for: cell) else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -674,7 +674,7 @@ private extension MasterViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func collapse(_ cell: MasterTableViewCell) {
|
func collapse(_ cell: MasterFeedTableViewCell) {
|
||||||
guard let indexPath = tableView.indexPath(for: cell) else {
|
guard let indexPath = tableView.indexPath(for: cell) else {
|
||||||
return
|
return
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user