diff --git a/packages/EasterEgg/AndroidManifest.xml b/packages/EasterEgg/AndroidManifest.xml
index 50e8b5ca7d2bd..fbc2386576471 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">
+
diff --git a/packages/EasterEgg/res/drawable/collar.xml b/packages/EasterEgg/res/drawable/collar.xml
index 6c0d90a9bf224..5e4d0fd4f8865 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">
-
+
diff --git a/packages/EasterEgg/res/drawable/leg1.xml b/packages/EasterEgg/res/drawable/leg1.xml
index 625733318e72b..d72c746b62322 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">
-
+
diff --git a/packages/EasterEgg/res/drawable/leg2.xml b/packages/EasterEgg/res/drawable/leg2.xml
index 73352f69e80a9..a772a870af7d1 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">
-
+
diff --git a/packages/EasterEgg/res/drawable/leg2_shadow.xml b/packages/EasterEgg/res/drawable/leg2_shadow.xml
index 77f4893194fe3..b01bd6995c0b1 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">
-
+
diff --git a/packages/EasterEgg/res/drawable/leg3.xml b/packages/EasterEgg/res/drawable/leg3.xml
index 53dea5c2becf4..d471236687b58 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">
-
+
diff --git a/packages/EasterEgg/res/drawable/leg4.xml b/packages/EasterEgg/res/drawable/leg4.xml
index f2ce73e195a29..e5868eb80c598 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">
-
+
diff --git a/packages/EasterEgg/res/layout/cat_view.xml b/packages/EasterEgg/res/layout/cat_view.xml
index 82ced2f240b53..85b494d2e68d3 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">
A cat is here.
Cat #%s
Cats
+ Forget %s?
- Empty dish
- Bits
diff --git a/packages/EasterEgg/src/com/android/egg/neko/Cat.java b/packages/EasterEgg/src/com/android/egg/neko/Cat.java
index f74a2293050ac..2793468562ba3 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 3629162cdd476..c6b7640d00dde 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);