11#import <Foundation/Foundation.h>
17typedef NS_ENUM(NSInteger, MAOfflineMapDownloadStatus)
19 MAOfflineMapDownloadStatusWaiting = 0,
20 MAOfflineMapDownloadStatusStart,
21 MAOfflineMapDownloadStatusProgress,
22 MAOfflineMapDownloadStatusCompleted,
23 MAOfflineMapDownloadStatusCancelled,
24 MAOfflineMapDownloadStatusUnzip,
25 MAOfflineMapDownloadStatusFinished,
26 MAOfflineMapDownloadStatusError
30extern NSString *
const MAOfflineMapErrorDomain;
33typedef NS_ENUM(NSInteger, MAOfflineMapError)
35 MAOfflineMapErrorUnknown = -1,
36 MAOfflineMapErrorCannotWriteToTmp = -2,
37 MAOfflineMapErrorCannotOpenZipFile = -3,
38 MAOfflineMapErrorCannotExpand = -4
48extern NSString *
const MAOfflineMapDownloadReceivedSizeKey;
51extern NSString *
const MAOfflineMapDownloadExpectedSizeKey;
59typedef void(^MAOfflineMapDownloadBlock)(MAOfflineItem * downloadItem, MAOfflineMapDownloadStatus downloadStatus,
id info);
65typedef void(^MAOfflineMapNewestVersionBlock)(BOOL hasNewestVersion);
68@interface MAOfflineMap : NSObject
74+ (MAOfflineMap *)sharedOfflineMap;
77@property (nonatomic, readonly) NSArray<MAOfflineProvince *> *provinces;
80@property (nonatomic, readonly) NSArray<MAOfflineItemMunicipality *> *municipalities;
83@property (nonatomic, readonly) MAOfflineItemNationWide *nationWide;
86@property (nonatomic, readonly) NSArray<MAOfflineCity *> *cities;
89@property (nonatomic, readonly) NSString *version;
95- (void)setupWithCompletionBlock:(
void(^)(BOOL setupSuccess))block;
103- (void)downloadItem:(MAOfflineItem *)item shouldContinueWhenAppEntersBackground:(BOOL)shouldContinueWhenAppEntersBackground downloadBlock:(MAOfflineMapDownloadBlock)downloadBlock;
110- (BOOL)isDownloadingForItem:(MAOfflineItem *)item;
117- (BOOL)pauseItem:(MAOfflineItem *)item;
123- (void)deleteItem:(MAOfflineItem *)item;
139- (void)checkNewestVersion:(MAOfflineMapNewestVersionBlock)newestVersionBlock;