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

Commit 61f8086

Browse files
authored
Improved UI and english localization (#28)
* 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
1 parent 218f696 commit 61f8086

File tree

11 files changed

+322
-155
lines changed

11 files changed

+322
-155
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ dependencies {
127127
implementation "cat.ereza:customactivityoncrash:2.2.0"
128128
implementation "me.jfenn:attribouter:0.1.3"
129129

130-
def room_version = '2.1.0-alpha01'
130+
def room_version = '2.1.0-alpha03'
131131
implementation "androidx.room:room-runtime:${room_version}"
132132
annotationProcessor "android.arch.persistence.room:compiler:${room_version}"
133133
}

app/src/main/java/de/codebucket/mkkm/activity/CrashReportActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public class CrashReportActivity extends ToolbarActivity {
3232
public static final String REPORT_EMAIL_ADDRESS = "[email protected]";
3333
public static final String REPORT_EMAIL_SUBJECT = "Błąd w mobileKKM " + BuildConfig.VERSION_NAME;
3434

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

3838
private String mStacktrace;
3939

app/src/main/java/de/codebucket/mkkm/activity/DrawerActivity.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ public void setupDrawer() {
5858
public void setupDrawerHeader(Account account) {
5959
View headerView = mNavigationView.getHeaderView(0);
6060

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

6464
TextView drawerEmail = (TextView) headerView.findViewById(R.id.drawer_header_email);
6565
drawerEmail.setText(account.getEmail());
@@ -123,13 +123,14 @@ public boolean onNavigationItemSelected(MenuItem item) {
123123
// Handle navigation view item clicks here.
124124
switch (item.getItemId()) {
125125
case R.id.nav_tickets:
126-
mWebview.loadUrl(getPageUrl("home"));
126+
mWebview.loadUrl(getPageUrl("home")); // TODO: Replace with TicketOverviewFragment
127127
break;
128128
case R.id.nav_purchase:
129-
mWebview.loadUrl(getPageUrl("ticket/buy"));
129+
Toast.makeText(this, R.string.purchase_warning, Toast.LENGTH_LONG).show();
130+
mWebview.loadUrl(getPageUrl("ticket/buy")); // TODO: Add custom webview handler for purchasing
130131
break;
131132
case R.id.nav_account:
132-
mWebview.loadUrl(getPageUrl("account"));
133+
mWebview.loadUrl(getPageUrl("account")); // TODO: Replace with UserAccountFragment
133134
break;
134135
case R.id.nav_pricing:
135136
mWebview.loadUrl("https://www.codebucket.de/mobilekkm/cennik.html");

app/src/main/res/drawable/ic_menu_coin.xml

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:height="24dp"
3+
android:width="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<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" />
7+
</vector>

app/src/main/res/layout/activity_login.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
android:layout_width="wrap_content"
4646
android:layout_height="wrap_content"
4747
android:layout_gravity="center_horizontal"
48-
android:text="@string/login_title"
48+
android:text="@string/kkm_title"
4949
android:textColor="?android:textColorPrimary"
5050
android:textSize="24sp" />
5151

app/src/main/res/layout/drawer_header_main.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
android:paddingTop="@dimen/activity_vertical_margin">
2626

2727
<TextView
28-
android:id="@+id/drawer_header_username"
28+
android:id="@+id/drawer_header_provider"
2929
android:layout_width="match_parent"
3030
android:layout_height="wrap_content"
3131
android:paddingTop="@dimen/nav_header_vertical_spacing"

app/src/main/res/menu/drawer_main.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
android:title="@string/nav_account" />
2020
<item
2121
android:id="@+id/nav_pricing"
22-
android:icon="@drawable/ic_menu_coin"
22+
android:icon="@drawable/ic_menu_coins"
2323
android:title="@string/nav_prices" />
2424
</group>
2525

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="app_description">Nieoficjalna aplikacja do obsługi mobilnej wersji KKM na urządzeniach mobilnych.</string>
4+
5+
<!-- Strings related to login -->
6+
<string name="title_activity_login">Zaloguj się do mobileKKM</string>
7+
<string name="prompt_email">Adres e-mail</string>
8+
<string name="prompt_password">Hasło</string>
9+
<string name="action_login">Zaloguj się</string>
10+
<string name="action_login_using_kk">Zaloguj się za pomocą Karty Krakowskiej</string>
11+
<string name="action_register">Nie masz konta? Zarejestruj się.</string>
12+
<string name="error_field_required">Pole wymagane</string>
13+
<string name="error_invalid_email">Nieprawidłowy adres e-mail</string>
14+
<string name="error_invalid_password">Nieprawidłowe hasło</string>
15+
<string name="error_no_network">Brak połączenia z Internetem</string>
16+
<string name="error_account">Brak konta użytkownika na urządzeniu</string>
17+
<string name="error_fingerprint">Wystąpił problem z rozpoznaniem urządzenia</string>
18+
<string name="error_unknown">Nierozpoznany problem</string>
19+
<string name="action_help">Pomoc</string>
20+
21+
<!-- Strings related to registration -->
22+
<string name="title_activity_registration">Rejestracja konta</string>
23+
<string name="registration_complete">Sprawdź swoją skrzynkę pocztową, aby zakończyć rejestrację konta</string>
24+
<string name="snackbar_open">Otwórz</string>
25+
26+
<!-- Strings related to main -->
27+
<string name="title_activity_main">Strona główna</string>
28+
<string name="navigation_drawer_open">Open navigation drawer</string>
29+
<string name="navigation_drawer_close">Close navigation drawer</string>
30+
<string name="nav_header_desc">Navigation header</string>
31+
<string name="snackbar_retry">Spróbuj ponownie</string>
32+
<string name="action_refresh">Odśwież</string>
33+
34+
<!-- Navbar navigation drawer -->
35+
<string name="nav_tickets">Aktywne bilety</string>
36+
<string name="nav_purchase">Zakup bilet</string>
37+
<string name="nav_account">Moje konto</string>
38+
<string name="nav_prices">Cennik</string>
39+
<string name="nav_backup">Kopie zapasowe</string>
40+
<string name="nav_logout">Wyloguj się</string>
41+
<string name="nav_settings">Ustawienia</string>
42+
43+
<!-- Backup and restore -->
44+
<string name="title_activity_backup">Kopie zapasowe</string>
45+
<string name="backup_howto_title">Jak to działa?</string>
46+
<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>
47+
<string name="backup_category_import">Przywróć kopie</string>
48+
<string name="backup_category_export">Utwórz kopie</string>
49+
<string name="backup_import_title">Przywróc z pliku</string>
50+
<string name="backup_import_desc">Jeśli posiadasz poprzednią kopię zapasową, mobileKKM może zaimportować ją z pliku JSON</string>
51+
<string name="backup_restore_title">Przywróć z przeglądarki</string>
52+
<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>
53+
<string name="backup_export_title">Zapisz do pliku</string>
54+
<string name="backup_export_desc">Wyeksportuj identyfikator urządzenia do pliku JSON</string>
55+
<string name="backup_permissions_not_granted">Brak wystarczających uprawnień do zapisu/odczytu</string>
56+
<string name="backup_restore_fingerprint">Wprowadź identyfikator</string>
57+
<string name="backup_invalid_fingerprint">Wprowadzony identyfikator urządzenia jest nieprawidłowy</string>
58+
<string name="backup_json_error">Nastąpił problem z kopią zapasową</string>
59+
<string name="backup_import_success">Importowanie zakończone</string>
60+
<string name="backup_wrong_account">Wybrano nieprawidłową kopię zapasową</string>
61+
<string name="backup_export_success">Eksportowanie zakończone</string>
62+
<string name="backup_export_failed">Eksportowanie nie powiodło się</string>
63+
64+
<!-- Strings related to settings -->
65+
<string name="title_activity_settings">Ustawienia</string>
66+
<string name="pref_group_general">Ogólne</string>
67+
<string name="pref_group_notifications">Powiadomienia</string>
68+
<string name="pref_group_about">O aplikacji</string>
69+
<string name="pref_disclaimer_title">Nie pokazuj komunikatu ponownie</string>
70+
<string name="pref_disclaimer_description">Wyłącz, aby wyświetlić ponownie komunikat pojawiający się po pierwszym starcie aplikacji</string>
71+
<string name="pref_enable_notifications">Włącz powiadomienia</string>
72+
<string name="pref_expiration">Informuj o upływie ważności biletu</string>
73+
<string name="pref_expiration_summary">%s wcześniej</string>
74+
<string name="pref_notification_ringtone">Dźwięk</string>
75+
<string name="pref_notification_vibrate">Wibracje</string>
76+
<string name="pref_notification_settings">Ustawienia powiadomień</string>
77+
<string name="pref_notification_settings_summary">Wybierz dźwięki i inne ustawienia systemowe</string>
78+
<string name="pref_about_title">Licencje open-source</string>
79+
<string name="pref_about_description">Poznaj współtwórców oraz użyte biblioteki</string>
80+
<string name="pref_version_title">Aplikacja mobileKKM</string>
81+
<string name="pref_version_description">wersja %s-%s.%s</string>
82+
<string name="pref_restart">Zrestartuj aplikację</string>
83+
84+
<!-- Expiration values -->
85+
<string name="expiration_oneday">1 dzień</string>
86+
<string name="expiration_threedays">3 dni</string>
87+
<string name="expiration_fivedays">5 dni</string>
88+
<string name="expiration_oneweek">1 tydzień</string>
89+
<string name="expiration_twoweeks">2 tygodnie</string>
90+
<string name="expiration_onemonth">1 miesiąc</string>
91+
92+
<!-- Notification -->
93+
<string name="notification_channel_expiry">Ważność biletów</string>
94+
<string name="notification_channel_expiry_desc">Informacje o upływie ważności biletu</string>
95+
<string name="expiration_notification_title">Twój bilet wkrótce straci ważność</string>
96+
<string name="expiration_notification_msg">Termin ważności od %s do %s</string>
97+
98+
<!-- Attribouter screen -->
99+
<string name="about_facebook_like">Polub nas</string>
100+
<string name="title_attribouter_about">O aplikacji</string>
101+
<string name="title_attribouter_licenses">Licencje open-source</string>
102+
<string name="title_attribouter_email">Adres e-mail</string>
103+
<string name="title_attribouter_website">Strona internetowa</string>
104+
<string name="title_attribouter_rate">Oceń</string>
105+
<string name="title_attribouter_version">Wersja %1$s</string>
106+
<string name="title_attribouter_contributors">Współtwórcy</string>
107+
<string name="title_attribouter_license">Licencja</string>
108+
<string name="title_attribouter_license_permissions">Uprawnienia</string>
109+
<string name="title_attribouter_license_conditions">Warunki</string>
110+
<string name="title_attribouter_license_limitations">Ograniczenia</string>
111+
<string name="title_attribouter_more_info">Więcej informacji</string>
112+
<string name="about_role_lead">Główny programista</string>
113+
<string name="about_role_proofreader">Korektor tłumaczeń</string>
114+
<string name="about_role_designer">Projektant</string>
115+
<string name="about_role_contributor">Współtwórca</string>
116+
<string name="about_bio_divadsn">Osiemnastolatek, zamienia kofeinę i pizzę w kod. Znany poprzednio jako Codebucket.</string>
117+
<string name="about_bio_imintie">Druga połówka Davida Sn.</string>
118+
<string name="about_bio_deletescape">Entuzjasta Androida oraz twórca aplikacji na niego, uwielbia memy (nawet za bardzo). Założyciel projektu Lawnchair.</string>
119+
120+
<!-- Strings related to crash report -->
121+
<string name="title_activity_crash">Raport błędu</string>
122+
<string name="crash_apologise">Wybacz mi, ale nastąpił problem!</string>
123+
<string name="crash_cancel">Anuluj</string>
124+
<string name="crash_send_report">Zgłoś błąd</string>
125+
<string name="action_share">Udostępnij</string>
126+
127+
<!-- Strings related to dialogs -->
128+
<string name="dialog_logout_title">Wylogowanie</string>
129+
<string name="dialog_logout_warning">Czy chcesz się wylogować? Nie utracisz biletów powiązanych z tym urządzeniem.</string>
130+
<string name="dialog_facebook_title">Facebook</string>
131+
<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>
132+
<string name="dialog_dont_show_again">Nie pokazuj więcej</string>
133+
<string name="dialog_ok">Ok</string>
134+
<string name="dialog_cancel">Anuluj</string>
135+
<string name="dialog_close">Zamknij</string>
136+
<string name="dialog_continue">Kontynuuj</string>
137+
<string name="dialog_help">Pomoc</string>
138+
<string name="dialog_yes">Tak</string>
139+
<string name="dialog_no">Nie</string>
140+
141+
<!-- Disclaimer popup -->
142+
<string name="disclaimer_title">Przeczytaj uważnie!</string>
143+
<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>
144+
<string name="privacy_policy_title">Polityka prywatności</string>
145+
<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>
146+
<string name="read_privacy_policy">Przeczytaj politykę prywatności</string>
147+
<string name="accept">Akceptuj</string>
148+
<string name="decline">Odrzuć</string>
149+
150+
<!-- Other strings -->
151+
<string name="progress_login">Logowanie…</string>
152+
<string name="no_browser_activity">Nie znaleziono żadnej aplikacji obsługującej adresy URL</string>
153+
<string name="no_email_activity">Nie znaleziono żadnej aplikacji obsługującej skrzynki pocztowe</string>
154+
<string name="press_back_again">Naciśnij ponownie \"wstecz\", aby wyjść</string>
155+
<string name="not_implemented">Funkcja jeszcze niedostępna!</string>
156+
<string name="login_using_kk_unavailable">Funkcja jeszcze niedostępna, więcej szczegółów wkrótce na Facebooku.</string>
157+
<string name="session_expired">Twoja sesja wygasła, zaloguj się ponownie</string>
158+
<string name="state_loading">Restartowanie aplikacji…</string>
159+
<string name="tickets_provider_name">Zapisane bilety</string>
160+
<string name="intent_chooser_file">Wybierz plik</string>
161+
<string name="intent_chooser_email">Wyślij e-mail</string>
162+
<string name="intent_chooser_share">Udostępnij przez</string>
163+
<string name="purchase_warning">Zachęcamy do zakupu biletów używając strony na urządzeniu stacjonarnym</string>
164+
</resources>

0 commit comments

Comments
 (0)