From 0f5d0b859f2d61593782b2656f1194aab174b61f Mon Sep 17 00:00:00 2001 From: Seil0 Date: Sat, 25 Mar 2017 16:20:48 +0100 Subject: [PATCH] reworked updater updater is now in its own thread --- bin/application/DBController.class | Bin 20013 -> 20110 bytes bin/application/Main.class | Bin 6653 -> 6645 bytes bin/application/MainWindowController$1.class | Bin 3402 -> 3402 bytes bin/application/MainWindowController$2.class | Bin 3056 -> 3056 bytes bin/application/MainWindowController$3.class | Bin 2002 -> 2002 bytes bin/application/MainWindowController$4.class | Bin 1946 -> 1946 bytes bin/application/MainWindowController$5.class | Bin 2511 -> 2511 bytes bin/application/MainWindowController$6.class | Bin 2471 -> 2471 bytes bin/application/MainWindowController$7.class | Bin 4118 -> 4118 bytes bin/application/MainWindowController.class | Bin 35353 -> 35519 bytes bin/application/updater.class | Bin 3124 -> 4385 bytes bin/recources/HomeFlix-Local_de_DE.properties | 1 + bin/recources/HomeFlix-Local_en_US.properties | 1 + src/application/DBController.java | 6 +-- src/application/Main.java | 4 +- src/application/MainWindowController.java | 35 ++++++++++-------- src/application/updater.java | 30 +++++++++------ src/recources/HomeFlix-Local_de_DE.properties | 1 + src/recources/HomeFlix-Local_en_US.properties | 1 + 19 files changed, 47 insertions(+), 32 deletions(-) diff --git a/bin/application/DBController.class b/bin/application/DBController.class index 1dd0f16c21db4d7c5679012e06299b435bb528dd..3a16c35d3a272e72bef4ae4d6c8ca2546faed602 100644 GIT binary patch delta 4922 zcmb7Idt6j?7C-0AotZns6_9a&%R>e*c?~Fvs34|@4@@*4>0%EXVL)79bQrbA7VXw< zrDf``(zG&rnVN4L7)d3wtt{Kxp4)Ea=I&OO+G{sW%{})H0)z7T)IXPV&+mJ`=lss^ z`#Zniu=P<~{uo*h|GalU0OV2IPHU^pi1#6+iQDYzv?f4L+~iRaaAA-I4cZ z1!v-xV7O8lw+f4WPSh@hFt5AH>u#9m$jQl(u}R!w&yMsXP+B1e!xjYtxK}jW2jL4G zbeMENt65S^j3|m$`y5p8CGa806`p#ZtERp|#+SwX=q%?eT!}OpU*j@)-F2SD?n+0B zjISd^q&TX)o;pXR%jcTg;Bw1&M7$V16yFwSqEql4kr0z1y@!x05+jm&4|F=1NgbTAp8u_}D}|A%@2$%cpoIRvEt)b7Rw` z9}tRGsp-NW8#C~K2qs+_1u~vy+w1aixiy9Sq`+RtkntQRTIE_?%EgiKXK_AuED?wj zb*gGYh^ln+n8#bwP~-M;Sgrabi*4#uw62P~5qk+&oL!1Q7%O(FiDGqJrqmmuOw5jt z6Q9P7#y%oBeh5bIo)v!xF-{~TmZ}NN%7x)9w1QN)D(1O$*1qEQ#P@KBn9!i%3QvA3XP)C2u81G zQGKN*qmqn?W*Q^j?wgoCR-thktC9Clty`uET=N2lm5L$P3X|z71=?s5LbPbJ+Z$(U z0VgXs9c0bATEWvnYnnprV?{3DT~*UC&s{mCUPD}?&`ixQS1!_u?9rXSQK(!G$!q3y zYp`n-x-JN-@wzK~9$8{)=4IdW883{Z@0DE4T(euU@%2h3bQ3OI+Scoos^Fqtob#hR}!)bF&+t=i=@JRv;cIZf2^a_` zVIiCXAAAFQ*tZ|PhePlK9EKm^T{sONz!~@ge!^lni(}y&u7}fn%3Q#0y!uUu*n)&@ zXuv~g#3N{ed5s(<6C`b|p$6vjn+-Q$1Nu0nL|l!FaS0H%fC2&@WZy%K=nwLFaG2pK zGc=!t>1Sb7@>!@m3*{Fe2GGnXek@g(a~p2wuXpe_5_^|I0)U|iBESSdvaYShon6H> zIlC1cZMNd>U234mTgR)bNLEWiFU3gpb z`cCK&o@(qWnP9F}zm6=nLw?=J#Id|>xKFGavKe=XqWpN=FUs>1Guj9O_#(ktaAyUV z;}Fk@V@^*9AP=@daB2Q57L2j?&kDe11YXM^^wrBk4~viTGcH5?Mi70?FDLE>JuIq+ zE(?1TZv}!UVHy5KoF95cvL-m0chXXP3;XG!I}S#$vgjIg(fw7788$k%bDs6iVDj&3 z>15fBgPP%EU48HKQ+wB6KIHkvi?@bZVm}I|eXX6>uS-GxA-)~vOzfb=idOhR>vOJ7 zoLHF|JF>l4s@ad9wBV;qX2XAS2)pFRToya;2-U2;9P`6@8}^NQ-;ePHa=TBg7#=f$ zgXj(S!;ZrLhiO!cp6D0+4ANvvU5Ta{{5T_kqYRL3yhwIxcnlsB=7Oa7V6f}-U;!M* zph(k2)aU{gkL|v;AP@Cg8{uu#YQ45F5s!K4WrM07DieBljMd64F zJSoPMzd`JR)$be~V|nACrHJllpp2JnnFVeSW7o!FyZ z;yKG6adf0}`uWRp7DyeW7qm)Am#}KCZnT<9=bdxq8r~?Uuk5c7a%(ie(=eS#WRA)k zP6pC?8&4f?;4a6V6xL`{C*x%r8<{(k({_)TQyeXFihGAy*zeRQxToEpFEU2Y;GnmU zE*losLkQ(^A;NnI5qU|7r9pag6b#b3v=})iEzB13^@uQg$a|LfY|Jim48`jBbtMVm zT(JUzf@pop@w;CxF(D?3H^x5Gn8aI(&))$-2d74IhHqXc}9*h1p7HD@?aC*wW6KB+6u~mu_XT6%H_solZ6*bSGcuAX2w- z*y^oY1K5hvt$}RWbSsywKDsrCEjxr`Z(M*2A)1vvSQL*>4a@6Vkn#N*^9xLRJEq|+ zG~%9o*_dxpB||F}muo#GI8@RCnf#fJ#s_z1GnM*jA|FEfC!jTS zCRIJ*!a{L1J>irtxJGvq)%FDJ)dk2nPfxh;P@K0XTtq0&$GB;i>dKIB-3YmAhibCz z7XAL)&Wb0yh;YfQyDWH@746o@hz%Fs)ISogiS}M0AaUo!%*LDAs8}`aqMPmV-7VDU zr$4GjyVXxYzwW%3ojRE+`RTq57hVg>|9(HMG<2E)?2izj)dtWr&FdU7?xVHk232aO zT|2#8>WI;}c6xyLm%^;B0bUJ$yPl6ydTJx|EwHvbT47ANjh=0W@jRe%md}MEBg?p9 zMZL=Xle_NLoj`^YhBJn9w25!3sZxKws!IAj{2<@Bfs(*VV#`%0Gq%w4JWycxlD4vC zgfWJr+HZ6)8Aiirw2k|d8Ll?GL)*o{NrTgNfK^Iszc~}_Sm~|2eBp`tRAz_IU5Tald#W9(Xp;<69fZ`I{ z+Nz+aTtQS25fDW{NpQjt(TLW9idL;w+gg{lE-2zc-9YKNZ(=q`tAE~{ckXw;bMD#h zn^hZd=X$h1|Kq+V0ib}M*lq7{l!DC$hw)YoSHVXJ_WGu3cl}gveSpcicW_ebbigzMlz7^LZB#2H^Y}8z@XPF(>;5rTB@NR^}O!3|jebl(D zxsvE!4cFra=4YbGO-=P4cVmd@B0C(zjdIWZ2=g<`%gf6|a>6)KoMIElhQzAUxy>4G z5hc!;$Oko?i`zmQ%T;_>)HxSK?Lr7^_S80ee09lrd3h>6Cf;)9Mz$hQ#<(yzf_pT4 z90MXcdL-@@c4xBiM#m~02pQtKm>97>S|9SHhEIVXL9K3T^t-){J{6x9hoW;_&+s8L zRQv-+pxM*VwA53RoT}m<5h7BPYnz)Il55<4_vJpfN5w-TIc5wV78k~(;>+Udm@MTL zgfx*Dku-ROE15}NW4|*D>2>jDOiI~b5UlQ+nh@n%2!m3S{Y~A3c8tIbJLKTsHOPYw z75~BKaV1OjyBZwD_Yls?EEn%;X>lt46JcMv5EMx zSQne3e!?fQt9VpA9h<3qj!-NX=$XQ)$Bg(A!D3{+NX6qUH@p4b#)UFzUu&=rvQ+$* zJ*{;wE$8T{_`R5~Pa!-hHtVx>LWrvI@LE%|*XQ*#vt5}2QpBLR*=P|9;x0p*=!|nJ zVF*)1WL%>7IxZUriIn(DF;ZL~Ux-m{f%s<;qs7&U<$5ghaZK30j77D(y3S+p#fi5Q zU&nmWHq2_A}KMmM5D=))$I5B>pd!!akz_;?KA=M?J$$3 zY0yd25u!y>w6kTdGC>Mhm6VTFo)=Hye@jYP2Xsw#?mJW02Kr)F4&1 z29MwEt8NOp*Q8OFJm;{(bcIIE5}^36TI}Hf!Bg__sg0J>l~!8DLt%AFw3wA*F>7=c zEfn@CJeGTlL|#l+O2!aFrugHvS58oga>YHFUp5o8;J1eI9>#14m1x%_2N4 z&$1PES?NJBIc_L*Q5*0a3afYf{N;@`o-1e7O8w&+1*p9(eORLw@eqWA z2>@Sgg}WShvsgbqwq>2m8iW9W16Ky%io0Q2_8#!;!CN}uSe2qEE+vS!$yMPp8#tH6 z`02nkRg9e8j(54#Al^gVoA(8A6T!S~Q1mGAgctH%Rtq{mKLi^b0S9~n3GgW-!BH3vpTS}{20r*4_ONb0dkf)iK@CvgLOix0vn+`)-%MZ^FSK8YqgfM$FFEl^j(X0kz%X$3DV z;x`9wL?8Our3AhUm*O%Y41fj#?quB>Mx=xK10-2tvlZG;K;;RTlzajjPC(Tuhyk=R ziXSU9=G=~t@a`R=d{lhPPCh7ytU3tm5oYFgKysA>A8m&bIRPki;BI~fpxDS-k)kVo z>uN?Q*taBf6_&1aSC+1XN=sKxt1VsWDXw#|%_OU<{1-FH#Pw#vHj!759@gIDx>!&U zn;&WbZ&y_qj_T%6dFkd*ed*>G_Ki-=dV(N``w8v=PfjQuoqQ&?S(y+-UhITWY7U53N}a+vCL-q9 zGp;`;#*N831KYt6`hx$%)^Ghead6Dau;=k=Ab0>);tS%^v(HM|!F8u{bF9D@aTvD) zn2vxM>;U95#?eb+%h@IQJtt~(g--M*=|hgwJhC0$HtOtEe#&>_<ut zvmqt1WHF>?v=_2@n}bS2&Dc&;0yLGcqrR~60bu67 zuycFETDZ4=qOJ`gUfFU~U%PV0qh@$8|xfq;X00U7tJfpFn{ag77vBKqPMGp^a{7-@jo_oKxtKO?C45>ZrXI}P^dF*4$!Tp9x;gN z2tg7iFb+}Bvtr&)YpYDU(nY(rvP$W;(XzHONbC4-KyL#FLwoP#ik{{^@52=o8| diff --git a/bin/application/Main.class b/bin/application/Main.class index 663459aa29ec275d4b89c46e66c7ef4277080835..1785f2c820ee4dfbd1d7e9d419e281c6391fed99 100644 GIT binary patch literal 6645 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 literal 6653 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 diff --git a/bin/application/MainWindowController$1.class b/bin/application/MainWindowController$1.class index c392df70cecfce0c8252d378608f229536725aa6..2f56f865fd9fc8463dda212566ef03b72a84d54d 100644 GIT binary patch delta 92 zcmV-i0HgoP8p;~5*>7l>#>a yu>v>%!U8z}#R572-2yxS-~v4W@&Y~q4gx;`Dgr*^8l>#^b yu>v^&!U8$~#R5A3-2y!T-~v7X@&Z2r4gx>{Dgr?PI|4!hJ_17lRsu$o#0-Y~SQMN9 diff --git a/bin/application/MainWindowController$2.class b/bin/application/MainWindowController$2.class index d6a1ab485208e93ed2f390436c3a04732984a102..8d0e66fbc06d024c74742e249730d3d80a3ee138 100644 GIT binary patch delta 85 zcmew${y}_07$;-c=5WqnM#m@y5vFJcW2RUJC#ED$#Kc)nRaHeF2Sf&()CZ<$| m*+BLxrc8znOj!&!fb<)t97blQTt*(IJVs%rg3YhFSQ!C!4HMD; delta 85 zcmew${y}_07$;-+=5WqnM#pFd5vCXhW2QI;C#HA?Z>9tWKc+;6aHbT7Sf*5lCZ;ro m*+BLxrYwdHOxX-Kfb<)tTt;T5JVqX-d`4lW!p*O_SQ!C$;1lEk diff --git a/bin/application/MainWindowController$3.class b/bin/application/MainWindowController$3.class index fc86b80bd43789a9e86a11cd473a25ff71ab305c..fd2ba6ffcf18a5c65c3f80e34fa2f2cd804fb783 100644 GIT binary patch delta 39 ucmcb_e~EuX6&qvmbrV0iZrb-5HrmD%(?Arn7O$vMf delta 39 ucmcb_e~EuX6&qv8#zZ#zJif%m)FXlg$VFHKYI!0;K>s0;T{w0;d3G0;vFZ0;>Rz0;~X&0<8d^ d0if%m)FYlg$VFHKhO#0;T{t0;d2x0;m9H0;&La0;~X!0<8d(0D8C_fBF!aB%8SN7tUf$xRRkZ_pb!6@+Z1f_2OR+=XDa7L`)`gJ>gY zf<>(k2I(OLGd=KlMX%@&9Qz0Yr;a<+BO{d<>xnN__|`KMHJPf#OfGZ1u~e6pdiu@$db;!j+5{t52?M6bL J|KL5>wmVb}HOBw| delta 158 zcmWN_v8q7<9LMqB|2v6N29tr&>IqCXCBuCKZ(vgDY@#rF0J}OlquhIw+)HsNj@%H1 zZr(vT)2BYYOfTaOV>a@xTvQ(Fq`uG~Kmdi$? z@D^+pu+y19H})1Gup|dd@n`waB1bE6vJcKy3vF<*Hdk{)$K1{5VY?{*_ToW;r`L(M F>}Ofe_vWS=eR#NEk-PUr*( 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 DYz;&+ literal 35353 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 G;Qs)ik}19b diff --git a/bin/application/updater.class b/bin/application/updater.class index dd8ed1e91f3867cd3d8f008d527fed835710afa1..7d0f7893e0949a7e45feaec72392349fd96f29d4 100644 GIT binary patch literal 4385 zcma)93wRV)75*o$*(^gt76djxT_}YlBrLS0j|2)$ASE;jNFWgLHQC%GLnbrZnOO*J zl~zlu;-kJ>-)Jpbtx6>uBw7{UwZ0$q{eHjS)$gm1|IW-Nvt$ML`*!Efx%Zy)pL73n z?%7BGefALmSK*&3$`s7kvsu%~=$>I)>0EYD_k^ROLczR)`XN1S>eg_2&xj-RK?MuO zbi>+bScCTAcH8nC+cbrvU`1C{M|X)etqNiTIl~;>ySqz4qH9KVujd%nFy}QYwM<(d z>@uuT1+@W`Ho2)MH#Q*c%<)we-l{elmf>Bm;6VMw?a#LO|41786jZd^gCdS{%+sKu zRzZ1vLtix*I1QDklB1_+P!W@(MH;GuQBuPk#1z!f9T7m@qYs!udT(cRvrl&n`5p=@ zyb;5trXo+m(_nCvG1_%xnT9D{(nj**Q<@@gr>5>0J!3#~=%R ztTl$!oXU)d%xG%Jc2a?UH??-{+Bh1pMnxmtDzQ^T6PgvMS*gslsHA>&_!{~&JQZmL zYl_dK;6+1Z%kG?IN$*<|WFn1UfvZ$psbGmTJ~W<=@@bc;dqhhIH{fdWh+*iGBxSUt zD5h05^r^U(eDeLUgqJ4g;a5w2KX-_sK3v-=THWx-N zn3hVmXt)7w3gUKFSV34Nj?g#8JF=@aj!oDqt!`7WIK+D1l7_xGT5+RXw4Je^SrnLT z4d!=fxCu<07>`lr2U)bBVAD^~FpDGwdo;umlUjFac$y?^WyZ8!QH@^gRk24wDjMBV z*{Y#WQdbj>V>^5Ol0cZf*sq}OyB! zJcHr#BOJl)C%JH9cosS4zqF*{IDi)UqiYyIMnM%(3yVdlxrDhWw*myAPI8{XiZ`VK zHv+xG8bU`HN5;QZSTb3~0G_Cpr4KKi*45K9uhav^n z&u}%$`4C%?8p&k|qwR<%!u_o(?qX6Da;?KK#m<~Jop3R{ke=*v?1LiXZMVlnhiQzj zJ*Ycz9Fw#-hT|Guf|nB0u<)iaEiWWRk$I`SV7Bt;e}YdOufVHRyi&ok*?vcMXm~YV zL&|%OZn>-#9gfXf+!Q)rWT%vyJ9aeekZ^a!aW7u4;=Uq^v1WP3n9%SByfJVklt_|A zPdOBm&2J6?rfDB0p zEXwv$=SN3|Y+lTD(~!=mDsd?^I=9!;Go#&lHoVYdram?>sIOcngZEJlAHz8X)d7|^ zj~=ADGWJ;d;E*jWV?3P++9@}^qho(t&huC;<;G8F_#{5X;x~}924(XQ;>dZ1ncgj2 zJLhCXn?FZxe1`3Yf4j4z3hJF3$D?>m#pepSR$`-u&*KZk#zYFZpa?(ODnEH)eW0&+4%~zi7>@xFUvckw?>k3#a3~zU%TZ zn4H0^!vb+gXN_yKZO>)GX1j$qVh=J1-^UMC{D7URpX>hBV_1jmQIYQQkBJNQAwA>S z&Jhhi!jDO!u^Ewq$D#oVcLvJ0>+)dSm0h+yn#)E@b{M39I8l?q#yv-}MHRkC>jftR zlTlN%_eRq@oNd=lvzH0dT2qDZ%|mURSH{mZJc8O96+fdOl>J7-*L>NpXJmiW@VGDg z17!?&C$9yk-PB!IxGMgp;PP34EfpRWPmn7YUP`hDv1Bn~_OU;#XZuff z+5VHQj{jt@&1WTdXqe02OZaxXzYnNuoJ39Inh7KtnO-*ezUq5-+FhwrSaODGMR&d2C9?fcov>w;;&&)~YHoAF^Du|)O-&;u}n=wh>s)(hDJozAr_9VSMiz!~j%c=Q8 z)Lf1a)AoE+9#!#R&A-^+D^K87Ii6Q0bDIWbE^OmM$<{?OxTo=v;PLUqr}Ox19$%bE zgt$-T%dn7tCnfQ@D%5o8v-z=@Ng(_QTtE8*nCh{_T q2jAs0#rL1^`&0aa5tpN1;kWpmKl(jm`)B-xt7J9&EB=muAo*XTt)m(M delta 1516 zcmZ8hT~t(67~N;?%)OV(4Raux89-9~4DW2z0W)5pFa%%-ArHQaMJZ zS()LnEVGRMupcXx87Nxy;9IL+dg!SaAA9Si)sxn~V7YSLbKIi++neb0} zj2~})`#pe_$c!83oq3V{sqstYVsQMIuuSCU%5t$;H=yT0ph)(M-HR5ZLPNR0-2;)4 zNH7+O_XoQU4W+C>6H8Dje-mY*O5PAYwHmb=YGjGSqbx&EHah&J8deCHbAfRy73}V8 zH?SP_CQJl1tdc@05)HCMS)?z=8WSNj$&E_Yj@4LeL)Hm+mbTADM-#!e_<`Y6S1M^m z2AisS3~r#s2Hh`^e;d?kMf$Adt@({6Hes{;M)CV>_!bjeu~5L(8%qpXIoO7F4cq14 zN=5Mw=+tQ?lZj;afxbw}BL6l#U}7hB$rk52(IwN)Vqdp_wqZCL>kE|`=tRBU>@g9> zLo(xR+Vrr1QByWgFpqfD#ADbjpr;a49*y@Kh@e-)K7oa|kFzbFvihy0i9T3zrK_U4 zUqCF=5fy-e{TS2``~UgRahZrCA&Q?P%Tvs;*e}qcZz4^3AJR&bL82XObl4PsjZ1Yt2GuqxNIPjG%#xKb`(cUJdZK? zliI8v!%G^D%RJ4moWRSnUTeu6#TEl6aZ1B$@~~E@ypC~sR;v_J{-F8wlX%0#n>Z_f z*XrvQ<82e?@Q#4fIv7o{TiRCDV<+WZ6Yt%bj!hcgzuKXDgwN^9V}ZDcd^Z5jh}%7D*Lj)G!_J^GjIoLGAIbtW>6ULIy3MDysivhK=75Lptvk1&$c{nhIf@##X&theG7OTV6Su{?gc^d0?1ZuL_ zK;i6KCz0PysN4Rh&_-0cgEX_~47(qkMi2eIEOxv1vZ3u^m&GGo!=9MIL+R%A&bX?|X>Zr$R zT);Wu5H9x0T&m(si+!d#{3yU;RH7W|ASwu6f(8y-QN_zsgCW#n3_%>n3YojO$p7KbYY^u^u8hQPvidbu0G;tbhr8 zz*JVU>ORCrX{v3&0(^{5=p3SJ5*KNWu@pb0<={fA@EJoC&g{kKw44;tY6r72u5sBf zxFeNfYH$f(vYxK9TE4>9yb>yzFOylp6-vp6Yed6^1vju=h`*4uZG&rF<(vak{{XRv BNSXiu diff --git a/bin/recources/HomeFlix-Local_de_DE.properties b/bin/recources/HomeFlix-Local_de_DE.properties index 4fb3706..bfa591e 100644 --- a/bin/recources/HomeFlix-Local_de_DE.properties +++ b/bin/recources/HomeFlix-Local_de_DE.properties @@ -8,6 +8,7 @@ openFolder = Ordner \u00F6ffnen chooseFolder = Ordner ausw\u00E4hlen fontSize = Schriftgr\u00F6\u00DFe: checkUpdates = Auf Update pr\u00FCfen +checkingUpdates = Es wird nach Updates gesucht... updateBtnavail = Update verf\u00FCgbar updateBtnNotavail = Kein Update verf\u00FCgbar autoUpdate = beim Start nach Updates suchen: diff --git a/bin/recources/HomeFlix-Local_en_US.properties b/bin/recources/HomeFlix-Local_en_US.properties index 41de6ea..e221122 100644 --- a/bin/recources/HomeFlix-Local_en_US.properties +++ b/bin/recources/HomeFlix-Local_en_US.properties @@ -8,6 +8,7 @@ openFolder = open Folder chooseFolder = choose Directory fontSize = font size: checkUpdates = check for updates +checkingUpdates = checking for updates... updateBtnavail = update available updateBtnNotavail = no update available autoUpdate = check at startup for updates: diff --git a/src/application/DBController.java b/src/application/DBController.java index a6bfde2..06e2a69 100644 --- a/src/application/DBController.java +++ b/src/application/DBController.java @@ -232,7 +232,7 @@ public class DBController { try { //load local Data Statement stmt = connection.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT * FROM film_local"); + ResultSet rs = stmt.executeQuery("SELECT * FROM film_local ORDER BY titel"); while (rs.next()) { if(rs.getString(4).equals("favorite_black")){ mainWindowController.localFilms.add( new tableData(1, 1, 1, rs.getDouble(1), "1", rs.getString(2), rs.getString(3), new ImageView(favorite_black),rs.getBoolean(5))); @@ -244,7 +244,7 @@ public class DBController { rs.close(); //load streaming Data TODO check if there are streaming data before loading -> maybe there is an issue now - rs = stmt.executeQuery("SELECT * FROM film_streaming;"); + rs = stmt.executeQuery("SELECT * FROM film_streaming ORDER BY titel;"); while (rs.next()) { if(rs.getString(8).equals("favorite_black")){ mainWindowController.streamingFilms.add(new tableData(rs.getInt(1), rs.getInt(2), rs.getInt(3), rs.getDouble(4), rs.getString(5), rs.getString(6), rs.getString(7), new ImageView(favorite_black),rs.getBoolean(9))); @@ -330,7 +330,7 @@ public class DBController { * @throws FileNotFoundException * @throws IOException */ - private void checkAddEntry() throws SQLException, FileNotFoundException, IOException{ //TODO sort alphabetical + private void checkAddEntry() throws SQLException, FileNotFoundException, IOException{ System.out.println("checking for entrys to add to DB ..."); String[] entries = new File(mainWindowController.getPath()).list(); Statement stmt = connection.createStatement(); diff --git a/src/application/Main.java b/src/application/Main.java index c8d8ca7..00e8242 100644 --- a/src/application/Main.java +++ b/src/application/Main.java @@ -45,9 +45,9 @@ public class Main extends Application { private String streamingPathWin = System.getProperty("user.home") + "\\Documents\\HomeFlix"; private String streamingPathLinux = System.getProperty("user.home") + "/HomeFlix"; private String color = "ee3523"; - private String autoUpdate = "0"; private String mode = "local"; //local or streaming private String local = System.getProperty("user.language")+"_"+System.getProperty("user.country"); + private boolean autoUpdate = false; private double size = 17; private ResourceBundle bundle; private MainWindowController mainWindowController; @@ -77,7 +77,7 @@ public class Main extends Application { mainWindowController.setAutoUpdate(autoUpdate); //set auto-update mainWindowController.setMain(this); //call setMain - //Linux if directory exists -> check config.xml + //Linux if directory exists -> check config.xml if(System.getProperty("os.name").equals("Linux")){ if(dirLinux.exists() != true){ dirLinux.mkdir(); diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java index 5bb6564..82e2b8c 100644 --- a/src/application/MainWindowController.java +++ b/src/application/MainWindowController.java @@ -182,6 +182,7 @@ public class MainWindowController { private boolean menutrue = false; //saves the position of menubtn (opened or closed) private boolean settingstrue = false; private boolean streamingSettingsTrue = false; + private boolean autoUpdate = false; static boolean firststart = false; private int hashA = -2055934614; private String version = "0.5.0"; @@ -196,22 +197,20 @@ public class MainWindowController { String errorUpdateD; String errorUpdateV; + String noFilmFound; private String errorPlay; private String errorOpenStream; private String errorMode; private String errorLoad; private String errorSave; - String noFilmFound; private String infoText; private String linuxBugText; private String vlcNotInstalled; - private String aktBuildNumber; private String path; private String streamingPath; private String color; private String name; private String datPath; - private String autoUpdate; private String mode; @SuppressWarnings("unused") private String ratingSortType; @@ -472,21 +471,21 @@ public class MainWindowController { @FXML private void updateBtnAction(){ -// Updater.update(buildURL, downloadLink, aktBuildNumber, buildNumber); System.out.println(Updater.getState()); if(Updater.getState() == State.NEW){ Updater.start(); }else{ Updater.run(); } + } @FXML private void autoupdateBtnAction(){ - if(autoUpdate.equals("0")){ - setAutoUpdate("1"); + if(autoUpdate){ + setAutoUpdate(false); }else{ - setAutoUpdate("0"); + setAutoUpdate(true); } saveSettings(); } @@ -519,7 +518,7 @@ public class MainWindowController { //"Main" Method called in Main.java main() when starting void setMain(Main main) { this.main = main; - Updater = new updater(this,buildURL, downloadLink, aktBuildNumber, buildNumber); + Updater = new updater(this,buildURL, downloadLink, buildNumber); dbController = new DBController(this); ApiQuery = new apiQuery(this, dbController); } @@ -760,10 +759,14 @@ public class MainWindowController { updateBtn.setFont(Font.font("System", 12)); cbLocal.setItems(locals); - //TODO rework! - if(autoUpdate.equals("1")){ + if(autoUpdate){ autoupdateBtn.setSelected(true); - Updater.start(); + try { + Updater.start(); + Updater.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } }else{ autoupdateBtn.setSelected(false); } @@ -1022,7 +1025,7 @@ public class MainWindowController { try { props.setProperty("path", getPath()); //writes path into property props.setProperty("color", getColor()); - props.setProperty("autoUpdate", getAutoUpdate()); + props.setProperty("autoUpdate", String.valueOf(isAutoUpdate())); props.setProperty("size", getSize().toString()); props.setProperty("local", getLocal()); props.setProperty("streamingPath", getStreamingPath()); @@ -1058,7 +1061,7 @@ public class MainWindowController { streamingPath = props.getProperty("streamingPath"); color = props.getProperty("color"); size = Double.parseDouble(props.getProperty("size")); - autoUpdate = props.getProperty("autoUpdate"); + autoUpdate = Boolean.parseBoolean(props.getProperty("autoUpdate")); local = props.getProperty("local"); mode = props.getProperty("mode"); ratingSortType = props.getProperty("ratingSortType"); @@ -1068,7 +1071,7 @@ public class MainWindowController { showErrorMsg(errorSave, e); e.printStackTrace(); } -// showErrorMsg(errorLoad, e); //TODO das soll beim ersten start nicht erscheinen +// showErrorMsg(errorLoad, e); //TODO This should not be visible at first startup } } @@ -1113,11 +1116,11 @@ public class MainWindowController { return size; } - public void setAutoUpdate(String input){ + public void setAutoUpdate(boolean input){ this.autoUpdate = input; } - public String getAutoUpdate(){ + public boolean isAutoUpdate(){ return autoUpdate; } diff --git a/src/application/updater.java b/src/application/updater.java index 5425c8f..2201323 100644 --- a/src/application/updater.java +++ b/src/application/updater.java @@ -12,43 +12,51 @@ import java.net.URL; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; +import javafx.application.Platform; + public class updater extends Thread{ private MainWindowController mainWindowController; private String buildURL; private String downloadLink; - private String aktBuildNumber; + private String updateBuildNumber; private String buildNumber; - public updater(MainWindowController m, String buildURL,String downloadLink,String aktBuildNumber,String buildNumber){ + public updater(MainWindowController m, String buildURL,String downloadLink,String buildNumber){ mainWindowController=m; this.buildURL=buildURL; this.downloadLink=downloadLink; - this.aktBuildNumber=aktBuildNumber; this.buildNumber=buildNumber; } public void run(){ System.out.println("check for updates ..."); + Platform.runLater(() -> { + mainWindowController.updateBtn.setText(mainWindowController.bundle.getString("checkingUpdates")); + }); try { - URL url = new URL(buildURL); //URL der Datei mit aktueller Versionsnummer + URL url = new URL(buildURL); //URL of the text file with the current build number BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); - aktBuildNumber = in.readLine(); //schreibt inputstream in String + updateBuildNumber = in.readLine(); //write InputStream in String in.close(); } catch (IOException e1) { mainWindowController.showErrorMsg(mainWindowController.errorUpdateV, e1); } - System.out.println("Build: "+buildNumber+", Update: "+aktBuildNumber); + System.out.println("Build: "+buildNumber+", Update: "+updateBuildNumber); - //vergleicht die Versionsnummern, bei aktversion > version wird ein Update durchgrf�hrt + //Compares the program BuildNumber with the current BuildNumber if program BuildNumber < current BuildNumber then perform a update int iversion = Integer.parseInt(buildNumber); - int iaktVersion = Integer.parseInt(aktBuildNumber.replace(".", "")); + int iaktVersion = Integer.parseInt(updateBuildNumber.replace(".", "")); if(iversion >= iaktVersion){ -// mainWindowController.updateBtn.setText(mainWindowController.bundle.getString("updateBtnNotavail")); + Platform.runLater(() -> { + mainWindowController.updateBtn.setText(mainWindowController.bundle.getString("updateBtnNotavail")); + }); System.out.println("no update available"); }else{ -// mainWindowController.updateBtn.setText(mainWindowController.bundle.getString("updateBtnavail")); + Platform.runLater(() -> { + mainWindowController.updateBtn.setText(mainWindowController.bundle.getString("updateBtnavail")); + }); System.out.println("update available"); try { URL website; @@ -57,7 +65,7 @@ public class updater extends Thread{ String updateDataURL = in.readLine(); website = new URL(updateDataURL); //Update URL ReadableByteChannel rbc = Channels.newChannel(website.openStream()); //open new Stream/Channel - FileOutputStream fos = new FileOutputStream("ProjectHomeFlix.jar"); //nea fileoutputstram for ProjectHomeFLix.jar + FileOutputStream fos = new FileOutputStream("ProjectHomeFlix.jar"); //new FileOutputStream for ProjectHomeFLix.jar fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); //gets file from 0 to max size fos.close(); //close fos (extrem wichtig!) Runtime.getRuntime().exec("java -jar ProjectHomeFlix.jar"); //start again diff --git a/src/recources/HomeFlix-Local_de_DE.properties b/src/recources/HomeFlix-Local_de_DE.properties index 4fb3706..bfa591e 100644 --- a/src/recources/HomeFlix-Local_de_DE.properties +++ b/src/recources/HomeFlix-Local_de_DE.properties @@ -8,6 +8,7 @@ openFolder = Ordner \u00F6ffnen chooseFolder = Ordner ausw\u00E4hlen fontSize = Schriftgr\u00F6\u00DFe: checkUpdates = Auf Update pr\u00FCfen +checkingUpdates = Es wird nach Updates gesucht... updateBtnavail = Update verf\u00FCgbar updateBtnNotavail = Kein Update verf\u00FCgbar autoUpdate = beim Start nach Updates suchen: diff --git a/src/recources/HomeFlix-Local_en_US.properties b/src/recources/HomeFlix-Local_en_US.properties index 41de6ea..e221122 100644 --- a/src/recources/HomeFlix-Local_en_US.properties +++ b/src/recources/HomeFlix-Local_en_US.properties @@ -8,6 +8,7 @@ openFolder = open Folder chooseFolder = choose Directory fontSize = font size: checkUpdates = check for updates +checkingUpdates = checking for updates... updateBtnavail = update available updateBtnNotavail = no update available autoUpdate = check at startup for updates: