Add sharingServicesForItems_noDeprecationWarning to silence deprecation that we’re accepting.

This commit is contained in:
Brent Simmons
2025-04-25 09:30:25 -07:00
parent db3cbaa8a3
commit 6ad239fb39
4 changed files with 47 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
//
// NSObject+NSSharingService_RSCore.h
// RSCore
//
// Created by Brent Simmons on 11/3/24.
//
@import AppKit;
@interface NSSharingService (NoDeprecationWarning)
// The only way to create custom UI — a Share menu, for instance —
// is to use the unfortunately deprecated
// +[NSSharingService sharingServicesForItems:].
// This cover method allows us to not generate a warning.
//
// We know its deprecated, and we dont want to be bugged
// about it every time we build. (If anyone from Apple
// is reading this — a replacement would be very welcome!)
+ (NSArray *)sharingServicesForItems_noDeprecationWarning:(NSArray *)items;
@end

View File

@@ -0,0 +1,22 @@
//
// NSSharingService+Extension.m
// RSCore
//
// Created by Brent Simmons on 11/3/24.
//
#import "NSSharingService+Extension.h"
@implementation NSSharingService (NoDeprecationWarning)
+ (NSArray *)sharingServicesForItems_noDeprecationWarning:(NSArray *)items {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
return [NSSharingService sharingServicesForItems:items];
#pragma clang diagnostic pop
}
@end

View File

@@ -200,7 +200,7 @@ private extension TimelineViewController {
let sortedArticles = articles.sortedByDate(.orderedAscending)
let items = sortedArticles.map { ArticlePasteboardWriter(article: $0) }
let standardServices = NSSharingService.sharingServices(forItems: items)
let standardServices = NSSharingService.sharingServices(forItems_noDeprecationWarning: items) as? [NSSharingService] ?? [NSSharingService]()
let customServices = SharingServicePickerDelegate.customSharingServices(for: items)
let services = standardServices + customServices
if services.isEmpty {

View File

@@ -7,3 +7,4 @@
//
#import "WKPreferencesPrivate.h"
#import "NSSharingService+Extension.h"