From b6d86a1b07c1ab77f3b54aee2c2734b1009741f9 Mon Sep 17 00:00:00 2001 From: qinyuhang Date: Fri, 9 Sep 2016 15:09:22 +0800 Subject: [PATCH] fix dark mode display bug --- ShadowsocksX-NG/AppDelegate.swift | 11 +++++++-- .../menu_icon.imageset/Contents.json | 22 ++++++++++++++++++ .../menu_icon.imageset/menu_icon.png | Bin 0 -> 331 bytes .../menu_icon.imageset/menu_icon@2x.png | Bin 0 -> 553 bytes .../Contents.json | 22 ++++++++++++++++++ .../menu_icon_dark_mode.png | Bin 0 -> 15164 bytes .../menu_icon_dark_mode@2x.png | Bin 0 -> 15364 bytes .../menu_icon_disabled.imageset/Contents.json | 22 ++++++++++++++++++ .../menu_icon_disabled.png | Bin 0 -> 14767 bytes .../menu_icon_disabled@2x.png | Bin 0 -> 15007 bytes .../Contents.json | 22 ++++++++++++++++++ .../menu_icon_disabled_dark_mode.png | Bin 0 -> 15641 bytes .../menu_icon_disabled_dark_mode@2x.png | Bin 0 -> 15834 bytes ShadowsocksX-NG/menu_icon_dark_mode.png | Bin 0 -> 15164 bytes ShadowsocksX-NG/menu_icon_dark_mode@2x.png | Bin 0 -> 15364 bytes .../menu_icon_disabled_dark_mode.png | Bin 0 -> 15641 bytes .../menu_icon_disabled_dark_mode@2x.png | Bin 0 -> 15834 bytes 17 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/Contents.json create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/menu_icon.png create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/menu_icon@2x.png create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/Contents.json create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/menu_icon_dark_mode.png create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/menu_icon_dark_mode@2x.png create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/Contents.json create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/menu_icon_disabled.png create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/menu_icon_disabled@2x.png create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/Contents.json create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/menu_icon_disabled_dark_mode.png create mode 100644 ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/menu_icon_disabled_dark_mode@2x.png create mode 100644 ShadowsocksX-NG/menu_icon_dark_mode.png create mode 100644 ShadowsocksX-NG/menu_icon_dark_mode@2x.png create mode 100644 ShadowsocksX-NG/menu_icon_disabled_dark_mode.png create mode 100644 ShadowsocksX-NG/menu_icon_disabled_dark_mode@2x.png diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 585877e..947b850 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -512,13 +512,20 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele if isOn { runningStatusMenuItem.title = "Shadowsocks: On".localized toggleRunningMenuItem.title = "Turn Shadowsocks Off".localized - let image = NSImage(named: "menu_icon") + var image = NSImage(named: "menu_icon") + if SystemThemeChangeHelper.isCurrentDark() { + image = NSImage(named: "menu_icon_dark_mode") + } + statusItemView.setIcon(image!) // statusItem!.image = image } else { runningStatusMenuItem.title = "Shadowsocks: Off".localized toggleRunningMenuItem.title = "Turn Shadowsocks On".localized - let image = NSImage(named: "menu_icon_disabled") + var image = NSImage(named: "menu_icon_disabled") + if SystemThemeChangeHelper.isCurrentDark() { + image = NSImage(named: "menu_icon_disabled_dark_mode") + } // statusItem.image = image statusItemView.setIcon(image!) } diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/Contents.json b/ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/Contents.json new file mode 100644 index 0000000..0533a37 --- /dev/null +++ b/ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "menu_icon.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "menu_icon@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/menu_icon.png b/ShadowsocksX-NG/Assets.xcassets/menu_icon.imageset/menu_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1c7eb3e405f735e382fd92962edc228716c401 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GZ#`WcLn>}1B}nibIB~;*vEzI54V@=a3`<@$Mlg1WPskCN z#b{74A)~oKf`OTxL(1gWyEix4EqD(lA7D1w$Zf#J&8ato;Rt6&5_=$zQo;dt z1wNKXKOJ-$bZZnwDh?V!od5pLBv}jTC{P8faSCahuN1q zdK_TrINz+ql<|W_!Hi|6ScmY$!|hXaHVK^F%6&o9KroTxgep6Src#Q4Mvv6XC^JSD a2?nM$J~zvCHe>=l&fw|l=d#Wzp$Pz9~7X4g5)ZomV&hl|e*AruDI(~3}R3PvSx0xl(4m*D4HyeZb2i41A z*FHk~08ETEgkF+14e_Kg5+>1U10Vz&*6%OOCx6ideRBwV75x z64*%Y9gO0aB}_qict&O4@XuT-DkWmnye`#skt1w_?i%&e8HnvdR90G#9(&S~aDj<_ zTmZ#vrX|z%i66@q^8$j+FdpjGbajLsvFyK9J%$n4(zP~lC?S!ywCf_SfU5J4cPl`V r>TJ^&kdsuo0xDdk>S1?le*z2u6m_aRR3IRV00000NkvXXu0mjf#Tn?r literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/Contents.json b/ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/Contents.json new file mode 100644 index 0000000..c39eb5c --- /dev/null +++ b/ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "menu_icon_dark_mode.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "menu_icon_dark_mode@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/menu_icon_dark_mode.png b/ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/menu_icon_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..821e7071afb8f9330930841576e75681d386fd82 GIT binary patch literal 15164 zcmeI3U5Fc16vuD7(vPi+wSpE~aL8KdqLZ0SGD&7k(ymFn8``YPZfdvsU?(#-yF-(i zn3>&V*9zK#v?8n4k4o`nvFJlfsag=UA6Af3A8L^*r3hNAVg>1oh=N-0VEdlk*hKyNu;K(hgeY$z8Lbr-am3>?>usOQESw;c!&{mjoK4(~RIqIpzmC=7^nDa1| zDfX_Yr{77)jHQN|xLJgZ=nb-}&o3|`$?Fp(Asl#+5qMva;{%*eVtsxYy#qW`dwF8r z=wGC$W#y5?=2|*rMLiR?U647hR4RE(ey>>^M{-Hxc!3iH7R_L-X~R~^tYP(5gVf_B zprsb|f~}hdeM(Vv!y(%j;c!`V&6^QnLa|}Y*^?|EM(?yB$h;s6p$GV|%=4}w z)tOj~l&R_2X;%!1<)ySQAPb@#5Zy6cGw~RxhBU=i78J!j*A+)o<*ZrED|SrJE8~zW z7~>JHIp~_%*jaMi%$Y@WSTN>~aP5X&s>*JYlZIt0h6xRsWYthm zVFOxFWWz#MU;}ZDUKD0H>CXr_w7HxEnUg=|pEWZ6s* z23VgjB(Y%)^$;l&3Q8H#F9bEMp2!ufCD9{A9rZpX=bGc3i-wX(PzeUqjKYe%B(VX> zud-o3^s|az$?~cc(n6s?Jw=-^EvW`|3+>ox*G@+JxzgQ6;gj=6>yDgW=~4xyXhEk2 zqn>&ZHriUFYdM-qEz64P^tYJmln6u==8ZNFtD&sP^w#BE7=mhim%MY1(gZX}z^$}+b;G0E=6-U zs}qVb4z(Cp-^lfWg{@w7P3Kowy=q%4GU8mQWK_*)XDO8`@YFcgcqv*yD#)6{g7b6@#j4Ouq zGR%!7bkvV6r?2=>2d`*wM_b{JPC}QXCaf-%>lUq2ht*MZ1BmWDxyH?BONlnR*{%H3 zJfm9~6^liaU_i(w#YN_Wc_}Uo2-&2#$b2v_#f1SOn-mwB59Xz~Fd$@;;v)0Gyc8D( zgltk=WImXe;=+KCO^S=m2lG-~7!a~aagq68UWy9?LN+NbG9S!KabZBnCdEbOgLx?~ z3<%kzxX64kFU5rcA)6EznGfcrxG*4Olj0)t!Mqd~283)JkWGq<%m?#Q zTo@3tNpX?+U|xy~141?_E;1j?OL1X9$R@=_=7V`DE({3Sq`1g@FfYZ00U?_d7nu*{ zrMNI4WRr-iyZJaLG|)4gCG@c7%B8O!L=Sp0>flHUfSGjwJhK;o-*2Md>i|sh0Q|HQ z0Qn67?lBKM@#$tX_jEGRpDtfHdg*Gd-&LiBXhui zap1-NCq!+mGthaO+iGw{KgAKp5(<+0fVAMU;R k@+-f*_tkCN&OHS@=YKxk^*(bRoe4;88cG~{c;}wK0hBs=@c;k- literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/menu_icon_dark_mode@2x.png b/ShadowsocksX-NG/Assets.xcassets/menu_icon_dark_mode.imageset/menu_icon_dark_mode@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..73a1944f4c5868fb4bc92ece3d1948f240612d0a GIT binary patch literal 15364 zcmeI3du&rx9LLWDl#QSS!(%G3b`V9ly^r;EZ@O-AjrSh zn_{l0b1twFI=Uiljz&EV9UhmLQTSTH;S*iFM-=?-`3`~Oy)5Tud6D63CG>W4j>5|s ztU|v6X*DLbhnfrNkX7gGG0l|3vYAZAm8o^<>2BmMiYzCvg212|jIlat%2_69)Z~K< z#R)+}Noy%n(~}M>t{l~S%{r&kN>qFmt}Br$CQ2Fwc8DUIl~XM5;@EOds#5ex^`_&w zQ&SZd#$f^`O#}JyW&Kh;x~UsI`Y0)j@~DZ?nnWVS+-1)8(1O=pJJ&lgl zDaf`%L+?#1uxS;#l$vr^Z)&m9;tY#qDWje{%xa^!SxVk5w-xd$6hPN1HKw6#>gf($ zj|cO+tZfLPqp{K2RUVheaYIB_w4_CLZh*zzN^4$<2t%?7gVvs8I6r!K2!g~3lHi-i z`6Z6C19tB1U~)G3u!mysA2s$QEowqD5&9^*%Xnn`2#zijw(xp7%np zj}cVG&A0`R!pMq%Qp8lhqD1|izjQ5S!i-22)(o^`SKD?n+RwS}wivD)J~|}CwOp4< z$!P;xHCX2yD#Bu0D|Ri*Cs)gotXTams8}Te5rtu+rPC^U7TmOv%Q-d#`S>>X(Q{;a zV3Jf``B1r8qX#kcn3<8&a6vcPA!DuneB|M-c!~gP{U^k=|6nl;dDTB#im_GJ-&=~Z zUF!c`iqdXYdgNp`RDHp=)3Pw$71B^YHmtr<>n-@;LRrTpqdD4yf@6NEY`18+I?Ruv8$fjL$rf)u zN0ex>oBf+VN>}u6M#W;$Bp48~NpX?+U@FCh0U?_d7nu*HQd}4ivPp4~`Cux=g#jU( z6c?EfrczuO5VA>ek@;XM#f1SOn-mwB52jLF7!a~aagq68D#e8XA)6EznGdE?To@3t zNpX?+U@FCh0U?_d7nu*HQd}4ivPp4~`Cux=g#jU(6c?EfrczuO5VA>ek@;XM#f1SO zn-mwB52jLF7!a~aagq68D#e8XA)6EznGdE?To@3tNpX?+U@FCh0U?_d7nu*HQd}4i zvPp4~`Cux=g#jU(L|j#+$2nmVJ;Rwn4{Hu=agRq2dODPFdjx5 z(8~ev{W1U~^zi5medFElH3Lxba7$=GNA~j{Hl2K`kDKyPzi)a&PA}zdq-;w-3c9HB4BW zwhq%9CJY?NoaqF&f>t2Bde-~9^TPJ6;ZLu5^PrxXa&-5>`wyg+??2VE>+B=Drfqpt zTfXg?3w^&IUo_t_W5Wkc^|Sl8H&!(;$F@GbdDnfHOnQ0VL~zehe&xe=g==OVIdQPQ z^7w|quB98Rk1RhlSiPD3b-Q+I=laX{U*9?K;WtZ`v|Tk%pV;#x_kwp%Wq9!USB&bI%?+p1xMzU|QiTOO~Tboiq5lg9hj%~-UO-TUkrxH}Qk@1Hrh waz{l|%Wd-q`n$I6{o>4@SM11)yEqG+zLVRxaPrQ5X!Sr#Q)_7F!exDb0l%KrT>t<8 literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/Contents.json b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/Contents.json new file mode 100644 index 0000000..2c21b11 --- /dev/null +++ b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "menu_icon_disabled.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "menu_icon_disabled@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/menu_icon_disabled.png b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/menu_icon_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2d09313b919395f5cd1a567dda1608bbba8eb7d8 GIT binary patch literal 14767 zcmeI3Z)_7~9LFCp4j9fq5Ce{xTuLw?w0FI&+j?mWvmJKEj%6#`0FB(P&$!|L1Gr8fFZs?GzOw##E>W$c_HBiukeK?Vnl;tVgyIxpXb`H{k3a(!0_^E zy7sr{`F?-D=RVJ$-kaOk)BR*aePcaBsG%zw=_TKboWJ>Xcf+px_I;iResUDrN4?c&r# z&^6$T2{9v#N7U%JiTlR8)RM9kH+`e?ixXZ5tBLXEGU2rrD#LNn-c=c|qhw(M=R?YfQ7{tXs2|=abCj ziC{}HRl`_RdGH4KS#71tdHtX>uc^_T zzD*R!i}yO81uN{Xv~Ie!6?RuzOU{j&YKO!^wTfooa!%m<(a=Y37I3K5=WF%__{!!= zM~|AtslkX!_ORuwOmBO^Q`u3~xT%&AbQFyFsRBRixtYwjlA8u{zrq)9Sjs24xEbzp zP`aYKoEWBKMIa4o%y3Z=K>@=BX;5Q^i;4&e7%oVI8Z%r}L{PwRK^oMU;i4jf0)`9H zpvDXr6%iCLT#yDeX1J(`pn&0mG^jDdMMVS!3>Tz9jTtT~A}C8P zs4>GuMFa&57oPwFRVvRiammv@MMW#Q!LLLs}lxS}Zq45<6P3%Ev`d{+>GeV;RLceT9NSZ=u ziN622v+IfW@2*HkJbUTPfp@eog$MVZj;~ngPRqWN7yf)?{YzUqckX&Tbxmk8k6+9z zZTMzH?Hg=r9ADA>wW*T6uEw+*4@TfP3D@p8H3SyZjSJ#XmM2`}*8u)2=-aPaB?t zFFe*i-SN}KW6>XCt1>&DdgjEyk&c6JtgAb4UVW``@jd&#JG5%U<<-WPy$en}^y(Lr p@o-o8aN}Q1ivQ+&ul(AIZrrzd$0zZVNdf|Ob#_NScw+1B{{R|L7ry`i literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/menu_icon_disabled@2x.png b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled.imageset/menu_icon_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c899fc8b8fd24050dee56e8f076e14cbb3dea6e7 GIT binary patch literal 15007 zcmeI3dvFs)9LKMvB2?=e(K6aIh*B}R%Oz=>n!|J(yLRk!5j=I2rrl~?I;*TV1X^}lgr;pbs$jo>yp=+cc-apchKM64wOFTf(y} zk|eH7%i)!MQcK6M92{5A7V{j-Tg_+=M46rg?jfI`3I8e!szvhnM7~88x;MX+00bBhra z*{w!vv5hs_tsF3#OMuzZ%$bWhAjBYgy{LUeYPT%5={qKo+V>w*BlZ!gs}%{Jc0vHr z=%fFyB{HNLQOYB!aE*2#YZtEI*m+h5?it=X)De(k=TcZuRG{xVr(tN@B@eRXIi-7I zyO$S4{X}z#`lbLr2Q#cSHLRpFVUzyv1jh3t_R(uZT0!V+8!DbErW!qoDz|76K>=lc zxF-JXevfA!ZcQ)YVDw*sfHZtE;;qByXlT`roKuH>xbbj3z_AIjc`!Se5pAi;aeae6 zuYtChzL;a-i!tk;2`k#2Zf!if741&9rkt}wlIG$P)zX>~mwp1rkA^yUvjAL0Hk-xf zVA7k@9W_!E1RC5D+{3EAGA%_3PkKj2W8-K>q$6RBPZjdB9-GN{E4*od_bW{DhGqC9 zCpW`64pLWijuWHlND-6K}8rYcN!XiQi1Q$vJ8xveu zM5ut^LTO-Qf(wfX6%bq~4QxzsVG*GMf(xaAjR`I+B2++dp){~D!G%SH3J5Ng1~w+R zu!v9r!G+Sm#sn7@5h@_KP#V~n;KCw81q2sL0~-@uSVX9R;6iC&V}c8d2o(@qC=F~( zaA6Ul0)h*rfsF|+EFx4uaG^A?F~NmJgbD~Qlm<2?xUh&&0l|gRz{Ug@77;2SxKJ9{ znBc-9LIngDN&_386<2QR5kL@v&;3Q<1Ae>Isn@`V18LDy>!qm9DHPScn4*q>$S$*{2v6as1Z%Z#(QZRW=XwBNSQ;fYIt~l9L zb>P+;o8CQreycQd+RnTwpASB^p=(ObK-JOq%}-S9-BU1WRf%WW6@@1czUcQ4KJirB zcdNx`j&*l!+u-cYSD((eMD`zEJ^AU&a&}~2)U$S1K{cghpQaw3_UZ*^ZdCSPTJceT z>G!)UyWW5B^zn}$Sf4X%{)RjET)ybo*s0W>uTHF|f?41EZs}jzxv01F;|cv`rCHY& zzI@=f!qT2KjoJRZ!Hzi#7xiS9-Aa!!%{wo=W9jxwj^;-x6F*qE$@Ar;*7r6QcF)iI zq{H)5=&SDYCV0o()3bgH;^sSFAAeut?aM3b zN%=wh{!LJJ=3&vloKSEkrQRVKRF?Z2Fxu%Lc literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/Contents.json b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/Contents.json new file mode 100644 index 0000000..d997447 --- /dev/null +++ b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "menu_icon_disabled_dark_mode.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "menu_icon_disabled_dark_mode@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/menu_icon_disabled_dark_mode.png b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/menu_icon_disabled_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..4f16437991be6c85d0905aab4bb647d840652d8d GIT binary patch literal 15641 zcmeI3ZHyB|7{`~3oN|I364WROO^FGp+kI)b?JjLkY=OJP9+$fV?hqo=-Ra$O?QZSv z(cVRplZzS^MTsBaf(akMkU%s>!H6#ym0)}eiN+vC;s;{nl=uN-&}ekFuX}U7$we{7 zWSX|yXa4g%&(3dVp51=fC%QVh@gL?aD9`=lO_Nt>ps;qh2Vl9!Pf&yfr4Lrqc#;}xP)LV+Hpx;h2 z=k=7j*h5k8YA2zmFWKdZn|bJwd_h(f{Gul$`vgfA!-0D|A}<6vKEMewEBF=k4)C7J z%NuJ!zan`pt#l{WR?;CW>K(N0oWgO1Lcv$?`^@|Ra+hU}7dcU6Q4iJ{F>Fv|4QqKh zNHtCZT54X;*}7?XoVXxm4%<<$*GW`+RmPRg)e;$2g&m^E6+w;@d_334NmFY+x#4`K zbZVN)!3@ko!?uv0(9kb8XxgSVXwHzbCeN4{%}Fv@%iZvNv)P8JEql!lgrI`7p{Lb5 zl7n0~w9MhW3fJsFLs{Nv^tPU^PtKG`jxyu9!=gTeo1>K7N=u$z0jdf-D-TdP7wFIA}=$Xn3a zgHdmF6V}RFt!g6{&ca(tKj%sC2!&>(HE za;Q?TnS)qn+Ae@RTs?qR$ZU6iIr3CjJVk_at_d0aUziLF?D%I>5eP%x9|}V@C}|oS z@B@(rLO^9fPz!62Plr+(+P8miDjHU)|8^?st63cc#sJh}Ty=EShX2#-&8{xe*~9l< zc}GsIkJYk1y`Dy#+YANOVpJDEsRjxWZdzM?-IV+HIW;viTtEK)hE;P^+ zxCQj6?XgXlKSqz~dervrB*To}$uMK%4D;)s=y-`?hIxjW+{Q4#fE*3w0WPHid%-Pn1bH#7xUl%{vdX5>o{!p`V@8r2d(w^`7L#vv9nE;3P zANb<+4U=!Zy7ut-t%coVTi3_$`ux%ln}_U`J#Am6*7;h!qV~X|H=b--cAl<8R0nRw~GZM*&g DTHgq^ literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/menu_icon_disabled_dark_mode@2x.png b/ShadowsocksX-NG/Assets.xcassets/menu_icon_disabled_dark_mode.imageset/menu_icon_disabled_dark_mode@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fedaa55ba54b828230fbfc067ecf3de3a69d0e94 GIT binary patch literal 15834 zcmeI3eQXow9mlVvG}IZRO6iNJCY{_hh0^oA`1KCQgvHRf%pnV5Bvm1t?;bk`_MP#a ziIYuQGSqIFHj$+prQI|%`a)ZYG@@&yvLV)$RzaJp3enP{p>`5QgSAT4S8b}sp7ZPF ziSvkUou*BXW&8YlzR&OXyXW&f&+pEE+*nuVJxg6HTogqujdeu3;qj~XXUTQ&`%lz? z1MqNtwxiFasHPk3&o$JeKfjft)=Xylz*JhEyefTxhj!rl}WUR%h@$}V8h z36RqCR`=|$Pq=AKZFO(;$GLd69Smq4!#S{dxU)wY-ld4Ddu_xOE=Vvy23Rs($fR{s zDzv(baV7ZMZf4zdv5U2<)xFM6NcYCO=yoFqXul`GD7;sogQAD`i$chEH!W~{faQEF zFEYGWf^Q#3mtXFP3;qh{)TGoM-B3;ktycGdWo0Fn9UL6=40=6AE(P61k>vzd5E$5l zF^61LT7q{tTJEX#X1 zww{x!RDH7fT)KE_s=|Ua$N=3kp&wt@FFRmZhB;s?kg_T-m>AAUJYLOR_k1&%x~WZT z{T_&*jI^$&*)x;{Y&S5Cd`wt$3;H=m^a+6BLxA@t1U@JLxsswzn0cu>G!w4aA;(IF>$zCn zHiO-BTPs3ZD^{tjoHK#F2V32hO;{~!)v9It6!)?uD|UU0DE1ZskiwkS+G$li%Wm5I z>AX4wrT7l_g>wuJ03ElzN}-Cq77k(>No!EffpsakLauiAmm<$~MN@=X`XcE}KD?__MqO*3TXfBe2<2=@v%|~27b;z(H^bX@5DEDG zUVoTHn^BK0tpL)!Q4L;AP5Y|g4U~OQp{`@!LXHlh>{yyA#|?I|ik4d8?K}MEz*he{ z%qy_fYta|^qc);1GAa^_Btd}SO@a&02T=(w1PIxVad;)h6K59GOcxVZHOqW(Vy5kfzdhcbXlHjAiw-^)sFK?izYkm=nuInkBd+z|V>7}ma4<2mpd4KBp=g)MXy8F4_ zsm~vH-~_ej*mTDfeK^&4bokSAiOz>6wb`v}W1-k{>GKnZXNTT4XSa3jzhmPwO*emY zBX#d+{F95hp$@#3Rf9v|;}skhB@^Ohx$ljF~cD`}r zRD-_s#HwrmxMJo`|Kbns%G|r{^b-vq{%Cglxu4A3x4xh5zhPwAJKH}0@Ez}W9&O`4 zcxvqMtG_W0buI~O&EVr@ZLhugyA7wWoLtm7*8j|(Beylb{>JvlzUO)&H+pRU*{OHG zwI;Uw^pi8|-a0sW+vvM3YmdD6l?#{dI(2q`%jDVVPr2=TclUo3JO0^N;~$=GdL{MH zv-eF*jP0DxpE>`f>mmEj#xuTHdhrP}k<;lPC2&^OvSy{rIsTHb3?3^iB7V zG{3O@$2sEwlHx^_@NEYkZA9vf}cYZ#ALzB4-cwH@F62UeG4hyVZp literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/menu_icon_dark_mode.png b/ShadowsocksX-NG/menu_icon_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..821e7071afb8f9330930841576e75681d386fd82 GIT binary patch literal 15164 zcmeI3U5Fc16vuD7(vPi+wSpE~aL8KdqLZ0SGD&7k(ymFn8``YPZfdvsU?(#-yF-(i zn3>&V*9zK#v?8n4k4o`nvFJlfsag=UA6Af3A8L^*r3hNAVg>1oh=N-0VEdlk*hKyNu;K(hgeY$z8Lbr-am3>?>usOQESw;c!&{mjoK4(~RIqIpzmC=7^nDa1| zDfX_Yr{77)jHQN|xLJgZ=nb-}&o3|`$?Fp(Asl#+5qMva;{%*eVtsxYy#qW`dwF8r z=wGC$W#y5?=2|*rMLiR?U647hR4RE(ey>>^M{-Hxc!3iH7R_L-X~R~^tYP(5gVf_B zprsb|f~}hdeM(Vv!y(%j;c!`V&6^QnLa|}Y*^?|EM(?yB$h;s6p$GV|%=4}w z)tOj~l&R_2X;%!1<)ySQAPb@#5Zy6cGw~RxhBU=i78J!j*A+)o<*ZrED|SrJE8~zW z7~>JHIp~_%*jaMi%$Y@WSTN>~aP5X&s>*JYlZIt0h6xRsWYthm zVFOxFWWz#MU;}ZDUKD0H>CXr_w7HxEnUg=|pEWZ6s* z23VgjB(Y%)^$;l&3Q8H#F9bEMp2!ufCD9{A9rZpX=bGc3i-wX(PzeUqjKYe%B(VX> zud-o3^s|az$?~cc(n6s?Jw=-^EvW`|3+>ox*G@+JxzgQ6;gj=6>yDgW=~4xyXhEk2 zqn>&ZHriUFYdM-qEz64P^tYJmln6u==8ZNFtD&sP^w#BE7=mhim%MY1(gZX}z^$}+b;G0E=6-U zs}qVb4z(Cp-^lfWg{@w7P3Kowy=q%4GU8mQWK_*)XDO8`@YFcgcqv*yD#)6{g7b6@#j4Ouq zGR%!7bkvV6r?2=>2d`*wM_b{JPC}QXCaf-%>lUq2ht*MZ1BmWDxyH?BONlnR*{%H3 zJfm9~6^liaU_i(w#YN_Wc_}Uo2-&2#$b2v_#f1SOn-mwB59Xz~Fd$@;;v)0Gyc8D( zgltk=WImXe;=+KCO^S=m2lG-~7!a~aagq68UWy9?LN+NbG9S!KabZBnCdEbOgLx?~ z3<%kzxX64kFU5rcA)6EznGfcrxG*4Olj0)t!Mqd~283)JkWGq<%m?#Q zTo@3tNpX?+U|xy~141?_E;1j?OL1X9$R@=_=7V`DE({3Sq`1g@FfYZ00U?_d7nu*{ zrMNI4WRr-iyZJaLG|)4gCG@c7%B8O!L=Sp0>flHUfSGjwJhK;o-*2Md>i|sh0Q|HQ z0Qn67?lBKM@#$tX_jEGRpDtfHdg*Gd-&LiBXhui zap1-NCq!+mGthaO+iGw{KgAKp5(<+0fVAMU;R k@+-f*_tkCN&OHS@=YKxk^*(bRoe4;88cG~{c;}wK0hBs=@c;k- literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/menu_icon_dark_mode@2x.png b/ShadowsocksX-NG/menu_icon_dark_mode@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..73a1944f4c5868fb4bc92ece3d1948f240612d0a GIT binary patch literal 15364 zcmeI3du&rx9LLWDl#QSS!(%G3b`V9ly^r;EZ@O-AjrSh zn_{l0b1twFI=Uiljz&EV9UhmLQTSTH;S*iFM-=?-`3`~Oy)5Tud6D63CG>W4j>5|s ztU|v6X*DLbhnfrNkX7gGG0l|3vYAZAm8o^<>2BmMiYzCvg212|jIlat%2_69)Z~K< z#R)+}Noy%n(~}M>t{l~S%{r&kN>qFmt}Br$CQ2Fwc8DUIl~XM5;@EOds#5ex^`_&w zQ&SZd#$f^`O#}JyW&Kh;x~UsI`Y0)j@~DZ?nnWVS+-1)8(1O=pJJ&lgl zDaf`%L+?#1uxS;#l$vr^Z)&m9;tY#qDWje{%xa^!SxVk5w-xd$6hPN1HKw6#>gf($ zj|cO+tZfLPqp{K2RUVheaYIB_w4_CLZh*zzN^4$<2t%?7gVvs8I6r!K2!g~3lHi-i z`6Z6C19tB1U~)G3u!mysA2s$QEowqD5&9^*%Xnn`2#zijw(xp7%np zj}cVG&A0`R!pMq%Qp8lhqD1|izjQ5S!i-22)(o^`SKD?n+RwS}wivD)J~|}CwOp4< z$!P;xHCX2yD#Bu0D|Ri*Cs)gotXTams8}Te5rtu+rPC^U7TmOv%Q-d#`S>>X(Q{;a zV3Jf``B1r8qX#kcn3<8&a6vcPA!DuneB|M-c!~gP{U^k=|6nl;dDTB#im_GJ-&=~Z zUF!c`iqdXYdgNp`RDHp=)3Pw$71B^YHmtr<>n-@;LRrTpqdD4yf@6NEY`18+I?Ruv8$fjL$rf)u zN0ex>oBf+VN>}u6M#W;$Bp48~NpX?+U@FCh0U?_d7nu*HQd}4ivPp4~`Cux=g#jU( z6c?EfrczuO5VA>ek@;XM#f1SOn-mwB52jLF7!a~aagq68D#e8XA)6EznGdE?To@3t zNpX?+U@FCh0U?_d7nu*HQd}4ivPp4~`Cux=g#jU(6c?EfrczuO5VA>ek@;XM#f1SO zn-mwB52jLF7!a~aagq68D#e8XA)6EznGdE?To@3tNpX?+U@FCh0U?_d7nu*HQd}4i zvPp4~`Cux=g#jU(L|j#+$2nmVJ;Rwn4{Hu=agRq2dODPFdjx5 z(8~ev{W1U~^zi5medFElH3Lxba7$=GNA~j{Hl2K`kDKyPzi)a&PA}zdq-;w-3c9HB4BW zwhq%9CJY?NoaqF&f>t2Bde-~9^TPJ6;ZLu5^PrxXa&-5>`wyg+??2VE>+B=Drfqpt zTfXg?3w^&IUo_t_W5Wkc^|Sl8H&!(;$F@GbdDnfHOnQ0VL~zehe&xe=g==OVIdQPQ z^7w|quB98Rk1RhlSiPD3b-Q+I=laX{U*9?K;WtZ`v|Tk%pV;#x_kwp%Wq9!USB&bI%?+p1xMzU|QiTOO~Tboiq5lg9hj%~-UO-TUkrxH}Qk@1Hrh waz{l|%Wd-q`n$I6{o>4@SM11)yEqG+zLVRxaPrQ5X!Sr#Q)_7F!exDb0l%KrT>t<8 literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/menu_icon_disabled_dark_mode.png b/ShadowsocksX-NG/menu_icon_disabled_dark_mode.png new file mode 100644 index 0000000000000000000000000000000000000000..4f16437991be6c85d0905aab4bb647d840652d8d GIT binary patch literal 15641 zcmeI3ZHyB|7{`~3oN|I364WROO^FGp+kI)b?JjLkY=OJP9+$fV?hqo=-Ra$O?QZSv z(cVRplZzS^MTsBaf(akMkU%s>!H6#ym0)}eiN+vC;s;{nl=uN-&}ekFuX}U7$we{7 zWSX|yXa4g%&(3dVp51=fC%QVh@gL?aD9`=lO_Nt>ps;qh2Vl9!Pf&yfr4Lrqc#;}xP)LV+Hpx;h2 z=k=7j*h5k8YA2zmFWKdZn|bJwd_h(f{Gul$`vgfA!-0D|A}<6vKEMewEBF=k4)C7J z%NuJ!zan`pt#l{WR?;CW>K(N0oWgO1Lcv$?`^@|Ra+hU}7dcU6Q4iJ{F>Fv|4QqKh zNHtCZT54X;*}7?XoVXxm4%<<$*GW`+RmPRg)e;$2g&m^E6+w;@d_334NmFY+x#4`K zbZVN)!3@ko!?uv0(9kb8XxgSVXwHzbCeN4{%}Fv@%iZvNv)P8JEql!lgrI`7p{Lb5 zl7n0~w9MhW3fJsFLs{Nv^tPU^PtKG`jxyu9!=gTeo1>K7N=u$z0jdf-D-TdP7wFIA}=$Xn3a zgHdmF6V}RFt!g6{&ca(tKj%sC2!&>(HE za;Q?TnS)qn+Ae@RTs?qR$ZU6iIr3CjJVk_at_d0aUziLF?D%I>5eP%x9|}V@C}|oS z@B@(rLO^9fPz!62Plr+(+P8miDjHU)|8^?st63cc#sJh}Ty=EShX2#-&8{xe*~9l< zc}GsIkJYk1y`Dy#+YANOVpJDEsRjxWZdzM?-IV+HIW;viTtEK)hE;P^+ zxCQj6?XgXlKSqz~dervrB*To}$uMK%4D;)s=y-`?hIxjW+{Q4#fE*3w0WPHid%-Pn1bH#7xUl%{vdX5>o{!p`V@8r2d(w^`7L#vv9nE;3P zANb<+4U=!Zy7ut-t%coVTi3_$`ux%ln}_U`J#Am6*7;h!qV~X|H=b--cAl<8R0nRw~GZM*&g DTHgq^ literal 0 HcmV?d00001 diff --git a/ShadowsocksX-NG/menu_icon_disabled_dark_mode@2x.png b/ShadowsocksX-NG/menu_icon_disabled_dark_mode@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fedaa55ba54b828230fbfc067ecf3de3a69d0e94 GIT binary patch literal 15834 zcmeI3eQXow9mlVvG}IZRO6iNJCY{_hh0^oA`1KCQgvHRf%pnV5Bvm1t?;bk`_MP#a ziIYuQGSqIFHj$+prQI|%`a)ZYG@@&yvLV)$RzaJp3enP{p>`5QgSAT4S8b}sp7ZPF ziSvkUou*BXW&8YlzR&OXyXW&f&+pEE+*nuVJxg6HTogqujdeu3;qj~XXUTQ&`%lz? z1MqNtwxiFasHPk3&o$JeKfjft)=Xylz*JhEyefTxhj!rl}WUR%h@$}V8h z36RqCR`=|$Pq=AKZFO(;$GLd69Smq4!#S{dxU)wY-ld4Ddu_xOE=Vvy23Rs($fR{s zDzv(baV7ZMZf4zdv5U2<)xFM6NcYCO=yoFqXul`GD7;sogQAD`i$chEH!W~{faQEF zFEYGWf^Q#3mtXFP3;qh{)TGoM-B3;ktycGdWo0Fn9UL6=40=6AE(P61k>vzd5E$5l zF^61LT7q{tTJEX#X1 zww{x!RDH7fT)KE_s=|Ua$N=3kp&wt@FFRmZhB;s?kg_T-m>AAUJYLOR_k1&%x~WZT z{T_&*jI^$&*)x;{Y&S5Cd`wt$3;H=m^a+6BLxA@t1U@JLxsswzn0cu>G!w4aA;(IF>$zCn zHiO-BTPs3ZD^{tjoHK#F2V32hO;{~!)v9It6!)?uD|UU0DE1ZskiwkS+G$li%Wm5I z>AX4wrT7l_g>wuJ03ElzN}-Cq77k(>No!EffpsakLauiAmm<$~MN@=X`XcE}KD?__MqO*3TXfBe2<2=@v%|~27b;z(H^bX@5DEDG zUVoTHn^BK0tpL)!Q4L;AP5Y|g4U~OQp{`@!LXHlh>{yyA#|?I|ik4d8?K}MEz*he{ z%qy_fYta|^qc);1GAa^_Btd}SO@a&02T=(w1PIxVad;)h6K59GOcxVZHOqW(Vy5kfzdhcbXlHjAiw-^)sFK?izYkm=nuInkBd+z|V>7}ma4<2mpd4KBp=g)MXy8F4_ zsm~vH-~_ej*mTDfeK^&4bokSAiOz>6wb`v}W1-k{>GKnZXNTT4XSa3jzhmPwO*emY zBX#d+{F95hp$@#3Rf9v|;}skhB@^Ohx$ljF~cD`}r zRD-_s#HwrmxMJo`|Kbns%G|r{^b-vq{%Cglxu4A3x4xh5zhPwAJKH}0@Ez}W9&O`4 zcxvqMtG_W0buI~O&EVr@ZLhugyA7wWoLtm7*8j|(Beylb{>JvlzUO)&H+pRU*{OHG zwI;Uw^pi8|-a0sW+vvM3YmdD6l?#{dI(2q`%jDVVPr2=TclUo3JO0^N;~$=GdL{MH zv-eF*jP0DxpE>`f>mmEj#xuTHdhrP}k<;lPC2&^OvSy{rIsTHb3?3^iB7V zG{3O@$2sEwlHx^_@NEYkZA9vf}cYZ#ALzB4-cwH@F62UeG4hyVZp literal 0 HcmV?d00001