LKS_AttrModificationPatchHandler.m 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // LKS_AttrModificationPatchHandler.m
  3. // LookinServer
  4. //
  5. // Created by Li Kai on 2019/6/12.
  6. // https://lookin.work
  7. //
  8. #import "LKS_AttrModificationPatchHandler.h"
  9. #import "LookinDisplayItemDetail.h"
  10. #import "LookinServerDefines.h"
  11. @implementation LKS_AttrModificationPatchHandler
  12. + (void)handleLayerOids:(NSArray<NSNumber *> *)oids lowImageQuality:(BOOL)lowImageQuality block:(void (^)(LookinDisplayItemDetail *detail, NSUInteger tasksTotalCount, NSError *error))block {
  13. if (!block) {
  14. NSAssert(NO, @"");
  15. return;
  16. }
  17. if (![oids isKindOfClass:[NSArray class]]) {
  18. block(nil, 1, LookinErr_Inner);
  19. return;
  20. }
  21. [oids enumerateObjectsUsingBlock:^(NSNumber * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
  22. unsigned long oid = [obj unsignedLongValue];
  23. LookinDisplayItemDetail *detail = [LookinDisplayItemDetail new];
  24. detail.displayItemOid = oid;
  25. CALayer *layer = (CALayer *)[NSObject lks_objectWithOid:oid];
  26. if (![layer isKindOfClass:[CALayer class]]) {
  27. block(nil, idx + 1, LookinErr_ObjNotFound);
  28. *stop = YES;
  29. return;
  30. }
  31. if (idx == 0) {
  32. detail.soloScreenshot = [layer lks_soloScreenshotWithLowQuality:lowImageQuality];
  33. detail.groupScreenshot = [layer lks_groupScreenshotWithLowQuality:lowImageQuality];
  34. } else {
  35. detail.groupScreenshot = [layer lks_groupScreenshotWithLowQuality:lowImageQuality];
  36. }
  37. block(detail, oids.count, nil);
  38. }];
  39. }
  40. @end