Odczytywanie czasu z ekranu zamiast każdorazowo z zegara telefonu

  • 0 Odpowiedzi
  • 10546 Wyświetleń
*

Offline admin

  • *****
  • 1644
  • Twórca i moderator forum
    • Zobacz profil
    • Forum ExtaLife
Aplikacja na iOS i Android posiada wg. mnie nieco denerwującą przypadłość. Mianowicie we wszystkich dialogach gdzie ustawia się czas aplikacja po kliknięciu na pole zawierające godzinę pokazuje (na Android w okienku tzw. Time Picker; na iOS bodajże UIDatePicker) czas odczytany z telefonu zamiast z pola na ekranie.

Utarło się, że edycja pól w osobnych okienkach dialogowych wyświetla aktualną wartość danego pola a nie wartość domyślną. Aplikacja ExtaLife natomiast za każdym razem umieszcza w dialogu edycyjnym wartość domyślną odczytaną z zegara telefonu. Jest to o tyle denerwujące, że przy re konfiguracji pól z godziną, aby zmienić ustawiony wcześniej czas nawet o jedną minutę - trzeba znowu od początku time pickerem przewinąć godziny i minuty do pożądanej.

Propozycja zmiany: aby aplikacja była bardziej user friendly i zachowywała się jak standardy w branży wyznaczają - należy w dialogach edycji czasu podawać domyślnie wartość która aktualnie jest zapisana w polu. Ta wartość i tak jest już odczytana z kontrolera, ponieważ jest wyświetlana na ekranie aplikacji.
Nie widzę więc problemu, aby zmienić domyślną wartość (aktualna godzina) na wartość odczytaną z kontrolera.
Aby nie psuć zanadto user-experience dla wprowadzania wartości do pola po raz pierwszy - można zrobić prosty warunek - jeśli pole ma wartość inicjalną tzn. pustą lub umówioną inicjalną (dla czasu np godzina 0:00) - to pobieramy aktualną godzinę. Jeśli pole już zawiera wartość nieinicjalną - podajemy tą wartość do Time Pickera.

To samo zachowanie można przenieść na pola z datami, a najlepiej na wszystkie pola w aplikacji, ale najbardziej zależy mi jednak na czasie i dacie, ponieważ rekonfiguracja wymaga przewijania paluchami długiej listy wartości za każdym razem gdy chcemy zrobić nawet drobną zmianę wartości.

Zmiana dla godziny i daty nie wydaje się zbyt skomplikowana po przyjrzeniu się kodowi źródłowemu. Programisto Android - challenge accepted? ;)
Elementy systemu, których używam: 3xSRP-22, 5xRDP-21, 3xROP-22, 4x ROP-21, 1xP-456/36, 1xRNK-24, 3x RNP-21, 1xRCT-22, aplikacja na Android oraz iOS + Home Assistant