2016-11-01 14:48:28 +00:00
/* *
Copyright ( c ) 2016 - present , Facebook , Inc . All rights reserved .
The examples provided by Facebook are for non - commercial testing and evaluation
purposes only . Facebook reserves all rights not expressly granted .
THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER LIABILITY , WHETHER IN AN
ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM , OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE .
*/
import UIKit
import NotificationCenter
import IGListKit
2016-11-05 23:13:34 +00:00
@ available ( iOSApplicationExtension 10.0 , * )
2016-11-07 23:53:31 +00:00
final class TodayViewController : UIViewController , NCWidgetProviding , IGListAdapterDataSource {
2016-11-01 14:48:28 +00:00
lazy var adapter : IGListAdapter = {
return IGListAdapter ( updater : IGListAdapterUpdater ( ) , viewController : self , workingRangeSize : 0 )
} ( )
let collectionView = IGListCollectionView ( frame : CGRect . zero , collectionViewLayout : UICollectionViewFlowLayout ( ) )
let data = " Maecenas faucibus mollis interdum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. " . components ( separatedBy : " " )
override func viewDidLoad ( ) {
super . viewDidLoad ( )
adapter . collectionView = collectionView
adapter . dataSource = self
view . addSubview ( collectionView )
// E n a b l e s t h e ' S h o w M o r e ' b u t t o n i n t h e w i d g e t i n t e r f a c e
extensionContext ? . widgetLargestAvailableDisplayMode = . expanded
}
override func loadView ( ) {
view = UIView ( frame : CGRect ( x : 0 , y : 0 , width : 320 , height : 110 ) )
}
override func viewDidLayoutSubviews ( ) {
super . viewDidLayoutSubviews ( )
collectionView . frame = view . bounds
}
// MARK: N C W i d g e t P r o v i d i n g
func widgetActiveDisplayModeDidChange ( _ activeDisplayMode : NCWidgetDisplayMode , withMaximumSize maxSize : CGSize ) {
preferredContentSize = maxSize
}
// MARK: I G L i s t A d a p t e r D a t a S o u r c e
func objects ( for listAdapter : IGListAdapter ) -> [ IGListDiffable ] {
return data as [ IGListDiffable ]
}
func listAdapter ( _ listAdapter : IGListAdapter , sectionControllerFor object : Any ) -> IGListSectionController {
return LabelSectionController ( )
}
func emptyView ( for listAdapter : IGListAdapter ) -> UIView ? {
return nil
}
}