mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Upgrade to iOS 12
This commit is contained in:
parent
e72ea579e8
commit
b7fbcbf118
@ -127,7 +127,7 @@ genrule(
|
||||
],
|
||||
)
|
||||
|
||||
minimum_os_version = "11.0"
|
||||
minimum_os_version = "12.0"
|
||||
minimum_watchos_version="9.0"
|
||||
|
||||
empty_languages = [
|
||||
|
@ -549,9 +549,12 @@ ASSynthesizeLockingMethodsWithMutex(__instanceLock__);
|
||||
}
|
||||
|
||||
// CAEAGLLayer
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
if([[view.layer class] isSubclassOfClass:[CAEAGLLayer class]]){
|
||||
_flags.canClearContentsOfLayer = NO;
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
}
|
||||
|
||||
return view;
|
||||
|
@ -31,12 +31,6 @@
|
||||
NS_AVAILABLE_IOS(10)
|
||||
NS_INLINE void ASConfigureExtendedRange(UIGraphicsImageRendererFormat *format)
|
||||
{
|
||||
if (AS_AVAILABLE_IOS_TVOS(12, 12)) {
|
||||
// nop. We always use automatic range on iOS >= 12.
|
||||
} else {
|
||||
// Currently we never do wide color. One day we could pipe this information through from the ASImageNode if it was worth it.
|
||||
format.prefersExtendedRange = NO;
|
||||
}
|
||||
}
|
||||
|
||||
UIImage *ASGraphicsCreateImageWithOptions(CGSize size, BOOL opaque, CGFloat scale, UIImage *sourceImage,
|
||||
|
@ -1302,7 +1302,7 @@ public final class AuthorizationSequenceController: NavigationController, MFMail
|
||||
public static func defaultCountryCode() -> Int32 {
|
||||
var countryId: String? = nil
|
||||
let networkInfo = CTTelephonyNetworkInfo()
|
||||
if let carrier = networkInfo.subscriberCellularProvider {
|
||||
if let carrier = networkInfo.serviceSubscriberCellularProviders?.values.first {
|
||||
countryId = carrier.isoCountryCode
|
||||
}
|
||||
|
||||
|
@ -279,8 +279,6 @@ class ChatDocumentGalleryItemNode: ZoomableContentGalleryItemNode, WKNavigationD
|
||||
webView.loadFileURL(URL(fileURLWithPath: data.path), allowingReadAccessTo: URL(fileURLWithPath: data.path))
|
||||
}
|
||||
}
|
||||
} else if let webView = strongSelf.webView as? UIWebView {
|
||||
webView.loadRequest(URLRequest(url: URL(fileURLWithPath: data.path)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -70,10 +70,8 @@ public final class InAppPurchaseManager: NSObject {
|
||||
public var isSubscription: Bool {
|
||||
if #available(iOS 12.0, *) {
|
||||
return self.skProduct.subscriptionGroupIdentifier != nil
|
||||
} else if #available(iOS 11.2, *) {
|
||||
return self.skProduct.subscriptionPeriod != nil
|
||||
} else {
|
||||
return self.id.hasSuffix(".monthly") || self.id.hasSuffix(".annual") || self.id.hasSuffix(".semiannual")
|
||||
return self.skProduct.subscriptionPeriod != nil
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -767,10 +767,12 @@ public func legacyAssetPickerEnqueueMessages(context: AccountContext, account: A
|
||||
finalDuration = adjustments.trimEndValue - adjustments.trimStartValue
|
||||
}
|
||||
|
||||
let adjustmentsData = MemoryBuffer(data: NSKeyedArchiver.archivedData(withRootObject: adjustments.dictionary()!))
|
||||
if let dict = adjustments.dictionary(), let data = try? NSKeyedArchiver.archivedData(withRootObject: dict, requiringSecureCoding: false) {
|
||||
let adjustmentsData = MemoryBuffer(data: data)
|
||||
let digest = MemoryBuffer(data: adjustmentsData.md5Digest())
|
||||
resourceAdjustments = VideoMediaResourceAdjustments(data: adjustmentsData, digest: digest, isStory: false)
|
||||
}
|
||||
}
|
||||
|
||||
let resource: TelegramMediaResource
|
||||
var fileName: String = "video.mp4"
|
||||
|
@ -5,7 +5,8 @@
|
||||
@protocol MTKeychain <NSObject>
|
||||
|
||||
- (void)setObject:(id)object forKey:(NSString *)aKey group:(NSString *)group;
|
||||
- (id)objectForKey:(NSString *)aKey group:(NSString *)group;
|
||||
- (NSDictionary *)dictionaryForKey:(NSString *)aKey group:(NSString *)group;
|
||||
- (NSNumber *)numberForKey:(NSString *)aKey group:(NSString *)group;
|
||||
- (void)removeObjectForKey:(NSString *)aKey group:(NSString *)group;
|
||||
|
||||
@end
|
||||
|
@ -42,8 +42,22 @@
|
||||
_dict[[self itemKeyForGroup:group key:aKey]] = object;
|
||||
}
|
||||
|
||||
- (id)objectForKey:(NSString *)aKey group:(NSString *)group {
|
||||
return _dict[[self itemKeyForGroup:group key:aKey]];
|
||||
- (NSDictionary *)dictionaryForKey:(NSString *)aKey group:(NSString *)group {
|
||||
id result = _dict[[self itemKeyForGroup:group key:aKey]];
|
||||
if ([result isKindOfClass:[NSDictionary class]]) {
|
||||
return result;
|
||||
} else {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (NSNumber *)numberForKey:(NSString *)aKey group:(NSString *)group {
|
||||
id result = _dict[[self itemKeyForGroup:group key:aKey]];
|
||||
if ([result isKindOfClass:[NSNumber class]]) {
|
||||
return result;
|
||||
} else {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)removeObjectForKey:(NSString *)aKey group:(NSString *)group {
|
||||
|
@ -291,18 +291,25 @@ static int32_t fixedTimeDifferenceValue = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void copyKeychainKey(NSString * _Nonnull group, NSString * _Nonnull key, id<MTKeychain> _Nonnull fromKeychain, id<MTKeychain> _Nonnull toKeychain) {
|
||||
id value = [fromKeychain objectForKey:key group:group];
|
||||
static void copyKeychainNumberKey(NSString * _Nonnull group, NSString * _Nonnull key, id<MTKeychain> _Nonnull fromKeychain, id<MTKeychain> _Nonnull toKeychain) {
|
||||
id value = [fromKeychain numberForKey:key group:group];
|
||||
if (value) {
|
||||
[toKeychain setObject:value forKey:key group:group];
|
||||
}
|
||||
}
|
||||
|
||||
static void copyKeychainDictionaryKey(NSString * _Nonnull group, NSString * _Nonnull key, id<MTKeychain> _Nonnull fromKeychain, id<MTKeychain> _Nonnull toKeychain) {
|
||||
id value = [fromKeychain dictionaryForKey:key group:group];
|
||||
if (value) {
|
||||
[toKeychain setObject:value forKey:key group:group];
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)copyAuthInfoFrom:(id<MTKeychain> _Nonnull)keychain toTempKeychain:(id<MTKeychain> _Nonnull)tempKeychain {
|
||||
copyKeychainKey(@"temp", @"globalTimeDifference", keychain, tempKeychain);
|
||||
copyKeychainKey(@"persistent", @"datacenterAddressSetById", keychain, tempKeychain);
|
||||
copyKeychainKey(@"persistent", @"datacenterAuthInfoById", keychain, tempKeychain);
|
||||
copyKeychainKey(@"ephemeral", @"datacenterPublicKeysById", keychain, tempKeychain);
|
||||
copyKeychainNumberKey(@"temp", @"globalTimeDifference", keychain, tempKeychain);
|
||||
copyKeychainDictionaryKey(@"persistent", @"datacenterAddressSetById", keychain, tempKeychain);
|
||||
copyKeychainDictionaryKey(@"persistent", @"datacenterAuthInfoById", keychain, tempKeychain);
|
||||
copyKeychainDictionaryKey(@"ephemeral", @"datacenterPublicKeysById", keychain, tempKeychain);
|
||||
//copyKeychainKey(@"persistent", @"authTokenById", keychain, tempKeychain);
|
||||
}
|
||||
|
||||
@ -375,11 +382,11 @@ static void copyKeychainKey(NSString * _Nonnull group, NSString * _Nonnull key,
|
||||
|
||||
if (_keychain != nil)
|
||||
{
|
||||
NSNumber *nGlobalTimeDifference = [keychain objectForKey:@"globalTimeDifference" group:@"temp"];
|
||||
NSNumber *nGlobalTimeDifference = [keychain numberForKey:@"globalTimeDifference" group:@"temp"];
|
||||
if (nGlobalTimeDifference != nil)
|
||||
_globalTimeDifference = [nGlobalTimeDifference doubleValue];
|
||||
|
||||
NSDictionary *datacenterAddressSetById = [keychain objectForKey:@"datacenterAddressSetById" group:@"persistent"];
|
||||
NSDictionary *datacenterAddressSetById = [keychain dictionaryForKey:@"datacenterAddressSetById" group:@"persistent"];
|
||||
if (datacenterAddressSetById != nil) {
|
||||
_datacenterAddressSetById = [[NSMutableDictionary alloc] initWithDictionary:datacenterAddressSetById];
|
||||
if (MTLogEnabled()) {
|
||||
@ -387,7 +394,7 @@ static void copyKeychainKey(NSString * _Nonnull group, NSString * _Nonnull key,
|
||||
}
|
||||
}
|
||||
|
||||
NSDictionary *datacenterManuallySelectedSchemeById = [keychain objectForKey:@"datacenterManuallySelectedSchemeById_v1" group:@"persistent"];
|
||||
NSDictionary *datacenterManuallySelectedSchemeById = [keychain dictionaryForKey:@"datacenterManuallySelectedSchemeById_v1" group:@"persistent"];
|
||||
if (datacenterManuallySelectedSchemeById != nil) {
|
||||
_datacenterManuallySelectedSchemeById = [[NSMutableDictionary alloc] initWithDictionary:datacenterManuallySelectedSchemeById];
|
||||
if (MTLogEnabled()) {
|
||||
@ -399,7 +406,7 @@ static void copyKeychainKey(NSString * _Nonnull group, NSString * _Nonnull key,
|
||||
_datacenterAddressSetById[nDatacenterId] = [[MTDatacenterAddressSet alloc] initWithAddressList:@[address]];
|
||||
}];
|
||||
|
||||
NSDictionary *datacenterAuthInfoById = [keychain objectForKey:@"datacenterAuthInfoById" group:@"persistent"];
|
||||
NSDictionary *datacenterAuthInfoById = [keychain dictionaryForKey:@"datacenterAuthInfoById" group:@"persistent"];
|
||||
if (datacenterAuthInfoById != nil) {
|
||||
_datacenterAuthInfoById = [[NSMutableDictionary alloc] initWithDictionary:datacenterAuthInfoById];
|
||||
|
||||
@ -417,12 +424,12 @@ static void copyKeychainKey(NSString * _Nonnull group, NSString * _Nonnull key,
|
||||
}
|
||||
}
|
||||
|
||||
NSDictionary *datacenterPublicKeysById = [keychain objectForKey:@"datacenterPublicKeysById" group:@"ephemeral"];
|
||||
NSDictionary *datacenterPublicKeysById = [keychain dictionaryForKey:@"datacenterPublicKeysById" group:@"ephemeral"];
|
||||
if (datacenterPublicKeysById != nil) {
|
||||
_datacenterPublicKeysById = [[NSMutableDictionary alloc] initWithDictionary:datacenterPublicKeysById];
|
||||
}
|
||||
|
||||
NSDictionary *transportSchemeStats = [keychain objectForKey:@"transportSchemeStats_v1" group:@"temp"];
|
||||
NSDictionary *transportSchemeStats = [keychain dictionaryForKey:@"transportSchemeStats_v1" group:@"temp"];
|
||||
if (transportSchemeStats != nil) {
|
||||
[_transportSchemeStats removeAllObjects];
|
||||
[transportSchemeStats enumerateKeysAndObjectsUsingBlock:^(NSNumber *nDatacenterId, NSDictionary<MTDatacenterAddress *, MTTransportSchemeStats *> *values, __unused BOOL *stop) {
|
||||
@ -433,11 +440,11 @@ static void copyKeychainKey(NSString * _Nonnull group, NSString * _Nonnull key,
|
||||
}
|
||||
}
|
||||
|
||||
NSDictionary *authTokenById = [keychain objectForKey:@"authTokenById" group:@"persistent"];
|
||||
NSDictionary *authTokenById = [keychain dictionaryForKey:@"authTokenById" group:@"persistent"];
|
||||
if (authTokenById != nil)
|
||||
_authTokenById = [[NSMutableDictionary alloc] initWithDictionary:authTokenById];
|
||||
|
||||
NSDictionary *cleanupSessionIdsByAuthKeyId = [keychain objectForKey:@"cleanupSessionIdsByAuthKeyId" group:@"cleanup"];
|
||||
NSDictionary *cleanupSessionIdsByAuthKeyId = [keychain dictionaryForKey:@"cleanupSessionIdsByAuthKeyId" group:@"cleanup"];
|
||||
if (cleanupSessionIdsByAuthKeyId != nil)
|
||||
_cleanupSessionIdsByAuthKeyId = [[NSMutableDictionary alloc] initWithDictionary:cleanupSessionIdsByAuthKeyId];
|
||||
|
||||
|
@ -541,7 +541,7 @@ bool MTCheckIsSafePrime(id<EncryptionProvider> provider, NSData *numberBytes, id
|
||||
{
|
||||
NSString *primeKey = [[NSString alloc] initWithFormat:@"isPrimeSafe_%@", hexStringFromData(numberBytes)];
|
||||
|
||||
NSNumber *nCachedResult = [keychain objectForKey:primeKey group:@"primes"];
|
||||
NSNumber *nCachedResult = [keychain numberForKey:primeKey group:@"primes"];
|
||||
if (nCachedResult != nil) {
|
||||
return [nCachedResult boolValue];
|
||||
}
|
||||
@ -652,7 +652,7 @@ bool MTCheckIsSafeGAOrB(id<EncryptionProvider> provider, NSData *gAOrB, NSData *
|
||||
bool MTCheckMod(id<EncryptionProvider> provider, NSData *numberBytes, unsigned int g, id<MTKeychain> keychain)
|
||||
{
|
||||
NSString *modKey = [[NSString alloc] initWithFormat:@"isPrimeModSafe_%@_%d", hexStringFromData(numberBytes), g];
|
||||
NSNumber *nCachedResult = [keychain objectForKey:modKey group:@"primes"];
|
||||
NSNumber *nCachedResult = [keychain numberForKey:modKey group:@"primes"];
|
||||
if (nCachedResult != nil) {
|
||||
return [nCachedResult boolValue];
|
||||
}
|
||||
|
@ -383,8 +383,7 @@ extension SecureIdPlaintextFormInnerState {
|
||||
switch type {
|
||||
case .phone:
|
||||
var countryId: String? = nil
|
||||
let networkInfo = CTTelephonyNetworkInfo()
|
||||
if let carrier = networkInfo.subscriberCellularProvider {
|
||||
if let carrier = CTTelephonyNetworkInfo().serviceSubscriberCellularProviders?.values.first {
|
||||
countryId = carrier.isoCountryCode
|
||||
}
|
||||
|
||||
|
@ -7,8 +7,14 @@
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#define GLES_SILENCE_DEPRECATION
|
||||
|
||||
#import <GLKit/GLKit.h>
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
|
||||
@class SSignal;
|
||||
|
||||
@interface TGAvailableLocalization : NSObject <NSCoding>
|
||||
@ -74,3 +80,5 @@
|
||||
- (void)stopTimer;
|
||||
|
||||
@end
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
@ -601,6 +601,8 @@ typedef enum {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:_didEnterBackgroundObserver];
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:_willEnterBackgroundObserver];
|
||||
|
||||
[_localizationsDisposable dispose];
|
||||
|
||||
[self freeGL];
|
||||
}
|
||||
|
||||
|
@ -213,7 +213,7 @@ final class ChangePhoneNumberControllerNode: ASDisplayNode {
|
||||
|
||||
var countryId: String? = nil
|
||||
let networkInfo = CTTelephonyNetworkInfo()
|
||||
if let carrier = networkInfo.subscriberCellularProvider {
|
||||
if let carrier = networkInfo.serviceSubscriberCellularProviders?.values.first {
|
||||
countryId = carrier.isoCountryCode
|
||||
}
|
||||
|
||||
|
@ -236,7 +236,7 @@ class DeleteAccountPhoneItemNode: ListViewItemNode, ItemListItemNode {
|
||||
|
||||
var countryId: String? = nil
|
||||
let networkInfo = CTTelephonyNetworkInfo()
|
||||
if let carrier = networkInfo.subscriberCellularProvider {
|
||||
if let carrier = networkInfo.serviceSubscriberCellularProviders?.values.first {
|
||||
countryId = carrier.isoCountryCode
|
||||
}
|
||||
|
||||
|
@ -138,10 +138,12 @@ private func preparedShareItem(postbox: Postbox, network: Network, to peerId: Pe
|
||||
finalDuration = adjustments.trimEndValue - adjustments.trimStartValue
|
||||
}
|
||||
|
||||
let adjustmentsData = MemoryBuffer(data: NSKeyedArchiver.archivedData(withRootObject: adjustments.dictionary()!))
|
||||
if let dict = adjustments.dictionary(), let data = try? NSKeyedArchiver.archivedData(withRootObject: dict, requiringSecureCoding: false) {
|
||||
let adjustmentsData = MemoryBuffer(data: data)
|
||||
let digest = MemoryBuffer(data: adjustmentsData.md5Digest())
|
||||
resourceAdjustments = VideoMediaResourceAdjustments(data: adjustmentsData, digest: digest, isStory: false)
|
||||
}
|
||||
}
|
||||
|
||||
let estimatedSize = TGMediaVideoConverter.estimatedSize(for: preset, duration: finalDuration, hasAudio: true)
|
||||
|
||||
|
@ -224,10 +224,11 @@ public func accountWithId(accountManager: AccountManager<TelegramAccountManagerT
|
||||
)!, forKey: id as NSNumber)
|
||||
}
|
||||
|
||||
let data = NSKeyedArchiver.archivedData(withRootObject: dict)
|
||||
transaction.setState(backupState)
|
||||
if let data = try? NSKeyedArchiver.archivedData(withRootObject: dict, requiringSecureCoding: false) {
|
||||
transaction.setKeychainEntry(data, forKey: "persistent:datacenterAuthInfoById")
|
||||
}
|
||||
}
|
||||
|
||||
let appConfig = transaction.getPreferencesEntry(key: PreferencesKeys.appConfiguration)?.get(AppConfiguration.self) ?? .defaultValue
|
||||
|
||||
@ -837,7 +838,7 @@ public func accountBackupData(postbox: Postbox) -> Signal<AccountBackupData?, No
|
||||
guard let authInfoData = transaction.keychainEntryForKey("persistent:datacenterAuthInfoById") else {
|
||||
return nil
|
||||
}
|
||||
guard let authInfo = NSKeyedUnarchiver.unarchiveObject(with: authInfoData) as? NSDictionary else {
|
||||
guard let authInfo = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSDictionary.self, from: authInfoData) else {
|
||||
return nil
|
||||
}
|
||||
guard let datacenterAuthInfo = authInfo.object(forKey: state.masterDatacenterId as NSNumber) as? MTDatacenterAuthInfo else {
|
||||
|
@ -1126,19 +1126,36 @@ class Keychain: NSObject, MTKeychain {
|
||||
return
|
||||
}
|
||||
MTContext.perform(objCTry: {
|
||||
let data = NSKeyedArchiver.archivedData(withRootObject: object)
|
||||
if let data = try? NSKeyedArchiver.archivedData(withRootObject: object, requiringSecureCoding: false) {
|
||||
self.set(group + ":" + aKey, data)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func object(forKey aKey: String!, group: String!) -> Any! {
|
||||
func dictionary(forKey aKey: String!, group: String!) -> [AnyHashable : Any]? {
|
||||
guard let aKey = aKey, let group = group else {
|
||||
return nil
|
||||
}
|
||||
if let data = self.get(group + ":" + aKey) {
|
||||
var result: Any?
|
||||
var result: NSDictionary?
|
||||
MTContext.perform(objCTry: {
|
||||
result = NSKeyedUnarchiver.unarchiveObject(with: data as Data)
|
||||
result = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSDictionary.self, from: data as Data)
|
||||
})
|
||||
if let result = result {
|
||||
return result as? [AnyHashable : Any]
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func number(forKey aKey: String!, group: String!) -> NSNumber? {
|
||||
guard let aKey = aKey, let group = group else {
|
||||
return nil
|
||||
}
|
||||
if let data = self.get(group + ":" + aKey) {
|
||||
var result: NSNumber?
|
||||
MTContext.perform(objCTry: {
|
||||
result = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSNumber.self, from: data as Data)
|
||||
})
|
||||
return result
|
||||
}
|
||||
|
@ -82,15 +82,14 @@ private final class NetworkTypeManagerImpl {
|
||||
self.updated = updated
|
||||
|
||||
#if os(iOS)
|
||||
let telephonyInfo = CTTelephonyNetworkInfo()
|
||||
let accessTechnology = telephonyInfo.currentRadioAccessTechnology ?? ""
|
||||
let accessTechnology = CTTelephonyNetworkInfo().serviceCurrentRadioAccessTechnology?.values.first ?? ""
|
||||
self.currentCellularType = CellularNetworkType(accessTechnology: accessTechnology)
|
||||
self.cellularTypeObserver = NotificationCenter.default.addObserver(forName: NSNotification.Name.CTRadioAccessTechnologyDidChange, object: nil, queue: nil, using: { [weak self] notification in
|
||||
self.cellularTypeObserver = NotificationCenter.default.addObserver(forName: NSNotification.Name.CTServiceRadioAccessTechnologyDidChange, object: nil, queue: nil, using: { [weak self] notification in
|
||||
queue.async {
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
let accessTechnology = telephonyInfo.currentRadioAccessTechnology ?? ""
|
||||
let accessTechnology = CTTelephonyNetworkInfo().serviceCurrentRadioAccessTechnology?.values.first ?? ""
|
||||
let cellularType = CellularNetworkType(accessTechnology: accessTechnology)
|
||||
if strongSelf.currentCellularType != cellularType {
|
||||
strongSelf.currentCellularType = cellularType
|
||||
@ -137,7 +136,7 @@ private final class NetworkTypeManagerImpl {
|
||||
self.networkTypeDisposable?.dispose()
|
||||
#if os(iOS)
|
||||
if let observer = self.cellularTypeObserver {
|
||||
NotificationCenter.default.removeObserver(observer, name: NSNotification.Name.CTRadioAccessTechnologyDidChange, object: nil)
|
||||
NotificationCenter.default.removeObserver(observer, name: NSNotification.Name.CTServiceRadioAccessTechnologyDidChange, object: nil)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -202,10 +202,12 @@ public func legacyInstantVideoController(theme: PresentationTheme, forStory: Boo
|
||||
finalDuration = adjustments.trimEndValue - adjustments.trimStartValue
|
||||
}
|
||||
|
||||
let adjustmentsData = MemoryBuffer(data: NSKeyedArchiver.archivedData(withRootObject: adjustments.dictionary()!))
|
||||
if let dict = adjustments.dictionary(), let data = try? NSKeyedArchiver.archivedData(withRootObject: dict, requiringSecureCoding: false) {
|
||||
let adjustmentsData = MemoryBuffer(data: data)
|
||||
let digest = MemoryBuffer(data: adjustmentsData.md5Digest())
|
||||
resourceAdjustments = VideoMediaResourceAdjustments(data: adjustmentsData, digest: digest, isStory: false)
|
||||
}
|
||||
}
|
||||
|
||||
if finalDuration.isZero || finalDuration.isNaN {
|
||||
return
|
||||
|
@ -334,7 +334,7 @@ public func fetchVideoLibraryMediaResource(postbox: Postbox, resource: VideoLibr
|
||||
if let values = try? JSONDecoder().decode(MediaEditorValues.self, from: adjustmentsValue.data.makeData()) {
|
||||
mediaEditorValues = values
|
||||
}
|
||||
} else if let dict = NSKeyedUnarchiver.unarchiveObject(with: adjustmentsValue.data.makeData()) as? [AnyHashable : Any], let legacyAdjustments = TGVideoEditAdjustments(dictionary: dict) {
|
||||
} else if let dict = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSDictionary.self, from: adjustmentsValue.data.makeData()) as? [AnyHashable : Any], let legacyAdjustments = TGVideoEditAdjustments(dictionary: dict) {
|
||||
if alwaysUseModernPipeline {
|
||||
mediaEditorValues = MediaEditorValues(legacyAdjustments: legacyAdjustments, defaultPreset: qualityPreset)
|
||||
} else {
|
||||
@ -500,7 +500,7 @@ public func fetchLocalFileVideoMediaResource(postbox: Postbox, resource: LocalFi
|
||||
if let values = try? JSONDecoder().decode(MediaEditorValues.self, from: videoAdjustments.data.makeData()) {
|
||||
mediaEditorValues = values
|
||||
}
|
||||
} else if let dict = NSKeyedUnarchiver.unarchiveObject(with: videoAdjustments.data.makeData()) as? [AnyHashable : Any], let legacyAdjustments = TGVideoEditAdjustments(dictionary: dict) {
|
||||
} else if let dict = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSDictionary.self, from: videoAdjustments.data.makeData()) as? [AnyHashable : Any], let legacyAdjustments = TGVideoEditAdjustments(dictionary: dict) {
|
||||
if alwaysUseModernPipeline && !isImage {
|
||||
mediaEditorValues = MediaEditorValues(legacyAdjustments: legacyAdjustments, defaultPreset: qualityPreset)
|
||||
} else {
|
||||
@ -710,7 +710,7 @@ public func fetchVideoLibraryMediaResourceHash(resource: VideoLibraryMediaResour
|
||||
adjustments = nil
|
||||
case let .compress(adjustmentsValue):
|
||||
if let adjustmentsValue = adjustmentsValue {
|
||||
if let dict = NSKeyedUnarchiver.unarchiveObject(with: adjustmentsValue.data.makeData()) as? [AnyHashable : Any], let legacyAdjustments = TGVideoEditAdjustments(dictionary: dict) {
|
||||
if let dict = try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSDictionary.self, from: adjustmentsValue.data.makeData()) as? [AnyHashable : Any], let legacyAdjustments = TGVideoEditAdjustments(dictionary: dict) {
|
||||
adjustments = legacyAdjustments
|
||||
}
|
||||
}
|
||||
|
@ -134,8 +134,8 @@ public final class WatchCommunicationManager {
|
||||
if fileManager.fileExists(atPath: presetsFileUrl.path) {
|
||||
try? fileManager.removeItem(atPath: presetsFileUrl.path)
|
||||
}
|
||||
let data = NSKeyedArchiver.archivedData(withRootObject: suggestions)
|
||||
try? data.write(to: presetsFileUrl)
|
||||
let data = try? NSKeyedArchiver.archivedData(withRootObject: suggestions, requiringSecureCoding: false)
|
||||
try? data?.write(to: presetsFileUrl)
|
||||
|
||||
let _ = strongSelf.sendFile(url: presetsFileUrl, metadata: [TGBridgeIncomingFileIdentifierKey: "presets"]).start()
|
||||
}))
|
||||
|
6
third-party/libjxl/build-libjxl-bazel.sh
vendored
6
third-party/libjxl/build-libjxl-bazel.sh
vendored
@ -14,7 +14,7 @@ CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BE
|
||||
if [ "$ARCH" = "arm64" ]; then
|
||||
IOS_PLATFORMDIR="$(xcode-select -p)/Platforms/iPhoneOS.platform"
|
||||
IOS_SYSROOT=($IOS_PLATFORMDIR/Developer/SDKs/iPhoneOS*.sdk)
|
||||
export CFLAGS="-Wall -arch arm64 -miphoneos-version-min=11.0 -funwind-tables"
|
||||
export CFLAGS="-Wall -arch arm64 -miphoneos-version-min=12.0 -funwind-tables"
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
mkdir build
|
||||
@ -30,7 +30,7 @@ if [ "$ARCH" = "arm64" ]; then
|
||||
elif [ "$ARCH" = "sim_arm64" ]; then
|
||||
IOS_PLATFORMDIR="$(xcode-select -p)/Platforms/iPhoneSimulator.platform"
|
||||
IOS_SYSROOT=($IOS_PLATFORMDIR/Developer/SDKs/iPhoneSimulator*.sdk)
|
||||
export CFLAGS="-Wall -arch arm64 --target=arm64-apple-ios11.0-simulator -miphonesimulator-version-min=11.0 -funwind-tables"
|
||||
export CFLAGS="-Wall -arch arm64 --target=arm64-apple-ios12.0-simulator -miphonesimulator-version-min=12.0 -funwind-tables"
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
mkdir build
|
||||
@ -46,7 +46,7 @@ elif [ "$ARCH" = "sim_arm64" ]; then
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
IOS_PLATFORMDIR="$(xcode-select -p)/Platforms/iPhoneSimulator.platform"
|
||||
IOS_SYSROOT=($IOS_PLATFORMDIR/Developer/SDKs/iPhoneSimulator*.sdk)
|
||||
export CFLAGS="-Wall -arch x86_64 -miphoneos-version-min=11.0 -funwind-tables"
|
||||
export CFLAGS="-Wall -arch x86_64 -miphoneos-version-min=12.0 -funwind-tables"
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
mkdir build
|
||||
|
6
third-party/webp/build-webp-bazel.sh
vendored
6
third-party/webp/build-webp-bazel.sh
vendored
@ -14,7 +14,7 @@ COMMON_ARGS="-DWEBP_LINK_STATIC=1 -DWEBP_BUILD_CWEBP=0 -DWEBP_BUILD_DWEBP=0 -DWE
|
||||
if [ "$ARCH" = "arm64" ]; then
|
||||
IOS_PLATFORMDIR="$(xcode-select -p)/Platforms/iPhoneOS.platform"
|
||||
IOS_SYSROOT=($IOS_PLATFORMDIR/Developer/SDKs/iPhoneOS*.sdk)
|
||||
export CFLAGS="-Wall -arch arm64 -miphoneos-version-min=11.0 -funwind-tables"
|
||||
export CFLAGS="-Wall -arch arm64 -miphoneos-version-min=12.0 -funwind-tables"
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
mkdir build
|
||||
@ -30,7 +30,7 @@ if [ "$ARCH" = "arm64" ]; then
|
||||
elif [ "$ARCH" = "sim_arm64" ]; then
|
||||
IOS_PLATFORMDIR="$(xcode-select -p)/Platforms/iPhoneSimulator.platform"
|
||||
IOS_SYSROOT=($IOS_PLATFORMDIR/Developer/SDKs/iPhoneSimulator*.sdk)
|
||||
export CFLAGS="-Wall -arch arm64 --target=arm64-apple-ios11.0-simulator -miphonesimulator-version-min=11.0 -funwind-tables"
|
||||
export CFLAGS="-Wall -arch arm64 --target=arm64-apple-ios12.0-simulator -miphonesimulator-version-min=12.0 -funwind-tables"
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
mkdir build
|
||||
@ -46,7 +46,7 @@ elif [ "$ARCH" = "sim_arm64" ]; then
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
IOS_PLATFORMDIR="$(xcode-select -p)/Platforms/iPhoneSimulator.platform"
|
||||
IOS_SYSROOT=($IOS_PLATFORMDIR/Developer/SDKs/iPhoneSimulator*.sdk)
|
||||
export CFLAGS="-Wall -arch x86_64 -miphoneos-version-min=11.0 -funwind-tables"
|
||||
export CFLAGS="-Wall -arch x86_64 -miphoneos-version-min=12.0 -funwind-tables"
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
mkdir build
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"app": "10.2",
|
||||
"bazel": "6.3.2",
|
||||
"xcode": "14.3.1"
|
||||
"xcode": "14.5"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user