@class PLExpandableImageView, UIImageView, PHCachingImageManager, NSObject, PHAsset, PLVideoView, PLImageScrollView, UIView, NSString, UIGestureRecognizer, NSNumber, NSArray, PLTileContainerView, UIImage; @protocol PLPhotoTileViewControllerDelegate, PLTilePlaceholderView, OS_dispatch_source; @interface PLPhotoTileViewController : UIViewController { UIImage *_image; UIImage *_pendingImage; PHAsset *_modelPhoto; PLImageScrollView *_scrollView; PLExpandableImageView *_imageView; PLVideoView *_videoView; UIImageView *_gradientView; UIImageView *_reviewCheckmarkImageView; UIView *_placeholderView; BOOL _currentTileDownloadFinished; UIGestureRecognizer *_singleTapGestureRecognizer; UIGestureRecognizer *_doubleTapGestureRecognizer; id _tileDelegate; struct CGSize { double width; double height; } _imageSize; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _tileFrame; BOOL _zoomToFillInsteadOfToFit; BOOL _useLessThanMinZoomForZoomedOutTest; BOOL _allowZoomToFill; id _orientationDelegate; float _cropRectZoomScale; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _cropOverlayRect; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _cropRect; double _doubleTapZoomScale; double _minZoomScale; double _zoomToFillScale; int _mode; BOOL _clientIsTemporarilyWallpaper; BOOL _userDidAdjustWallpaper; float _wallpaperPortraitZoomScale; float _wallpaperLandscapeZoomScale; float _zoomScaleBeforeZooming; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _cropRectBeforeDragging; id /* block */ _didEndZoomingBlock; NSObject *_dispatchTimer; double _dispatchStartTime; double _dispatchTimeElapsed; BOOL _hasNotedZoom; unsigned char _imageIsThumbnail : 1; unsigned char _isTVOut : 1; unsigned char _zooming : 1; unsigned char _autoZooming : 1; unsigned char _zoomGesturesEnabled : 1; unsigned char _userDidZoom : 1; unsigned char _ignoreZoomChange : 1; unsigned char _tileParentIsPageController : 1; unsigned char _lockedUnderCropOverlay : 1; unsigned char _viewDidAppear : 1; unsigned char _viewWillAppear : 1; unsigned char _didRequestFullSizeImage : 1; unsigned char _useZoomScaleForCropRect : 1; unsigned char _avalancheBadgeShouldBeHidden : 1; unsigned char _badgeShouldBeVisible : 1; int _imageOrientation; PLTileContainerView *_containerView; PHCachingImageManager *__cachingImageManager; int _fullSizeImageRequestID; NSArray *_customCenterOverlayConstraints; BOOL _shouldUpdateBadgeViewOptimalLayout; double _badgeViewOptimalLayoutLowestTop; BOOL _isLoadingFullSizeImage; } @property (retain, nonatomic, setter=_setCustomCenterOverlay:) UIView *_customCenterOverlay; @property (readonly, nonatomic) PHAsset *photo; @property (nonatomic) int inflightFullSizeImageRequestID; @property (retain, nonatomic) UIImage *thumbnailImage; @property (nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } tileFrame; @property (retain, nonatomic) UIImage *unscaledImage; @property (nonatomic) BOOL centerContentVertically; @property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } overlayInsets; @property (nonatomic) BOOL forceNativeScreenScale; @property (nonatomic) BOOL force1XCroppedImage; @property (retain, nonatomic) NSNumber *maxZoomScaleOverride; @property (nonatomic) BOOL wantsCompactLayout; @property (nonatomic) BOOL reviewing; @property (nonatomic) BOOL picked; @property (nonatomic) BOOL shouldHideProgressIndicator; @property (nonatomic) BOOL shouldSupressViewWillTransitionToSize; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (struct CGSize { double x0; double x1; })tileSize; + (BOOL)_shouldForwardViewWillTransitionToSize; + (id)newPhotoTileViewControllerWithFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 image:(id)a1 allowZoomToFill:(BOOL)a2 mode:(int)a3; + (id)newPhotoTileViewControllerWithFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 imageRef:(struct CGImage { } *)a1 imageOrientation:(long long)a2 allowZoomToFill:(BOOL)a3 mode:(int)a4; + (id)newPhotoTileViewControllerWithFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 modelPhoto:(id)a1 mode:(int)a2; + (BOOL)shouldShowPlaceholderForAsset:(id)a0; + (struct CGSize { double x0; double x1; })tvOutTileSize; - (void)applicationDidBecomeActive:(id)a0; - (BOOL)shouldAutorotateToInterfaceOrientation:(long long)a0; - (void)updateViewConstraints; - (void)scrollViewDidEndDecelerating:(id)a0; - (void)_updateSubviewOrdering; - (void)setGesturesEnabled:(BOOL)a0; - (BOOL)gesturesEnabled; - (void)setZoomScale:(float)a0; - (void)scrollViewWillBeginZooming:(id)a0 withView:(id)a1; - (void)viewSafeAreaInsetsDidChange; - (struct CGSize { double x0; double x1; })scrollView:(id)a0 contentSizeForZoomScale:(double)a1 withProposedSize:(struct CGSize { double x0; double x1; })a2; - (void)scrollViewDidEndZooming:(id)a0 withView:(id)a1 atScale:(double)a2; - (void)applicationWillResignActive:(id)a0; - (int)imageOrientation; - (id)init; - (void)viewWillAppear:(BOOL)a0; - (void)dealloc; - (id)image; - (id)cachingImageManager; - (id)videoView; - (BOOL)gestureRecognizer:(id)a0 shouldReceiveTouch:(id)a1; - (void)viewDidLayoutSubviews; - (void)scrollViewDidZoom:(id)a0; - (id)viewForZoomingInScrollView:(id)a0; - (void)scrollViewDidEndDragging:(id)a0 willDecelerate:(BOOL)a1; - (void)loadView; - (id)scrollView; - (void)_handleDoubleTap:(id)a0; - (BOOL)_canShowWhileLocked; - (void)didMoveToParentViewController:(id)a0; - (void)viewDidAppear:(BOOL)a0; - (BOOL)allowsEditing; - (void)viewWillTransitionToSize:(struct CGSize { double x0; double x1; })a0 withTransitionCoordinator:(id)a1; - (BOOL)isZoomedOut; - (void)setVideoView:(id)a0; - (void)viewDidDisappear:(BOOL)a0; - (void)scrollViewWillBeginDragging:(id)a0; - (id)imageView; - (long long)_imageOrientation; - (void)_updatePlaceholderVisibility; - (void)setFullSizeImage:(id)a0; - (void)_configureViews; - (double)minZoomScale; - (void)_removePlaceholderView; - (void)resetZoom; - (void)_handleSingleTap:(id)a0; - (void)_updatePlaceholderViewAnimated:(BOOL)a0; - (void)hideContentView; - (void)reloadZoomScale; - (void)showContentView; - (void)_adjustZoomForEnteringMode:(BOOL)a0; - (void)_setupBadgeView; - (BOOL)isTVOut; - (double)minRotatedScale; - (void)setCropOverlayRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 forCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (void)_adjustScrollViewContentOffsetForInsets; - (double)zoomToFillScale; - (float)_calculateZoomScale:(BOOL)a0 inView:(id)a1; - (void)_centerImageInScrollView; - (BOOL)_clientIsWallpaper; - (void)_getFullScreenImageData:(id *)a0 forImage:(id)a1 fullSize:(struct CGSize { double x0; double x1; })a2 imageView:(id)a3 screenScaleTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a4; - (void)_handleFullSizeImageRequestResult:(id)a0 dataUTI:(id)a1 orientation:(long long)a2; - (void)_installSubview:(id)a0; - (id)_newCGImageBackedUIImageFromImage:(id)a0; - (id)_newImageForAsset:(id)a0 targetSize:(struct CGSize { double x0; double x1; })a1 cropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2 fullSize:(struct CGSize { double x0; double x1; })a3; - (id)_newOriginalImageForPickerFromCachedData; - (void)_performDidEndZoomBlock; - (void)_performRotationUpdatesWithDuration:(double)a0 size:(struct CGSize { double x0; double x1; })a1; - (void)_repositionBadgeView; - (void)_requestFullSizeImage; - (void)_resetZoomCommon; - (void)_setDefaultZoomScale; - (void)_setDidEndZoomingBlock:(id /* block */)a0; - (void)_setImage:(id)a0 isThumbnail:(BOOL)a1 preserveFrame:(BOOL)a2; - (void)_setPhoto:(id)a0; - (void)_setupReviewCheckmark; - (void)_showBadgeViewIfAppropriate; - (void)_teardownDispatchTimer; - (void)_updateContentInset; - (void)_updateModelPhotoWithImage:(id)a0; - (void)_updatePlaceholderImageRect; - (void)_updateReviewCheckmark; - (void)_updateVideoViewForModelPhoto; - (void)_viewWillMoveToSuperView:(id)a0; - (void)cancelFullSizeImageRequest; - (double)currentToDefaultZoomRatio; - (double)currentToMinZoomRatio; - (double)defaultZoomScale; - (id)dictionaryWithCroppedImageForRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 minimalCropDimension:(double)a1 withOptions:(int)a2; - (void)didLoadImage; - (void)ensureFullSizeImageLoaded; - (id)expandableImageView; - (void)forceZoomingGesturesEnabled; - (BOOL)hasFullSizeImage; - (id)initForPageController; - (id)initWithModelPhoto:(id)a0 image:(id)a1 frame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2 isThumbnail:(BOOL)a3 imageOrientation:(int)a4 allowZoomToFill:(BOOL)a5 mode:(int)a6; - (id)initWithModelPhoto:(id)a0 thumbnailImage:(id)a1 size:(struct CGSize { double x0; double x1; })a2; - (void)installVideoOverlay:(id)a0; - (id)newImageWithCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 minimalCropDimension:(double)a1 croppedImageData:(id *)a2 fullScreenImageData:(id *)a3 imageCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } *)a4 intersectCropWithFullRect:(BOOL)a5; - (void)noteParentViewControllerDidDisappear; - (BOOL)photoShouldHaveAvalancheBadge; - (BOOL)photoShouldHaveHDRBadge; - (void)refreshTileWithFullScreenImage:(id)a0 modelPhoto:(id)a1; - (void)retryDownload; - (void)setAllowsZoomToFill:(BOOL)a0; - (void)setAvalancheBadgesHidden:(BOOL)a0; - (void)setBadgeVisible:(BOOL)a0; - (void)setBadgeVisible:(BOOL)a0 animated:(BOOL)a1; - (void)setClientIsWallpaper:(BOOL)a0; - (void)setLockedUnderCropOverlay:(BOOL)a0; - (void)setOrientationDelegate:(id)a0; - (void)setReviewing:(BOOL)a0 animated:(BOOL)a1; - (void)setTVOut:(BOOL)a0; - (void)setTileDelegate:(id)a0; - (void)setZoomingGesturesEnabled:(BOOL)a0; - (void)showErrorPlaceholderView; - (id)tileDelegate; - (BOOL)tileIsOnScreen; - (void)updateAfterCollapse; - (void)updateCenterOverlay; - (void)updateCloudDownloadProgress:(double)a0; - (void)updateForVisibleOverlays:(BOOL)a0; - (void)updateZoomScales; - (BOOL)userDidAdjustWallpaper; - (double)zoomToFitScale; - (void)zoomToScale:(double)a0 animated:(BOOL)a1 completionBlock:(id /* block */)a2; @end