TUIConversationObjectFactory.m 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //
  2. // TUIConversationObjectFactory.m
  3. // TUIConversation
  4. //
  5. // Created by wyl on 2023/3/29.
  6. // Copyright © 2023 Tencent. All rights reserved.
  7. //
  8. #import "TUIConversationObjectFactory.h"
  9. #import <TUICore/TUIThemeManager.h>
  10. #import "TUIConversationListController.h"
  11. #import "TUIConversationSelectController.h"
  12. @interface TUIConversationObjectFactory () <TUIObjectProtocol>
  13. @end
  14. @implementation TUIConversationObjectFactory
  15. + (void)load {
  16. [TUICore registerObjectFactory:TUICore_TUIConversationObjectFactory objectFactory:[TUIConversationObjectFactory shareInstance]];
  17. }
  18. + (TUIConversationObjectFactory *)shareInstance {
  19. static dispatch_once_t onceToken;
  20. static TUIConversationObjectFactory *g_sharedInstance = nil;
  21. dispatch_once(&onceToken, ^{
  22. g_sharedInstance = [[TUIConversationObjectFactory alloc] init];
  23. });
  24. return g_sharedInstance;
  25. }
  26. #pragma mark - TUIObjectProtocol
  27. - (id)onCreateObject:(NSString *)method param:(nullable NSDictionary *)param {
  28. if ([method isEqualToString:TUICore_TUIConversationObjectFactory_GetConversationControllerMethod]) {
  29. return [self createConversationController];
  30. } else if ([method isEqualToString:TUICore_TUIConversationObjectFactory_ConversationSelectVC_Classic]) {
  31. return [self createConversationSelectController];
  32. }
  33. return nil;
  34. }
  35. - (UIViewController *)createConversationController {
  36. return [[TUIConversationListController alloc] init];
  37. }
  38. - (UIViewController *)createConversationSelectController {
  39. return [[TUIConversationSelectController alloc] init];
  40. }
  41. @end