Skip to content
This repository has been archived by the owner on Feb 2, 2021. It is now read-only.

Commit

Permalink
Improved UI and english localization (#28)
Browse files Browse the repository at this point in the history
* Update Room dependencies

* Replace purchase ticket entry with help fragment

TODO: Implement fragments for ticket overview and user account

* Remove unused drawer menu icons and update icons

* Translate strings to english and move polish to values-pl

* Add more translated strings to english

* Improve translations and remove non-translatable strings

* Update website url and repo in Attribouter

* Revert "Replace purchase ticket entry with help fragment"

This reverts commit ea37827.

* Add disclaimer when buying tickets in app

* Improve polish translations

* Make more strings untranslatable

* Change drawer title to display account provider

This will allow the app to show the user which ticket system it is currently using

* Improve menu localization

* Fix dateformat showing german day names
  • Loading branch information
divadsn authored Jan 29, 2019
1 parent 218f696 commit 61f8086
Show file tree
Hide file tree
Showing 11 changed files with 322 additions and 155 deletions.
2 changes: 1 addition & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ dependencies {
implementation "cat.ereza:customactivityoncrash:2.2.0"
implementation "me.jfenn:attribouter:0.1.3"

def room_version = '2.1.0-alpha01'
def room_version = '2.1.0-alpha03'
implementation "androidx.room:room-runtime:${room_version}"
annotationProcessor "android.arch.persistence.room:compiler:${room_version}"
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ public class CrashReportActivity extends ToolbarActivity {
public static final String REPORT_EMAIL_ADDRESS = "[email protected]";
public static final String REPORT_EMAIL_SUBJECT = "Błąd w mobileKKM " + BuildConfig.VERSION_NAME;

// German locale represents the same format as in Poland
private static final DateFormat LOCAL_DATEFORMAT = SimpleDateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.GERMAN);
// Always enforce proper date localization
private static final DateFormat LOCAL_DATEFORMAT = SimpleDateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.forLanguageTag("pl-PL"));

private String mStacktrace;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ public void setupDrawer() {
public void setupDrawerHeader(Account account) {
View headerView = mNavigationView.getHeaderView(0);

TextView drawerUsername = (TextView) headerView.findViewById(R.id.drawer_header_username);
drawerUsername.setText(String.format("%s %s", account.getFirstName(), account.getLastName()));
TextView drawerProvider = (TextView) headerView.findViewById(R.id.drawer_header_provider);
drawerProvider.setText(getText(R.string.kkm_title)); // TODO: account.getProvider();

TextView drawerEmail = (TextView) headerView.findViewById(R.id.drawer_header_email);
drawerEmail.setText(account.getEmail());
Expand Down Expand Up @@ -123,13 +123,14 @@ public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
switch (item.getItemId()) {
case R.id.nav_tickets:
mWebview.loadUrl(getPageUrl("home"));
mWebview.loadUrl(getPageUrl("home")); // TODO: Replace with TicketOverviewFragment
break;
case R.id.nav_purchase:
mWebview.loadUrl(getPageUrl("ticket/buy"));
Toast.makeText(this, R.string.purchase_warning, Toast.LENGTH_LONG).show();
mWebview.loadUrl(getPageUrl("ticket/buy")); // TODO: Add custom webview handler for purchasing
break;
case R.id.nav_account:
mWebview.loadUrl(getPageUrl("account"));
mWebview.loadUrl(getPageUrl("account")); // TODO: Replace with UserAccountFragment
break;
case R.id.nav_pricing:
mWebview.loadUrl("https://www.codebucket.de/mobilekkm/cennik.html");
Expand Down
7 changes: 0 additions & 7 deletions app/src/main/res/drawable/ic_menu_coin.xml

This file was deleted.

7 changes: 7 additions & 0 deletions app/src/main/res/drawable/ic_menu_coins.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="#000" android:pathData="M15,4A8,8 0 0,1 23,12A8,8 0 0,1 15,20A8,8 0 0,1 7,12A8,8 0 0,1 15,4M15,18A6,6 0 0,0 21,12A6,6 0 0,0 15,6A6,6 0 0,0 9,12A6,6 0 0,0 15,18M3,12C3,14.61 4.67,16.83 7,17.65V19.74C3.55,18.85 1,15.73 1,12C1,8.27 3.55,5.15 7,4.26V6.35C4.67,7.17 3,9.39 3,12Z" />
</vector>
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_login.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/login_title"
android:text="@string/kkm_title"
android:textColor="?android:textColorPrimary"
android:textSize="24sp" />

Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/drawer_header_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
android:paddingTop="@dimen/activity_vertical_margin">

<TextView
android:id="@+id/drawer_header_username"
android:id="@+id/drawer_header_provider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/nav_header_vertical_spacing"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/menu/drawer_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
android:title="@string/nav_account" />
<item
android:id="@+id/nav_pricing"
android:icon="@drawable/ic_menu_coin"
android:icon="@drawable/ic_menu_coins"
android:title="@string/nav_prices" />
</group>

Expand Down
164 changes: 164 additions & 0 deletions app/src/main/res/values-pl/strings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_description">Nieoficjalna aplikacja do obsługi mobilnej wersji KKM na urządzeniach mobilnych.</string>

<!-- Strings related to login -->
<string name="title_activity_login">Zaloguj się do mobileKKM</string>
<string name="prompt_email">Adres e-mail</string>
<string name="prompt_password">Hasło</string>
<string name="action_login">Zaloguj się</string>
<string name="action_login_using_kk">Zaloguj się za pomocą Karty Krakowskiej</string>
<string name="action_register">Nie masz konta? Zarejestruj się.</string>
<string name="error_field_required">Pole wymagane</string>
<string name="error_invalid_email">Nieprawidłowy adres e-mail</string>
<string name="error_invalid_password">Nieprawidłowe hasło</string>
<string name="error_no_network">Brak połączenia z Internetem</string>
<string name="error_account">Brak konta użytkownika na urządzeniu</string>
<string name="error_fingerprint">Wystąpił problem z rozpoznaniem urządzenia</string>
<string name="error_unknown">Nierozpoznany problem</string>
<string name="action_help">Pomoc</string>

<!-- Strings related to registration -->
<string name="title_activity_registration">Rejestracja konta</string>
<string name="registration_complete">Sprawdź swoją skrzynkę pocztową, aby zakończyć rejestrację konta</string>
<string name="snackbar_open">Otwórz</string>

<!-- Strings related to main -->
<string name="title_activity_main">Strona główna</string>
<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>
<string name="nav_header_desc">Navigation header</string>
<string name="snackbar_retry">Spróbuj ponownie</string>
<string name="action_refresh">Odśwież</string>

<!-- Navbar navigation drawer -->
<string name="nav_tickets">Aktywne bilety</string>
<string name="nav_purchase">Zakup bilet</string>
<string name="nav_account">Moje konto</string>
<string name="nav_prices">Cennik</string>
<string name="nav_backup">Kopie zapasowe</string>
<string name="nav_logout">Wyloguj się</string>
<string name="nav_settings">Ustawienia</string>

<!-- Backup and restore -->
<string name="title_activity_backup">Kopie zapasowe</string>
<string name="backup_howto_title">Jak to działa?</string>
<string name="backup_howto_description">Każdy powiązany z urządzeniem bilet zostaje przypisany do tzw. identyfikatora urządzenia, który mobileKKM tworzy na podstawie identyfikatora Android z systemu urządzenia.</string>
<string name="backup_category_import">Przywróć kopie</string>
<string name="backup_category_export">Utwórz kopie</string>
<string name="backup_import_title">Przywróc z pliku</string>
<string name="backup_import_desc">Jeśli posiadasz poprzednią kopię zapasową, mobileKKM może zaimportować ją z pliku JSON</string>
<string name="backup_restore_title">Przywróć z przeglądarki</string>
<string name="backup_restore_desc">Wybierz tą opcję jeśli posiadasz identyfikator urządzenia z przeglądarki na której wcześniej powiązałeś bilet</string>
<string name="backup_export_title">Zapisz do pliku</string>
<string name="backup_export_desc">Wyeksportuj identyfikator urządzenia do pliku JSON</string>
<string name="backup_permissions_not_granted">Brak wystarczających uprawnień do zapisu/odczytu</string>
<string name="backup_restore_fingerprint">Wprowadź identyfikator</string>
<string name="backup_invalid_fingerprint">Wprowadzony identyfikator urządzenia jest nieprawidłowy</string>
<string name="backup_json_error">Nastąpił problem z kopią zapasową</string>
<string name="backup_import_success">Importowanie zakończone</string>
<string name="backup_wrong_account">Wybrano nieprawidłową kopię zapasową</string>
<string name="backup_export_success">Eksportowanie zakończone</string>
<string name="backup_export_failed">Eksportowanie nie powiodło się</string>

<!-- Strings related to settings -->
<string name="title_activity_settings">Ustawienia</string>
<string name="pref_group_general">Ogólne</string>
<string name="pref_group_notifications">Powiadomienia</string>
<string name="pref_group_about">O aplikacji</string>
<string name="pref_disclaimer_title">Nie pokazuj komunikatu ponownie</string>
<string name="pref_disclaimer_description">Wyłącz, aby wyświetlić ponownie komunikat pojawiający się po pierwszym starcie aplikacji</string>
<string name="pref_enable_notifications">Włącz powiadomienia</string>
<string name="pref_expiration">Informuj o upływie ważności biletu</string>
<string name="pref_expiration_summary">%s wcześniej</string>
<string name="pref_notification_ringtone">Dźwięk</string>
<string name="pref_notification_vibrate">Wibracje</string>
<string name="pref_notification_settings">Ustawienia powiadomień</string>
<string name="pref_notification_settings_summary">Wybierz dźwięki i inne ustawienia systemowe</string>
<string name="pref_about_title">Licencje open-source</string>
<string name="pref_about_description">Poznaj współtwórców oraz użyte biblioteki</string>
<string name="pref_version_title">Aplikacja mobileKKM</string>
<string name="pref_version_description">wersja %s-%s.%s</string>
<string name="pref_restart">Zrestartuj aplikację</string>

<!-- Expiration values -->
<string name="expiration_oneday">1 dzień</string>
<string name="expiration_threedays">3 dni</string>
<string name="expiration_fivedays">5 dni</string>
<string name="expiration_oneweek">1 tydzień</string>
<string name="expiration_twoweeks">2 tygodnie</string>
<string name="expiration_onemonth">1 miesiąc</string>

<!-- Notification -->
<string name="notification_channel_expiry">Ważność biletów</string>
<string name="notification_channel_expiry_desc">Informacje o upływie ważności biletu</string>
<string name="expiration_notification_title">Twój bilet wkrótce straci ważność</string>
<string name="expiration_notification_msg">Termin ważności od %s do %s</string>

<!-- Attribouter screen -->
<string name="about_facebook_like">Polub nas</string>
<string name="title_attribouter_about">O aplikacji</string>
<string name="title_attribouter_licenses">Licencje open-source</string>
<string name="title_attribouter_email">Adres e-mail</string>
<string name="title_attribouter_website">Strona internetowa</string>
<string name="title_attribouter_rate">Oceń</string>
<string name="title_attribouter_version">Wersja %1$s</string>
<string name="title_attribouter_contributors">Współtwórcy</string>
<string name="title_attribouter_license">Licencja</string>
<string name="title_attribouter_license_permissions">Uprawnienia</string>
<string name="title_attribouter_license_conditions">Warunki</string>
<string name="title_attribouter_license_limitations">Ograniczenia</string>
<string name="title_attribouter_more_info">Więcej informacji</string>
<string name="about_role_lead">Główny programista</string>
<string name="about_role_proofreader">Korektor tłumaczeń</string>
<string name="about_role_designer">Projektant</string>
<string name="about_role_contributor">Współtwórca</string>
<string name="about_bio_divadsn">Osiemnastolatek, zamienia kofeinę i pizzę w kod. Znany poprzednio jako Codebucket.</string>
<string name="about_bio_imintie">Druga połówka Davida Sn.</string>
<string name="about_bio_deletescape">Entuzjasta Androida oraz twórca aplikacji na niego, uwielbia memy (nawet za bardzo). Założyciel projektu Lawnchair.</string>

<!-- Strings related to crash report -->
<string name="title_activity_crash">Raport błędu</string>
<string name="crash_apologise">Wybacz mi, ale nastąpił problem!</string>
<string name="crash_cancel">Anuluj</string>
<string name="crash_send_report">Zgłoś błąd</string>
<string name="action_share">Udostępnij</string>

<!-- Strings related to dialogs -->
<string name="dialog_logout_title">Wylogowanie</string>
<string name="dialog_logout_warning">Czy chcesz się wylogować? Nie utracisz biletów powiązanych z tym urządzeniem.</string>
<string name="dialog_facebook_title">Facebook</string>
<string name="dialog_facebook_body">Polub naszą stonę aplikacji na Facebooku, aby otrzymywać najnowsze wiadomości, być na bieżąco z funkcjami i dzielić się swoimi opiniami!</string>
<string name="dialog_dont_show_again">Nie pokazuj więcej</string>
<string name="dialog_ok">Ok</string>
<string name="dialog_cancel">Anuluj</string>
<string name="dialog_close">Zamknij</string>
<string name="dialog_continue">Kontynuuj</string>
<string name="dialog_help">Pomoc</string>
<string name="dialog_yes">Tak</string>
<string name="dialog_no">Nie</string>

<!-- Disclaimer popup -->
<string name="disclaimer_title">Przeczytaj uważnie!</string>
<string name="disclaimer_body">mobileKKM jest <b>niezależnie od KKM i MPK Kraków opracowaną</b> aplikacją \"open-source\" z kodem zródłowym dostępnym na serwisie GitHub. Jej celem jest ułatwienie obsługi mobilnej wersji Krakowskiej Karty Miejskiej na urządzeniach mobilnych z systemem Android 5.0 lub wyżej.\n\nAplikacja <b>nie udostępnia</b> żadnych danych osobowych osobom trzecim, wszystkie dane są <b>bezpiecznie przesyłane</b> bezpośrednio do strony mobilnej KKM.\n\nKontakt do twórcy:\n<b>David Sn (@divadsn)\n<a href="mailto:[email protected]">[email protected]</a></b></string>
<string name="privacy_policy_title">Polityka prywatności</string>
<string name="privacy_policy_body">Ze względu na wprowadzenie Rozporządzenia o Ochronie Danych Osobowych (RODO) chcielibyśmy zwrócić Twoją uwagę na naszą politykę prywatności. Proszę przeczytaj ją uważnie.\n\nMusisz ją zaakceptować, aby przesyłać nam raporty o błędach.</string>
<string name="read_privacy_policy">Przeczytaj politykę prywatności</string>
<string name="accept">Akceptuj</string>
<string name="decline">Odrzuć</string>

<!-- Other strings -->
<string name="progress_login">Logowanie…</string>
<string name="no_browser_activity">Nie znaleziono żadnej aplikacji obsługującej adresy URL</string>
<string name="no_email_activity">Nie znaleziono żadnej aplikacji obsługującej skrzynki pocztowe</string>
<string name="press_back_again">Naciśnij ponownie \"wstecz\", aby wyjść</string>
<string name="not_implemented">Funkcja jeszcze niedostępna!</string>
<string name="login_using_kk_unavailable">Funkcja jeszcze niedostępna, więcej szczegółów wkrótce na Facebooku.</string>
<string name="session_expired">Twoja sesja wygasła, zaloguj się ponownie</string>
<string name="state_loading">Restartowanie aplikacji…</string>
<string name="tickets_provider_name">Zapisane bilety</string>
<string name="intent_chooser_file">Wybierz plik</string>
<string name="intent_chooser_email">Wyślij e-mail</string>
<string name="intent_chooser_share">Udostępnij przez</string>
<string name="purchase_warning">Zachęcamy do zakupu biletów używając strony na urządzeniu stacjonarnym</string>
</resources>
Loading

0 comments on commit 61f8086

Please sign in to comment.