2009
SHR Settings
Ten wpis jest tłumaczeniem tekstu "SHR Settings" zamieszczonego na blogu SHR. W sumie nie wiem, po co o tym informuję, gdyż to i tak mój tekst ;)
Cześć! Nazywam się Sebastian (możesz mnie spotkać na IRCu jako dos1), i jestem liderem projektu shr-settings. W tym tekście zamierzam wyjaśnić nasze cele i powiedzieć, jak zamierzamy je osiągnąć.
Czym jest SHR Settings?
SHR Settings jest aplikacją opartą na python-elementary, która w zamierzeniu jest zbudowana modularnie. Chcemy, aby każdy mógł tworzyć swoje własne moduły, bez bawienia się kodem samego programy. Aktualnie aby wyświetlić nowe moduły konieczna jest zmiana jednej zmiennej w pliku uruchomieniowym, ale obsługa dynamicznego ładowania modułów jest w naszych planach.
Aktualnie nasz zespół jest niewielki - składa się z jedynie trzech osób. Jestem liderem, ponieważ zapoczątkowałem pisanie tego programu i wysłałem pierwsze pliki źródłowe do repozytorium svn na openmoko.opendevice.org (naszej polskiej, społecznościowej stronie). Póżniej, yoyo i hiciu zaczęli zabawę z kodem. Najpierw yoyo dopisał możliwość wyboru operatora GSM (która to była mu konieczna, aby używać jego Neo1973 z siecią Play), a potem hiciu zapoczątkował ładny, obiektowy system modułów. Teraz pracujemy wspólnie nas shr-settings w repozytorium git SHR.
Więc, co jest już zrobione?
Dzięki yoyo, mamy ładną i użyteczną do obsługi palcem listę kategorii jako menu główne.
Dzięki modułowej budowie, SHR Settings może używać różnych launcherów. Myślimy aktualnie o użyciu Toolbara na górze (tak jak w konfiguracji Illume), oraz o startowaniu jedynie wskazanego modułu z linii komend (jeśli ktoś zechce zintegrować nasze moduły z opcjami Illume).
Ponieważ używamy biblioteki Elementary do rysowania interfejsu, shr-settings wygląda podobnie do całego Illume i innych aplikacji SHR, oraz może być z powodzeniem używany palcem. Na przykład, wyłączanie i włączanie anten odbywa się przy użyciu przełączników, takich jak w elementary-alarm albo w aplikacjach dla iPhone'a.
shr-settings ciągle jest podczas tworzenia. Brakuje mu jeszcze trochę funkcjonalności; jest wolny i w niektórych miejscach zaimplementowany w niepoprawny sposób. Naszym największym koszmarem są wolne zapytania dbusa, które blokują całe UI. Popracujemy nad tym, obiecuję :)
Ok, więc teraz opiszę wszystkie moduły SHR Settings, które są aktualnie z nim rozprowadzane.
shr_gsm.py
Moduł GSM może wyłączyć/włączyć antenę GSM, wyświetlić dostępnych operatorów GSM i połączyć się z jednym z nich (użyteczne przy roamingu) oraz wyświetlić informacje o modemie i sieci.
Moduł SIM potrafi wyświetlać informacje na temat książek telefonicznych i wiadomości na Twojej karcie SIM, oraz usunąć wszystkie pozycje z nich.
(notatka: część modułu SIM pokazana jest na pierwszym zrzucie modułu GSM)
shr_bt.py
Moduł Bluetooth może wyłączyć/włączyć nadajnik BT, zmienić widoczność oraz włączyć/wyłączyć demony bt (spi, hci). W tym miejscu planujemy napisać menedżera Bluetooth - do wysyłania i odbierania plików, łączenia się z siecią PAM, słuchawkami bt, urządzeniami HID itp.
shr_wifi.py
Moduł WiFi może wyłączyć/włączyć nadajnik WiFi. Zaczęliśmy już pracę nad menedżerem WiFi - aktualnie potrafi tylko skanować sieci i wyświetlać nieaktywne przyciski z ich nazwami :)
shr_gprs.py
Aktualnie nie robi nic - oprócz wyglądania rzecz jasna ;)
shr_profiles.py
Tutaj można ustawić aktywny profil w frameworkd. W przysłości chcemy użyć tu widget hoversel zamiast przełączników, oraz zaimplementować menedżer profili (zmiana dźwięku dzwonka itp.)
shr_clock.py
Ten ciekawie wyglądający zegarek dostarcia ci łatwy sposób do ustawienia aktualnego czasu. Przyciski "Synchronize with..." służą do ustawienia czasu automatycznie. W przyszłości chcemy dać tu też możliwość zmiany daty.
shr_pm.py
Tutaj możesz zobaczyć informacje na temat stanu baterii i wyłączyć, zrestartować albo uśpić swój telefon.
shr_timeouts.py
Tutaj możesz ustawić wszystkie timeouty frameworkd - na przykład przyciemnianie ekranu, blokowanie i usypianie telefonu. W przyszłości chcemy dać sposób na łatwiejsze uaktywnianie i deaktywowanie timeoutów (aktualnie, gdy np. masz 30 sekund przy usypianiu, musisz kliknąć 30 razy na przycisk "-", aby wyłączyć automatyczne usypianie).
shr_usb.py
Ten moduł jest aktualnie dość tajemniczy dla użytkowników SHR, ponieważ... Błąd w frameworkd nie pozwala mu działać :) Ale kiedy działa, pozwala na przełączenie twojego Neo z trybu urządzenia, do trybu hosta usb. W planach chcemy zaimplementować możliwość wyłączenia dostarczania prądu (500mA) w trybie hosta i przełączanie między trybem ethernet, mass storage i może MTP w trybie urządzenia.
shr_services.py
Here you have listing of all services in /etc/init.d, which are used in some runlevels. You can stop or start it without playing with the console.
Tutaj wyświetlana jest lista wszystkich serwisów w /etc/init.d, które są użyte w którymś z poziomów pracy. Możesz wystartować lub wyłączyć je bez zabawy z konsolą.
Inne (shr_test.py, shr_misc.py)
To jest "piaskownica" dla naszych developerów :)
I to wszystko! Jeśli chcesz napisać własny moduł, spójrz na module.py, shr_misc.py i shr_test.py. Powinieneś być w stanie łatwo zrozumieć, jak dzialają moduły shr-settings. Kiedy skończysz - commituj, albo jeśli nie masz dostępu do repozytorium/nie chcesz mieć dostępu/cokolwiek innego - wyślij go do mnie! Mój mail to seba.dos1@gmail.com. To samo z patchami - jakakolwiek praca nad shr-settings jest mile widziana.
Co dalej?
Podumowując - naszym podstawowym zadaniem jest zapewnić całą podstawową funkcjonalność, głównie w oparciu na interfejs dbus frameworkd. Następnie chcemy przyśpieszyć działanie programu. Jeżeli możesz w czymś pomóc - zrób to śmiało! :) Możesz również podzielić się swoimi myslami na tracu. Happy hacking!
Dodając coś "od siebie" do swojego wpisu: prace nad shr-settings toczą się tak szybko, że niektóre ze screenów są już nieaktualne, a użytkownicy SHR mogą teraz kontrolować stan GPS za pomocą shr_gps.py. A teraz pytanie do czytelników tego bloga: jesteście zainteresowani całą recenzją SHR?
Jabber: Rozłączony

00:38:03
tak