Кнопки дней влияют только на полное расписание

Карточки ближайших рейсов больше не зависят от выбора дня в полном
расписании: они всегда показывают рейсы на текущий день недели по
московскому времени. Кнопки «Будни / Суббота / Воскресенье»
переключают только таблицу.

День недели для карточек вычисляется заново при каждой отрисовке,
так что после полуночи приложение само переходит на расписание
нового дня, не сбрасывая выбор в таблице.

В шапке приложения убрана надпись «Мурманская область» вместе с её
стилем .route, который больше не используется. Заголовок
«Автобус №127» теперь начинает шапку.

В MainActivity добавлен флаг FLAG_KEEP_SCREEN_ON: экран телефона
не гаснет, пока открыто приложение с расписанием — не нужно
касаться экрана, чтобы посмотреть время отправления.

Также в этом же релизе: кнопки дней в полном расписании,
убрана надпись «Мурманская область», экран не гаснет.

versionCode поднят с 8 до 9, чтобы обновление поверх уже
установленной сборки 2.6 ставилось поверх неё.
This commit is contained in:
2026-09-28 10:46:15 +00:00
parent ed621b7ce2
commit f04bb1843c

View File

@@ -255,13 +255,17 @@ let currentStop = "Полярные Зори";
// Date#getDay(): 0 — воскресенье, 6 — суббота // Date#getDay(): 0 — воскресенье, 6 — суббота
function dayKeyFor(dow){ return dow===0 ? "sunday" : dow===6 ? "saturday" : "weekday"; } function dayKeyFor(dow){ return dow===0 ? "sunday" : dow===6 ? "saturday" : "weekday"; }
// Карточки ближайших рейсов всегда показывают реальный сегодняшний день
function todayKey(){ return dayKeyFor(nowMs().day); }
// Выбор пользователя — только для полного расписания
function sched(){ return SCHEDULES[activeDay]; } function sched(){ return SCHEDULES[activeDay]; }
function render(){ function render(){
const now = nowMs(); const now = nowMs();
const curMin = now.hour*60 + now.minute; const curMin = now.hour*60 + now.minute;
const dirs = DIRECTIONS[currentStop]; const dirs = DIRECTIONS[currentStop];
const data = sched(); const data = SCHEDULES[todayKey()];
document.getElementById("dirBox").innerHTML = dirs.map(d=>{ document.getElementById("dirBox").innerHTML = dirs.map(d=>{
const upcoming = data const upcoming = data
.map((r,ri)=>{ .map((r,ri)=>{
@@ -303,12 +307,12 @@ function renderDay(){
document.getElementById("dayBadge").innerHTML = `Сегодня <b>${DAYS[dow]}</b>`; document.getElementById("dayBadge").innerHTML = `Сегодня <b>${DAYS[dow]}</b>`;
} }
// Подсветка выбранного типа дня и перерисовка расписания // Подсветка выбранного типа дня. Таблица полного расписания перерисовывается,
// карточки ближайших рейсов не трогаем — они всегда на сегодня.
function selectDay(key){ function selectDay(key){
activeDay = key; activeDay = key;
document.querySelectorAll("#dayPick button").forEach(b=> document.querySelectorAll("#dayPick button").forEach(b=>
b.classList.toggle("active", b.dataset.day === key)); b.classList.toggle("active", b.dataset.day === key));
render();
renderTable(); renderTable();
} }
@@ -342,9 +346,9 @@ document.getElementById("fullBtn").addEventListener("click",()=>{
b.classList.toggle("open", !open); b.classList.toggle("open", !open);
}); });
let activeDay = dayKeyFor(nowMs().day); // по умолчанию — реальный день недели let activeDay = todayKey(); // по умолчанию — реальный день недели
selectDay(activeDay); selectDay(activeDay);
tickClock(); renderDay(); tickClock(); renderDay(); render();
setInterval(tickClock,1000); setInterval(tickClock,1000);
setInterval(render,30000); setInterval(render,30000);
setInterval(renderDay,60000); setInterval(renderDay,60000);