From 6d5257e1c08ec879188ae197c93ab552238e2705 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Thu, 9 Jan 2025 01:02:08 +0900 Subject: [PATCH] =?UTF-8?q?=EC=98=A4=EB=94=94=EC=85=98=20-=20=EC=98=A4?= =?UTF-8?q?=EB=94=94=EC=85=98=20=EC=95=8C=EB=A6=BC=20=EB=B0=9B=EA=B8=B0=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contents.json | 21 ++++++++++++++ .../btn_audition_notification_normal.png | Bin 0 -> 5829 bytes .../Contents.json | 21 ++++++++++++++ .../btn_audition_notification_selected.png | Bin 0 -> 6252 bytes SodaLive/Sources/Audition/AuditionView.swift | 8 +++++- .../Sources/Audition/AuditionViewModel.swift | 27 ++++++++++++++++++ .../Extensions/UserDefaultsExtension.swift | 1 + .../Sources/Main/Home/HomeViewModel.swift | 1 + .../Notification/GetMemberInfoResponse.swift | 1 + .../UpdateNotificationSettingRequest.swift | 1 + SodaLive/Sources/User/UserRepository.swift | 5 ++-- 11 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 SodaLive/Resources/Assets.xcassets/btn_audition_notification_normal.imageset/Contents.json create mode 100644 SodaLive/Resources/Assets.xcassets/btn_audition_notification_normal.imageset/btn_audition_notification_normal.png create mode 100644 SodaLive/Resources/Assets.xcassets/btn_audition_notification_selected.imageset/Contents.json create mode 100644 SodaLive/Resources/Assets.xcassets/btn_audition_notification_selected.imageset/btn_audition_notification_selected.png diff --git a/SodaLive/Resources/Assets.xcassets/btn_audition_notification_normal.imageset/Contents.json b/SodaLive/Resources/Assets.xcassets/btn_audition_notification_normal.imageset/Contents.json new file mode 100644 index 0000000..1880b04 --- /dev/null +++ b/SodaLive/Resources/Assets.xcassets/btn_audition_notification_normal.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "btn_audition_notification_normal.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/SodaLive/Resources/Assets.xcassets/btn_audition_notification_normal.imageset/btn_audition_notification_normal.png b/SodaLive/Resources/Assets.xcassets/btn_audition_notification_normal.imageset/btn_audition_notification_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..c178d15e49d151fd84ec168aff2849caa3114dbc GIT binary patch literal 5829 zcmV;$7CPyPP)U58MgX3a(fI=3&kmaB>h2i39V1S%J+8uvZXy1(+2eRuJHM~;qc%0iauN-2ot9KQ+@el3Dyz4 zJ78!X2$n%n6h#>X9}sK2Zq@=DyqUBBnTWt>2?@{J0HQLq9|22KszE@%^YcT)e~?r8 zqcE2(O%+8^CXHJ!uR_TLux!Q4!X6kjcmoW3U^*4-P9a+XIB1Up%-shJ225fsfUW|yCC zw01^9;;X;x^V-8=0~AG3l#!A6FMDLl=Y$7hH7mi9s=(-GQ4r9cvGnxqyA}Fk-ZFM;*ilR&gu{u0}N zyv$e9igAoBFhci}_alplEw_VRPe`<*7KNfH%H`nPRmQw-l_nV6UHCKD88;j-mcVE` zD3p9*yL0eEaTgRtQIt!EJwFw8P5l^c`hm4~$MO1%EHJ+PxxQ`-=2;Z082dmJMNyRW z>995$Ca{lwyI@DO(gr2H4g&D2kFV zR)4Nzime2F+Mj{{J~DW4Zh@jGiZU~-?jKbl?EB|S#_L7JeHW(HN(Fb6yXzPJh6*T(q9`-P!lK=x zaHK@3`48{HblaX5MlvYErpk4#vrrU8nN8Y457yr8)!M1Ig%RcIO58$)g`z0R?Bdq= zQ|r=eIi~SU!V%rx*HvJIDYT(0N`u^rqA0V^!TsVc5Z3r<>EsG@jaQ!&7-E{l^%l|} z3KT_Al(_&Ya8?F_dECv)D0J@djH$RM1l3t~Ma9FOz}n4L3*ZUQ$5j+XnIX(eVOgP`Ok&l{=zuc9bQ-Z4Z@26V($Qtp|;FQ}{iuzWVf< zud%Y*a02_M5yCPOG~_rD@qJ)} zH-lL3w_et(CZ5a8_vFF%%RLiNLW9ArHv0^LedD{gpIk185D zJ-)%@X7?qKk3sN!*o(JqQ5})2x*C^X*O!|od~6s7;RwCg{BWtlF;1drhS%3}cnMK> zDPbHeByoqzbyel-Dz*A1z6>@KV>m}*5vaxwnJ%;gS;vgCj%ouWhym-Es*hDl^R`9#^ zOfkuek*y5T8b+N?l@>DLuzA&dGz7cO@;N()ew6tAvY5Q)^Z)o?VwKDQC!gE3X>%GJ z!6hQrp6j{Retq?ZzZ1ExL~{m3nNq&`Dijj3=EQC(XJNG5G;GezTCiJgX7 z(aOT-;6=Chizdzj=DG(^fym62g@6~_^@Y#&?nRBc(nh|d=2h<}R@KYrUX)l1kGr;)JEff-yGOt&TV#G}%eZ4Llr7ok zr+lr+{UqPx=@P8)r*5)|@gTky4VowHra2tfbs9YZFx0nMdgZMmh;NJ3O7FeE!le5@xJe1I7t*8KRX6Bgo6KN!-V9tn=?iT1xMtG|AF za`4^P+mJC~r{FeW;S<`2g9dk_MXD^2JD-fsc zG-fF~s!j7FyFE_u^C4{it;fnP6{vFGLn`dOrS^edxAqtku##=D3;=G?oGb1d{*IJA}QkEC& zhjIJgs79j(86jCOZQFs}KDa+#Y)LE=wlsEH86vFVNf115O2W7M^>v%D4h&6?(DQ=P zTyQw1wKI0+&*k8=upcZ-%9Awr@hw7SG>EV!twKz}yHN-%te_E1jb_Fj)v8!$00OWxz8dw_-a2FGi< z#&aUYAu|d~aL6vH78siCeU+1hRUiE#@BPI;L5FCm>zJtYit8S z1;(X8!S5XC=7->Vp|v241tlvP3u7a*n5_SxGf;+fvzAvz;<1vCz7-;@00rs%&3N zFnQ9|wPb>Aq*iRm9mlO#^`{anObU*;@bZLUtIfIqtU$Un=B2Q#E5ixbpIHbNptQ!s%*4drn9@z@2OW|em9AuiM zw$h(|lHVEOY^;;Ra2gvEgrx#TInG_%WaN-jk{dRBp2<0#wGPS5rz#be?D~4r`bcA* zb#u84!|MK@8ywNuNbK_S67UX%ML5*UK~#$q88`@jXwf`NrVOwC`e|8GpL=QA>_#f3 zktG!)S!n$I)I7vz$(om_MM$?A0-uj_;?__vT+Pl^u|CZmV{wHbIC?igz0z28qzYgB z-u7CgNg^JLk4tHv*?8#gQ-nD?^=%{+hT!rROC7#%M19!Np|gxK1=?MH6j45xUa&Bv7!vVe#u*c0%4cQ8h?P-(UBBBrhTXWQRd@hy zF(`*!PmlPs+j~ig<_OZ+Q!K4+{e{SGzfGYoB}+~%tQ&JK8>%LjMK2*4?Z3&E*>2J@ z!!S^udEr);1Gk!x0el@3Q6p*nNbGF!81}NdrlU043gn15<1*T)!JMN4V@NR3{``2! zx$`n}dx_BCht1pUA7`P_9`qHQJF$y4*)40d&w@L(NRW|(+k+NgO0O_pycK_S%~DKpNUSjaa{>! zQ&-{{XvBKER6fE4(vhRKCRNd5UB^>{H@bAAZO1LNbjZH+H>Z%Vk-LWAkOJEn)!)xQ zQ;}eJ)575_j~bo?2W!`+z62qwm{3QNs6Ve6ZBfrOp)qq7##zHY%0%;*MaYXvB&6~Y zCP=a?X`I<&0$5KD&yh)Aaa(Q3DF^q*cbQ2r945rl5;RVZ)9EM>gPwP1n4qwWStX`P zW&tZoV~;<`yp2gp6ZfQHXEKwH<4JRy{w(unFq9OH0uuWChlxi#`jBHHN$50h3g``F zK(ZN^R6fEb5&4;=Kh#Q61FHfL=jy1|RfdR!oFGHecL1N*|w5RO{@ zf|3cx$FS@rZd`U#`H-{TS4tmxwV)sM*9GJC#7nepDV^=b$~?O^MK-urOO}obk*{AC zzw9cPCx!7IL=oRi+XG-Ij3jeuInySDN+!6WFl2nUkwPHT)r<7(TXi{fRG*IwW^1+h zy;{&;2J$^NJBB66z_NF1*XFw#Kb8#~TPze1{3wW9f*cce0HrWzI^&kti%YQAY{HXC zv^rPP=U-EvR-6Xo%zsI;x_^|Zn`>H-;#LFaX0rQ>pK0zr2nbOkQNep(h=aJ%2)^8s zMN9Kuh|l`=tNL@4eE+Olo#&9YRuh2hV9B4WhIjhNR%y&DAED!~AfnX)zI1#(C zH`pZWZ1r;}GjI-OqyxrS7?KHT;QvE?FuL;to0hX4(k*4Tax&5KP8|bhDY`eot&=+0}x=rxVR!k`|KmdpbFR2N<@r{;}WioOyzSg+3D2q#e90 z$dCp^o7mB!Jq=EmT=rEBQi5Eg$RkJ-4r1>NI-yROwjg{DvPu>hqS(+4T#^A+H5C-+ zLG(7lLg+9##0d-+#61Dg(#u))M@pNhWp^do^u>&X3F5lSzN|lr+CqqR@Oqp!HBZwFHK1tI=eCqGY&Odp8gMJlF4K z*!mHap)sxY*D_x7Mcd0~L1Uj^8@gb}s4rAel$;~kQCM)Z>ivVYYptGnt>%NSw%}#` zsVtb*c(S0@V9FV_IO+EO(SxW}cu8{H7d{6sq*b{m>9J9^l{6bW7$V51D2g&Gu&@Zz z`#WZUnB)crzg_G?DyH+2mNyFKtZjnKlc-AU!)0p_ZASb3!sq;@7b}XQj7zevt+NQa zO<=g7YvhJ8#+$zQKuUTwS~|2rux|xMVUuhT{GzX9G!Fd%6W`sjDxiG z2t0EG1ACN4zkfwhl)RE`q#0OyeW3MF%I8=2k7$r~5Q?HG%51>#-H)>Nf3x4c#gOT? zQ(_s;T@$su07X$0Wu}p?8BsEj|8}i=!cSL$A+d}&FdVhKD1o9ViZYXg;~{J%+`>w) z_nBTVNbEv-GeOkyLJF=xQ4~d)DP(OoVS6Ljk1sCL>xQ}L7fExyD3hqvygIvCQ;MP} z^GfrI*K$Sm>&JJYz!2Azwf3%SP)D?R``15)Y`v{0ilR&_uG=@zmaOpsul4=P2~59V zC}~xO!gvN+ThSo6q9{uKk+HOK+`^pNM}wr$_7xbyZ)?Rp2<*1|0W?om_djibq9}@z zOJph54-c*{o+6~YX%Y+!omIGE?XE;nK)I|(ohsd$sb}_0ED9$35gHQU z9yDgr$xtq-BoYV@0(&#A(~yQ$>Y`EeOzZDYxbzZLKxY?h>`BLr(d8# zXH)Fd+E5flxkRK3H-!V?%CapL+)|V`Zs=faff3`zrE**Y~65~L` z4HgzlzIXomwAAszkVV|4zpt1ND_*&bcD9XGM&mStVl5JfotXbi8^Ph+;Ai^?+ zGl*(L^nCFc_9n4jPE26LxS$MMQ~bf@bC!pqD2mb>QLruS5!pAB5)$nnf60gdSun5? zSXcprH;^SLA(Yq}Sw1IC6-7~I90Ky?k=H_gMBf@XERg-ZY2om)40R6fE-gg|mo0*0cz3VgC%gn}zsE>b0hqytI`L&fo6tdF;%-FuOZ5I}7wzMebmC7CVcX`TO0C zFlByte}Cx=!G)(S_s`Db1#qxLL`(7-0xW@H7{+M=;eZGZ5OGHy!H0hc2p&E`c=)?l z=XYR=Ak@stulLVAeimLw3@(DB*MZ<17=~dOMc4tvOA-@6 zT<{UE@C*90!@FmW!dshf%pbr6Oe8R*hQc}bm0A@9hv;YxBKMPF7=|%@t`p$(czY-G z{^dzx8)FNMpZw?k>%QeaiDDJFi{aB>nES~v45MM>t&Ia0`nSIR+58tU1`fvHUw(V| zjt|_gMObivdjoy=a}ySZVHgdB*JfU)uM&}Xf6mF;{nCFQ-h?q2*}{0~H-|S7{A%=O zl32wW7=~dOvq0*i8YhctB!Q6=7D#t2USSx9F=G&1A;cTHIik=gEHLtxh35~zbubLW zFlG?EL;$O@<;lPIzdxP7Tj*UycG3X1#4Nxp3&Svs6G6t(;6V5rMFQc+3Jgh|4FdOj z4RBk`!Y~ZuB$3244npr=I41Ilntd3b`utcVHhWeH6qyH$8!O%^|Iy< z+j*$KkP7ao)d%hZkqHaKFpLw1BQIeF87Z;!ZSYpZ=!Rb=uTnyn$=kt zhGCpgq_{5#e#KjJ=>5yzygI+xZ@0k~hI1-uG;U$S!Y~ZuBP#ENz>MJm! z6x!GoWpN9`FpQHArei3U9)Azs?Y~PGnib{TAN56ZMHz-+oF>`?_z^!IocW7?uDiQ! zkA=a)Vm01eZ@93~FGhr4@#A*{?o0l6Q>RcFhG7`vu%&at0nR=7$Kc<)U(8t;vtnI% zaMwAua=rhn);ZTO3}bAf0Qi@($yUaE*2>6P7&BpA@Ru1ZECiA-J60z~!!V3fkF5Pf zo3hy*%g6}~0=OuTh|O*N;azaOz;5mMpJ5n=F(Qc!KydG5Gp1U}hSptZW)y9){>OEb? zAQ0u`kic)d(R!1Wats4OT;}6zqjSsgGjn>J384@ud@g08Hl!{bFf9;Z#ZHhKAMX#cTQ)pB@*DA@ zUEuoS>q^cE;pdi-XPjhQNE^Dr%3b1?QVYY0)*HRD)wEzY-^{DL@J}GkH33SJm@ICU*tw>wse2*1`ZM->{;qUQHt6!fsh8u?y? z<@94XUN*HWPBQL-j!=^M^!&Z=L^q1-e0?H`>2341C>mEf;u6Ho$nls--BWIyZVITr z|EUQKaWxfMDhSR)13lceAlDZwd6{QsZs=U{n$4FpEc9fpez&+~r-A;>G^DEU) zNXSAX47V%S(Dg#$MI{@akoNF0d`c;>5c49XnoJljQmgeoq=7>g8ZNlaLf|SCMubH} ztP+kz@z+l+3@3{*_O2*SVg=C0JxVy2YWb5MiesUk{)D?AfA8ZLH(A`%EId}W_!_05 z3jw>YZm1=d{_O9$niQ9+VC&{ak(B~ZtFVxmm~5z*gBMK6 zJekEs#|PAAjivJhNo8rjJ!ylV-spK6sa-~pSbvqcn$jQqHWbvAc(?UTw%+l=t6RXy z{DITEkPfB$+>-aV%1kh*fp%4FQDk!XjN1^07qG}WLdZ{Wz5(JgXLj#~v0TQHaSLfeEH13g~u+(^`* z8%2&|EbDsWLo zmrLif9BZRx+}pCS#wRX*Vp&7Ovqd|vZMy}aaHVftNpHkHSz+puD(6Ba7UpR_J!#^{ ztzvJ47gM1pHA}}F4!a}o@II+R#=FmiJ7O3ZS%AkbY-|Z%!ZfL-dOgpi=s)QD z8ef;JxZRed0}y2)PLap{0(>2P_%S9faPPJLitpN$d~8x-frITNbsNO`&_tc-Lu_Se zT6q{g*8&$juiDB0Uvk~}AoxKIN3k4h2IXtFy2xd|K}bhsB@z&XN0>+>qM1wSWNqq7 zK1N2OVcli{zSdnY;~jE*!S%W&OT0Mvw6K3R&0v|6xY==aJDT~Hu^^+2s^cVv3W%-j z2MOT)fR$hPYDPjOrk`jNnd1-e zY+2p|Ht#zcNde8aNoaL!)-}O5RuT}Dlwr@7gCkz7>vd5@ojH>tLP=d_7m5mj-fKe& zFE8h__V}JD*}txZnzQAzFPG7T>vW;mzwhu7N~OJ|Vq@&gk-?}DUYO&m_9_{ow1|5KqFRdNf{=AnHz&9j)NMt(s0k5# z1%~PYfo2dZ!GudK{?6xg;R&^n45rR#mC)lulLspY{%T_XZl|cKUBuNf6!n`1x3f?2 z1@)lO+E;>9y1U?`?0Hq+ti;TSuJUU)b1B18XM!aD<4ue^W_D3pmXyL4O`M{9ok#=n znJV=D*P^CKi!~Iuh6L=r7JF*oRWotITUDn~cc%&uf_>i$r3UCb#bnjd1jV_bSyL?# zmz2<)1DyHx7tZ^86b0^6mkV)#mo?IlN3H>h7TnwUU~&1bkSfsP#i$-7pJJTc@UmEw z1{X8Ma4a+kKIgyJTFrgH)?!x_3wYFpH&QC3Ii%KT?5f*=w7B)Ks(2qt8yqN5tQuKb zu}}+C!>v_)C|nCO`*D>7PjCYh>$4^};CyHL>GSF}k&UGm8090i699MkR$1*lNtaoB z)^y&e+IxtW6sPKGkT~eRKpXA~;bUh(A!*T-}F1JGwLE*zA7L*;gNz_Re3Q=?+9ujnwEFU;&p0cj4w{;K~m2P&PQRSf? z4@iQCxhBObPp`nBs!s&FrHGDLQ@)XH?E#W|4ea`ej$ymUtQXBO>1Nw)8jBmpKmDN5 zy`)@l7Q0(kNal!RVKJ|bAy?i)P=~9K;#MzN>j(9E+N#X@ zDcA?83VOTVR*%HcvTjkwu}Pv4TkPZ$Rrp@_M=%1efZMN5POZRT4e)H`zDm|kq!o#0 zw+y=)dfg2Dw8?(=da~dGFSs)oWTh?i9J9azLQd);ynj21d8kEFgX>Mt4`5}rKgYEm zA8R4b3WYT2I)kV+mQMPNVyR8N#u4uDbuyC0%co{NQGld?kA==mw|8&xrM45b29Z|H zQ`TI&ir%XIteTplNyd-3rowPd)8^PU)vp_E58BPveTU*R7t@%U+B%>QCYSjs@BEU`DWCnO&y1Gw7$xHuJ-LgBxFR!C zSXj(yVi@*Od{JtAq)iG&$zx9Tkr)(gQy4zbYp{s|Bkx|^PU#nlt%*A zowDZ9U2NcZdjm-?msKNy=qkbjn#ls?Wtnj(0W((U@k6;)HqVwvWBY40F?d|C-Tv*a>?K zTTCg^anyAM&^she`j$0k-c33;rWO3Y^~A$NO-vw(A52MN)X>s=5S6w%pII`kCZqrl z!=Fz*gRVAY(x0DrvCjR*CZ~!TBZIkE6G?aBI}>G7i4qjeyIDy;!?}ylzctP@P=Vo} zhJR@N?$!C7AN}^v2T_ZV=>&l*9+-3-=%v~95o`Nw=+_CM`VSj)%wu?hjZ@Q zl!CzRe9P$iVFU3dde)*RJn8u$?^x&%l~LZn=WfqAoP1_L)fcDU5LFb%sh{{{xfFFs zR5*FpW(un9W+3UK@U-0S(q7wz7rzgqnx^t&pHYW_!~P#h>zTA^X$<-+^5MrWaF1a0 zG1qOi8rA|DE*Hd)Y!ME$>^*K z+QxKTWGPnXT)wwfX>9RvmgrK{sb{6v8jMoSt*zc6xB?SWwT6mFH~2VjK#7o}wNWfQ zopoOU==^K(n1UYU_`GB`rHU>|meWm**Gqw|wrJ7!9*U*F_mcje%siVp7D(s$@oXIE z&M9mt{nHxK{)Z1MYGV|~Q&eC)^DKPvwyz8ZICfTlEtM}^vW7{)2aA+7Qa^Boag&1INI9UR(8wik9cumc5`eZR5$gK1Nld#7#vt_1^#jEI2`#S z!W!zue35i*nR~0r;>;wFR+ACU)+nQ`Epv}t6ciuTfR*?etE z{6aUA7hk%+|0bJNVr6XAku^ksUqJ(BU&J$otu|v2by=W>aU$?tF`n76-s3@KGH?9N zZ(sTTXYyPsFjl_WKlkK``=ew_4eaMqCT#BbVDw_CXy$j6=0%eKoN50X2aJ;d?>Y@E zoav9#SpspxJi{=I(~8Gsa_~8C?R@*nKRuT`oi-m7w-j3$A8PPMCZ&q6*B z91|;pLjR#`Q_VAUM@C#`k^&oLHEo%&Fbu;OpSTMzh^MAoSO|SHjh}fI?#k#^kg|1z zi7QSG!!V3yhFBTS`?q8piLH##m)kGKFbusa@2!7;)yOra&G|}g zGG-WtVN4%syqdV8T7MnhAatm}5Z9FV{$>7U2hy2QeO!iN7{-Y})^usSDrXGUvN<5J=x|U zIJ>6kG8l$o7&D0nyo^K|W{?!xuYbmCd;vykob==S`>W)fj{78}JI*Sq4Z|>I3biaU z!eUSgZ9hitw3ibafNPTs95M{UFzQ2N7O@*@RACXlXAE*egRKmXajaRDwP6@WL-8~x znXc(rS@Q3F`_uWmFd}33^8U$h_Fv}%_(Xb6#qGp@(bVp?hG7_|7U>TqbrzC3i*O(T z?xHb^ZYCQ3@WcE2OU}8k_?Iln&*q{s48v#+8n5tlJ)SkbBdN1RvY`es(Ew-p;Afuk zFT@q$ns!UzzO+^%hG7^}r7d%VG`P*eLe}UrfAKF&A}oZ`#>>e}aNxK`Vr}rRUYDtN z=B6?X!>9>$KegTmq?P!Y9rXS!Y4rppQ2IR5Y(PBzh;>A|$I$5($sMJu=I~Fbtz8e$f-Jr`QMbVD4 zojMS0647VR{0+XSQcxt+CNL5-6&GNIKX|2&() @Published var errorMessage = "" @@ -80,4 +81,30 @@ final class AuditionViewModel: ObservableObject { .store(in: &subscription) } } + + func updateNotificationSettings() { + let isAuditionNotification = UserDefaults.bool(forKey: .isAuditionNotification) + + userRepository.updateNotificationSettings(audition: !isAuditionNotification) + .sink { result in + switch result { + case .finished: + DEBUG_LOG("finish") + case .failure(let error): + ERROR_LOG(error.localizedDescription) + } + } receiveValue: { response in + let responseData = response.data + + do { + let jsonDecoder = JSONDecoder() + let decoded = try jsonDecoder.decode(ApiResponseWithoutData.self, from: responseData) + + if decoded.success { + UserDefaults.set(!isAuditionNotification, forKey: .isAuditionNotification) + } + } catch {} + } + .store(in: &subscription) + } } diff --git a/SodaLive/Sources/Extensions/UserDefaultsExtension.swift b/SodaLive/Sources/Extensions/UserDefaultsExtension.swift index 1f03f75..51379c7 100644 --- a/SodaLive/Sources/Extensions/UserDefaultsExtension.swift +++ b/SodaLive/Sources/Extensions/UserDefaultsExtension.swift @@ -25,6 +25,7 @@ enum UserDefaultsKey: String, CaseIterable { case notShowingEventPopupId case isAdultContentVisible case contentPreference + case isAuditionNotification } extension UserDefaults { diff --git a/SodaLive/Sources/Main/Home/HomeViewModel.swift b/SodaLive/Sources/Main/Home/HomeViewModel.swift index 1cfd66e..6e332a1 100644 --- a/SodaLive/Sources/Main/Home/HomeViewModel.swift +++ b/SodaLive/Sources/Main/Home/HomeViewModel.swift @@ -92,6 +92,7 @@ final class HomeViewModel: ObservableObject { UserDefaults.set(data.can, forKey: .can) UserDefaults.set(data.isAuth, forKey: .auth) UserDefaults.set(data.role.rawValue, forKey: .role) + UserDefaults.set(data.auditionNotice ?? false, forKey: .isAuditionNotification) if data.followingChannelLiveNotice == nil && data.followingChannelUploadContentNotice == nil && data.messageNotice == nil { AppState.shared.isShowNotificationSettingsDialog = true } diff --git a/SodaLive/Sources/Settings/Notification/GetMemberInfoResponse.swift b/SodaLive/Sources/Settings/Notification/GetMemberInfoResponse.swift index c7be304..ba6b933 100644 --- a/SodaLive/Sources/Settings/Notification/GetMemberInfoResponse.swift +++ b/SodaLive/Sources/Settings/Notification/GetMemberInfoResponse.swift @@ -18,4 +18,5 @@ struct GetMemberInfoResponse: Decodable { let messageNotice: Bool? let followingChannelLiveNotice: Bool? let followingChannelUploadContentNotice: Bool? + let auditionNotice: Bool? } diff --git a/SodaLive/Sources/Settings/Notification/UpdateNotificationSettingRequest.swift b/SodaLive/Sources/Settings/Notification/UpdateNotificationSettingRequest.swift index f150a88..a33e101 100644 --- a/SodaLive/Sources/Settings/Notification/UpdateNotificationSettingRequest.swift +++ b/SodaLive/Sources/Settings/Notification/UpdateNotificationSettingRequest.swift @@ -11,4 +11,5 @@ struct UpdateNotificationSettingRequest: Encodable { var live: Bool? = nil var uploadContent: Bool? = nil var message: Bool? = nil + var audition: Bool? = nil } diff --git a/SodaLive/Sources/User/UserRepository.swift b/SodaLive/Sources/User/UserRepository.swift index 1ab68b0..29cf755 100644 --- a/SodaLive/Sources/User/UserRepository.swift +++ b/SodaLive/Sources/User/UserRepository.swift @@ -41,13 +41,14 @@ final class UserRepository { return api.requestPublisher(.getMemberInfo) } - func updateNotificationSettings(live: Bool? = nil, uploadContent: Bool? = nil, message: Bool? = nil) -> AnyPublisher { + func updateNotificationSettings(live: Bool? = nil, uploadContent: Bool? = nil, message: Bool? = nil, audition: Bool? = nil) -> AnyPublisher { return api.requestPublisher( .notification( request: UpdateNotificationSettingRequest( live: live, uploadContent: uploadContent, - message: message + message: message, + audition: audition ) ) )