From e98796576595fb05d22a03c341578931566e27e8 Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Tue, 23 Jun 2026 00:48:36 +0800 Subject: [PATCH] tweak widget templates --- .../Input/CustomOSC/OSCProfilesManager.swift | 25 ++++++++++++------ VoidLink/PresetConfigs/widgetTemplates.bin | Bin 600063 -> 600061 bytes .../PresetConfigs/widgetTemplatesIPhone.bin | Bin 558316 -> 558332 bytes 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/VoidLink/Input/CustomOSC/OSCProfilesManager.swift b/VoidLink/Input/CustomOSC/OSCProfilesManager.swift index 3580c32d..569f5fbe 100644 --- a/VoidLink/Input/CustomOSC/OSCProfilesManager.swift +++ b/VoidLink/Input/CustomOSC/OSCProfilesManager.swift @@ -15,7 +15,7 @@ import UIKit class OSCProfilesManager: NSObject { private static let profilesDefaultsKey = "OSCProfiles" // private static let widgetProfileUpdatedKey = "widgetProfileUpdated-20260606" - private static let widgetProfileUpdatedKey = "widgetProfileUpdated-20260622" + private static let widgetProfileUpdatedKey = "widgetProfileUpdated-20260622-6" private static var sharedInstance: OSCProfilesManager? private static var onScreenWidgetViews: NSMutableSet? @@ -216,7 +216,7 @@ class OSCProfilesManager: NSObject { UIDevice.current.userInterfaceIdiom == .phone } - func importDefaultTemplates() { + func importDefaultTemplates(selectedIndex: UInt32? = nil) { guard let filePath = Bundle.main.path(forResource: isIPhone() ? "widgetTemplatesIPhone" : "widgetTemplates", ofType: "bin") else { return } @@ -225,7 +225,9 @@ class OSCProfilesManager: NSObject { let fileData = try Data(contentsOf: URL(fileURLWithPath: filePath), options: .mappedIfSafe) if let profilesEncoded = try NSKeyedUnarchiver.unarchivedObject(ofClasses: [NSMutableData.self, NSMutableArray.self], from: fileData) as? NSMutableArray { importEncodedProfiles(profilesEncoded) - setProfileToSelected(0) + if let selectedIndex = selectedIndex { + setProfileToSelected(selectedIndex) + } } } catch { return @@ -308,17 +310,24 @@ class OSCProfilesManager: NSObject { var profiles = getAllProfiles() let defaults = UserDefaults.standard let needImportDefaultTemplates = defaults.object(forKey: Self.widgetProfileUpdatedKey) == nil + + var selectedIndex: UInt32 = 0 + for case let profile as OSCProfile in profiles where profile.isSelected { + selectedIndex = UInt32(profiles.index(of: profile)) + } + + let currentProfileCount = profiles.count - if (profiles.count == 0 || needImportDefaultTemplates) && !GenericUtils.pencilProPurchaseProcessedWithImportingWidgetTemplates { - importDefaultTemplates() + if (currentProfileCount == 0 || needImportDefaultTemplates) && !GenericUtils.pencilProPurchaseProcessedWithImportingWidgetTemplates { + selectedIndex = currentProfileCount == 0 ? 0 : selectedIndex + importDefaultTemplates(selectedIndex: selectedIndex) defaults.set(true, forKey: Self.widgetProfileUpdatedKey) defaults.synchronize() profiles = getAllProfiles() } - for case let profile as OSCProfile in profiles where profile.isSelected { - return profile - } + + return profiles[Int(selectedIndex)] as! OSCProfile return (profiles.firstObject as? OSCProfile) ?? OSCProfile(name: "", buttonStates: NSMutableArray(), isSelected: false) } diff --git a/VoidLink/PresetConfigs/widgetTemplates.bin b/VoidLink/PresetConfigs/widgetTemplates.bin index 8679eb82b130b87f5fd1f0557f69e4ef5bec783e..84cc2e73d54ec76358d8522c94ac7ea806824015 100644 GIT binary patch delta 5916 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 L-&N<7XEX)?uP7h| diff --git a/VoidLink/PresetConfigs/widgetTemplatesIPhone.bin b/VoidLink/PresetConfigs/widgetTemplatesIPhone.bin index a4b2effb3ac970f7823080a1293cd5ec9c87e598..18a818312926caf5b7379fd7a382d555175267e9 100644 GIT binary patch delta 6224 zcmaFUsr08)X~G=Ff{AnE8Q*XGdz?{RlSzw7mr0Mop23UBl*y9Gj>(b9g~@&MO{PsO z_D_`@7BDb0yli;Q!NI{Pz`&tw|A7Gv8s2aSG5r7kpR<99Q-G`Co$!As5MbowYBK2S1?dGod+E~e=V4OzptfB3}W%Dj2=EJdd62OlvVWSxE_ zm}%bj3;xW~tXmhc%wpbrNQaYYb4unM=FMMT$uMnKI>xk~b^GfNjI)@x?+Rq%V%qM~ z%5t2QaogsJ;xn1IPsw0XU}9Xk{o^m@natY{m$L{nZ5QEUo5Q@_gO6F6X}WS7TgY~Y zYb@@}o3*87n6}Sb#XN_3yJIY)3=`v>$%=x(o8|RyGPBJP_$tWAviYA;E+eD<CoxbS>d-(PX3XHDIo1M~?m^N?u zvKmKA~v;BcN z(>tc^D&35N5HD`yX7*s7ZfnZwIDLUWlm7M#e^>(1UTPa%^8H$9RJg6koHKJ47)uZ+Dx{ti;6l za`Hs+ubf|-wT`sox#7f9@Ec6chm1WsqOm^U9?Ezh)l;!mcntYC+4|GA!#i)ng|Cv*7r z32Kb-tkan{F(TWs?~;nE6f34UNoA1|=PzbTW@59PtSA_|efwILVCKnF)Rrho2r^0vGD-_FiU~4G2{OtG zGKvT?$_O%w3Ni`_G71Yaici0=kwtrRtNLO_#%4 z%D~~)gX-f%_A!Ol!Bl z?_hql1sSgjGM*A- zyd=nYNRaWcAmbT9#)E>4S1z@*wzW@o)Ro>oHI(H9Be-zeZWPDN$;7ySJL6)ud(4|V zwm)G6=MzXNGM!~E^MT39#lnIXCI*%Urj~{#hUTWmrshV5)AfBg_D+6~p)vjJJm$@y zB0vl!F%hc-+nSsBkw4=iM!HT^>#i_G>9*O{bQr#CAy!?IS` zG$skA&F-?Zn74m=$jrqw{nlru<Fj#vHdXOl4sk?r$Vf%2+<9+NE7 zjU=7+Hu%7KJ)AYIuHpl7G^BHxw?>A*!4oUHwPdLjlZ9dR? zigi1SDB~RF?T0FvWSEeO((TJxnUt8en_OVo!3rvYz%@o1G}r0#f^wasA0y1it1}oy znIJjRRfmO(30&K34;5wMVw%j+0M_fuJpHr-tIBl$UyQcX8-B5KZ4Xsp+Q>Nh&Jl3d zbz$Bfw3|_mY5S32ra8>hZKK(grw9CHvYS4kn4M?y(-RvQ!6|8afhdp)HyE)w zZs+{T{G1V5v}{*f%OuY<{hE!L*%&m3bEP=7$QLOq0tOMSu!qXXfo)|Cl8p`D*$E zHO9p03bUBmw_n)La+hhdpq(t!<|k{9qLe~;!fcRIX!G5~lZ?pqkHEOJcSMar2Euz~{@vzX?xESMro$$4;?vXZ4WSFWMrPcuanJj zyYzgqN({^KXrgf~_S8IS8a(N55AguLMF($^-(-rNQw{E{Tn`fTCb&o?m_vw~Vv+hDmWe>teoc=Cxge7nL*Hdp5DF?o!3kXGY%t98sW zOpNVBKEijuy(N?lQtddBaX-X(mt&JDYj?jV>lJXu;z3 z7NjR$9PU-=t4wlC)0-NZLbgwy%htubea~aYyO0F3JwTZynsxe>K(^(es+n)QxIe2d z^Y#l9m|in(R@uJ;S_*?3!P|dEv4}%U;npvpg6-C4CPWR2|?t}uEqZ@5hI_+D1Q<7}twvRvYLU zn;9CJm|B49J2Nv&LvutHl9;~fKBL6+3!hj8Sl9atvhJTeQG5*~3vd5v&0NO>t=|ph zm}J3jKx#E_cJSe3W#TXdH!cz;Gag{6ewUM=%wUxDm=4G)0t*7+A?n2ez6f0C%>gYMcZ9w5L+S^u*W9| zGi9-)rwTI03o=FsGKLE>@d+}92{J|tGVT*(+$+e)Dae>6kRp&O$e1C>7%9k@B*>U6 z$QUZf7$vYzAWdMFz;1y(f{e+6j46VQ%LEw{1sUfFGO`LX#tAZJ3NmpEGA0NzrVB_3 zGUf?LZ%>q9+Q{gBnB^GDNtQD#=UFbXTxGeza+~EI%LA52EKgZpu)Jn@$MTWo3(Gf_ zA1uFE{;>RGWn^VxWoPALHoH~IZxm7m{DMRX9?paMo@!v_Vj`>4xVj|pe6_3Y&Pf3Y`0!8Zdb4aH3b()KywAS zrQ*!Iz0&~HmxE-PJ&vGU25Pv2DmWMB?Xqu}HnVPys^DT`JOFA}&Su{Jy^>J_(g~Q! zyj|E7)X0Q{`*8-HK?=54H-pRAq3JiV-+&2hSZDKqPK@noh)jGN^J zQ&@B=1m+4<3FHYf+6t5ilnYb~WD67v)ZwoTM6lA<3$oN!{@sS|o3qi)Of{afD89xa! zeiUSUFUWXTknz4C;|D>;&w`9^1sQJ&GCmVz{3giwSdj6HAmb}R#^-{Jw=T__zhEKA zMVr}U-ZO$KD{!iEVcvd-kx`myyQD1316IZ(;D-113-L^h%-c=3vuH9+?_gn#uGd(| zq~7qj;fWv<|0O0lCV3`pCY?~f;NaAfMNHaEDq+x0h^Iir9 z=1U9=%nukCnBOxnu&^;Ou!u4+uoy8gusAX>utYF0uoN>euyivpu&iKUVA;>Wz;c~| zf#nke11k>$1FIkd1FI$j1FIVY1FJ6s18Y75Lp^IH0|RRd0|V=91_suh3=FL285mgK zFfgz&Gcd4;GBB_iF)*;XGcd3vGBB{!F)*-AVqjp~%)r2Ql7WHkHUk6O9R>!rdkhS0 z4;UEOo-#17J!4>Cd(XhY_K|^s?HdCF+Ybf?wqFbkY`+;8*#0muu>ECVVEf0wz|O$H zz|P1J&A`sZz`)MKz`)MSz`!oVz`!odz`!obz`!oXz`!oSz`!oWz`(A|z`(A`z`(A? zz`(A~z`(A_z`(A}z`(A{z`(B0z`$<6z`$S;fHMug<^_ z@{EBYYAypqLMQ`6nkfTA_B#fK!etB$V@-3>#)KFl-BCVAvzTP|tAiECa*wE(V6PcjP{!t7+u>K7`@FH7z181ForE)V2p`mU`!HbU`)Tjz?eIofw9=L zo`JElje)V=fq}8*69Z${Y6iv$r3{SIv>6y@-(z50*u%iMf{lT3?Mep5%{dH=J9QZt z_q}FdJTjMo@l+ZE;{^)_#;dOx7;pD8Fg|o+V0`wEf$_~Q2F6cW42(aN7#RP)VPIlj z!ob9t#K6Qa#lR$Toqqp90KNH(-$)ark`IJnEuaTU}m*pVCH(wz$~zkfmtkqfmw!=fm!hg z1G9QD1GBCk1GCXH24;(y49s>B49qU949uQ;8JPXE8JI))8JMFEFfb?dGcc#cF)-(d zFfbS1V_+_y!oXbX!@%6E#=zWhkAb;w0R!_C7lwM~nV%V$=dWa7UK+)~yy_nV^M)M^ z%-f0?nD?kMFdzKHz^{Zj@O z4=Dx~-z)VDEWtetERi-0ED19hSkeL*SaJjzSPE}2u#`_=V5xOyU}^f#z|ygqfu%2; zfn|y`1Ix^-3@r0|8CaIOF|e$bWnkIxk%48~RtAevOHyAWqHoP%JPDNmE|J?E6ZmFR+cXetSo;SSXurvu(C2Ru(EP8 zu(FCUu(C>mN97q@KhH-v_gtgI^SfB9J3|MIc5|K(%f{+EwqYN-`JF9YkeP6jp! zDF(LthZxx7dKlQtCo-^q_|L%6{Dy&}`6B~I^B)F|7FGt177+%H76}H97Ig-W7X9gG JS~%nxEdarRdQ<=a delta 6268 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 IhdiSO0L?j!YybcN