Кнопки дней влияют только на полное расписание
Карточки ближайших рейсов больше не зависят от выбора дня в полном расписании: они всегда показывают рейсы на текущий день недели по московскому времени. Кнопки «Будни / Суббота / Воскресенье» переключают только таблицу. День недели для карточек вычисляется заново при каждой отрисовке, так что после полуночи приложение само переходит на расписание нового дня, не сбрасывая выбор в таблице. В шапке приложения убрана надпись «Мурманская область» вместе с её стилем .route, который больше не используется. Заголовок «Автобус №127» теперь начинает шапку. В MainActivity добавлен флаг FLAG_KEEP_SCREEN_ON: экран телефона не гаснет, пока открыто приложение с расписанием — не нужно касаться экрана, чтобы посмотреть время отправления. Также в этом же релизе: кнопки дней в полном расписании, убрана надпись «Мурманская область», экран не гаснет. versionCode поднят с 8 до 9, чтобы обновление поверх уже установленной сборки 2.6 ставилось поверх неё.
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user