From c1a65f4aad678447b5fcac42d164d244ba9292d2 Mon Sep 17 00:00:00 2001 From: Sergey Solovyev Date: Fri, 5 Oct 2012 01:14:18 +0400 Subject: [PATCH] Plotter preferences --- calculatorpp/res/drawable-hdpi/ab_add.png | Bin 0 -> 2194 bytes .../res/drawable-hdpi/ab_settings.png | Bin 0 -> 1851 bytes calculatorpp/res/drawable-ldpi/ab_add.png | Bin 0 -> 1580 bytes .../res/drawable-ldpi/ab_settings.png | Bin 0 -> 1601 bytes calculatorpp/res/drawable-mdpi/ab_add.png | Bin 0 -> 1339 bytes .../res/drawable-mdpi/ab_settings.png | Bin 0 -> 1142 bytes calculatorpp/res/drawable-xhdpi/ab_add.png | Bin 0 -> 3061 bytes .../res/drawable-xhdpi/ab_settings.png | Bin 0 -> 2507 bytes calculatorpp/res/layout/ad.xml | 12 +-- calculatorpp/res/layout/help_faq_fragment.xml | 2 + .../res/layout/help_hints_fragment.xml | 2 + .../res/layout/help_screens_fragment.xml | 2 + calculatorpp/res/layout/history_fragment.xml | 2 + .../res/layout/math_entities_fragment.xml | 2 + calculatorpp/res/layout/plot_fragment.xml | 3 + calculatorpp/res/layout/vars_fragment.xml | 44 ++++---- calculatorpp/res/menu/plot_menu.xml | 15 +++ calculatorpp/res/menu/var_menu.xml | 27 ++--- .../CalculatorActivityHelperImpl.java | 19 +++- .../CalculatorFragmentHelperImpl.java | 11 +- .../plot/CalculatorPlotFragment.java | 101 ++++++++---------- 21 files changed, 139 insertions(+), 103 deletions(-) create mode 100644 calculatorpp/res/drawable-hdpi/ab_add.png create mode 100644 calculatorpp/res/drawable-hdpi/ab_settings.png create mode 100644 calculatorpp/res/drawable-ldpi/ab_add.png create mode 100644 calculatorpp/res/drawable-ldpi/ab_settings.png create mode 100755 calculatorpp/res/drawable-mdpi/ab_add.png create mode 100644 calculatorpp/res/drawable-mdpi/ab_settings.png create mode 100644 calculatorpp/res/drawable-xhdpi/ab_add.png create mode 100644 calculatorpp/res/drawable-xhdpi/ab_settings.png create mode 100644 calculatorpp/res/menu/plot_menu.xml diff --git a/calculatorpp/res/drawable-hdpi/ab_add.png b/calculatorpp/res/drawable-hdpi/ab_add.png new file mode 100644 index 0000000000000000000000000000000000000000..444e8a5ee85ce5235f16c482457fd5ce76a51047 GIT binary patch literal 2194 zcmZ{lX*kpk7smg_7&{}1ku-KDYK)z-HTE^KMAn(HGt5{r$et`Ql)Y?25uxmqC1l2) ztwhKc9uy@>@#y*Xet19J=XafRo%=dp&UH?rxv3sI3qK100PF_(Xp0jf|B4BG692Hu zvYi0rYNUq-juX-bJ5DlYfBhT86YBpbU7EN0-(s-8mir0+^8&-$DK-GWm}h|2x^COO zl^y0Y{_b>N$LFKl8XA~)sY{~oO9QmCdS1>;S=oGe4T&#)mgbo+zsISH_%S*mTkOeM zZ|&V?=wO*BWVOLkH93K*h%w33wdZP}WcF8f@|Uv<2f(AjeW{O>cSh3YzZCpQ2XB($ z??-=_jhxR4|FXAF9B$bcEMyJ$JjPRIZW;i5%|AjD9zw@clV|+Dh%d@-Z$t7a5OyY! z6iC<*NiBQm*j-BaG=x5=U=F%r&dNLe>TVs5Zi~*0;2GPMu1--U`nx8vZKW1hvjzPq)L$# z$k^e#=}tqsZQlag%D(R?*yz2;|7>tRweyls}&C)Xj#cZ>F7 zUSW}&h_%ElgpP!0&WZ@aR3fTL$NFRNSUih4wSO|Tz=X)#VL$1y(VsdyV1ss_d|nyb zBj}MgFnqZxjSrIJ^*b?>&^1EeQ8zv0hqGKv9xo1An*RL&Z9;b|9W-S%8%doPAMbbj zqgl0B_}P@fmirF++*B6?p3FJ=B&h`4l9f_@WZmu9)^`~(#gQub=FqXU-wXr0XW>7I zIg)EvymQM=V|3+;G6}^bD|ico`KOXK_~O^55)LH%E|N4B_7(47_7BwecM9h>hdn9i z5RgQQlqx#oJym?p$N1eKhd z;|_u@R9*d+_Q+HYQE*oKGZjX5R>?I~bm;T()*9clSTYbgXt*6o^7BJ14`mi%x{)6bngjfJE8U@ux#hLeh ztnI`iyQ0P&6UbcJOhU6miVJ$N`T}y%I@tX+9I!`<0h%MGfM^UusgqP^qMo@DteS&I z%NXF1rZqVj(Nh>1KM?i%SZW!m?ps7kX}A+35H(cuo=;vhogPY%|5G+K!XONQ=^f9E z-BJ3&|4ouxrEZtO=US3hppcTNmg0{K5sel!!pQ-lDBs?e$y=e@HM}_E5*=23&ApCCJ66?$>VJimdtor07i-&V+Rzl;1 z--xEH(}8t^M+eDQAy&${w1>%F3;RqU8R5uuNyL;*B|5OUNPM5Tl*B% zj@S$~T=_-Av=%p+Q>D87A||_|`uLpu0MHCYD$es-SZa zfn7E?Nvb-8_>{??Di~V+cwHxfthe(Eswx62$pru&`NGMzkhM@;@qt7K?#5?QrO|!Y zmulzKD{Ib8D~~-9Vbx?BEA5?ZnQQ&6aI7s?vpKrAy;{fe7?B0LR%BnI_f9vu zz!6G%Rq*{i5^z>7+-M;@A5f0JIU2c=ni_pOZ#PYG#jg^M zc;SolGYR`M0$#qcgI)C~RK_HS2bWnrMFQnW=;;AaOYOrBRCC`IGwqkcO%C-z%c-6{ zJ`3VNXACG}*ytVK{$-m(qkN=Xf5GDL^KE5^RXS`DeQmc+gMd%fQ3bJX6;-x-IE#nW zi#$UJKx&kUoTuze2u@5fr-3hy zHU2(Io-(@~_T9!u=Lpi^8D^;#2vY0D>{}`M?5h`B8$r5?WDQXZA`+E@@SfiMH%1k= z1`lYqV61xt|1(&tH=RL`R>(06ac=X*d~l?LJ>-1Pay$jB-p$w>qDwl=tgB0P68uEl zUb3bGiZZ&QMhbm;1tzS+?4;|gY5Mb*iC74P)t)7qT3GQ1%DE zIj_5KgpnN0}yppPdoD5P~6^Sf0 zCD8uI;ETt4x`qCK!z6cq(1`)|cY-C}EilA|fCIF!cvl?Uz}LkcXMuCUh6d1Zmrt4i M107RzwYGE2zYr|yT>t<8 literal 0 HcmV?d00001 diff --git a/calculatorpp/res/drawable-hdpi/ab_settings.png b/calculatorpp/res/drawable-hdpi/ab_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..5321f8285235d915ea069e52df7356f4fc464086 GIT binary patch literal 1851 zcmZ{lcRbq(6u^JBR4HxrC^1{HBE+oLNUYe35^Y0_*g=Vr-r2Q}prurew)TiorBsc& zBK94w#?hWyMKtb&pyks0@BX+y-ur&u`@HYx{qg>IX?8Yd{AVtm0RVvC9BpjRqU!hH zzGX_pm$fG^13KW8N31bocZd4=ZMN|Nu4+_E&U<8(FB+V1>i$0o?nhqcY_&3bGLUNpwN$TzRm z4@&f-2zNeJ4lrxR3LkZ-clMk{u^cWLb$vUzzvpDO|VT8)v~Pue)#P`rtComA>u^5 z-hU6;%P;BF#6KI&I&-_P`}k}shE1NZOJSE{9aPTd@?8Q>@U2~;3!_s>XNY=0`s;DC zf5TK?E?~$;w8%8kO9Zl|Cr5WmdH~V}_5_mFNrASUJ1O6BfkuTQIEYRjD`v6)SSNDT zBj#cbH&r1JmXXr2Q&a)(EGi(?rtuo0`tCWNcxTo8Ehy!IcFpmjNCpHdf7pt~@cK>B zu(@omJ8`j9VxYC!IJfzdj8yK@|zslb0%qbk*0tTh}#Xqsm znn;0)t~A&rF&;~T_15dX=;qA^Id+X}nlFZhvjJCGr!_Zha-CgJ2{UpiHi1u`n|)+? zYkJeV0)Fq7Na|!`ORV?}Y{uY2%5W#FZDz1!e3q317}9U@OT2`t0ONuZp(Gyawi1bFI9@MKDHo&=Wl>-rLeU7Vi8dKyk6s=&Az6 zkFKbCq2F^oA1q{&hNX|UptG0HCLkMJW`dRH))#oIrD=JA0UE-0OG)(7(qZ@ZIh+=( z<|lo6^ddAb!s?Bn64>B?Fxgel##z3BD9tu=s4~kl*A~G&PUh&E|FPm%*Vio`kvKk4 zMc9)4@!-)BBP(xxk(#(iul2$-&bjV&g>i8}TA_>`)o|qcvP!6Um`%fm-ldcsbLA%lsP@5(24;c%|!PX6xjrmgtyfs2}#p?L1_%n`qlF*uJWaul%2aZG%9P zi1PEsxFf-sdY`hQeV-+X<)G8TD1+Iu?XEjL4spHnw+<(tw!i|BfS^^Xf5V)!*`N%i zt#YJu21(`W4ZA25H$36dP3G%a;TOWl-WFf}@(bB`g}Ql=V)fuy;k6W#$geSs{*YPy z1>L=>(WK1mbeD?1&Kd&DO>B%QC|trnDzi)4 literal 0 HcmV?d00001 diff --git a/calculatorpp/res/drawable-ldpi/ab_add.png b/calculatorpp/res/drawable-ldpi/ab_add.png new file mode 100644 index 0000000000000000000000000000000000000000..89620af8c03d187d47c7630e9c2a257b88e9e176 GIT binary patch literal 1580 zcmZ{kdpy&77{`CLtrkgXHMbPA5eL65%2o}_Fw6atwOqHEYnaPyO9`by7w0q~x8xea z;^@Xf$wEl!GQ}YwNff1+GyQeWALozf`+j|&_xJPq{`0(^vyS%G3UaD)001aZY%HB+ z)Ltn#RCZF=Ic}C=wI9{m5&+86P&nCbUAPS`QbwC!WhD+Kt~6u9E!Z;t$^x-#)h+-4 zbeUpl;cD|}^m1HC|MM-6%*NjS6y%mT?CcRfC4w8TlGmLfkjfLC3ZWpjYj^TF{|5%} zOwc%>g1{&~YgF1>Y5_Cu4cK8X1nZe8v(6hmj=b`bkDwIXg4xph9t*s42dCeP%pR*A zPLbXmYZ7$d&J#4^#|GpFX`&3STi@z|CrA9#M?f$`*kRQXp4~JW4IOnz9hR3Sf{A6v z#5r)n;--O~w9$jb!iA4R=)iOa#~m5iiBZ|PxemQ}DsOdncq+G%HsOBWC6yDuxAS18 zSOJo|eOES~lZ>Z8!jlXJwWn^TmYlZV`k2Qvy?)J3)bQLr2xcn?=$TUd=zy-n6y<%0 zt$%7e_c@=ok7AHJS!5^O_Q}&Hull#h8b$&8Ixu+F4dRD{pW0fMk?tE?0=Mp2RQY`*jPQ^Q<_u8d%9BErzZ5HO|Kyne+ z?YnWms^gZ8y+xrDNT6DX$%H@ zCgXDQ)~}f=I;GL~LufKaoUL(-zZxEBe)jtM zaORpszV67k^ls~%RZfL*y}b|FH*uMHbUIrV!gnj(IxVn1WEXQu&-Pg+RU=~^-wzzu zZTdSd(TMoRZ^o(*oa*_|*gEl2fm6*Mi9#DgK0MX}^2t#xsC==wIsaQjGDY_&efG?s z09o@!(#v_Tkcst9fR3`F{TX6T{5VBQY*^G+wx%^?j7C?zrNVven0=U*ADFCaqE@JL zzcTuJyyV*u`vPdI-!Q2)KAi2@?fj!uw08Jf-~E)~_*LX~s-WX`42MteO*_8>@ItxN z26ZFvhElGy%oZG=cgGZqXnyx2TFZ(eLbQPHLs2>xqtQ#;ARA|=8G4$c&(RIZnazvM zD$O^=A|cC}x^RBv#hmA6fvbXLRxJ#3!^-^ri}uS$X|?w-*kkR8tXH!6GvvCE_EzF_ zyc_FK$Yot4jhQti_GwD@eB|sFevmt?zJ&;vKbTt8aPm707hW74W`8Wa6vHDNX9P<$ z^-Pf3$|lOGCbXSz%pxA9XJjworDeS1V#5!o1wp=wBQ&bwA?jfv3`Z|_=$fod)$b`q z^*P?D^hd^pWfMbt)_0g5*pgAl&+_Q7SM^}%vDW-_d{*W%k4qEJCg7V_c@>{Mp@3hg z3ya)a=~|Of7DW}|A6OUIUA{WND8}Lu<3#t*Y^&T=JhlXc#llpZEWPAzP)D&8xWbgMVO16pKUf z3yJ0cpdr>JihWF`HvCJ4g!!=|0psXWxR%VQtQeOt|0u36hXq(LWpW24)R)b2X8AIC T5n|Rp*&~2LwzsSz`6T=U5hc46 literal 0 HcmV?d00001 diff --git a/calculatorpp/res/drawable-ldpi/ab_settings.png b/calculatorpp/res/drawable-ldpi/ab_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..efc2f3e4597e6f8aab0ac8e4156e83e999a55d01 GIT binary patch literal 1601 zcmZ{kYdjNr7{`|qRvV2-R;E-g(I(=|Wz=dL*}){!ZORD4u!Y>pNfXmlLyV}9$>pG$ zTckKks$qmN`A|)AH5$v|IbUM0N0!^H&xSsieaK02DQF zXa{#Je=?m&$vL@|A1@gSX`E&HQCR$&xp+sKFmm8lRNw@dBWUTRB*R@pf78oUNSRsta21E zP2E``UHuwA)jzyCn|IhFE)E6WQ#eS|9b%rhdFCINWYN3GZ$<3VFay{H=QV(^$ktlhcC034PYt z&7#B(KKrqM08IASt;lxxo!j=P_@JdMsZeUwYSF_;>_#z0^`-@hKswlTT-=_&EiwcD zA-om+)%_-RS1M%IrbcojuqaT8neULB_Qtd{ZVdTjQgZxYJ3kXym%d#kH{k>ddZ=97 z&l}1jz9Gkn!#FvS$2SuA*L8Fs^GJB3wt2>*l`L7$BVbi)o7@M;Ud&n)$`1DD-(#f%(em`hy4VmY2ehcsEaqebcVXqv& zcCbmqC(>6;9GtcP6Gp122@m935`;LT&X(**uckv}+#-JDx2V;48-qs7)+n`an3bUZUM>Z>7K+th28FTo zA=-GY!4!2r)q6jJo>%!g$r=ZrfrHYq%HO}UIOlkz16ZHgk+dA8*aRriP=w1viJ&k& zh0d0Dt{6~TTBm0NDL}h@@I_}!Jd)`mx%v5~jRnxO%$qQeT?lh(;Upz<2@VK}qI+4Z zq>;26bh6t&J0>)0sfpQvC%hxG=oA6ViCwIiKD-$r$*ER5OeGq|#KjeiIC>SL8@lFn z?c25xg%S87U25h)&kZMZ>s#ewSY@E~*}j2o&N21(Mxk`Or*kDc$hYtAt+aj>`rMxs zcaEN4c`P^U&cz~f>B2r+lw&48cCVF@Rd7@H9HX9Uj>sY0`vBTZ%c(8t+?m9wo#o}d z06U)eFb)PoGDsd)X%Po8`|?Ij1Abn6ek$5<-E^~ShGmWER*tt0Yrd0Qx7BoV9UJPb zkh@Cl& z3_C*B&avv+248;)jU0wNPoaka;HC%y%`Zl-!2eQ|kn`klfH}Qbd6(R1uNgv!FD=45 jj0|w_kxLjZ$lH(XM)vlJ3T-3X$cF&9qj+@rVN$|Bz|ZR- literal 0 HcmV?d00001 diff --git a/calculatorpp/res/drawable-mdpi/ab_add.png b/calculatorpp/res/drawable-mdpi/ab_add.png new file mode 100755 index 0000000000000000000000000000000000000000..361c7c460ef8cd5225a54f6ccb636cad9b4e3aea GIT binary patch literal 1339 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 literal 0 HcmV?d00001 diff --git a/calculatorpp/res/drawable-xhdpi/ab_add.png b/calculatorpp/res/drawable-xhdpi/ab_add.png new file mode 100644 index 0000000000000000000000000000000000000000..7d498a96e21a343346f11c4c1e7191dc0886eb81 GIT binary patch literal 3061 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 PIRr2@vP9Jz;Nt!U*I|wz literal 0 HcmV?d00001 diff --git a/calculatorpp/res/layout/ad.xml b/calculatorpp/res/layout/ad.xml index 822165b6..6ca95ee9 100644 --- a/calculatorpp/res/layout/ad.xml +++ b/calculatorpp/res/layout/ad.xml @@ -1,6 +1,6 @@ - - - + + + diff --git a/calculatorpp/res/layout/help_faq_fragment.xml b/calculatorpp/res/layout/help_faq_fragment.xml index 5a54e407..1454d519 100644 --- a/calculatorpp/res/layout/help_faq_fragment.xml +++ b/calculatorpp/res/layout/help_faq_fragment.xml @@ -17,6 +17,8 @@ a:layout_width="match_parent" style="?fragmentTitleStyle"/> + + diff --git a/calculatorpp/res/layout/help_hints_fragment.xml b/calculatorpp/res/layout/help_hints_fragment.xml index 18947e1f..e94e1843 100644 --- a/calculatorpp/res/layout/help_hints_fragment.xml +++ b/calculatorpp/res/layout/help_hints_fragment.xml @@ -16,6 +16,8 @@ a:layout_width="match_parent" style="?fragmentTitleStyle"/> + + diff --git a/calculatorpp/res/layout/help_screens_fragment.xml b/calculatorpp/res/layout/help_screens_fragment.xml index 80a37755..15838a2b 100644 --- a/calculatorpp/res/layout/help_screens_fragment.xml +++ b/calculatorpp/res/layout/help_screens_fragment.xml @@ -16,6 +16,8 @@ a:layout_width="match_parent" style="?fragmentTitleStyle"/> + + diff --git a/calculatorpp/res/layout/history_fragment.xml b/calculatorpp/res/layout/history_fragment.xml index d46d0d7a..e3cdd7c6 100644 --- a/calculatorpp/res/layout/history_fragment.xml +++ b/calculatorpp/res/layout/history_fragment.xml @@ -11,6 +11,8 @@ a:layout_width="match_parent" style="?fragmentTitleStyle"/> + + \ No newline at end of file diff --git a/calculatorpp/res/layout/math_entities_fragment.xml b/calculatorpp/res/layout/math_entities_fragment.xml index d46d0d7a..e3cdd7c6 100644 --- a/calculatorpp/res/layout/math_entities_fragment.xml +++ b/calculatorpp/res/layout/math_entities_fragment.xml @@ -11,6 +11,8 @@ a:layout_width="match_parent" style="?fragmentTitleStyle"/> + + \ No newline at end of file diff --git a/calculatorpp/res/layout/plot_fragment.xml b/calculatorpp/res/layout/plot_fragment.xml index c5e33b55..1e2d53c5 100644 --- a/calculatorpp/res/layout/plot_fragment.xml +++ b/calculatorpp/res/layout/plot_fragment.xml @@ -11,4 +11,7 @@ a:layout_width="match_parent" style="?fragmentTitleStyle"/> + + + \ No newline at end of file diff --git a/calculatorpp/res/layout/vars_fragment.xml b/calculatorpp/res/layout/vars_fragment.xml index ee145a42..a131f1a7 100644 --- a/calculatorpp/res/layout/vars_fragment.xml +++ b/calculatorpp/res/layout/vars_fragment.xml @@ -1,22 +1,24 @@ - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/calculatorpp/res/menu/plot_menu.xml b/calculatorpp/res/menu/plot_menu.xml new file mode 100644 index 00000000..0e734ab4 --- /dev/null +++ b/calculatorpp/res/menu/plot_menu.xml @@ -0,0 +1,15 @@ + + + + + + + + \ No newline at end of file diff --git a/calculatorpp/res/menu/var_menu.xml b/calculatorpp/res/menu/var_menu.xml index 4a338007..aa0edfc2 100644 --- a/calculatorpp/res/menu/var_menu.xml +++ b/calculatorpp/res/menu/var_menu.xml @@ -1,14 +1,15 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorActivityHelperImpl.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorActivityHelperImpl.java index db7183dc..5c2740a9 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorActivityHelperImpl.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorActivityHelperImpl.java @@ -201,11 +201,22 @@ public class CalculatorActivityHelperImpl extends AbstractCalculatorHelper imple @Override public void setFragment(@NotNull SherlockFragmentActivity activity, @NotNull CalculatorFragmentType fragmentType, @Nullable Bundle fragmentArgs, int parentViewId) { - final Fragment fragment = Fragment.instantiate(activity, fragmentType.getFragmentClass().getName(), fragmentArgs); final FragmentManager fm = activity.getSupportFragmentManager(); - final FragmentTransaction ft = fm.beginTransaction(); - ft.add(parentViewId, fragment); - ft.commit(); + + Fragment fragment = fm.findFragmentByTag(fragmentType.getFragmentTag()); + if (fragment == null) { + fragment = Fragment.instantiate(activity, fragmentType.getFragmentClass().getName(), fragmentArgs); + final FragmentTransaction ft = fm.beginTransaction(); + ft.add(parentViewId, fragment, fragmentType.getFragmentTag()); + ft.commit(); + } else { + if ( fragment.isDetached() ) { + final FragmentTransaction ft = fm.beginTransaction(); + ft.attach(fragment); + ft.commit(); + } + + } } @Override diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorFragmentHelperImpl.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorFragmentHelperImpl.java index 06c65fa9..476a9a2b 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorFragmentHelperImpl.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorFragmentHelperImpl.java @@ -9,7 +9,6 @@ import com.google.ads.AdView; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.solovyev.android.ads.AdsController; -import org.solovyev.android.calculator.plot.CalculatorPlotFragment; /** * User: serso @@ -89,11 +88,13 @@ public class CalculatorFragmentHelperImpl extends AbstractCalculatorHelper imple @Override public void onViewCreated(@NotNull Fragment fragment, @NotNull View root) { + final ViewGroup adParentView = (ViewGroup) root.findViewById(R.id.ad_parent_view); final ViewGroup mainFragmentLayout = (ViewGroup) root.findViewById(R.id.main_fragment_layout); - if (mainFragmentLayout != null) { - if (!(fragment instanceof CalculatorPlotFragment)) { - adView = AdsController.getInstance().inflateAd(fragment.getActivity(), mainFragmentLayout, R.id.main_fragment_layout); - } + + if (adParentView != null) { + adView = AdsController.getInstance().inflateAd(fragment.getActivity(), adParentView, R.id.ad_parent_view); + } else if ( mainFragmentLayout != null ) { + adView = AdsController.getInstance().inflateAd(fragment.getActivity(), mainFragmentLayout, R.id.main_fragment_layout); } processButtons(fragment.getActivity(), root); diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/plot/CalculatorPlotFragment.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/plot/CalculatorPlotFragment.java index c3cfa9e4..4634db5e 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/plot/CalculatorPlotFragment.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/plot/CalculatorPlotFragment.java @@ -35,7 +35,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.solovyev.android.calculator.*; import org.solovyev.android.menu.ActivityMenu; -import org.solovyev.android.menu.LabeledMenuItem; +import org.solovyev.android.menu.IdentifiableMenuItem; import org.solovyev.android.menu.ListActivityMenu; import org.solovyev.android.sherlock.menu.SherlockMenuHelper; import org.solovyev.common.MutableObject; @@ -83,16 +83,16 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul @NotNull private PreparedInput preparedInput; + @Nullable + private Input input; + @NotNull private CalculatorEventData lastCalculatorEventData = CalculatorUtils.createFirstEventDataId(); private int bgColor; - @Nullable - private PlotBoundaries plotBoundaries = null; - @NotNull - private ActivityMenu fragmentMenu = ListActivityMenu.fromList(PlotMenu.class, SherlockMenuHelper.getInstance()); + private ActivityMenu fragmentMenu = ListActivityMenu.fromResource(R.menu.plot_menu, PlotMenu.class, SherlockMenuHelper.getInstance()); public CalculatorPlotFragment() { super(CalculatorApplication.getInstance().createFragmentHelper(R.layout.plot_fragment, R.string.c_graph, false)); @@ -104,25 +104,21 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul final Bundle arguments = getArguments(); - Input input = null; if (arguments != null) { input = (Input) arguments.getSerializable(INPUT); } if (input == null) { - this.preparedInput = prepareInputFromDisplay(CalculatorLocatorImpl.getInstance().getDisplay().getViewState()); this.bgColor = getResources().getColor(R.color.pane_background); } else { - this.preparedInput = prepareInput(input, true); this.bgColor = getResources().getColor(android.R.color.transparent); } - setRetainInstance(true); setHasOptionsMenu(true); } @NotNull - private static PreparedInput prepareInputFromDisplay(@NotNull CalculatorDisplayViewState displayState) { + private static PreparedInput prepareInputFromDisplay(@NotNull CalculatorDisplayViewState displayState, @Nullable Bundle savedInstanceState) { try { if (displayState.isValid() && displayState.getResult() != null) { final Generic expression = displayState.getResult(); @@ -130,7 +126,7 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul final Constant constant = CollectionsUtils.getFirstCollectionElement(CalculatorUtils.getNotSystemConstants(expression)); final Input input = new Input(expression.toString(), constant.getName()); - return prepareInput(input, false); + return prepareInput(input, false, savedInstanceState); } } } catch (RuntimeException e) { @@ -141,7 +137,7 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul } @NotNull - private static PreparedInput prepareInput(@NotNull Input input, boolean fromInputArgs) { + private static PreparedInput prepareInput(@NotNull Input input, boolean fromInputArgs, @Nullable Bundle savedInstanceState) { PreparedInput result; try { @@ -149,7 +145,12 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul final Generic expression = Expression.valueOf(preparedExpression.getExpression()); final Constant variable = new Constant(input.getVariableName()); - result = PreparedInput.newInstance(input, expression, variable, fromInputArgs); + PlotBoundaries plotBoundaries = null; + if ( savedInstanceState != null ) { + plotBoundaries = (PlotBoundaries)savedInstanceState.getSerializable(PLOT_BOUNDARIES); + } + + result = PreparedInput.newInstance(input, expression, variable, fromInputArgs, plotBoundaries); } catch (ParseException e) { result = PreparedInput.newErrorInstance(fromInputArgs); CalculatorLocatorImpl.getInstance().getNotifier().showMessage(e); @@ -174,20 +175,13 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul } @Override - public void onViewCreated(View root, Bundle savedInstanceState) { - super.onViewCreated(root, savedInstanceState); + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); - - /*if ( savedInstanceState != null ) { - final Object object = savedInstanceState.getSerializable(PLOT_BOUNDARIES); - if ( object instanceof PlotBoundaries) { - plotBoundaries = ((PlotBoundaries) object); - } - }*/ - - if (preparedInput.isFromInputArgs()) { - createChart(); - createGraphicalView(root, null); + if (input == null) { + this.preparedInput = prepareInputFromDisplay(CalculatorLocatorImpl.getInstance().getDisplay().getViewState(), savedInstanceState); + } else { + this.preparedInput = prepareInput(input, true, savedInstanceState); } } @@ -204,12 +198,8 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul public void onResume() { super.onResume(); - if (!preparedInput.isFromInputArgs()) { - this.preparedInput = prepareInputFromDisplay(CalculatorLocatorImpl.getInstance().getDisplay().getViewState()); - } - createChart(); - createGraphicalView(getView(), plotBoundaries); + createGraphicalView(getView(), this.preparedInput.getPlotBoundaries()); } private void createGraphicalView(@NotNull View root, @Nullable PlotBoundaries plotBoundaries) { @@ -342,14 +332,12 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul Toast.makeText(CalculatorPlotFragment.this.getActivity(), "Arithmetic error: " + e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); } - if (pendingOperation.getObject() == this) { - uiHandler.post(new Runnable() { - @Override - public void run() { - graphicalView.repaint(); - } - }); - } + uiHandler.post(new Runnable() { + @Override + public void run() { + graphicalView.repaint(); + } + }); } }); } @@ -371,7 +359,7 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul if (calculatorEventData.isAfter(this.lastCalculatorEventData)) { this.lastCalculatorEventData = calculatorEventData; - this.preparedInput = prepareInputFromDisplay(((CalculatorDisplayChangeEventData) data).getNewValue()); + this.preparedInput = prepareInputFromDisplay(((CalculatorDisplayChangeEventData) data).getNewValue(), null); createChart(); @@ -380,7 +368,7 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul public void run() { final View view = getView(); if (view != null) { - createGraphicalView(view, null); + createGraphicalView(view, preparedInput.getPlotBoundaries()); } } }); @@ -389,11 +377,6 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul } } - /*@Override - public Object onRetainNonConfigurationInstance() { - return new PlotBoundaries(chart.getRenderer()); - }*/ - /* public void zoomInClickHandler(@NotNull View v) { this.graphicalView.zoomIn(); @@ -444,25 +427,26 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul ********************************************************************** */ - private static enum PlotMenu implements LabeledMenuItem { + private static enum PlotMenu implements IdentifiableMenuItem { - preferences(R.string.c_settings) { + preferences(R.id.menu_plot_settings) { @Override public void onClick(@NotNull MenuItem data, @NotNull Context context) { context.startActivity(new Intent(context, CalculatorPlotPreferenceActivity.class)); } }; - private final int captionResId; + private final int itemId; - private PlotMenu(int captionResId) { - this.captionResId = captionResId; + private PlotMenu(int itemId) { + this.itemId = itemId; } + @NotNull @Override - public String getCaption(@NotNull Context context) { - return context.getString(captionResId); + public Integer getItemId() { + return itemId; } } @@ -507,17 +491,21 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul private boolean fromInputArgs; + @Nullable + private PlotBoundaries plotBoundaries = null; + private PreparedInput() { } @NotNull - public static PreparedInput newInstance(@NotNull Input input, @NotNull Generic expression, @NotNull Constant variable, boolean fromInputArgs) { + public static PreparedInput newInstance(@NotNull Input input, @NotNull Generic expression, @NotNull Constant variable, boolean fromInputArgs, @Nullable PlotBoundaries plotBoundaries) { final PreparedInput result = new PreparedInput(); result.input = input; result.expression = expression; result.variable = variable; result.fromInputArgs = fromInputArgs; + result.plotBoundaries = plotBoundaries; return result; } @@ -548,6 +536,11 @@ public class CalculatorPlotFragment extends CalculatorFragment implements Calcul return expression; } + @Nullable + public PlotBoundaries getPlotBoundaries() { + return plotBoundaries; + } + @Nullable public Constant getVariable() { return variable;