diff options
author | KiwiStone <Kiwi.Stone@web.de> | 2013-10-23 01:10:07 +0200 |
---|---|---|
committer | KiwiStone <Kiwi.Stone@web.de> | 2013-10-25 23:52:58 +0200 |
commit | 3baf056b683db2f8a39452ddb0ef298a365a4a5a (patch) | |
tree | fc30cce9a4ff6b958adebd841a6c2c10164e86b3 | |
parent | 3fe97b8a53c8aac0e3a65226010326847c8a08f3 (diff) | |
download | cgeo-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.xml | 1 | ||||
-rw-r--r-- | main/res/values-de/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-es/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-fr/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-hu/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-it/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-nl/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-pl/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-pt/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-sk/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-sl/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values-sv/strings.xml | 1 | ||||
-rw-r--r-- | main/res/values/strings.xml | 1 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java | 1 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/sorting/PopularityRatioComparator.java | 56 |
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; + } +} |