This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
/** |
|
* Copyright (c) 2015-present, Facebook, Inc. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
*/ |
|
|
|
#import "RCTLocalAssetImageLoader.h" |
|
|
|
#import <stdatomic.h> |
|
|
|
#import <React/RCTUtils.h> |
|
|
|
@implementation RCTLocalAssetImageLoader |
|
|
|
RCT_EXPORT_MODULE() |
|
|
|
- (BOOL)canLoadImageURL:(NSURL *)requestURL |
|
{ |
|
return RCTIsLocalAssetURL(requestURL); |
|
} |
|
|
|
- (BOOL)requiresScheduling |
|
{ |
|
// Don't schedule this loader on the URL queue so we can load the |
|
// local assets synchronously to avoid flickers. |
|
return NO; |
|
} |
|
|
|
- (BOOL)shouldCacheLoadedImages |
|
{ |
|
// UIImage imageNamed handles the caching automatically so we don't want |
|
// to add it to the image cache. |
|
return NO; |
|
} |
|
|
|
- (RCTImageLoaderCancellationBlock)loadImageForURL:(NSURL *)imageURL |
|
size:(CGSize)size |
|
scale:(CGFloat)scale |
|
resizeMode:(RCTResizeMode)resizeMode |
|
progressHandler:(RCTImageLoaderProgressBlock)progressHandler |
|
partialLoadHandler:(RCTImageLoaderPartialLoadBlock)partialLoadHandler |
|
completionHandler:(RCTImageLoaderCompletionBlock)completionHandler |
|
{ |
|
__block atomic_bool cancelled = ATOMIC_VAR_INIT(NO); |
|
RCTExecuteOnMainQueue(^{ |
|
if (atomic_load(&cancelled)) { |
|
return; |
|
} |
|
|
|
UIImage *image = RCTImageFromLocalAssetURL(imageURL); |
|
if (image) { |
|
if (progressHandler) { |
|
progressHandler(1, 1); |
|
} |
|
completionHandler(nil, image); |
|
} else { |
|
NSString *message = [NSString stringWithFormat:@"Could not find image %@", imageURL]; |
|
RCTLogWarn(@"%@", message); |
|
completionHandler(RCTErrorWithMessage(message), nil); |
|
} |
|
}); |
|
|
|
return ^{ |
|
atomic_store(&cancelled, YES); |
|
}; |
|
} |
|
|
|
@end
|
|
|