public static boolean isOffline(final String geocode, final String guid) {
        if (StringUtils.isBlank(geocode) && StringUtils.isBlank(guid)) {
            return false;
        }
        return withAccessLock(() -> {

            init();

            try {
                final SQLiteStatement offlineListCount;
                final String value;
                if (StringUtils.isNotBlank(geocode)) {
                    offlineListCount = PreparedStatement.GEOCODE_OFFLINE.getStatement();
                    value = geocode;
                } else {
                    offlineListCount = PreparedStatement.GUID_OFFLINE.getStatement();
                    value = guid;
                }
                synchronized (offlineListCount) {
                    offlineListCount.bindString(1, value);
                    return offlineListCount.simpleQueryForLong() > 0;
                }
            } catch (final SQLiteDoneException ignored) {
                // Do nothing, it only means we have no information on the cache
            } catch (final Exception e) {
                Log.e("DataStore.isOffline", e);
            }

            return false;
        });
    }
is cache stored in one of the lists (not only temporary)
main/src/main/java/cgeo/geocaching/storage/DataStore.java