<NME> PopularityRatioComparator.java
<BEF> package cgeo.geocaching.sorting;

import cgeo.geocaching.models.Geocache;
import cgeo.geocaching.storage.SqlBuilder;

import androidx.annotation.NonNull;

import java.util.Locale;

/**
 * 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 int compareCaches(final Geocache cache1, final Geocache cache2) {
        final int finds1 = cache1.getFindsCount();
        final int finds2 = cache2.getFindsCount();

        float ratio1 = 0.0f;
        if (finds1 != 0) {
            ratio1 = (float) cache1.getFavoritePoints() / (float) finds1;
        }
        float ratio2 = 0.0f;
        if (finds2 != 0) {
        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));
        }

    }

    @Override
    public void addSortToSql(final SqlBuilder sql, final boolean sortDesc) {
        //also sort by favourite count, should resemble ratio close enough
        sql.addOrder(sql.getMainTableId() + ".favourite_cnt", !sortDesc);
    }
}

<MSG> Added a popularity ratio filter to filter on favorites per find.
Removed the constraint that only caches > 9 finds are handled and also
applied this change to the popularity ratio comparator.

<DFF> @@ -9,7 +9,6 @@ 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 {
 
@@ -27,10 +26,10 @@ public class PopularityRatioComparator extends AbstractCacheComparator {
         int finds1 = getFindsCount(cache1);
         int finds2 = getFindsCount(cache2);
 
-        if (finds1 != 0 && finds1 > 9) {
+        if (finds1 != 0) {
             ratio1 = (((float) cache1.getFavoritePoints()) / ((float) finds1));
         }
-        if (finds2 != 0 && finds2 > 9) {
+        if (finds2 != 0) {
             ratio2 = (((float) cache2.getFavoritePoints()) / ((float) finds2));
         }
 

Added a popularity ratio filter to filter on favorites per find. Removed the constraint that only caches > 9 finds are handled and also applied this change to the popularity ratio comparator.