From b53b0784aa6c26c7abbe469dec22eae4f2128958 Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Fri, 26 Jul 2024 21:05:10 +0800 Subject: [PATCH] implement default entries for command tool. change add button to add/duplicate --- Limelight/AppDelegate.m | 8 +++++++ Limelight/Input/CommandManager.swift | 14 +++++++++++ Limelight/Localization/Localizable.xcstrings | 23 +++++++++++++++++++ .../CommandManagerViewController.swift | 2 +- 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/Limelight/AppDelegate.m b/Limelight/AppDelegate.m index 06759d9d..9cd49ec5 100644 --- a/Limelight/AppDelegate.m +++ b/Limelight/AppDelegate.m @@ -8,6 +8,7 @@ #import "AppDelegate.h" #import "MainFrameViewController.h" +#import "Moonlight-Swift.h" @implementation AppDelegate @@ -44,6 +45,13 @@ static NSString* DB_NAME = @"Limelight_iOS.sqlite"; } */ +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // Override point for customization after application launch. + [CommandManager presetDefaultCommands]; + return YES; +} + + - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL succeeded))completionHandler { _pcUuidToLoad = (NSString*)[shortcutItem.userInfo objectForKey:@"UUID"]; _shortcutCompletionHandler = completionHandler; diff --git a/Limelight/Input/CommandManager.swift b/Limelight/Input/CommandManager.swift index f486b2ab..4e446731 100644 --- a/Limelight/Input/CommandManager.swift +++ b/Limelight/Input/CommandManager.swift @@ -230,6 +230,20 @@ import UIKit loadCommands() } + @objc static func presetDefaultCommands() { + let defaults = UserDefaults.standard + if defaults.data(forKey: "savedCommands") == nil { // save default entries if the data is empty. + let defaultCommands: [RemoteCommand] = [ + RemoteCommand(keyboardCmdString: "CTRL+A", alias: "Select All"), + RemoteCommand(keyboardCmdString: "CTRL+C", alias: "Copy"), + RemoteCommand(keyboardCmdString: "CTRL+V", alias: "Paste") + ] + + let data = try? NSKeyedArchiver.archivedData(withRootObject: defaultCommands, requiringSecureCoding: false) + defaults.set(data, forKey: "savedCommands") + } + } + @objc public func createTestKeyMappings() -> [String: Int16] { return CommandManager.keyMappings } diff --git a/Limelight/Localization/Localizable.xcstrings b/Limelight/Localization/Localizable.xcstrings index d6f5d567..4f7499bd 100644 --- a/Limelight/Localization/Localizable.xcstrings +++ b/Limelight/Localization/Localizable.xcstrings @@ -145,6 +145,29 @@ } } }, + "Add/Duplicate" : { + "extractionState" : "manual", + "localizations" : { + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "新增/复制" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "新增/复制" + } + }, + "zh-HK" : { + "stringUnit" : { + "state" : "translated", + "value" : "新增/复制" + } + } + } + }, "Alias (optional)" : { "extractionState" : "manual", "localizations" : { diff --git a/Limelight/ViewControllers/CommandManagerViewController.swift b/Limelight/ViewControllers/CommandManagerViewController.swift index f67cd5af..648bc869 100644 --- a/Limelight/ViewControllers/CommandManagerViewController.swift +++ b/Limelight/ViewControllers/CommandManagerViewController.swift @@ -65,7 +65,7 @@ import UIKit tableView.rowHeight = 60 tableView.separatorColor = highlightColor // Configure buttons - addButton.setTitle(SwiftLocalizationHelper.localizedString(forKey: "Add"), for: .normal) + addButton.setTitle(SwiftLocalizationHelper.localizedString(forKey: "Add/Duplicate"), for: .normal) deleteButton.setTitle(SwiftLocalizationHelper.localizedString(forKey: "Delete"), for: .normal) editButton.setTitle(SwiftLocalizationHelper.localizedString(forKey: "Edit"), for: .normal) exitButton.setTitle(SwiftLocalizationHelper.localizedString(forKey: "Exit"), for: .normal)