1. У тебя при каждом новом вызове onAccessibilityEvent() обновляется список групп, и переменная groupImages перезаписывается. Если количество групп изменилось (например, подгружается по мере прокрутки), то индексы сбиваются, и ты снова кликаешь по первой.
Тебе нужно обновлять groupImages только один раз, а не каждый раз при событии.
Типо в этом участке кода:
if (groupsTabClicked && !imageClicked && !isPostingInProgress) {
// Завжди оновлюємо список груп перед кліком
List updatedGroups = findAllGroupImages(root);
if (updatedGroups.isEmpty()) {
showToast("⚠️ Не знайдено жодної групи");
Log.d(TAG, "⚠️ Не знайдено жодної групи");
return;
}
// Перевірка: чи індекс не вийшов за межі
if (currentGroupIndex >= updatedGroups.size()) {
showToast("✅ Усі групи пройдені");
Log.d(TAG, "✅ Усі групи пройдені");
return;
}
groupImages = updatedGroups;
Log.d(TAG, "clickNextGroup currentGroupIndex = " + currentGroupIndex + ", total groups = " + groupImages.size());
clickNextGroup();
return;
}
Сделай что-то типо этого:
if (groupsTabClicked && groupImages == null && !isPostingInProgress) {
groupImages = findAllGroupImages(root);
if (groupImages.isEmpty()) {
showToast("Не знайдено жодної групи");
return;
}
Log.d(TAG, "Знайдено стiльки груп: " + groupImages.size());
clickNextGroup();
return;
}
2. Я не сильно понял логику кода, но поищи, не сбрасывается ли где-то currentGroupIndex. Типо он может при каждом запуске onAccessibilityEvent() выставляться в нуль и переход по групам происходить не будет.