public static void removeFirstMatchingIdFromIndividualRoute(final Context context, final String id) {
        withAccessLock(() -> {
            init();
            database.beginTransaction();
            try {
                database.delete(dbTableRoute, "precedence = (SELECT precedence FROM " + dbTableRoute + " WHERE id = ? OR id LIKE ? ORDER BY precedence LIMIT 1)", new String[] { id, id + "-%" });
                database.setTransactionSuccessful();
                LifecycleAwareBroadcastReceiver.sendBroadcast(context, ACTION_INDIVIDUALROUTE_CHANGED);
            } catch (final Exception e) {
                Log.e("Saving route failed", e);
            } finally {
                database.endTransaction();
            }
        });
    }
Persists the given {@code Route} into the database.

@param route a route to save
main/src/main/java/cgeo/geocaching/storage/DataStore.java