@NonNull
    public static List<Geocache> getLastOpenedCaches() {
        return withAccessLock(() -> {

            final List<String> geocodes = Settings.getLastOpenedCaches();
            final Set<Geocache> cachesSet = loadCaches(geocodes, LoadFlags.LOAD_CACHE_OR_DB);

            // order result set by time again
            final List<Geocache> caches = new ArrayList<>(cachesSet);
            Collections.sort(caches, (lhs, rhs) -> {
                final int lhsIndex = geocodes.indexOf(lhs.getGeocode());
                final int rhsIndex = geocodes.indexOf(rhs.getGeocode());
                return Integer.compare(lhsIndex, rhsIndex);
            });
            return caches;
        });
    }
@return list of last caches opened in the details view, ordered by most recent first
main/src/main/java/cgeo/geocaching/storage/DataStore.java