1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-04 02:17:51 +01:00
Telegram/Watch/Extension/TGExtensionDelegate.m
2016-02-25 01:03:51 +01:00

117 lines
3.0 KiB
Objective-C

#import "TGExtensionDelegate.h"
#import "TGFileCache.h"
#import "TGBridgeClient.h"
#import "TGDateUtils.h"
#import "TGNeoChatsController.h"
@interface TGExtensionDelegate ()
{
NSString *_cachedContentSize;
TGContentSizeCategory _sizeCategory;
}
@end
@implementation TGExtensionDelegate
- (instancetype)init
{
self = [super init];
if (self != nil)
{
TGLog(@"Extension initialization start");
[TGBridgeClient instance];
_audioCache = [[TGFileCache alloc] initWithName:@"audio" useMemoryCache:false useApplicationGroup:true];
_audioCache.defaultFileExtension = @"m4a";
_imageCache = [[TGFileCache alloc] initWithName:@"images" useMemoryCache:true];
}
return self;
}
- (TGNeoChatsController *)chatsController
{
return (TGNeoChatsController *)[WKExtension sharedExtension].rootInterfaceController;
}
- (void)applicationDidBecomeActive
{
[[TGBridgeClient instance] handleDidBecomeActive];
}
- (void)applicationWillResignActive
{
[[TGBridgeClient instance] handleWillResignActive];
}
- (void)didReceiveRemoteNotification:(NSDictionary *)userInfo
{
}
- (void)didReceiveLocalNotification:(UILocalNotification *)notification
{
}
- (void)setCustomLocalizationFile:(NSURL *)fileUrl
{
if (fileUrl == nil)
TGResetLocalization();
else
TGSetLocalizationFromFile(fileUrl);
[TGDateUtils reset];
[[self chatsController] resetLocalization];
}
- (TGContentSizeCategory)contentSizeCategory
{
NSString *contentSize = [WKInterfaceDevice currentDevice].preferredContentSizeCategory;
if (![_cachedContentSize isEqualToString:contentSize])
{
_cachedContentSize = contentSize;
_sizeCategory = [TGExtensionDelegate contentSizeCategoryForString:contentSize];
}
return _sizeCategory;
}
+ (TGContentSizeCategory)contentSizeCategoryForString:(NSString *)string
{
if ([string isEqualToString:@"UICTContentSizeCategoryXS"])
return TGContentSizeCategoryXS;
else if ([string isEqualToString:@"UICTContentSizeCategoryS"])
return TGContentSizeCategoryS;
else if ([string isEqualToString:@"UICTContentSizeCategoryM"])
return TGContentSizeCategoryM;
else if ([string isEqualToString:@"UICTContentSizeCategoryL"])
return TGContentSizeCategoryL;
else if ([string isEqualToString:@"UICTContentSizeCategoryXL"])
return TGContentSizeCategoryXL;
else if ([string isEqualToString:@"UICTContentSizeCategoryXXL"])
return TGContentSizeCategoryXXL;
else if ([string isEqualToString:@"UICTContentSizeCategoryXXXL"])
return TGContentSizeCategoryXXXL;
return TGContentSizeCategoryL;
}
+ (NSString *)documentsPath
{
static dispatch_once_t onceToken;
static NSString *path;
dispatch_once(&onceToken, ^
{
path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0];
});
return path;
}
+ (instancetype)instance
{
return (TGExtensionDelegate *)[[WKExtension sharedExtension] delegate];
}
@end