AlbumPicker.m 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // AlbumPicker.m
  3. // TUIChat
  4. //
  5. // Created by yiliangwang on 2024/10/30.
  6. // Copyright © 2024 Tencent. All rights reserved.
  7. //
  8. #import "AlbumPicker.h"
  9. #import <Foundation/Foundation.h>
  10. #import <UIKit/UIKit.h>
  11. @interface AlbumPicker()
  12. @end
  13. @implementation AlbumPicker
  14. + (instancetype)sharedInstance {
  15. static AlbumPicker *sharedInstance = nil;
  16. static dispatch_once_t onceToken;
  17. dispatch_once(&onceToken, ^{
  18. sharedInstance = [[self alloc] init];
  19. });
  20. return sharedInstance;
  21. }
  22. + (void)registerAdvancedAlbumPicker:(id<IAlbumPicker>)albumPicker {
  23. [AlbumPicker sharedInstance].advancedAlbumPicker = albumPicker;
  24. }
  25. + (void)pickMediaWithCaller:(UIViewController *)caller
  26. originalMediaPicked:(IAlbumPickerCallback)mediaPicked
  27. progressCallback:(IAlbumPickerCallback)progressCallback
  28. finishedCallback:(IAlbumPickerCallback)finishedCallback {
  29. id<IAlbumPicker> albumPicker = nil;
  30. if ([AlbumPicker sharedInstance].advancedAlbumPicker) {
  31. albumPicker = [AlbumPicker sharedInstance].advancedAlbumPicker;
  32. }
  33. if (albumPicker && [albumPicker respondsToSelector:@selector
  34. (pickMediaWithCaller:originalMediaPicked:progressCallback:finishedCallback:)]) {
  35. [albumPicker pickMediaWithCaller:caller originalMediaPicked:mediaPicked progressCallback:progressCallback finishedCallback:finishedCallback];
  36. }
  37. }
  38. @end