Przy przerabianiu kursu androida z Google Udacity Scholarship uznałam, że warto od razu wprowadzać to czego się nauczyłam do apki. W związku z tym postanowiłam przerobić sposób w jaki obsługuję ustawienia użytkownika, tak żeby było bardziej pro 😉
Przede wszystkim wprowadziłam więcej listenerów (jakiekolwiek 😉 ) i to sprawiło, że przestałam się troszczyć o sprawdzenie, czy coś się zmienia czy nie. Od tego mam odpowiednie metody.
https://gist.github.com/jezinka/20e57f9828308c0a51a669498c6a2b51
Pozostawiłam na razie statyczne zmienne przechowujące wartości ustawień. Jakby się coś zmieniło wtedy od nowa przeładowujemy aplikację.
https://gist.github.com/jezinka/65afee7ae37fa7f4688770cc8e60417c
W metodzie onCreate wywołuję metodę pobierającą aktualne wartości ustawień i rejestruję listener:
https://gist.github.com/jezinka/97056176173eb77ff616222fc4f7e2b8
Jeszcze pamiętam o tym, żeby zarejstrowany listener odpiąć w odpowiednim momencie 😉
https://gist.github.com/jezinka/a9084f624c84cc6eea937f68187abbf3
Wyjęłam też fragment z SettingsActivity i jemu też dostały się listenery, tak aż dwa 😉
https://gist.github.com/jezinka/37a2a0a5ddfa40ef69c236c12f46f6c0
Pierwszy czuwa nad tym, żeby przy zmianie wartości odświeżyć też podpis pod ustawieniem żeby nie trzeba było w nie klikać.
https://gist.github.com/jezinka/36f494505eb1b81ac8cd938b6847bf84
Drugiego listenera użyłam do stworzenia walidacji na długość planu, żeby użytkownicy mogli wstawić tylko wartości z przedziału 1-30.
https://gist.github.com/jezinka/1104e1f1aa3470b181026f3a2b0a46fb
Wygląda tak, jak poprzednio, a nawet lepiej, więc nie zepsułam 😉
W planach mam jeszcze przerobienie list na RecyclerView, ale jeszcze trzeba będzie przerobić bazę danych 😉