protected void showInLocus(final List<?> objectsToShow, final boolean withCacheWaypoints, final boolean export,
                               final Context context) {
        if (CollectionUtils.isEmpty(objectsToShow)) {
            return;
        }

        if (!isInstalled()) {
            return;
        }

        final boolean withCacheDetails = objectsToShow.size() < 200;
        final PackPoints pd = new PackPoints("c:geo");
        for (final Object o : objectsToShow) {
            Point p = null;
            // get icon and Point
            if (o instanceof Geocache) {
                p = getCachePoint((Geocache) o, withCacheWaypoints, withCacheDetails);
            } else if (o instanceof cgeo.geocaching.models.Waypoint) {
                p = getWaypointPoint((cgeo.geocaching.models.Waypoint) o);
            }
            if (p != null) {
                pd.addPoint(p);
            }
        }

        if (pd.getPoints().length == 0) {
            return;
        }

        if (pd.getPoints().length <= 1000) {
            try {
                ActionDisplayPoints.INSTANCE.sendPack(context, pd, export ? ActionDisplayVarious.ExtraAction.IMPORT : ActionDisplayVarious.ExtraAction.CENTER);
            } catch (final RequiredVersionMissingException e) {
                Log.e("AbstractLocusApp.showInLocus: problem in sendPack", e);
            }
        } else {
            final File externalDir = new File(context.getExternalFilesDir(null), "showIn.locus");
            final File file = new File(externalDir.toURI());

            final ArrayList<PackPoints> data = new ArrayList<>();
            data.add(pd);

            try {
                if (lv.isVersionValid(VersionCode.UPDATE_15)) {
                    // send file via FileProvider, you don't need WRITE_EXTERNAL_STORAGE permission for this
                    final Uri uri = FileProvider.getUriForFile(context, context.getString(R.string.file_provider_authority), file);
                    ActionDisplayPoints.INSTANCE.sendPacksFile(context, lv, data, file, uri, export ? ActionDisplayVarious.ExtraAction.IMPORT : ActionDisplayVarious.ExtraAction.CENTER);
                } else {
                    // send file old way, you need WRITE_EXTERNAL_STORAGE permission for this
                    if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
                        ActionDisplayPoints.INSTANCE.sendPacksFile(context, lv, data, file, null, ActionDisplayVarious.ExtraAction.CENTER);
                    } else {
                        ActivityMixin.showToast(context, getString(R.string.storage_permission_needed));
                    }
                }
            } catch (final RequiredVersionMissingException e) {
                Log.e("AbstractLocusApp.showInLocus: problem in sendPacksFile", e);
            }
        }
    }
Display a list of caches / waypoints in Locus

@param objectsToShow      which caches/waypoints to show
@param withCacheWaypoints Whether to give waypoints of caches to Locus or not
main/src/main/java/cgeo/geocaching/apps/AbstractLocusApp.java