Skip to content

Commit 2bfdb49

Browse files
committed
ARC
1 parent b2d6c2e commit 2bfdb49

7 files changed

Lines changed: 33 additions & 27 deletions

File tree

EmojiUIKit/UIKeyboardEmojiPreferences.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@
88
- (void)writeEmojiDefaults;
99
- (NSInteger)selectedCategoryType;
1010
- (NSUInteger)emojiCategoryDefaultsIndex:(UIKeyboardEmojiCategory *)category;
11+
- (void)refreshLocalRecents;
1112
@end

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2018 - 2020 PoomSmart
3+
Copyright (c) 2018 - 2021 PoomSmart
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export PREFIX = $(THEOS)/toolchain/Xcode11.xctoolchain/usr/bin/
2-
PACKAGE_VERSION = 1.2.3
2+
PACKAGE_VERSION = 1.3.0
33

44
ifeq ($(SIMULATOR),1)
55
TARGET = simulator:clang:latest:8.0
@@ -13,6 +13,7 @@ include $(THEOS)/makefiles/common.mk
1313

1414
LIBRARY_NAME = libEmojiLibrary
1515
libEmojiLibrary_FILES = PSEmojiUtilities.m PSEmojiUtilities+Emoji.m PSEmojiUtilities+Functions.m
16+
libEmojiLibrary_CFLAGS = -fobjc-arc
1617

1718
include $(THEOS_MAKE_PATH)/library.mk
1819
# make setup SIMULATOR=1 PL_SIMULATOR_VERSION=<target-iOS-version>

PSEmojiCategory.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#import <Foundation/Foundation.h>
2+
13
/*
24
iOS 5 - 8.2
35
@@ -41,7 +43,7 @@
4143
*/
4244

4345
// Compatibility
44-
typedef NS_ENUM (NSInteger, IDXPSEmojiCategory) {
46+
typedef NS_ENUM(NSInteger, IDXPSEmojiCategory) {
4547
IDXPSEmojiCategoryRecent = 0,
4648
IDXPSEmojiCategoryPeople = 1,
4749
IDXPSEmojiCategoryNature = 2,
@@ -55,7 +57,7 @@ typedef NS_ENUM (NSInteger, IDXPSEmojiCategory) {
5557
};
5658

5759
// iOS 9.1+
58-
typedef NS_ENUM (NSInteger, PSEmojiCategory) {
60+
typedef NS_ENUM(NSInteger, PSEmojiCategory) {
5961
PSEmojiCategoryRecent = 0,
6062
PSEmojiCategoryPeople = 1,
6163
PSEmojiCategoryNature = 2,

PSEmojiUtilities+Emoji.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ @implementation PSEmojiUtilities (Emoji)
77

88
+ (NSArray <NSString *> *)AsFakeSet:(NSArray <NSString *> *)array {
99
if (IS_IOS_OR_NEWER(iOS_14_0))
10-
return (NSArray <NSString *> *)[[NSOrderedSet orderedSetWithArray:array] retain];
11-
return [array retain];
10+
return (NSArray <NSString *> *)[NSOrderedSet orderedSetWithArray:array];
11+
return array;
1212
}
1313

1414
+ (NSArray <NSString *> *)PeopleEmoji {

PSEmojiUtilities+Functions.m

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#import "../PSHeader/Misc.h"
2+
#import "../PSHeader/iOSVersions.h"
23
#include "PSEmojiType.h"
34
#include "Header.h"
45
#import "PSEmojiUtilities.h"
56
#import <TextInput/NSString+TIExtras.h>
6-
#import <objc/runtime.h>
7-
#import <version.h>
87

98
@implementation PSEmojiUtilities (Functions)
109

@@ -307,8 +306,6 @@ + (NSString *)multiPersonStringForString:(NSString *)emojiString skinToneVariant
307306
+ (NSArray <NSArray <NSString *> *> *)skinToneChooserVariantsForString:(NSString *)emojiString usesSilhouetteSpecifiers:(BOOL)silhouette {
308307
PSEmojiMultiPersonType multiPersonType = [self multiPersonTypeForString:emojiString];
309308
if (multiPersonType) {
310-
// if ([self isHandholingCoupleEmoji:emojiString])
311-
// return [self skinToneChooserVariantsForHandHoldingCoupleType:multiPersonType];
312309
NSString *joiner = [self joiningStringForCoupleString:emojiString] ?: HANDSHAKE_JOINER;
313310
return [self skinToneChooserArraysForCoupleType:multiPersonType joiner:joiner];
314311
}
@@ -328,7 +325,7 @@ + (BOOL)hasSkin:(NSString *)emojiString {
328325

329326
+ (NSString *)changeEmojiSkin:(NSString *)emojiString toSkin:(NSString *)skin {
330327
NSString *oldSkin = [self getSkin:emojiString];
331-
if (oldSkin == nil || stringEqual(oldSkin, skin))
328+
if (oldSkin == nil || [oldSkin isEqualToString:skin])
332329
return emojiString;
333330
return [emojiString stringByReplacingOccurrencesOfString:oldSkin withString:skin options:NSLiteralSearch range:NSMakeRange(0, emojiString.length)];
334331
}
@@ -595,12 +592,13 @@ + (BOOL)hasDingbat:(NSString *)emojiString {
595592

596593
+ (UIKeyboardEmoji *)emojiWithString:(NSString *)emojiString {
597594
UIKeyboardEmoji *emoji = nil;
598-
if ([NSClassFromString(@"UIKeyboardEmoji") respondsToSelector:@selector(emojiWithString:hasDingbat:)])
599-
emoji = [NSClassFromString(@"UIKeyboardEmoji") emojiWithString:emojiString hasDingbat:[self hasDingbat:emojiString]];
600-
else if ([NSClassFromString(@"UIKeyboardEmoji") respondsToSelector:@selector(emojiWithString:)])
601-
emoji = [NSClassFromString(@"UIKeyboardEmoji") emojiWithString:emojiString];
595+
Class UIKeyboardEmoji = NSClassFromString(@"UIKeyboardEmoji");
596+
if ([UIKeyboardEmoji respondsToSelector:@selector(emojiWithString:hasDingbat:)])
597+
emoji = [UIKeyboardEmoji emojiWithString:emojiString hasDingbat:[self hasDingbat:emojiString]];
598+
else if ([UIKeyboardEmoji respondsToSelector:@selector(emojiWithString:)])
599+
emoji = [UIKeyboardEmoji emojiWithString:emojiString];
602600
else
603-
emoji = [[[NSClassFromString(@"UIKeyboardEmoji") alloc] initWithString:emojiString] autorelease];
601+
emoji = [[UIKeyboardEmoji alloc] initWithString:emojiString];
604602
if ([emoji respondsToSelector:@selector(setSupportsSkin:)])
605603
emoji.supportsSkin = [self hasSkinToneVariants:emojiString];
606604
return emoji;
@@ -729,20 +727,23 @@ + (CGGlyph)emojiGlyphShift:(CGGlyph)glyph {
729727
#endif
730728

731729
+ (void)resetEmojiPreferences {
732-
if (IS_IOS_OR_NEWER(iOS_11_0)) {
733-
// Better approach: Reset keyboard dictionary
734-
return;
730+
id preferences = nil;
731+
id innerPreferences = nil;
732+
if (NSClassFromString(@"UIKeyboardEmojiPreferences")) {
733+
preferences = innerPreferences = [NSClassFromString(@"UIKeyboardEmojiPreferences") sharedInstance];
734+
if (IS_IOS_OR_NEWER(iOS_10_2))
735+
innerPreferences = [preferences valueForKey:@"_preferencesClient"];
735736
}
736-
#if !__arm64e__
737-
id preferences;
738-
if (NSClassFromString(@"UIKeyboardEmojiPreferences"))
739-
preferences = [NSClassFromString(@"UIKeyboardEmojiPreferences") sharedInstance];
740737
else
741-
preferences = [NSClassFromString(@"UIKeyboardEmojiDefaultsController") sharedController];
742-
object_setInstanceVariable(preferences, "_defaults", (void *)[[(UIKeyboardEmojiDefaultsController *)preferences emptyDefaultsDictionary] retain]);
743-
object_setInstanceVariable(preferences, "_isDefaultDirty", (void *)YES);
738+
preferences = innerPreferences = [NSClassFromString(@"UIKeyboardEmojiDefaultsController") sharedController];
739+
if ([innerPreferences respondsToSelector:@selector(emptyDefaultsDictionary)])
740+
[innerPreferences setValue:[(UIKeyboardEmojiDefaultsController *)preferences emptyDefaultsDictionary] forKey:@"_defaults"];
741+
else
742+
[innerPreferences resetEmojiDefaults];
743+
[innerPreferences setValue:@(YES) forKey:@"_isDefaultDirty"];
744+
if ([preferences respondsToSelector:@selector(refreshLocalRecents)])
745+
[(UIKeyboardEmojiPreferences *)preferences refreshLocalRecents];
744746
[(UIKeyboardEmojiDefaultsController *)preferences writeEmojiDefaults];
745-
#endif
746747
}
747748

748749
@end

control

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ Author: PoomSmart
88
Section: Development
99
Depiction: https://poomsmart.github.io/repo/depictions/emojilibrary.html
1010
SileoDepiction: https://poomsmart.github.io/repo/sileodepictions/emojilibrary.json
11+
Tag: role::developer

0 commit comments

Comments
 (0)