vOOice/VoiceInk/PowerMode/EmojiManager.swift

53 lines
1.5 KiB
Swift

import Foundation
class EmojiManager: ObservableObject {
static let shared = EmojiManager()
private let defaultEmojis = ["🏢", "🏠", "💼", "🎮", "📱", "📺", "🎵", "📚", "✏️", "🎨", "🧠", "⚙️", "💻", "🌐", "📝", "📊", "🔍", "💬", "📈", "🔧"]
private let customEmojisKey = "userAddedEmojis"
@Published var customEmojis: [String] = []
private init() {
loadCustomEmojis()
}
var allEmojis: [String] {
return defaultEmojis + customEmojis
}
func addCustomEmoji(_ emoji: String) -> Bool {
let trimmedEmoji = emoji.trimmingCharacters(in: .whitespacesAndNewlines)
guard !trimmedEmoji.isEmpty, !allEmojis.contains(trimmedEmoji) else {
return false
}
customEmojis.append(trimmedEmoji)
saveCustomEmojis()
return true
}
private func loadCustomEmojis() {
if let savedEmojis = UserDefaults.standard.array(forKey: customEmojisKey) as? [String] {
customEmojis = savedEmojis
}
}
private func saveCustomEmojis() {
UserDefaults.standard.set(customEmojis, forKey: customEmojisKey)
}
func removeCustomEmoji(_ emoji: String) -> Bool {
if let index = customEmojis.firstIndex(of: emoji) {
customEmojis.remove(at: index)
saveCustomEmojis()
return true
}
return false
}
func isCustomEmoji(_ emoji: String) -> Bool {
return customEmojis.contains(emoji)
}
}