aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKiwiStone <Kiwi.Stone@web.de>2013-10-23 01:10:07 +0200
committerKiwiStone <Kiwi.Stone@web.de>2013-10-25 23:52:58 +0200
commit3baf056b683db2f8a39452ddb0ef298a365a4a5a (patch)
treefc30cce9a4ff6b958adebd841a6c2c10164e86b3
parent3fe97b8a53c8aac0e3a65226010326847c8a08f3 (diff)
downloadcgeo-3baf056b683db2f8a39452ddb0ef298a365a4a5a.zip
cgeo-3baf056b683db2f8a39452ddb0ef298a365a4a5a.tar.gz
cgeo-3baf056b683db2f8a39452ddb0ef298a365a4a5a.tar.bz2
- Added new comparator to handle popularity ratios
- Added required resource strings - Added teh new comparator to the user interface option
-rw-r--r--main/res/values-cs/strings.xml1
-rw-r--r--main/res/values-de/strings.xml1
-rw-r--r--main/res/values-es/strings.xml1
-rw-r--r--main/res/values-fr/strings.xml1
-rw-r--r--main/res/values-hu/strings.xml1
-rw-r--r--main/res/values-it/strings.xml1
-rw-r--r--main/res/values-nl/strings.xml1
-rw-r--r--main/res/values-pl/strings.xml1
-rw-r--r--main/res/values-pt/strings.xml1
-rw-r--r--main/res/values-sk/strings.xml1
-rw-r--r--main/res/values-sl/strings.xml1
-rw-r--r--main/res/values-sv/strings.xml1
-rw-r--r--main/res/values/strings.xml1
-rw-r--r--main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java1
-rw-r--r--main/src/cgeo/geocaching/sorting/PopularityRatioComparator.java56
15 files changed, 70 insertions, 0 deletions
diff --git a/main/res/values-cs/strings.xml b/main/res/values-cs/strings.xml
index 8cad9c0..de54d70 100644
--- a/main/res/values-cs/strings.xml
+++ b/main/res/values-cs/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">Terénu</string>
<string name="caches_sort_size">Velikosti</string>
<string name="caches_sort_favorites">Oblíbenosti</string>
+ <string name="caches_sort_favorites_ratio">Oblíbenosti [%]</string>
<string name="caches_sort_name">Jména</string>
<string name="caches_sort_geocode">Geokódu</string>
<string name="caches_sort_rating">Hodnocení</string>
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml
index d7cf5dc..55f9d36 100644
--- a/main/res/values-de/strings.xml
+++ b/main/res/values-de/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">Gelände</string>
<string name="caches_sort_size">Größe</string>
<string name="caches_sort_favorites">Beliebtheit</string>
+ <string name="caches_sort_favorites_ratio">Beliebtheit [%]</string>
<string name="caches_sort_name">Name</string>
<string name="caches_sort_geocode">Geo-Code</string>
<string name="caches_sort_rating">Bewertung</string>
diff --git a/main/res/values-es/strings.xml b/main/res/values-es/strings.xml
index 0218762..c0220e4 100644
--- a/main/res/values-es/strings.xml
+++ b/main/res/values-es/strings.xml
@@ -216,6 +216,7 @@
<string name="caches_sort_terrain">terreno</string>
<string name="caches_sort_size">tamaño</string>
<string name="caches_sort_favorites">popularidad</string>
+ <string name="caches_sort_favorites_ratio">popularidad [%]</string>
<string name="caches_sort_name">nombre</string>
<string name="caches_sort_geocode">Código</string>
<string name="caches_sort_rating">valoración</string>
diff --git a/main/res/values-fr/strings.xml b/main/res/values-fr/strings.xml
index dbbd8f9..bbb3ea5 100644
--- a/main/res/values-fr/strings.xml
+++ b/main/res/values-fr/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">terrain</string>
<string name="caches_sort_size">taille</string>
<string name="caches_sort_favorites">popularité</string>
+ <string name="caches_sort_favorites_ratio">popularité [%]</string>
<string name="caches_sort_name">nom</string>
<string name="caches_sort_geocode">Geocode</string>
<string name="caches_sort_rating">note</string>
diff --git a/main/res/values-hu/strings.xml b/main/res/values-hu/strings.xml
index 8957045..9fc5463 100644
--- a/main/res/values-hu/strings.xml
+++ b/main/res/values-hu/strings.xml
@@ -223,6 +223,7 @@
<string name="caches_sort_terrain">terep</string>
<string name="caches_sort_size">méret</string>
<string name="caches_sort_favorites">sikeresség</string>
+ <string name="caches_sort_favorites_ratio">sikeresség [%]</string>
<string name="caches_sort_name">név</string>
<string name="caches_sort_rating">osztályzat</string>
<string name="caches_sort_vote">szavazat (saját osztályzat)</string>
diff --git a/main/res/values-it/strings.xml b/main/res/values-it/strings.xml
index 21118f2..ff07d3e 100644
--- a/main/res/values-it/strings.xml
+++ b/main/res/values-it/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">Terreno</string>
<string name="caches_sort_size">Dimensione</string>
<string name="caches_sort_favorites">Popolarità</string>
+ <string name="caches_sort_favorites_ratio">Popolarità [%]</string>
<string name="caches_sort_name">Nome</string>
<string name="caches_sort_geocode">Geo Code</string>
<string name="caches_sort_rating">Voto</string>
diff --git a/main/res/values-nl/strings.xml b/main/res/values-nl/strings.xml
index 29e7f04..6227ad5 100644
--- a/main/res/values-nl/strings.xml
+++ b/main/res/values-nl/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">Terrein</string>
<string name="caches_sort_size">Formaat</string>
<string name="caches_sort_favorites">Populariteit</string>
+ <string name="caches_sort_favorites_ratio">Populariteit [%]</string>
<string name="caches_sort_name">Naam</string>
<string name="caches_sort_geocode">Geocode</string>
<string name="caches_sort_rating">Waardering</string>
diff --git a/main/res/values-pl/strings.xml b/main/res/values-pl/strings.xml
index 02764d5..8fa49da 100644
--- a/main/res/values-pl/strings.xml
+++ b/main/res/values-pl/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">terenu</string>
<string name="caches_sort_size">rozmiaru</string>
<string name="caches_sort_favorites">popularności</string>
+ <string name="caches_sort_favorites_ratio">popularności [%]</string>
<string name="caches_sort_name">nazwy</string>
<string name="caches_sort_geocode">Kod skrytki</string>
<string name="caches_sort_rating">oceny</string>
diff --git a/main/res/values-pt/strings.xml b/main/res/values-pt/strings.xml
index 955e7c3..b2005ea 100644
--- a/main/res/values-pt/strings.xml
+++ b/main/res/values-pt/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">Terreno</string>
<string name="caches_sort_size">Tamanho</string>
<string name="caches_sort_favorites">Popularidade</string>
+ <string name="caches_sort_favorites_ratio">Popularidade [%]</string>
<string name="caches_sort_name">Nome</string>
<string name="caches_sort_geocode">Geo Código</string>
<string name="caches_sort_rating">Pontuação</string>
diff --git a/main/res/values-sk/strings.xml b/main/res/values-sk/strings.xml
index 8208064..d653f95 100644
--- a/main/res/values-sk/strings.xml
+++ b/main/res/values-sk/strings.xml
@@ -223,6 +223,7 @@
<string name="caches_sort_terrain">terénu</string>
<string name="caches_sort_size">veľkosti</string>
<string name="caches_sort_favorites">obľúbenosti</string>
+ <string name="caches_sort_favorites_ratio">obľúbenosti [%]</string>
<string name="caches_sort_name">názvu</string>
<string name="caches_sort_geocode">Geokódu</string>
<string name="caches_sort_rating">hodnotenia</string>
diff --git a/main/res/values-sl/strings.xml b/main/res/values-sl/strings.xml
index a2d5250..24ddf3b 100644
--- a/main/res/values-sl/strings.xml
+++ b/main/res/values-sl/strings.xml
@@ -246,6 +246,7 @@
<string name="caches_sort_terrain">Teren</string>
<string name="caches_sort_size">Velikost</string>
<string name="caches_sort_favorites">Številu favoritov</string>
+ <string name="caches_sort_favorites_ratio_ratio">Številu favoritov [%]</string>
<string name="caches_sort_name">Imenu</string>
<string name="caches_sort_geocode">Geo kodi</string>
<string name="caches_sort_rating">Glasovih</string>
diff --git a/main/res/values-sv/strings.xml b/main/res/values-sv/strings.xml
index 334f200..68c7506 100644
--- a/main/res/values-sv/strings.xml
+++ b/main/res/values-sv/strings.xml
@@ -244,6 +244,7 @@
<string name="caches_sort_terrain">Terräng</string>
<string name="caches_sort_size">Storlek</string>
<string name="caches_sort_favorites">Favoriter</string>
+ <string name="caches_sort_favorites_ratio">Favoriter [%]</string>
<string name="caches_sort_name">Namn</string>
<string name="caches_sort_geocode">Geo kod</string>
<string name="caches_sort_rating">Betyg (GC-vote)</string>
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index bd6076c..68de736 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -284,6 +284,7 @@
<string name="caches_sort_terrain">Terrain</string>
<string name="caches_sort_size">Size</string>
<string name="caches_sort_favorites">Popularity</string>
+ <string name="caches_sort_favorites_ratio">Popularity [%]</string>
<string name="caches_sort_name">Name</string>
<string name="caches_sort_geocode">Geo Code</string>
<string name="caches_sort_rating">Rating</string>
diff --git a/main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java b/main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java
index 3cdd393..99a535a 100644
--- a/main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java
+++ b/main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java
@@ -47,6 +47,7 @@ public class ComparatorUserInterface {
register(R.string.caches_sort_inventory, InventoryComparator.class);
register(R.string.caches_sort_name, NameComparator.class);
register(R.string.caches_sort_favorites, PopularityComparator.class);
+ register(R.string.caches_sort_favorites_ratio, PopularityRatioComparator.class);
register(R.string.caches_sort_rating, RatingComparator.class);
register(R.string.caches_sort_size, SizeComparator.class);
register(R.string.caches_sort_state, StateComparator.class);
diff --git a/main/src/cgeo/geocaching/sorting/PopularityRatioComparator.java b/main/src/cgeo/geocaching/sorting/PopularityRatioComparator.java
new file mode 100644
index 0000000..fab7bb1
--- /dev/null
+++ b/main/src/cgeo/geocaching/sorting/PopularityRatioComparator.java
@@ -0,0 +1,56 @@
+/**
+ *
+ */
+package cgeo.geocaching.sorting;
+
+import cgeo.geocaching.DataStore;
+import cgeo.geocaching.Geocache;
+import cgeo.geocaching.enumerations.LogType;
+
+/**
+ * sorts caches by popularity ratio (favorites per find in %).
+ * only caches with 10 finds and more are counted to obtain meaningful statistics
+ */
+public class PopularityRatioComparator extends AbstractCacheComparator {
+
+ @Override
+ protected boolean canCompare(final Geocache cache1, final Geocache cache2) {
+ return true;
+ }
+
+ @Override
+ protected int compareCaches(final Geocache cache1, final Geocache cache2) {
+
+ float ratio1 = 0.0f;
+ float ratio2 = 0.0f;
+
+ int finds1 = getFindsCount(cache1);
+ int finds2 = getFindsCount(cache2);
+
+ if (finds1 != 0 && finds1 > 9) {
+ ratio1 = (((float) cache1.getFavoritePoints()) / ((float) finds1));
+ }
+ if (finds2 != 0 && finds2 > 9) {
+ ratio2 = (((float) cache2.getFavoritePoints()) / ((float) finds2));
+ }
+
+ if ((ratio2 - ratio1) > 0.0f) {
+ return 1;
+ } else if ((ratio2 - ratio1) < 0.0f) {
+ return -1;
+ }
+
+ return 0;
+ }
+
+ private static int getFindsCount(Geocache cache) {
+ if (cache.getLogCounts().isEmpty()) {
+ cache.setLogCounts(DataStore.loadLogCounts(cache.getGeocode()));
+ }
+ Integer logged = cache.getLogCounts().get(LogType.FOUND_IT);
+ if (logged != null) {
+ return logged;
+ }
+ return 0;
+ }
+}