>>>>> "vshcherb" == vshcherb  <notifications@github.com> writes:

    vshcherb> Код выглядит не понятно. Я предлагаю написать так if
    vshcherb> ((statusNotPassed(STATUS_PREPARE) || repeat)&& (dist <=
    vshcherb> PREPARE_DISTANCE)) { if (dist >= PREPARE_DISTANCE_END) {

Это уже мне не понятно. Запутался.

    vshcherb> или if (dist >= PREPARE_DISTANCE_END || repeat) { .....

Полностью этот кусок выглядит так:

@@ -262,8 +262,8 @@ public class VoiceRouter {
 			nextStatusAfter(STATUS_TURN_IN);
 			// } else if (statusNotPassed(STATUS_PREPARE) && isDistanceLess(speed, dist, PREPARE_DISTANCE)) {
 		} else if (statusNotPassed(STATUS_PREPARE) && (dist <= PREPARE_DISTANCE)) {
-			if (dist >= PREPARE_DISTANCE_END) {
-				if(next.getTurnType().keepLeft() || next.getTurnType().keepRight()){
+			if (!scheduledCall || dist >= PREPARE_DISTANCE_END) {
+				if (scheduledCall && (next.getTurnType().keepLeft() || next.getTurnType().keepRight())){
 					// do not play prepare for keep left/right
 				} else {
 					playPrepareTurn(next, dist);

Если я правильно понимаю, Вы просто хотите переставить местами условия,
связанные по "или" в первой из заменяемых строк? Так от перестановки
мест слагаемых... Короче, какие у меня могут быть возражения? А
идентификатор "repeat" Вы предлагаете вместо "scheduledCall" с инверсным
смыслом? Возможно это и лучше, хотя, строго говоря, здесь речь идет не о
повторении сказанного, а о генерации актуальной на момент вызова
инструкции по требованию.

    vshcherb> То есть я не хочу чтобы эмулировалось сбрасывание
    vshcherb> состояния через statusPassed...

Ничего не понимаю. Идентификатор "statusPassed" в этом файле вовсе не
упоминается. Есть метод "statusNotPassed", Но он ничего не сбрасывает, а
лишь сравнивает currentStatus с заданным значением. Но ни этот метод, ни
переменная currentStatus не упоминаются в обсуждаемой строке.