iOS module dir
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
#import "DoricContext.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DoricComponent : NSObject
|
||||
@interface DoricContextHolder : NSObject
|
||||
@property (nonatomic,strong) DoricContext *doricContext;
|
||||
|
||||
- (instancetype)initWithContext:(DoricContext *)doricContext;
|
@@ -5,9 +5,9 @@
|
||||
// Created by pengfei.zhou on 2019/7/29.
|
||||
//
|
||||
|
||||
#import "DoricComponent.h"
|
||||
#import "DoricContextHolder.h"
|
||||
|
||||
@implementation DoricComponent
|
||||
@implementation DoricContextHolder
|
||||
|
||||
- (instancetype)initWithContext:(DoricContext *)doricContext {
|
||||
if(self = [super init]){
|
@@ -55,11 +55,11 @@ - (DoricContext *)getContext:(NSString *)contextId {
|
||||
|
||||
- (void)destroyContext:(DoricContext *)context {
|
||||
NSString *contextId = context.contextId;
|
||||
[[context.driver destroyContext:contextId] setFinishCallback:^(){
|
||||
[context.driver destroyContext:contextId].finishCallback = ^{
|
||||
dispatch_sync(self.mapQueue, ^(){
|
||||
[self.doricContextMap removeObjectForKey:contextId];
|
||||
});
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -1,15 +0,0 @@
|
||||
//
|
||||
// DoricUtil.m
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/26.
|
||||
//
|
||||
|
||||
#import "DoricUtil.h"
|
||||
|
||||
void DoricLog(NSString * _Nonnull format, ...) {
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
NSLogv([NSString stringWithFormat:@"Doric:%@",format],args);
|
||||
va_end(args);
|
||||
}
|
@@ -6,13 +6,13 @@
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "DoricComponent.h"
|
||||
#import "DoricContextHolder.h"
|
||||
#import "DoricPromise.h"
|
||||
#import "DoricRegistry.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DoricNativePlugin : DoricComponent
|
||||
@interface DoricNativePlugin : DoricContextHolder
|
||||
|
||||
@end
|
||||
|
16
iOS/Pod/Classes/Shader/DoricGroupNode.h
Normal file
16
iOS/Pod/Classes/Shader/DoricGroupNode.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// DoricGroupNode.h
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricViewNode.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DoricGroupNode : DoricViewNode<UIView *>
|
||||
- (void)blendChild:(DoricViewNode *)child layoutConfig:(NSDictionary *)layoutconfig;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
23
iOS/Pod/Classes/Shader/DoricGroupNode.m
Normal file
23
iOS/Pod/Classes/Shader/DoricGroupNode.m
Normal file
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// DoricGroupNode.m
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricGroupNode.h"
|
||||
|
||||
@implementation DoricGroupNode
|
||||
|
||||
- (UIView *)build:(NSDictionary *)props {
|
||||
return [[UIView alloc] init];
|
||||
}
|
||||
|
||||
- (void)blendView:(UIView *)view forPropName:(NSString *)name propValue:(id)prop {
|
||||
|
||||
}
|
||||
|
||||
- (void)blendChild:(DoricViewNode *)child layoutConfig:(NSDictionary *)layoutconfig {
|
||||
|
||||
}
|
||||
@end
|
16
iOS/Pod/Classes/Shader/DoricHLayoutNode.h
Normal file
16
iOS/Pod/Classes/Shader/DoricHLayoutNode.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// DoricHLayoutNode.h
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricGroupNode.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DoricHLayoutNode : DoricGroupNode
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
12
iOS/Pod/Classes/Shader/DoricHLayoutNode.m
Normal file
12
iOS/Pod/Classes/Shader/DoricHLayoutNode.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// DoricHLayoutNode.m
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricHLayoutNode.h"
|
||||
|
||||
@implementation DoricHLayoutNode
|
||||
|
||||
@end
|
16
iOS/Pod/Classes/Shader/DoricStackNode.h
Normal file
16
iOS/Pod/Classes/Shader/DoricStackNode.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// DoricStackNode.h
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricGroupNode.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DoricStackNode : DoricGroupNode
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
12
iOS/Pod/Classes/Shader/DoricStackNode.m
Normal file
12
iOS/Pod/Classes/Shader/DoricStackNode.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// DoricStackNode.m
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricStackNode.h"
|
||||
|
||||
@implementation DoricStackNode
|
||||
|
||||
@end
|
16
iOS/Pod/Classes/Shader/DoricVLayoutNode.h
Normal file
16
iOS/Pod/Classes/Shader/DoricVLayoutNode.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//
|
||||
// DoricVLayoutNode.h
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricGroupNode.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DoricVLayoutNode : DoricGroupNode
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
12
iOS/Pod/Classes/Shader/DoricVLayoutNode.m
Normal file
12
iOS/Pod/Classes/Shader/DoricVLayoutNode.m
Normal file
@@ -0,0 +1,12 @@
|
||||
//
|
||||
// DoricVLayoutNode.m
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricVLayoutNode.h"
|
||||
|
||||
@implementation DoricVLayoutNode
|
||||
|
||||
@end
|
29
iOS/Pod/Classes/Shader/DoricViewNode.h
Normal file
29
iOS/Pod/Classes/Shader/DoricViewNode.h
Normal file
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// DoricViewNode.h
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricContextHolder.h"
|
||||
|
||||
#import "UIView+Doric.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
@class DoricGroupNode;
|
||||
|
||||
@interface DoricViewNode <V>: DoricContextHolder
|
||||
|
||||
@property (nonatomic,strong) V view;
|
||||
|
||||
@property (nonatomic,weak) DoricGroupNode *parent;
|
||||
|
||||
- (V)build:(NSDictionary *)props;
|
||||
|
||||
- (void)blend:(NSDictionary *)props;
|
||||
|
||||
- (void)blendView:(V)view forPropName:(NSString *)name propValue:(id)prop;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
46
iOS/Pod/Classes/Shader/DoricViewNode.m
Normal file
46
iOS/Pod/Classes/Shader/DoricViewNode.m
Normal file
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// DoricViewNode.m
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/30.
|
||||
//
|
||||
|
||||
#import "DoricViewNode.h"
|
||||
#import "DoricUtil.h"
|
||||
#import "DoricGroupNode.h"
|
||||
|
||||
@implementation DoricViewNode
|
||||
|
||||
- (UIView *)build:(NSDictionary *)props {
|
||||
return [[UIView alloc] init];
|
||||
}
|
||||
|
||||
- (void)blend:(NSDictionary *)props {
|
||||
if(self.view == nil) {
|
||||
self.view = [self build:props];
|
||||
}
|
||||
for (NSString *key in props) {
|
||||
id value = props[key];
|
||||
[self blendView:self.view forPropName:key propValue:value];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)blendView:(UIView *)view forPropName:(NSString *)name propValue:(id)prop {
|
||||
if([name isEqualToString:@"width"]) {
|
||||
view.width = [(NSNumber *)prop floatValue];
|
||||
} else if([name isEqualToString:@"height"]) {
|
||||
view.height = [(NSNumber *)prop floatValue];
|
||||
} else if([name isEqualToString:@"x"]) {
|
||||
view.x = [(NSNumber *)prop floatValue];
|
||||
} else if([name isEqualToString:@"y"]) {
|
||||
view.y = [(NSNumber *)prop floatValue];
|
||||
} else if([name isEqualToString:@"bgColor"]) {
|
||||
view.backgroundColor = DoricColor(prop);
|
||||
} else if([name isEqualToString:@"layoutConfig"]) {
|
||||
if(self.parent && [prop isKindOfClass:[NSDictionary class]]){
|
||||
[self.parent blendChild:self layoutConfig:prop];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
@@ -15,12 +15,14 @@ typedef void(^DoricResultCallback)(R);
|
||||
typedef void(^DoricExceptionCallback)(NSException *);
|
||||
typedef void(^DoricFinishCallback)(void);
|
||||
|
||||
@property(nonatomic,strong) DoricResultCallback resultCallback;
|
||||
@property(nonatomic,strong) DoricExceptionCallback exceptionCallback;
|
||||
@property(nonatomic,strong) DoricFinishCallback finishCallback;
|
||||
|
||||
- (void)setupResult:(R)result;
|
||||
- (void)setupError:(NSException*)exception;
|
||||
- (BOOL)hasResult;
|
||||
- (R)getResult;
|
||||
- (void)setResultCallback:(DoricResultCallback) callback exceptionCallback:(DoricExceptionCallback) exceptionCallback;
|
||||
- (void)setFinishCallback:(DoricFinishCallback) callback;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -9,9 +9,6 @@
|
||||
|
||||
@interface DoricAsyncResult()
|
||||
@property(nonatomic,strong) id result;
|
||||
@property(nonatomic,strong) DoricResultCallback resultCallback;
|
||||
@property(nonatomic,strong) DoricExceptionCallback exceptionCallback;
|
||||
@property(nonatomic,strong) DoricFinishCallback finishCallback;
|
||||
@end
|
||||
|
||||
@implementation DoricAsyncResult
|
@@ -8,3 +8,5 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
void DoricLog(NSString * _Nonnull format, ...);
|
||||
|
||||
UIColor* _Nonnull DoricColor(NSNumber * _Nonnull number);
|
25
iOS/Pod/Classes/Util/DoricUtil.m
Normal file
25
iOS/Pod/Classes/Util/DoricUtil.m
Normal file
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// DoricUtil.m
|
||||
// Doric
|
||||
//
|
||||
// Created by pengfei.zhou on 2019/7/26.
|
||||
//
|
||||
|
||||
#import "DoricUtil.h"
|
||||
|
||||
void DoricLog(NSString * _Nonnull format, ...) {
|
||||
va_list args;
|
||||
va_start(args, format);
|
||||
NSLogv([NSString stringWithFormat:@"Doric:%@",format],args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
UIColor *DoricColor(NSNumber *number) {
|
||||
CGFloat r, g, b, a;
|
||||
long colorValue = [number longValue];
|
||||
a = ((colorValue >> 6) & 0xff)/225.0f;
|
||||
r = ((colorValue >> 4) & 0xff)/225.0f;
|
||||
g = ((colorValue >> 2) & 0xff)/225.0f;
|
||||
b = ((colorValue >> 0) & 0xff)/225.0f;
|
||||
return [UIColor colorWithRed:r green:g blue:b alpha:a];
|
||||
}
|
Reference in New Issue
Block a user