- add necessary UI tips
- restore "view all apps" for host card - minor fixes
This commit is contained in:
1 parent
f325e9a206
commit
0728e999eb
14 files changed
+123
-58
No files matched your search
@@ -34,6 +34,7 @@
|
|||||||
18D43D7F2F050240008C326F /* PressureCurve.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D43D7E2F050240008C326F /* PressureCurve.swift */; };
|
18D43D7F2F050240008C326F /* PressureCurve.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D43D7E2F050240008C326F /* PressureCurve.swift */; };
|
||||||
18E4BCEA2E891895000A8657 /* MotionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E4BCE92E891895000A8657 /* MotionHandler.swift */; };
|
18E4BCEA2E891895000A8657 /* MotionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E4BCE92E891895000A8657 /* MotionHandler.swift */; };
|
||||||
18FCADAF2ECAC23200787A96 /* PencilHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18FCADAE2ECAC23200787A96 /* PencilHandler.swift */; };
|
18FCADAF2ECAC23200787A96 /* PencilHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18FCADAE2ECAC23200787A96 /* PencilHandler.swift */; };
|
||||||
|
2AC1E3832F507D80004F76C0 /* GenericUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AC1E3822F507D80004F76C0 /* GenericUtils.swift */; };
|
||||||
840751B32BF49C050096B657 /* CustomTapGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 840751B22BF49C050096B657 /* CustomTapGestureRecognizer.m */; };
|
840751B32BF49C050096B657 /* CustomTapGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 840751B22BF49C050096B657 /* CustomTapGestureRecognizer.m */; };
|
||||||
841BAC922DE35D6B00DA639E /* ThemeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 841BAC912DE35D6B00DA639E /* ThemeManager.m */; };
|
841BAC922DE35D6B00DA639E /* ThemeManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 841BAC912DE35D6B00DA639E /* ThemeManager.m */; };
|
||||||
84203F232C5F24C00032EEED /* OnScreenWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84203F222C5F24C00032EEED /* OnScreenWidgetView.swift */; };
|
84203F232C5F24C00032EEED /* OnScreenWidgetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84203F222C5F24C00032EEED /* OnScreenWidgetView.swift */; };
|
||||||
@@ -198,6 +199,7 @@
|
|||||||
18D43D7E2F050240008C326F /* PressureCurve.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PressureCurve.swift; sourceTree = "<group>"; };
|
18D43D7E2F050240008C326F /* PressureCurve.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PressureCurve.swift; sourceTree = "<group>"; };
|
||||||
18E4BCE92E891895000A8657 /* MotionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionHandler.swift; sourceTree = "<group>"; };
|
18E4BCE92E891895000A8657 /* MotionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MotionHandler.swift; sourceTree = "<group>"; };
|
||||||
18FCADAE2ECAC23200787A96 /* PencilHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PencilHandler.swift; sourceTree = "<group>"; };
|
18FCADAE2ECAC23200787A96 /* PencilHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PencilHandler.swift; sourceTree = "<group>"; };
|
||||||
|
2AC1E3822F507D80004F76C0 /* GenericUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenericUtils.swift; sourceTree = "<group>"; };
|
||||||
693B3A9A218638CD00982F7B /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; };
|
693B3A9A218638CD00982F7B /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; };
|
||||||
840751B12BF49B5A0096B657 /* CustomTapGestureRecognizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomTapGestureRecognizer.h; sourceTree = "<group>"; };
|
840751B12BF49B5A0096B657 /* CustomTapGestureRecognizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomTapGestureRecognizer.h; sourceTree = "<group>"; };
|
||||||
840751B22BF49C050096B657 /* CustomTapGestureRecognizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomTapGestureRecognizer.m; sourceTree = "<group>"; };
|
840751B22BF49C050096B657 /* CustomTapGestureRecognizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomTapGestureRecognizer.m; sourceTree = "<group>"; };
|
||||||
@@ -787,6 +789,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
18729EDD2E8BD68800101194 /* UUIDHelper.swift */,
|
18729EDD2E8BD68800101194 /* UUIDHelper.swift */,
|
||||||
|
2AC1E3822F507D80004F76C0 /* GenericUtils.swift */,
|
||||||
18A0EE2B2EFBCCFD00BA853A /* GraphicUtils.swift */,
|
18A0EE2B2EFBCCFD00BA853A /* GraphicUtils.swift */,
|
||||||
18780CC92F10D6CC00B90483 /* IAPManager.swift */,
|
18780CC92F10D6CC00B90483 /* IAPManager.swift */,
|
||||||
97E20DD42E2164A9000D5DCA /* BandwidthTracker.h */,
|
97E20DD42E2164A9000D5DCA /* BandwidthTracker.h */,
|
||||||
@@ -1088,6 +1091,7 @@
|
|||||||
1850C82A2E667E4000845308 /* MicHandler.swift in Sources */,
|
1850C82A2E667E4000845308 /* MicHandler.swift in Sources */,
|
||||||
FBD3495319FF36FB002D2A60 /* SWRevealViewController.m in Sources */,
|
FBD3495319FF36FB002D2A60 /* SWRevealViewController.m in Sources */,
|
||||||
84203F232C5F24C00032EEED /* OnScreenWidgetView.swift in Sources */,
|
84203F232C5F24C00032EEED /* OnScreenWidgetView.swift in Sources */,
|
||||||
|
2AC1E3832F507D80004F76C0 /* GenericUtils.swift in Sources */,
|
||||||
97E21BB52E2186A3000D5DCA /* imgui_impl_metal.mm in Sources */,
|
97E21BB52E2186A3000D5DCA /* imgui_impl_metal.mm in Sources */,
|
||||||
9777AAF32E2CF7A400D7FBAF /* Shaders-Linear.metal in Sources */,
|
9777AAF32E2CF7A400D7FBAF /* Shaders-Linear.metal in Sources */,
|
||||||
84FD0B512C31338D006B5BE5 /* LocalizationHelper.m in Sources */,
|
84FD0B512C31338D006B5BE5 /* LocalizationHelper.m in Sources */,
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ static CGRect layoutViewBounds;
|
|||||||
|| [bundleId isEqualToString:@"com.voidlinkextreme.iOS"]
|
|| [bundleId isEqualToString:@"com.voidlinkextreme.iOS"]
|
||||||
|| [bundleId isEqualToString:@"com.voidlink.tf.debug10.iOS"]);
|
|| [bundleId isEqualToString:@"com.voidlink.tf.debug10.iOS"]);
|
||||||
|
|
||||||
if(!importPencilProProfile && [Utils isIPad]){
|
if(!importPencilProProfile && [GenericUtils isIPad]){
|
||||||
[profilesEncoded removeObjectAtIndex:1];
|
[profilesEncoded removeObjectAtIndex:1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2478,7 +2478,7 @@ import SVGKit
|
|||||||
if ["com.voidlink.iOS"
|
if ["com.voidlink.iOS"
|
||||||
, "com.voidlinkextreme.iOS"
|
, "com.voidlinkextreme.iOS"
|
||||||
, "com.voidlink.tf.debug10.iOS"
|
, "com.voidlink.tf.debug10.iOS"
|
||||||
].contains(Bundle.main.bundleIdentifier) && Utils.isIPad() {
|
].contains(Bundle.main.bundleIdentifier) && GenericUtils.isIPad() {
|
||||||
self.functionalButtonDelegate?.presentPressureCurveVC()
|
self.functionalButtonDelegate?.presentPressureCurveVC()
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -485,18 +485,7 @@ class PressureCurveViewController: UIViewController {
|
|||||||
|
|
||||||
private var minPressure: CGFloat = 0
|
private var minPressure: CGFloat = 0
|
||||||
private var maxPressure: CGFloat = 1
|
private var maxPressure: CGFloat = 1
|
||||||
private var isFirstLaunch: Bool = {
|
private var isFirstLaunch: Bool = GenericUtils.isFirstLaunchPressureCurveTool()
|
||||||
let key = "hasLaunchedPressureCurveTool"
|
|
||||||
let defaults = UserDefaults.standard
|
|
||||||
|
|
||||||
var launchedBefore = defaults.bool(forKey: key)
|
|
||||||
|
|
||||||
if !launchedBefore {
|
|
||||||
defaults.set(true, forKey: key)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}()
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|||||||
@@ -857,6 +857,7 @@ static const double X1_MOUSE_SPEED_DIVISOR = 2.5;
|
|||||||
case HoverBoth:
|
case HoverBoth:
|
||||||
LiSendPenEvent(type, LI_TOOL_TYPE_PEN, 0, location.x / videoSize.width, location.y / videoSize.height, distance, 0.0f, 0.0f, rotationAngle, tiltAngle);
|
LiSendPenEvent(type, LI_TOOL_TYPE_PEN, 0, location.x / videoSize.width, location.y / videoSize.height, distance, 0.0f, 0.0f, rotationAngle, tiltAngle);
|
||||||
[self updateCursorLocation:location isMouse:YES];
|
[self updateCursorLocation:location isMouse:YES];
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2954,6 +2954,35 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"enableOswForNativeTouchSwitchTip" : {
|
||||||
|
"extractionState" : "manual",
|
||||||
|
"localizations" : {
|
||||||
|
"en" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "Disabling this option will turn off the on-screen controls and physical mouse.\nApple Pencil will also be unable to function properly."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zh-Hans" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "关闭此选项将禁用屏显控件、物理鼠标。Apple Pencil 也将无法正常使用。"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zh-Hant" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "關閉此選項將停用螢幕控制元件與實體滑鼠。Apple Pencil 也將無法正常使用。"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zh-HK" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "關閉此選項將停用螢幕控制元件與實體滑鼠。Apple Pencil 也將無法正常使用。"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"Enter a new command and alias" : {
|
"Enter a new command and alias" : {
|
||||||
"extractionState" : "manual",
|
"extractionState" : "manual",
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
|
|||||||
@@ -62,9 +62,7 @@ extern int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size,
|
|||||||
FramePacingMode _framePacingMode;
|
FramePacingMode _framePacingMode;
|
||||||
bool _enableTimebase;
|
bool _enableTimebase;
|
||||||
bool _asyncFrameDequeue;
|
bool _asyncFrameDequeue;
|
||||||
|
|
||||||
bool isIPhone;
|
|
||||||
|
|
||||||
// CMTime playTime;
|
// CMTime playTime;
|
||||||
// NSTimeInterval previousLinkTime;
|
// NSTimeInterval previousLinkTime;
|
||||||
}
|
}
|
||||||
@@ -150,7 +148,6 @@ extern int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size,
|
|||||||
_enableTimebase = false;
|
_enableTimebase = false;
|
||||||
_queueSize = tempSettings.frameQueueSize.intValue;
|
_queueSize = tempSettings.frameQueueSize.intValue;
|
||||||
_needRequeuing = _queueSize>0;
|
_needRequeuing = _queueSize>0;
|
||||||
isIPhone = [Utils isIPhone];
|
|
||||||
|
|
||||||
_frameQueue = [FrameQueue sharedInstance];
|
_frameQueue = [FrameQueue sharedInstance];
|
||||||
[_frameQueue start];
|
[_frameQueue start];
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
//
|
||||||
|
// GenericUtils.swift
|
||||||
|
// VoidLink
|
||||||
|
//
|
||||||
|
// Created by True砖家 on 2026/2/26.
|
||||||
|
// Copyright © 2026 True砖家@Bilibili. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
@objc public class GenericUtils: NSObject {
|
||||||
|
|
||||||
|
@objc static func needUpdateDefaultSettings() -> Bool {
|
||||||
|
// let key = "needUpdateDefaultSettings20260226-1"
|
||||||
|
let key = "needUpdateDefaultSettings20260226-2"
|
||||||
|
guard !UserDefaults.standard.bool(forKey: key) else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
UserDefaults.standard.set(true, forKey: key)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc static func isEnableOswForNativeTouchSwitchFirstFlipping() -> Bool {
|
||||||
|
let key = "enableOswForNativeTouchSwitchFlipped"
|
||||||
|
guard !UserDefaults.standard.bool(forKey: key) else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
UserDefaults.standard.set(true, forKey: key)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc static func isFirstLaunchPressureCurveTool() -> Bool {
|
||||||
|
let key = "hasLaunchedPressureCurveTool"
|
||||||
|
let defaults = UserDefaults.standard
|
||||||
|
let launchedBefore = defaults.bool(forKey: key)
|
||||||
|
|
||||||
|
if !launchedBefore {
|
||||||
|
defaults.set(true, forKey: key)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc static func isIPhone() -> Bool {
|
||||||
|
return UIDevice.current.userInterfaceIdiom == .phone
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc static func isIPad() -> Bool {
|
||||||
|
return UIDevice.current.userInterfaceIdiom == .pad
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -118,7 +118,7 @@ import SVGKit
|
|||||||
var trackPoint = CAShapeLayer()
|
var trackPoint = CAShapeLayer()
|
||||||
let path = UIBezierPath(
|
let path = UIBezierPath(
|
||||||
arcCenter: CGPoint(x: 0, y: 0),
|
arcCenter: CGPoint(x: 0, y: 0),
|
||||||
radius: Utils.isIPhone() ? 12 : 15,
|
radius: GenericUtils.isIPhone() ? 12 : 15,
|
||||||
startAngle: 0,
|
startAngle: 0,
|
||||||
endAngle: CGFloat.pi * 2,
|
endAngle: CGFloat.pi * 2,
|
||||||
clockwise: true
|
clockwise: true
|
||||||
|
|||||||
@@ -32,9 +32,7 @@ FOUNDATION_EXPORT NSString *const deviceName;
|
|||||||
+ (unsigned short) addressPortStringToPort:(NSString*)addressPort;
|
+ (unsigned short) addressPortStringToPort:(NSString*)addressPort;
|
||||||
+ (NSString*) addressAndPortToAddressPortString:(NSString*)address port:(unsigned short)port;
|
+ (NSString*) addressAndPortToAddressPortString:(NSString*)address port:(unsigned short)port;
|
||||||
+ (bool)hdrSupported;
|
+ (bool)hdrSupported;
|
||||||
+ (bool)needUpdateDefaultSettings;
|
|
||||||
+ (BOOL)isIPhone;
|
|
||||||
+ (BOOL)isIPad;
|
|
||||||
|
|
||||||
#if !TARGET_OS_TV
|
#if !TARGET_OS_TV
|
||||||
+ (void) launchUrl:(NSString*)urlString;
|
+ (void) launchUrl:(NSString*)urlString;
|
||||||
|
|||||||
@@ -155,28 +155,6 @@ NSString *const deviceName = @"roth";
|
|||||||
return VTIsHardwareDecodeSupported(kCMVideoCodecType_HEVC) && (AVPlayer.availableHDRModes & AVPlayerHDRModeHDR10);
|
return VTIsHardwareDecodeSupported(kCMVideoCodecType_HEVC) && (AVPlayer.availableHDRModes & AVPlayerHDRModeHDR10);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (bool)needUpdateDefaultSettings {
|
|
||||||
// NSString *key = @"needUpdateDefaultSettings20260209";
|
|
||||||
// NSString *key = @"needUpdateDefaultSettings20260219-1";
|
|
||||||
NSString *key = @"needUpdateDefaultSettings20260226-1";
|
|
||||||
BOOL updatedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:key];
|
|
||||||
|
|
||||||
if (!updatedBefore) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
|
|
||||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL)isIPhone{
|
|
||||||
return ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (BOOL)isIPad{
|
|
||||||
return ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad);
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation NSString (NSStringWithTrim)
|
@implementation NSString (NSStringWithTrim)
|
||||||
|
|||||||
@@ -646,11 +646,10 @@ static NSMutableSet* hostList;
|
|||||||
}]];
|
}]];
|
||||||
}
|
}
|
||||||
else if (host.pairState == PairStatePaired) {
|
else if (host.pairState == PairStatePaired) {
|
||||||
/*
|
|
||||||
[longClickAlert addAction:[UIAlertAction actionWithTitle:[LocalizationHelper localizedStringForKey:@"View All Apps"] style:UIAlertActionStyleDefault handler:^(UIAlertAction* action){
|
[longClickAlert addAction:[UIAlertAction actionWithTitle:[LocalizationHelper localizedStringForKey:@"View All Apps"] style:UIAlertActionStyleDefault handler:^(UIAlertAction* action){
|
||||||
self->_showHiddenApps = YES;
|
self->_showHiddenApps = YES;
|
||||||
[self hostClicked:host view:view];
|
[self appButtonTappedForHost:host];
|
||||||
}]]; */
|
}]];
|
||||||
|
|
||||||
#if !TARGET_OS_TV
|
#if !TARGET_OS_TV
|
||||||
|
|
||||||
@@ -1587,7 +1586,7 @@ static NSMutableSet* hostList;
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)changeDefaultSettings{
|
- (void)changeDefaultSettings{
|
||||||
if(![Utils needUpdateDefaultSettings]) return;
|
if(![GenericUtils needUpdateDefaultSettings]) return;
|
||||||
DataManager* dataMan = [[DataManager alloc] init];
|
DataManager* dataMan = [[DataManager alloc] init];
|
||||||
Settings* settings = [dataMan retrieveSettings];
|
Settings* settings = [dataMan retrieveSettings];
|
||||||
switch ([UIDevice currentDevice].userInterfaceIdiom) {
|
switch ([UIDevice currentDevice].userInterfaceIdiom) {
|
||||||
@@ -1603,12 +1602,11 @@ static NSMutableSet* hostList;
|
|||||||
settings.framePacingMode = @(FramePacingModeQueue);
|
settings.framePacingMode = @(FramePacingModeQueue);
|
||||||
if([UIScreen mainScreen].maximumFramesPerSecond > 110) settings.asyncFrameDequeue = false;
|
if([UIScreen mainScreen].maximumFramesPerSecond > 110) settings.asyncFrameDequeue = false;
|
||||||
if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.asyncFrameDequeue = false;
|
if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.asyncFrameDequeue = false;
|
||||||
settings.touchMoveEventInterval = @(0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if([UIScreen mainScreen].maximumFramesPerSecond > 110) settings.framerate = @(120);
|
if([UIScreen mainScreen].maximumFramesPerSecond > 110) settings.framerate = @(120);
|
||||||
if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.asyncFrameDequeue = @(60);
|
if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.framerate = @(60);
|
||||||
|
|
||||||
// if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.touchMoveEventInterval = @(60);
|
// if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.touchMoveEventInterval = @(60);
|
||||||
|
|
||||||
|
|||||||
@@ -876,7 +876,7 @@ BOOL isCustomResolution(int resolutionSelected) {
|
|||||||
|| [bundleId isEqualToString:@"com.voidlinkextreme.iOS"]
|
|| [bundleId isEqualToString:@"com.voidlinkextreme.iOS"]
|
||||||
|| [bundleId isEqualToString:@"com.voidlink.tf.debug10.iOS"]);
|
|| [bundleId isEqualToString:@"com.voidlink.tf.debug10.iOS"]);
|
||||||
|
|
||||||
if([Utils isIPad] && loadPencilSection){
|
if([GenericUtils isIPad] && loadPencilSection){
|
||||||
MenuSectionView* pencilSection = [[MenuSectionView alloc] init];
|
MenuSectionView* pencilSection = [[MenuSectionView alloc] init];
|
||||||
pencilSection.delegate = self;
|
pencilSection.delegate = self;
|
||||||
pencilSection.sectionTitle = [LocalizationHelper localizedStringForKey:@"Pencil"];
|
pencilSection.sectionTitle = [LocalizationHelper localizedStringForKey:@"Pencil"];
|
||||||
@@ -3013,9 +3013,28 @@ BOOL isCustomResolution(int resolutionSelected) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)enableOswForNativeTouchSwitchFlipped:(UISwitch *)sender{
|
- (void)enableOswForNativeTouchSwitchFlipped:(UISwitch *)sender{
|
||||||
|
if(!settingsViewJustLoaded
|
||||||
|
&& sender.isOn==false
|
||||||
|
&& [GenericUtils isEnableOswForNativeTouchSwitchFirstFlipping]){
|
||||||
|
[AlertControllerUtil showAlertIn:self
|
||||||
|
title:[LocalizationHelper localizedStringForKey:@"Tips"]
|
||||||
|
message:[LocalizationHelper localizedStringForKey:@"enableOswForNativeTouchSwitchTip"]
|
||||||
|
withCancel:NO
|
||||||
|
buttonTitle:[LocalizationHelper localizedStringForKey:@"This tip won't be shown again"]
|
||||||
|
countdown:6
|
||||||
|
action:nil
|
||||||
|
completion:^{
|
||||||
|
[self setHidden:!sender.isOn forStack:self.onScreenWidgetStack];
|
||||||
|
[self setHidden:!sender.isOn forStack:self.buttonVisualFeedbackStack];
|
||||||
|
[self handleOswGestureChange];
|
||||||
|
if(!sender.isOn) self.onScreenWidgetSelector.selectedSegmentIndex = OnScreenControlsLevelOff;
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
|
||||||
[self setHidden:!sender.isOn forStack:self.onScreenWidgetStack];
|
[self setHidden:!sender.isOn forStack:self.onScreenWidgetStack];
|
||||||
[self setHidden:!sender.isOn forStack:self.buttonVisualFeedbackStack];
|
[self setHidden:!sender.isOn forStack:self.buttonVisualFeedbackStack];
|
||||||
[self handleOswGestureChange];
|
[self handleOswGestureChange];
|
||||||
|
if(!sender.isOn) self.onScreenWidgetSelector.selectedSegmentIndex = OnScreenControlsLevelOff;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)trackTouchPointSwitchFlipped:(UISwitch *)sender{
|
- (void)trackTouchPointSwitchFlipped:(UISwitch *)sender{
|
||||||
@@ -3541,7 +3560,7 @@ BOOL isCustomResolution(int resolutionSelected) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
- (void)loadPencilSettings:(TemporarySettings*) tempSettings{
|
- (void)loadPencilSettings:(TemporarySettings*) tempSettings{
|
||||||
if([Utils isIPad]){
|
if([GenericUtils isIPad]){
|
||||||
self.pencilTickSelector.selectedSegmentIndex = tempSettings.pencilTickMode.intValue;
|
self.pencilTickSelector.selectedSegmentIndex = tempSettings.pencilTickMode.intValue;
|
||||||
[self.pencilTickSelector addTarget:self action:@selector(pencilTickModeChanged:) forControlEvents:UIControlEventValueChanged];
|
[self.pencilTickSelector addTarget:self action:@selector(pencilTickModeChanged:) forControlEvents:UIControlEventValueChanged];
|
||||||
[self pencilTickModeChanged:self.pencilTickSelector];
|
[self pencilTickModeChanged:self.pencilTickSelector];
|
||||||
@@ -3564,7 +3583,7 @@ BOOL isCustomResolution(int resolutionSelected) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)populatePencilSettings:(Settings*)currentSettings{
|
- (void)populatePencilSettings:(Settings*)currentSettings{
|
||||||
if([Utils isIPad]){
|
if([GenericUtils isIPad]){
|
||||||
currentSettings.pencilTickMode = @(self.pencilTickSelector.selectedSegmentIndex);
|
currentSettings.pencilTickMode = @(self.pencilTickSelector.selectedSegmentIndex);
|
||||||
currentSettings.pencilTickIntervalUs = @(self.pencilTickIntervalSlider.value);
|
currentSettings.pencilTickIntervalUs = @(self.pencilTickIntervalSlider.value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ import UIKit
|
|||||||
contentView.addSubview(addButton)
|
contentView.addSubview(addButton)
|
||||||
contentView.addSubview(deleteButton)
|
contentView.addSubview(deleteButton)
|
||||||
contentView.addSubview(editButton)
|
contentView.addSubview(editButton)
|
||||||
contentView.addSubview(exitButton)
|
// contentView.addSubview(exitButton)
|
||||||
contentView.addSubview(pinButton)
|
contentView.addSubview(pinButton)
|
||||||
|
|
||||||
self.view.addSubview(contentView)
|
self.view.addSubview(contentView)
|
||||||
@@ -153,7 +153,7 @@ import UIKit
|
|||||||
addButton.translatesAutoresizingMaskIntoConstraints = false
|
addButton.translatesAutoresizingMaskIntoConstraints = false
|
||||||
deleteButton.translatesAutoresizingMaskIntoConstraints = false
|
deleteButton.translatesAutoresizingMaskIntoConstraints = false
|
||||||
editButton.translatesAutoresizingMaskIntoConstraints = false
|
editButton.translatesAutoresizingMaskIntoConstraints = false
|
||||||
exitButton.translatesAutoresizingMaskIntoConstraints = false
|
// exitButton.translatesAutoresizingMaskIntoConstraints = false
|
||||||
pinButton.translatesAutoresizingMaskIntoConstraints = false
|
pinButton.translatesAutoresizingMaskIntoConstraints = false
|
||||||
titleLabel.translatesAutoresizingMaskIntoConstraints = false
|
titleLabel.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
|
||||||
@@ -183,11 +183,11 @@ import UIKit
|
|||||||
tableView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -60),
|
tableView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -60),
|
||||||
|
|
||||||
// ExitButton constraints
|
// ExitButton constraints
|
||||||
exitButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 25),
|
// exitButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 25),
|
||||||
exitButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -10),
|
// exitButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -10),
|
||||||
|
|
||||||
// EditButton constraints
|
// EditButton constraints
|
||||||
editButton.leadingAnchor.constraint(equalTo: exitButton.trailingAnchor, constant: 25),
|
editButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 25),
|
||||||
editButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -10),
|
editButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -10),
|
||||||
|
|
||||||
// AddButton constraints
|
// AddButton constraints
|
||||||
|
|||||||
Reference in new issue
Block a user