11#import <Foundation/Foundation.h>
18typedef NS_ENUM(NSInteger, MAOfflineMapDownloadStatus)
20 MAOfflineMapDownloadStatusWaiting = 0,
21 MAOfflineMapDownloadStatusStart,
22 MAOfflineMapDownloadStatusProgress,
23 MAOfflineMapDownloadStatusCompleted,
24 MAOfflineMapDownloadStatusCancelled,
25 MAOfflineMapDownloadStatusUnzip,
26 MAOfflineMapDownloadStatusFinished,
27 MAOfflineMapDownloadStatusError
32extern NSString *
const MAOfflineMapErrorDomain;
36typedef NS_ENUM(NSInteger, MAOfflineMapError)
38 MAOfflineMapErrorUnknown = -1,
39 MAOfflineMapErrorCannotWriteToTmp = -2,
40 MAOfflineMapErrorCannotOpenZipFile = -3,
41 MAOfflineMapErrorCannotExpand = -4
57extern NSString *
const MAOfflineMapDownloadReceivedSizeKey;
61extern NSString *
const MAOfflineMapDownloadExpectedSizeKey;
73typedef void(^MAOfflineMapDownloadBlock)(MAOfflineItem * downloadItem, MAOfflineMapDownloadStatus downloadStatus,
id info);
85typedef void(^MAOfflineMapNewestVersionBlock)(BOOL hasNewestVersion);
89@interface MAOfflineMap : NSObject
96+ (MAOfflineMap *)sharedOfflineMap;
100@property (nonatomic, readonly) NSArray<MAOfflineProvince *> *provinces;
104@property (nonatomic, readonly) NSArray<MAOfflineItemMunicipality *> *municipalities;
108@property (nonatomic, readonly) MAOfflineItemNationWide *nationWide;
112@property (nonatomic, readonly) NSArray<MAOfflineCity *> *cities;
116@property (nonatomic, readonly) NSString *version;
124- (void)setupWithCompletionBlock:(
void(^)(BOOL setupSuccess))block;
136- (void)downloadItem:(MAOfflineItem *)item shouldContinueWhenAppEntersBackground:(BOOL)shouldContinueWhenAppEntersBackground downloadBlock:(MAOfflineMapDownloadBlock)downloadBlock;
146- (BOOL)isDownloadingForItem:(MAOfflineItem *)item;
156- (BOOL)pauseItem:(MAOfflineItem *)item;
164- (void)deleteItem:(MAOfflineItem *)item;
184- (void)checkNewestVersion:(MAOfflineMapNewestVersionBlock)newestVersionBlock;