public void storeLogOffline(@NonNull final Activity fromActivity, @NonNull final OfflineLogEntry logEntry) {

        if (logEntry.logType == LogType.UNKNOWN) {
            return;
        }

        if (!isOffline()) {
            getLists().add(StoredList.STANDARD_LIST_ID);
            DataStore.saveCache(this, LoadFlags.SAVE_ALL);
        }

        final boolean status = DataStore.saveLogOffline(geocode, logEntry);

        final Resources res = fromActivity.getResources();
        if (status) {
            ActivityMixin.showToast(fromActivity, res.getString(R.string.info_log_saved));
            DataStore.saveVisitDate(geocode, logEntry.date);
            hasLogOffline = Boolean.TRUE;
            if (Settings.removeFromRouteOnLog()) {
                DataStore.removeFirstMatchingIdFromIndividualRoute(fromActivity, geocode);
            }
            offlineLog = logEntry;
            notifyChange(fromActivity);
        } else {
            ActivityMixin.showToast(fromActivity, res.getString(R.string.err_log_post_failed));
        }
    }
If the cache already has an offline log with log text and the new offline log would overwrite that prompt for confirmation
main/src/main/java/cgeo/geocaching/models/Geocache.java