diff options
author | Dan Sandler <dsandler@android.com> | 2016-07-16 00:39:21 -0400 |
---|---|---|
committer | Daniel Sandler <dsandler@android.com> | 2016-07-24 21:19:14 +0000 |
commit | 4a1bcd966b1c271909f38b41031cc012e233fbdd (patch) | |
tree | 27107c29afada95cd0f31f802a19cc07de64bed0 /packages/EasterEgg | |
parent | adc51e460c728c21c0482308b6918e5798dcbf81 (diff) |
Grooming the cats.
- Closed up tiny gaps in the vectors
- Export larger cat PNGs
- Make it harder to delete cats by accident
- Properly color the two front/back feet most of the time
instead of the two left/right
Change-Id: I185bf433d3be004945d6e16387ec928c14376b7a
Fixes: 29922607
Fixes: 30064123
Fixes: 29922111
Fixes: 29922066
Diffstat (limited to 'packages/EasterEgg')
-rw-r--r-- | packages/EasterEgg/AndroidManifest.xml | 1 | ||||
-rw-r--r-- | packages/EasterEgg/res/drawable/collar.xml | 2 | ||||
-rw-r--r-- | packages/EasterEgg/res/drawable/leg1.xml | 2 | ||||
-rw-r--r-- | packages/EasterEgg/res/drawable/leg2.xml | 2 | ||||
-rw-r--r-- | packages/EasterEgg/res/drawable/leg2_shadow.xml | 2 | ||||
-rw-r--r-- | packages/EasterEgg/res/drawable/leg3.xml | 2 | ||||
-rw-r--r-- | packages/EasterEgg/res/drawable/leg4.xml | 2 | ||||
-rw-r--r-- | packages/EasterEgg/res/layout/cat_view.xml | 5 | ||||
-rw-r--r-- | packages/EasterEgg/res/values/strings.xml | 1 | ||||
-rw-r--r-- | packages/EasterEgg/src/com/android/egg/neko/Cat.java | 4 | ||||
-rw-r--r-- | packages/EasterEgg/src/com/android/egg/neko/NekoLand.java | 55 |
11 files changed, 55 insertions, 23 deletions
diff --git a/packages/EasterEgg/AndroidManifest.xml b/packages/EasterEgg/AndroidManifest.xml index 50e8b5ca7d2b..fbc238657647 100644 --- a/packages/EasterEgg/AndroidManifest.xml +++ b/packages/EasterEgg/AndroidManifest.xml @@ -31,6 +31,7 @@ Copyright (C) 2016 The Android Open Source Project android:label="@string/app_name"> <intent-filter> <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" /> + <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> diff --git a/packages/EasterEgg/res/drawable/collar.xml b/packages/EasterEgg/res/drawable/collar.xml index 6c0d90a9bf22..5e4d0fd4f886 100644 --- a/packages/EasterEgg/res/drawable/collar.xml +++ b/packages/EasterEgg/res/drawable/collar.xml @@ -18,5 +18,5 @@ Copyright (C) 2016 The Android Open Source Project android:height="48dp" android:viewportWidth="48.0" android:viewportHeight="48.0"> - <path android:name="collar" android:fillColor="#FF000000" android:pathData="M9,18.4h30v1.6h-30z"/> + <path android:name="collar" android:fillColor="#FF000000" android:pathData="M9,18.4h30v1.7h-30z"/> </vector> diff --git a/packages/EasterEgg/res/drawable/leg1.xml b/packages/EasterEgg/res/drawable/leg1.xml index 625733318e72..d72c746b6232 100644 --- a/packages/EasterEgg/res/drawable/leg1.xml +++ b/packages/EasterEgg/res/drawable/leg1.xml @@ -18,5 +18,5 @@ Copyright (C) 2016 The Android Open Source Project android:height="48dp" android:viewportWidth="48.0" android:viewportHeight="48.0"> - <path android:name="leg1" android:fillColor="#FF000000" android:pathData="M9,38h5v5h-5z"/> + <path android:name="leg1" android:fillColor="#FF000000" android:pathData="M9,37h5v6h-5z"/> </vector> diff --git a/packages/EasterEgg/res/drawable/leg2.xml b/packages/EasterEgg/res/drawable/leg2.xml index 73352f69e80a..a772a870af7d 100644 --- a/packages/EasterEgg/res/drawable/leg2.xml +++ b/packages/EasterEgg/res/drawable/leg2.xml @@ -18,5 +18,5 @@ Copyright (C) 2016 The Android Open Source Project android:height="48dp" android:viewportWidth="48.0" android:viewportHeight="48.0"> - <path android:name="leg2" android:fillColor="#FF000000" android:pathData="M16,38h5v5h-5z"/> + <path android:name="leg2" android:fillColor="#FF000000" android:pathData="M16,37h5v6h-5z"/> </vector> diff --git a/packages/EasterEgg/res/drawable/leg2_shadow.xml b/packages/EasterEgg/res/drawable/leg2_shadow.xml index 77f4893194fe..b01bd6995c0b 100644 --- a/packages/EasterEgg/res/drawable/leg2_shadow.xml +++ b/packages/EasterEgg/res/drawable/leg2_shadow.xml @@ -18,5 +18,5 @@ Copyright (C) 2016 The Android Open Source Project android:height="48dp" android:viewportWidth="48.0" android:viewportHeight="48.0"> - <path android:name="leg2_shadow" android:fillColor="#FF000000" android:pathData="M16,38h5v1h-5z"/> + <path android:name="leg2_shadow" android:fillColor="#FF000000" android:pathData="M16,37h5v3h-5z"/> </vector> diff --git a/packages/EasterEgg/res/drawable/leg3.xml b/packages/EasterEgg/res/drawable/leg3.xml index 53dea5c2becf..d471236687b5 100644 --- a/packages/EasterEgg/res/drawable/leg3.xml +++ b/packages/EasterEgg/res/drawable/leg3.xml @@ -18,5 +18,5 @@ Copyright (C) 2016 The Android Open Source Project android:height="48dp" android:viewportWidth="48.0" android:viewportHeight="48.0"> - <path android:name="leg3" android:fillColor="#FF000000" android:pathData="M27,38h5v5h-5z"/> + <path android:name="leg3" android:fillColor="#FF000000" android:pathData="M27,37h5v6h-5z"/> </vector> diff --git a/packages/EasterEgg/res/drawable/leg4.xml b/packages/EasterEgg/res/drawable/leg4.xml index f2ce73e195a2..e5868eb80c59 100644 --- a/packages/EasterEgg/res/drawable/leg4.xml +++ b/packages/EasterEgg/res/drawable/leg4.xml @@ -18,5 +18,5 @@ Copyright (C) 2016 The Android Open Source Project android:height="48dp" android:viewportWidth="48.0" android:viewportHeight="48.0"> - <path android:name="leg4" android:fillColor="#FF000000" android:pathData="M34,38h5v5h-5z"/> + <path android:name="leg4" android:fillColor="#FF000000" android:pathData="M34,37h5v6h-5z"/> </vector> diff --git a/packages/EasterEgg/res/layout/cat_view.xml b/packages/EasterEgg/res/layout/cat_view.xml index 82ced2f240b5..85b494d2e68d 100644 --- a/packages/EasterEgg/res/layout/cat_view.xml +++ b/packages/EasterEgg/res/layout/cat_view.xml @@ -20,12 +20,14 @@ android:minHeight="?android:attr/listPreferredItemHeightSmall" android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:paddingTop="8dp" + android:paddingBottom="8dp" android:background="?android:attr/selectableItemBackgroundBorderless" android:gravity="center_horizontal" android:clipToPadding="false"> <FrameLayout - android:layout_width="wrap_content" + android:layout_width="96dp" android:layout_height="wrap_content"> <ImageView @@ -33,6 +35,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" + android:layout_gravity="center" android:scaleType="fitCenter" /> <LinearLayout diff --git a/packages/EasterEgg/res/values/strings.xml b/packages/EasterEgg/res/values/strings.xml index a2440c7bc786..8478a438a0e4 100644 --- a/packages/EasterEgg/res/values/strings.xml +++ b/packages/EasterEgg/res/values/strings.xml @@ -21,6 +21,7 @@ Copyright (C) 2016 The Android Open Source Project <string name="notification_title" translatable="false">A cat is here.</string> <string name="default_cat_name" translatable="false">Cat #%s</string> <string name="directory_name" translatable="false">Cats</string> + <string name="confirm_delete" translatable="false">Forget %s?</string> <string-array name="food_names" translatable="false"> <item>Empty dish</item> <item>Bits</item> diff --git a/packages/EasterEgg/src/com/android/egg/neko/Cat.java b/packages/EasterEgg/src/com/android/egg/neko/Cat.java index f74a2293050a..2793468562ba 100644 --- a/packages/EasterEgg/src/com/android/egg/neko/Cat.java +++ b/packages/EasterEgg/src/com/android/egg/neko/Cat.java @@ -174,10 +174,10 @@ public class Cat extends Drawable { } else { if (nsr.nextFloat() < 0.25f) { mFootType = 2; - tint(0xFFFFFFFF, D.foot1, D.foot2); + tint(0xFFFFFFFF, D.foot1, D.foot3); } else if (nsr.nextFloat() < 0.25f) { mFootType = 3; // maybe -2 would be better? meh. - tint(0xFFFFFFFF, D.foot3, D.foot4); + tint(0xFFFFFFFF, D.foot2, D.foot4); } else if (nsr.nextFloat() < 0.1f) { mFootType = 1; tint(0xFFFFFFFF, (Drawable) choose(nsr, D.foot1, D.foot2, D.foot3, D.foot4)); diff --git a/packages/EasterEgg/src/com/android/egg/neko/NekoLand.java b/packages/EasterEgg/src/com/android/egg/neko/NekoLand.java index 3629162cdd47..c6b7640d00dd 100644 --- a/packages/EasterEgg/src/com/android/egg/neko/NekoLand.java +++ b/packages/EasterEgg/src/com/android/egg/neko/NekoLand.java @@ -59,6 +59,8 @@ public class NekoLand extends Activity implements PrefsListener { public static boolean DEBUG = false; public static boolean DEBUG_NOTIFICATIONS = false; + private static final int EXPORT_BITMAP_SIZE = 600; + private static final int STORAGE_PERM_REQUEST = 123; private static boolean CAT_GEN = false; @@ -181,6 +183,31 @@ public class NekoLand extends Activity implements PrefsListener { .inflate(R.layout.cat_view, parent, false)); } + private void setContextGroupVisible(final CatHolder holder, boolean vis) { + final View group = holder.contextGroup; + if (vis && group.getVisibility() != View.VISIBLE) { + group.setAlpha(0); + group.setVisibility(View.VISIBLE); + group.animate().alpha(1.0f).setDuration(333); + Runnable hideAction = new Runnable() { + @Override + public void run() { + setContextGroupVisible(holder, false); + } + }; + group.setTag(hideAction); + group.postDelayed(hideAction, 5000); + } else if (!vis && group.getVisibility() == View.VISIBLE) { + group.removeCallbacks((Runnable) group.getTag()); + group.animate().alpha(0f).setDuration(250).withEndAction(new Runnable() { + @Override + public void run() { + group.setVisibility(View.INVISIBLE); + } + }); + } + } + @Override public void onBindViewHolder(final CatHolder holder, int position) { Context context = holder.itemView.getContext(); @@ -195,30 +222,30 @@ public class NekoLand extends Activity implements PrefsListener { holder.itemView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { - holder.contextGroup.removeCallbacks((Runnable) holder.contextGroup.getTag()); - holder.contextGroup.setVisibility(View.VISIBLE); - Runnable hideAction = new Runnable() { - @Override - public void run() { - holder.contextGroup.setVisibility(View.INVISIBLE); - } - }; - holder.contextGroup.setTag(hideAction); - holder.contextGroup.postDelayed(hideAction, 5000); + setContextGroupVisible(holder, true); return true; } }); holder.delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - holder.contextGroup.setVisibility(View.INVISIBLE); - holder.contextGroup.removeCallbacks((Runnable) holder.contextGroup.getTag()); - onCatRemove(mCats[holder.getAdapterPosition()]); + setContextGroupVisible(holder, false); + new AlertDialog.Builder(NekoLand.this) + .setTitle(getString(R.string.confirm_delete, mCats[position].getName())) + .setNegativeButton(android.R.string.cancel, null) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + onCatRemove(mCats[holder.getAdapterPosition()]); + } + }) + .show(); } }); holder.share.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + setContextGroupVisible(holder, false); Cat cat = mCats[holder.getAdapterPosition()]; if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { @@ -248,7 +275,7 @@ public class NekoLand extends Activity implements PrefsListener { return; } final File png = new File(dir, cat.getName().replaceAll("[/ #:]+", "_") + ".png"); - Bitmap bitmap = cat.createBitmap(512, 512); + Bitmap bitmap = cat.createBitmap(EXPORT_BITMAP_SIZE, EXPORT_BITMAP_SIZE); if (bitmap != null) { try { OutputStream os = new FileOutputStream(png); |