From 5f839f8ee426cc42af3ee0eaf5236f2f6930dd15 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Wed, 12 Oct 2011 01:45:26 -0400 Subject: [PATCH] Fix obsolete Honeycomb platlogo. Bug: 5438131 Change-Id: I848bcc8e4d6cdd28c1ffaa08b7fcceb87242932a --- .../internal/app/PlatLogoActivity.java | 73 ++++- core/res/res/drawable-nodpi/platlogo.png | Bin 46426 -> 1672 bytes packages/SystemUI/AndroidManifest.xml | 16 ++ .../res/drawable-nodpi/nyandroid00.png | Bin 0 -> 622 bytes .../res/drawable-nodpi/nyandroid01.png | Bin 0 -> 574 bytes .../res/drawable-nodpi/nyandroid02.png | Bin 0 -> 615 bytes .../res/drawable-nodpi/nyandroid03.png | Bin 0 -> 574 bytes .../res/drawable-nodpi/nyandroid04.png | Bin 0 -> 576 bytes .../res/drawable-nodpi/nyandroid05.png | Bin 0 -> 568 bytes .../res/drawable-nodpi/nyandroid06.png | Bin 0 -> 614 bytes .../res/drawable-nodpi/nyandroid07.png | Bin 0 -> 566 bytes .../res/drawable-nodpi/nyandroid08.png | Bin 0 -> 610 bytes .../res/drawable-nodpi/nyandroid09.png | Bin 0 -> 566 bytes .../res/drawable-nodpi/nyandroid10.png | Bin 0 -> 560 bytes .../res/drawable-nodpi/nyandroid11.png | Bin 0 -> 560 bytes .../SystemUI/res/drawable-nodpi/star0.png | Bin 0 -> 1087 bytes .../SystemUI/res/drawable-nodpi/star1.png | Bin 0 -> 1096 bytes .../SystemUI/res/drawable-nodpi/star2.png | Bin 0 -> 1120 bytes .../SystemUI/res/drawable-nodpi/star3.png | Bin 0 -> 1127 bytes .../SystemUI/res/drawable-nodpi/star4.png | Bin 0 -> 1132 bytes .../SystemUI/res/drawable-nodpi/star5.png | Bin 0 -> 1148 bytes .../SystemUI/res/drawable/nyandroid_anim.xml | 32 +++ packages/SystemUI/res/drawable/star_anim.xml | 26 ++ .../src/com/android/systemui/Nyandroid.java | 253 ++++++++++++++++++ 24 files changed, 387 insertions(+), 13 deletions(-) create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid00.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid01.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid02.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid03.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid04.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid05.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid06.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid07.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid08.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid09.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid10.png create mode 100644 packages/SystemUI/res/drawable-nodpi/nyandroid11.png create mode 100644 packages/SystemUI/res/drawable-nodpi/star0.png create mode 100644 packages/SystemUI/res/drawable-nodpi/star1.png create mode 100644 packages/SystemUI/res/drawable-nodpi/star2.png create mode 100644 packages/SystemUI/res/drawable-nodpi/star3.png create mode 100644 packages/SystemUI/res/drawable-nodpi/star4.png create mode 100644 packages/SystemUI/res/drawable-nodpi/star5.png create mode 100644 packages/SystemUI/res/drawable/nyandroid_anim.xml create mode 100644 packages/SystemUI/res/drawable/star_anim.xml create mode 100644 packages/SystemUI/src/com/android/systemui/Nyandroid.java diff --git a/core/java/com/android/internal/app/PlatLogoActivity.java b/core/java/com/android/internal/app/PlatLogoActivity.java index 9fbbb3d9c6551..a0e125a074948 100644 --- a/core/java/com/android/internal/app/PlatLogoActivity.java +++ b/core/java/com/android/internal/app/PlatLogoActivity.java @@ -17,32 +17,79 @@ package com.android.internal.app; import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.Intent; import android.os.Bundle; +import android.os.Handler; +import android.os.Vibrator; import android.view.MotionEvent; +import android.view.View; +import android.view.ViewConfiguration; import android.widget.ImageView; import android.widget.Toast; public class PlatLogoActivity extends Activity { Toast mToast; + ImageView mContent; + Vibrator mZzz = new Vibrator(); + int mCount; + final Handler mHandler = new Handler(); + + Runnable mSuperLongPress = new Runnable() { + public void run() { + mCount++; + mZzz.vibrate(50 * mCount); + final float scale = 1f + 0.25f * mCount * mCount; + mContent.setScaleX(scale); + mContent.setScaleY(scale); + + if (mCount <= 3) { + mHandler.postDelayed(mSuperLongPress, ViewConfiguration.getLongPressTimeout()); + } else { + try { + startActivity(new Intent(Intent.ACTION_MAIN) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_CLEAR_TASK + | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) + .setClassName("com.android.systemui","com.android.systemui.Nyandroid")); + } catch (ActivityNotFoundException ex) { + android.util.Log.e("PlatLogoActivity", "Couldn't find platlogo screensaver."); + } + finish(); + } + } + }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mToast = Toast.makeText(this, "REZZZZZZZ...", Toast.LENGTH_SHORT); + mToast = Toast.makeText(this, "Android 4.0: Ice Cream Sandwich", Toast.LENGTH_SHORT); - ImageView content = new ImageView(this); - content.setImageResource(com.android.internal.R.drawable.platlogo); - content.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + mContent = new ImageView(this); + mContent.setImageResource(com.android.internal.R.drawable.platlogo); + mContent.setScaleType(ImageView.ScaleType.CENTER_INSIDE); + + mContent.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + final int action = event.getAction(); + if (action == MotionEvent.ACTION_DOWN) { + mContent.setPressed(true); + mHandler.removeCallbacks(mSuperLongPress); + mCount = 0; + mHandler.postDelayed(mSuperLongPress, 2*ViewConfiguration.getLongPressTimeout()); + } else if (action == MotionEvent.ACTION_UP) { + if (mContent.isPressed()) { + mContent.setPressed(false); + mHandler.removeCallbacks(mSuperLongPress); + mToast.show(); + } + } + return true; + } + }); - setContentView(content); - } - - @Override - public boolean dispatchTouchEvent(MotionEvent ev) { - if (ev.getAction() == MotionEvent.ACTION_UP) { - mToast.show(); - } - return super.dispatchTouchEvent(ev); + setContentView(mContent); } } diff --git a/core/res/res/drawable-nodpi/platlogo.png b/core/res/res/drawable-nodpi/platlogo.png index e619ed59bf1e12675ec07aa5984412380e9585ba..8aa3b9ef2ef702ee18e822e2e481aaa8b1390dfa 100644 GIT binary patch literal 1672 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�bHisB&1GcT-($gY_Td`Hm4IN9M} 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 PaF5TPK4*+Gbc*>ev3#Gn diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index a2452c4916137..64c54d9e9cd9b 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -101,5 +101,21 @@ android:taskAffinity="com.android.systemui.net" android:excludeFromRecents="true" /> + + + + + + + + diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid00.png b/packages/SystemUI/res/drawable-nodpi/nyandroid00.png new file mode 100644 index 0000000000000000000000000000000000000000..6cea87315f174bdc845e46b865aa9b6f344ed91b GIT binary patch literal 622 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2J*<9x@Pc2#i|Ln%gLr(fBVqa^mR&89iszZXG%Id%4D;$L@MzMLRtvsdysL zvlqYa-IH-Ru-CGop}LrlZ;#mDJ=@m{2>`)|9S69ASvf%9ht{u}HLWWo6@cJ@X5;A> z(Sfcj>ViIA-p|GY1am}g+}W|6#plWnCNP&vV$BSJ+o3Jb_NoX#jy_#>W>{o4wl`eip1`j)=smi16Gy(T749nSkIN`gGv(ID@hw(Y{vZIC%Kfd|rd%7#@-mi9ckh3j#4EmO> zZG5T13U(GN(ERN&xqmN(!mq9i4;B-JXpC>2OC7#SEE z>KYp88XATenp&BFkgkD=m4QJ;;!}MT4Y~O#nQ4`{HE`O*P6ldV@O1TaS?83{1OTP{ B+fM)h literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid01.png b/packages/SystemUI/res/drawable-nodpi/nyandroid01.png new file mode 100644 index 0000000000000000000000000000000000000000..82b8a218c5edf7093d9309c1b02e5b3af22ecd6f GIT binary patch literal 574 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2K{GHYRYle3*X@D8yJ2J*<9##-=xVUA4*rldu5AK)yr-s%@a`x_JOBZ*(XCLX&6JO)_q-?T^=OhH` zy>7d5JEy<~FwT^C&{e4tdz7042rRS=J~M&AJB@AzMiA&vmSScBf;n;#XQJj$+m;kk z_-F1UW{{#d@g0`0n-3(_+W}fwQJy4rjx{9?sX7U*Fxltkk{jWZnNnX|VYm2YP;~A9$q90CMCx zcAlsIdNo$zopr09{SfqW}N^ literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid03.png b/packages/SystemUI/res/drawable-nodpi/nyandroid03.png new file mode 100644 index 0000000000000000000000000000000000000000..54c5f46381279fbdf972c00655bfc28318a2e51b GIT binary patch literal 574 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2K{GHYX)V6GFUa)sdLs#moW(Z+L&$m9Em>xas`;iA4@TaNt_Q#b?Zol3SB@ zFo6{0h)c|!+8|h3n=2bpUD*Hv;jHiUna+9NjM^w900bKf6N1uQ_4Q)A4ZzanY;N~f zuHz79k>;?bb`N7J(A1G(6(q{Vi^t-eI5IpcakQ0BaM&ZL_DKK|#}Cw@;}sL2g7?!&SJOKg^{mw~#-?Ox&T|D6#3 zf<0Nyq?XFeECe<>v=J#}zTV(|IIkk6EYuGa+^Qw65hW>!C8<`)MX5lF!N|bSP}k5v x*U&J;(A3HVgmeu|tPBh)5})d$Xvob^$xN%nt%1`fb}~={gQu&X%Q~loCIIvGyO96@ literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid04.png b/packages/SystemUI/res/drawable-nodpi/nyandroid04.png new file mode 100644 index 0000000000000000000000000000000000000000..35e5ab5482654866f080012beb6a3ad302b83cef GIT binary patch literal 576 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2D^ zV@SoVw>K{GHW`RG1cn!|h9|Iw7yJ+H`D0R9$u-4|%l7-`W#^ggeRtkf@tlN$dau=5 zI)K0d`EAFG+BF#wU_EP0p`+C|K2{DOxS?MlXM5H3J+FFvv84hKB;+5+agt70aP8h| z29TcLtZB^L28;j2{pPy!^%Gd=JlCDL8Q=eiT#J$`Z2*CG=5C`Ye?Q*Z+Q7&H1bb`@ zKKqrj`iOzdd*E>3ZMz(pHQ_+@rI2ujfA2p_gZYjJHth7tVAkR10lCCN>ciKUJC|0v zo2|db1`?=XO9*U>Vm{5kb-kbf5NwD~c$Qn6$;HS71aXoPQ+D5e&j7N|M%&=C-L&7v z+#ppDP#};H_^rsB2`sG`fC!rRYle3*X@D8yJ2M7nHX8^y9Ngl-4MdrWf42*%io36VnlEDT+3&=O(|2?}S9nZP@kBEGig%q&1)BVBNiHFHZ~zOSVM5Im@Cyw7=f8 zomIR%>hfTo_JN!P#QA?!DLS;2Myefn;vNoWxR$nH4Nh$+(66TmVRk_pe=J_q{=WGWEY zgjMeQEd+A+gVYA3Ai2BIeCqFjmhZ_n-M~OrEpd$~Nl7e8wMs5Z1yT$~28M>Zh6cKZ wh9QQgRwf{%YhYq!U{I0xR3Ak{ZhlH;S|x4`oHntOff^V*UHx3vIVCg!0EXGNr2qf` literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid06.png b/packages/SystemUI/res/drawable-nodpi/nyandroid06.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0d3b1da288b8ffc2aaa10f2e3e729b4960a2ec GIT binary patch literal 614 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2J*v9yZ`{xVUD5=q{(Q6I^%erz-8+pt!Va_g4kbmxAkeS3UW_7wtDgOh zA+T%aacdyL?~?jAX2xKnMKcP_IBjAl12r&sy85}Sb4q9e04*oZzW@LL literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid07.png b/packages/SystemUI/res/drawable-nodpi/nyandroid07.png new file mode 100644 index 0000000000000000000000000000000000000000..edb0b1731e61e710cce41839f6271ea787d08258 GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2M7nHX8^yI7TgC1tE|BYh4O9rsOgR?@POP@uF4n=4s0&s(4O9Alvn2mJT3r zKr(v!om4L{8zQi)L0fFeRz@Zu*vD&e_g234#!b)j{Vf%M;KAL7iy!(9^z2I9$;1K# zd-M%5!a=MV$Pz-v4`d;V@y z@(}?WX5H|#Uk=RDZp;nXzm}uo)N^yNqq-Yz#z@^0{P7uLO4@_;9F5Fb9R?S_Hh{oZ zhRH^+1rmNSg6+^scw(E9c?#^HH6k;n{QfeX86@#x<$)8ob<5{*fH)BF!S}$DJqMdu zIDp_s$O1%o0K;bG7X2NU>KWcF&wT_8V$~AYh?11Vl2ohYqEsNoU}RuusB37TYiJl^ tXli8wLb?VfRt5$YiBI)WH00)|WTsW(*1%~KI~k~f!PC{xWt~$(698@cz-0gc literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid08.png b/packages/SystemUI/res/drawable-nodpi/nyandroid08.png new file mode 100644 index 0000000000000000000000000000000000000000..10fc4f62d0e17cc6b92c1bd07443256848cf9044 GIT binary patch literal 610 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2M7b9ySngaNIsY>`qfu0r$)OQxELY*$`p)%VMGDd23FV9a68IE^MEz;yDR{ zGWYE3s+!HfSPjN)jO%7pU)){62m-EJ$QK)d1zt90Ui-CWj<(y< z$L}Y}2mrx{+Q!+N<2ZaC_s6bd0O>x?bnID0tm}=KZ05`E3@kt}he6`hj3~ixVT|(U zFG(o?!Gn+kT~T{0-bb}Ef)xDWNzj;H96Cb_Y{$w5LsQ0n`KksGn9t_3Iq6@~I`bcdSFK8vd-Jx^92gy{C9V-ADTyViR>?)FK#IZ0z|c_F&_LJFFvQT*$^?XT4NR;I j3@Q?z>Z54L%}>cptHiB=(UftDnm{r-UW|6CBhV literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid09.png b/packages/SystemUI/res/drawable-nodpi/nyandroid09.png new file mode 100644 index 0000000000000000000000000000000000000000..57ade54d7227c1e84c2affcc99443cd9d3013f6e GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTwOK zQ>RYle3*X@D8yJ2M7mHX8^y1V$}j1tE|BYh4O9rug1Cl(oOU#N^!WNaxEQlTF zN3hZw?EplGERp)nbj!P*;pTxiSAjvSTH+c}l9E`GYL#4+3Zxi}3=9o*4GnY+4MPk~ stxP~j*TBTez@Q@WsXmH^-29Zxv`X9>IBjAl12r&sy85}Sb4q9e0EKzG`v3p{ literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/nyandroid10.png b/packages/SystemUI/res/drawable-nodpi/nyandroid10.png new file mode 100644 index 0000000000000000000000000000000000000000..36feb2fa6ff370dba834eddb7bfea7e4fe6689cc GIT binary patch literal 560 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Xs7G|J`{k|PDfs{~yPl)UP|Nnu^CC4mdjTugz zItAo91d2xkg&0eM{DK)Ap4~_Tagw~;MD@mNgu0YygAj4e#UU+n$Yg`Ml{QSiqNYve9ZYgS`wO z<8t^VDqrjPCToIqO>6Y5-1V6c%wEo<{62fH{bmNRlfi^FquSHhZ7N`Cb|zIsXuR5} ze`tC|jK_n#P+;JymbgZgq$HN4S|t~y0x1R~14BbyLjzqy!w^GLD-#gXH88OcK+L-jpPi=>&iPaRh9oTP$`R&GD` zm4Oii#B(lJE!PAyqnYMy{0SCa&vvK4Q7i1rwJFR@KoBSXW2S+;HgnpQFWdq^ut76n zOLrFY=CkY^KyZW0Kx#&VVCl~_7W&mJAn=BHhrI(39JtruIa9Q@;`Plf5(+?&P<`Np zwLI7efe+F<>R-AZc*6rW(Ds3Z2}ELpc|u`=Yl4|1Se*aCsd|?Nh5PV?C znN`d(-i#o3nX&fl*&j1Y%M$G9_gp@wn*UB@1-Yq0I^oIOYs_HRK!`ut`Q|Ei6yC4$wjF^iowXh&`{UVK-bVP#L(2r1cY=A mOsotHDiWXSqiD#@PsvQH#I1qTCU!DV1B0ilpUXO@geCwLQmx1U literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/star0.png b/packages/SystemUI/res/drawable-nodpi/star0.png new file mode 100644 index 0000000000000000000000000000000000000000..f2ca960871ed6d57a34c6a929316d93b74325b19 GIT binary patch literal 1087 zcmbVLzi-n(6gF*zs;ZShVt`I3cR)yuedjcGY}Hh$?a)ZLlr$0qc}ARP=Ek=Mgb>;(sVpYW<6On1Xpo3-7C zhEF2N%P~?GCEQvNR@bt`^LH=<9o!3JQ#?EUAc8P3#U~XPx`~DR;l?4w+lQMi|8U3G z199y>Sj`Mh5MkzlEZU7zBQwPzufgT~SQfz$!gfq?6ja;Y0v4edR3upPp$dVDBvf9} zG;J9u5J4F#GEz!NGs=nqAsBxm_eO)R(X{JhUtBZAK4Xa?%Y(r{8k8kMdot2>J?BuA z5=WHMgP3_)DNdIP1{K{<-@ zyoTtMHSuK_6VYkwAi;7Ir(~b{{5`r$g)y())sAu?kH&aJL;fh%{XJ5{9D6kCN=wC)rflWfaY1?qN1b1YRw$bmHn*;dsmYmQ#i zQFW!TZNw?_VjmZNL+*EMt6phqSQLAV&=w)PMF(v42_tErB*5CP0N3-wIM?&%8D(o@ z8a~58ostL)>uZD){6p&^|EZbGgOT&*_^VlpBi@0zc+vV?xfmWC^NFE+G`@U$ z`aTC3&c|0bm$)$AhWg9PW7N5k j-;QDP1$qMP{QcCtaDFs>ynK4=O+L~MXVX4efBNDNXp~QK literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-nodpi/star1.png b/packages/SystemUI/res/drawable-nodpi/star1.png new file mode 100644 index 0000000000000000000000000000000000000000..69ef4da7eb29efd00496d68abcc03097861377a7 GIT binary patch literal 1096 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 + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/star_anim.xml b/packages/SystemUI/res/drawable/star_anim.xml new file mode 100644 index 0000000000000..d7f2d8f3804de --- /dev/null +++ b/packages/SystemUI/res/drawable/star_anim.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + diff --git a/packages/SystemUI/src/com/android/systemui/Nyandroid.java b/packages/SystemUI/src/com/android/systemui/Nyandroid.java new file mode 100644 index 0000000000000..6f168ba190d4c --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/Nyandroid.java @@ -0,0 +1,253 @@ +/*); + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui; + +import android.animation.AnimatorSet; +import android.animation.PropertyValuesHolder; +import android.animation.ObjectAnimator; +import android.animation.TimeAnimator; +import android.app.Activity; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.graphics.drawable.AnimationDrawable; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Point; +import android.graphics.Rect; +import android.graphics.RectF; +import android.os.Handler; +import android.util.AttributeSet; +import android.util.DisplayMetrics; +import android.util.Pair; +import android.view.Gravity; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.FrameLayout; +import android.widget.ImageView; +import java.util.HashMap; +import java.util.Random; + +public class Nyandroid extends Activity { + final static boolean DEBUG = false; + + public static class Board extends FrameLayout + { + public static final boolean FIXED_STARS = true; + public static final int NUM_CATS = 20; + + static Random sRNG = new Random(); + + static float lerp(float a, float b, float f) { + return (b-a)*f + a; + } + + static float randfrange(float a, float b) { + return lerp(a, b, sRNG.nextFloat()); + } + + static int randsign() { + return sRNG.nextBoolean() ? 1 : -1; + } + + static E pick(E[] array) { + if (array.length == 0) return null; + return array[sRNG.nextInt(array.length)]; + } + + public class FlyingCat extends ImageView { + public static final float VMAX = 1000.0f; + public static final float VMIN = 100.0f; + + public float v, vr; + + public float dist; + public float z; + + public ComponentName component; + + public FlyingCat(Context context, AttributeSet as) { + super(context, as); + setImageResource(R.drawable.nyandroid_anim); // @@@ + + if (DEBUG) setBackgroundColor(0x80FF0000); + } + + public String toString() { + return String.format("", + getX(), getY(), getWidth(), getHeight()); + } + + public void reset() { + final float scale = lerp(0.1f,2f,z); + setScaleX(scale); setScaleY(scale); + + setX(-scale*getWidth()+1); + setY(randfrange(0, Board.this.getHeight()-scale*getHeight())); + v = lerp(VMIN, VMAX, z); + + dist = 0; + +// android.util.Log.d("Nyandroid", "reset cat: " + this); + } + + public void update(float dt) { + dist += v * dt; + setX(getX() + v * dt); + } + } + + TimeAnimator mAnim; + + public Board(Context context, AttributeSet as) { + super(context, as); + + setLayerType(View.LAYER_TYPE_HARDWARE, null); + setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); + setBackgroundColor(0xFF003366); + } + + private void reset() { +// android.util.Log.d("Nyandroid", "board reset"); + removeAllViews(); + + final ViewGroup.LayoutParams wrap = new ViewGroup.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT); + + if (FIXED_STARS) { + for(int i=0; i<20; i++) { + ImageView fixedStar = new ImageView(getContext(), null); + if (DEBUG) fixedStar.setBackgroundColor(0x8000FF80); + fixedStar.setImageResource(R.drawable.star_anim); // @@@ + addView(fixedStar, wrap); + final float scale = randfrange(0.1f, 1f); + fixedStar.setScaleX(scale); fixedStar.setScaleY(scale); + fixedStar.setX(randfrange(0, getWidth())); + fixedStar.setY(randfrange(0, getHeight())); + final AnimationDrawable anim = (AnimationDrawable) fixedStar.getDrawable(); + postDelayed(new Runnable() { + public void run() { + anim.start(); + }}, (int) randfrange(0, 1000)); + } + } + + for(int i=0; i