OSDN Git Service

Neko: Sort the kitties
authorJason Monk <jmonk@google.com>
Fri, 15 Jul 2016 18:51:34 +0000 (14:51 -0400)
committerJason Monk <jmonk@google.com>
Fri, 15 Jul 2016 18:52:03 +0000 (14:52 -0400)
Change-Id: I2dc927f9d284cffffddc9b2338dcd9c6f2cf6942
Fixes: 30162430

packages/EasterEgg/src/com/android/egg/neko/NekoLand.java

index 86f813e..3629162 100644 (file)
@@ -24,6 +24,7 @@ import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.graphics.Bitmap;
+import android.graphics.Color;
 import android.graphics.drawable.Drawable;
 import android.media.MediaScannerConnection;
 import android.net.Uri;
@@ -50,6 +51,9 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
 
 public class NekoLand extends Activity implements PrefsListener {
     public static boolean DEBUG = false;
@@ -98,7 +102,19 @@ public class NekoLand extends Activity implements PrefsListener {
                 cats[i] = Cat.create(this);
             }
         } else {
-            cats = mPrefs.getCats().toArray(new Cat[0]);
+            final float[] hsv = new float[3];
+            List<Cat> list = mPrefs.getCats();
+            Collections.sort(list, new Comparator<Cat>() {
+                @Override
+                public int compare(Cat cat, Cat cat2) {
+                    Color.colorToHSV(cat.getBodyColor(), hsv);
+                    float bodyH1 = hsv[0];
+                    Color.colorToHSV(cat2.getBodyColor(), hsv);
+                    float bodyH2 = hsv[0];
+                    return Float.compare(bodyH1, bodyH2);
+                }
+            });
+            cats = list.toArray(new Cat[0]);
         }
         mAdapter.setCats(cats);
         return cats.length;