@WorkerThread
    private static ImageResult uploadNewImage(final ILoggingManager loggingManager, final String logId, final Image image, final int pos, final int imageCount) {

        //uploader can only deal with files, not with content Uris. Thus scale/compress into a temporary file
        final File imageFileForUpload = ImageUtils.scaleAndCompressImageToTemporaryFile(image.getUri(), image.targetScale, 75);
        if (imageFileForUpload == null) {
            return ImageResult.error(StatusCode.LOGIMAGE_POST_ERROR, "Failed to process: " + image.getUrl(), null);
        }

        final Image imgToSend = image.buildUpon()
            .setUrl(Uri.fromFile(imageFileForUpload))
            .setTitle(getLogImageTitle(image, pos, imageCount))
            .build();
        final ImageResult result = loggingManager.createLogImage(logId, imgToSend);

        //delete temp file for upload
        if (!imageFileForUpload.delete()) {
            Log.i("Temporary image not deleted: " + imageFileForUpload);
        }

        return result;
    }
get title for a log image in the list
main/src/main/java/cgeo/geocaching/log/LogUtils.java