// This file is based on third party code, see below for the original author
// and original license.
// Modifications are (c) by Threema AG and licensed under the AGPLv3.
//
// MWPhotoBrowser_Private.h
// MWPhotoBrowser
//
// Created by Michael Waterfall on 08/10/2013.
//
//
#import <UIKit/UIKit.h>
#import <AVKit/AVKit.h>
#import <MBProgressHUD/MBProgressHUD.h>
#import <MediaPlayer/MediaPlayer.h>
#import "MWGridViewController.h"
#import "MWZoomingScrollView.h"
// Declare private methods of browser
@interface MWPhotoBrowser () {
// Data
NSUInteger _photoCount;
NSMutableArray *_photos;
NSMutableArray *_thumbPhotos;
NSArray *_fixedPhotosArray; // Provided via init
// Views
UIScrollView *_pagingScrollView;
// Paging & layout
NSMutableSet *_visiblePages, *_recycledPages;
NSUInteger _currentPageIndex;
NSUInteger _previousPageIndex;
CGRect _previousLayoutBounds;
NSUInteger _pageIndexBeforeRotation;
// Navigation & controls
UIToolbar *_toolbar;
NSTimer *_controlVisibilityTimer;
/***** BEGIN THREEMA MODIFICATION: add delete button *********/
UIBarButtonItem *_previousButton, *_nextButton, *_actionButton, *_actionMultipleButton, *_doneButton, *_deleteSingleButton, *_deleteMultipleButton, *_selectAllButton, *_selectButton;
/***** END THREEMA MODIFICATION: add delete button *********/
MBProgressHUD *_progressHUD;
// Grid
MWGridViewController *_gridController;
UIBarButtonItem *_gridPreviousLeftNavItem;
UIBarButtonItem *_gridPreviousRightNavItem;
// Appearance
BOOL _previousNavBarHidden;
BOOL _previousNavBarTranslucent;
UIBarStyle _previousNavBarStyle;
UIStatusBarStyle _previousStatusBarStyle;
UIStatusBarStyle _currentStatusBarStyle;
UIColor *_previousNavBarTintColor;
UIColor *_previousNavBarBarTintColor;
UIBarButtonItem *_previousViewControllerBackButton;
UIImage *_previousNavigationBarBackgroundImageDefault;
UIImage *_previousNavigationBarBackgroundImageLandscapePhone;
// Video
AVPlayerViewController *_currentVideoPlayerViewController;
NSUInteger _currentVideoIndex;
UIActivityIndicatorView *_currentVideoLoadingIndicator;
/***** BEGIN THREEMA MODIFICATION: add peeking *********/
BOOL _peeking;
/***** END THREEMA MODIFICATION: add peeking *********/
// Misc
BOOL _hasBelongedToViewController;
BOOL _statusBarShouldBeHidden;
BOOL _displayActionButton;
BOOL _leaveStatusBarAlone;
BOOL _performingLayout;
BOOL _rotating;
BOOL _viewIsActive; // active as in it's in the view heirarchy
BOOL _didSavePreviousStateOfNavBar;
BOOL _skipNextPagingScrollViewPositioning;
BOOL _viewHasAppearedInitially;
CGPoint _currentGridContentOffset; // ignored since iOS 11
}
// Properties
@property (nonatomic) UIActivityViewController *activityViewController;
// Layout
- (void)layoutVisiblePages;
- (void)performLayout;
- (BOOL)presentingViewControllerPrefersStatusBarHidden;
// Nav Bar Appearance
- (void)setNavBarAppearance:(BOOL)animated;
- (void)storePreviousNavBarAppearance;
- (void)restorePreviousNavBarAppearance:(BOOL)animated;
// Paging
- (void)tilePages;
- (BOOL)isDisplayingPageForIndex:(NSUInteger)index;
- (MWZoomingScrollView *)pageDisplayedAtIndex:(NSUInteger)index;
- (MWZoomingScrollView *)pageDisplayingPhoto:(id<MWPhoto>)photo;
- (MWZoomingScrollView *)dequeueRecycledPage;
- (void)configurePage:(MWZoomingScrollView *)page forIndex:(NSUInteger)index;
- (void)didStartViewingPageAtIndex:(NSUInteger)index;
// Frames
- (CGRect)frameForPagingScrollView;
- (CGRect)frameForPageAtIndex:(NSUInteger)index;
- (CGSize)contentSizeForPagingScrollView;
- (CGPoint)contentOffsetForPageAtIndex:(NSUInteger)index;
- (CGRect)frameForToolbarAtOrientation:(UIInterfaceOrientation)orientation;
- (CGRect)frameForCaptionView:(MWCaptionView *)captionView atIndex:(NSUInteger)index;
- (CGRect)frameForSelectedButton:(UIButton *)selectedButton atIndex:(NSUInteger)index;
// Navigation
- (void)updateNavigation;
- (void)jumpToPageAtIndex:(NSUInteger)index animated:(BOOL)animated;
- (void)gotoPreviousPage;
- (void)gotoNextPage;
// Grid
- (void)showGrid:(BOOL)animated;
- (void)hideGrid;
// Controls
- (void)cancelControlHiding;
- (void)hideControlsAfterDelay;
- (void)setControlsHidden:(BOOL)hidden animated:(BOOL)animated permanent:(BOOL)permanent;
- (void)toggleControls;
- (BOOL)areControlsHidden;
// Data
- (NSUInteger)numberOfPhotos;
- (id<MWPhoto>)photoAtIndex:(NSUInteger)index;
- (id<MWPhoto>)thumbPhotoAtIndex:(NSUInteger)index;
- (UIImage *)imageForPhoto:(id<MWPhoto>)photo;
- (BOOL)photoIsSelectedAtIndex:(NSUInteger)index;
- (void)setPhotoSelected:(BOOL)selected atIndex:(NSUInteger)index;
- (void)loadAdjacentPhotosIfNecessary:(id<MWPhoto>)photo;
- (void)releaseAllUnderlyingPhotos:(BOOL)preserveCurrent;
@end
¤ Dauer der Verarbeitung: 0.6 Sekunden
¤
*© Formatika GbR, Deutschland