diff --git a/.gitignore b/.gitignore
index 047ad745..ef057948 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,7 @@ captures/
.idea/modules.xml
# Comment next line if keeping position of elements in Navigation Editor is relevant for you
.idea/navEditor.xml
+.idea/copyright/profiles_settings.xml
# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
@@ -80,3 +81,5 @@ lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/
+
+app/schemas/
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index 61f16974..00000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index f834a4ed..e4b2b0ee 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,6 +5,12 @@
+
+
+
+
+
+
diff --git a/agendacalendarview/build.gradle b/agendacalendarview/build.gradle
index 28cbb26d..824ce517 100644
--- a/agendacalendarview/build.gradle
+++ b/agendacalendarview/build.gradle
@@ -49,6 +49,6 @@ dependencies {
// other libraries
//implementation 'se.emilsjolander:stickylistheaders:2.7.0'
- implementation 'com.github.edisonw:StickyListHeaders:master-SNAPSHOT'
+ implementation 'com.github.edisonw:StickyListHeaders:master-SNAPSHOT@aar'
implementation 'io.reactivex:rxjava:1.1.1'
}
diff --git a/app/build.gradle b/app/build.gradle
index 3abf1031..11c43b78 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -131,7 +131,7 @@ dependencies {
implementation("com.github.ozodrukh:CircularReveal:2.0.1@aar") {transitive = true}
implementation "com.heinrichreimersoftware:material-intro:1.5.8" // do not update
implementation "com.jaredrummler:colorpicker:1.0.2"
- implementation "com.squareup.okhttp3:okhttp:3.12.0"
+ implementation "com.squareup.okhttp3:okhttp:3.12.2"
implementation "com.theartofdev.edmodo:android-image-cropper:2.8.0" // do not update
implementation "com.wdullaer:materialdatetimepicker:4.1.2"
implementation "com.yuyh.json:jsonviewer:1.0.6"
@@ -142,7 +142,7 @@ dependencies {
implementation "org.jsoup:jsoup:1.10.1"
implementation "pl.droidsonroids.gif:android-gif-drawable:1.2.15"
//implementation "se.emilsjolander:stickylistheaders:2.7.0"
- implementation 'com.github.edisonw:StickyListHeaders:master-SNAPSHOT'
+ implementation 'com.github.edisonw:StickyListHeaders:master-SNAPSHOT@aar'
implementation "uk.co.samuelwall:material-tap-target-prompt:2.14.0"
implementation project(":agendacalendarview")
@@ -152,6 +152,24 @@ dependencies {
implementation project(":nachos")
//implementation project(":Navigation")
implementation project(":szkolny-font")
+
+ debugImplementation "com.github.ChuckerTeam.Chucker:library:3.0.1"
+ releaseImplementation "com.github.ChuckerTeam.Chucker:library-no-op:3.0.1"
+
+ //implementation 'com.github.wulkanowy:uonet-request-signer:master-SNAPSHOT'
+ //implementation 'com.github.kuba2k2.uonet-request-signer:android:master-63f094b14a-1'
+
+ //implementation "org.redundent:kotlin-xml-builder:1.5.3"
+
+ implementation "io.github.wulkanowy:signer-android:0.1.1"
+
+ implementation "androidx.work:work-runtime-ktx:${versions.work}"
+
+ implementation 'com.hypertrack:hyperlog:0.0.10'
+
+ implementation 'com.github.kuba2k2:RecyclerTabLayout:700f980584'
+
+ implementation 'com.github.kuba2k2:Tachyon:551943a6b5'
}
repositories {
mavenCentral()
diff --git a/app/proguard/app.pro b/app/proguard/app.pro
index 162b8fa9..aeecf18d 100644
--- a/app/proguard/app.pro
+++ b/app/proguard/app.pro
@@ -39,4 +39,13 @@
-keep class okhttp3.** { *; }
--keep class com.google.android.material.tabs.** {*;}
\ No newline at end of file
+-keep class com.google.android.material.tabs.** {*;}
+
+# ServiceLoader support
+ -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
+-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
+
+# Most of volatile fields are updated with AFU and should not be mangled
+-keepclassmembernames class kotlinx.** {
+ volatile ;
+}
\ No newline at end of file
diff --git a/app/sampledata/check/ic_check.xml b/app/sampledata/check/ic_check.xml
new file mode 100644
index 00000000..f621023c
--- /dev/null
+++ b/app/sampledata/check/ic_check.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/sampledata/settings/ic_settings.xml b/app/sampledata/settings/ic_settings.xml
new file mode 100644
index 00000000..efaaa4ee
--- /dev/null
+++ b/app/sampledata/settings/ic_settings.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 991589de..d842cb6d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,10 +15,14 @@
android:theme="@style/SplashTheme"
android:usesCleartextTraffic="true"
tools:ignore="UnusedAttribute">
+
@@ -29,7 +33,7 @@
@@ -39,7 +43,7 @@
android:label="@string/app_name"
android:theme="@style/AppTheme" />
@@ -101,22 +105,23 @@
android:excludeFromRecents="true"
android:noHistory="true"
android:theme="@style/AppTheme.NoDisplay" />
-
+
-
-
-
@@ -169,7 +174,6 @@
android:name="android.appwidget.provider"
android:resource="@xml/widget_notifications_info" />
-
@@ -188,7 +192,6 @@
-
@@ -196,6 +199,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -214,10 +235,7 @@
-
+
@@ -231,4 +249,4 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html
index eab231b6..d44c0246 100644
--- a/app/src/main/assets/pl-changelog.html
+++ b/app/src/main/assets/pl-changelog.html
@@ -31,57 +31,11 @@
-Wersja 3.1.1, 2019-10-09
+Wersja 4.0, 2019-jeszcze-nie-wiem-kiedy
- Librus: poprawiona synchronizacja kategorii i kolorów ocen.
- Zmieniony kolor dolnego paska w ciemnym motywie.
- Zaktualizowany licznik czasu lekcji.
-
-
-Wersja 3.1, 2019-09-29
-
- Poprawiony interfejs zadań domowych.
- Librus: wyświetlanie komentarzy ocen.
- Librus: wyświetlanie nieobecności nauczycieli w Terminarzu.
- Librus: usprawniona synchronizacja ocen.
- Poprawki angielskiego tłumaczenia.
-
-
-Wersja 3.0.3, 2019-09-26
-
- Librus: poprawka kilku błędów synchronizacji.
- Vulcan: prawidłowe oznaczanie wiadomości jako przeczytana.
- Vulcan: poprawiona synchronizacja wiadomości i frekwencji.
- Vulcan: poprawka błędów logowania.
-
-
-Wersja 3.0.2, 2019-09-24
-
- Librus: pobieranie Bieżących ocen opisowych.
- Poprawki UI: kolor ikon paska statusu w jasnym motywie.
- Poprawka braku skanera QR do przekazywania powiadomień.
- Poprawka wyboru koloru i daty własnego wydarzenia, które crashowały aplikację.
-
-
-Wersja 3.0.1, 2019-09-19
-
- Librus: Poprawa błędu synchronizacji.
- Poprawki UI związane z paskiem nawigacji.
- Mobidziennik: Pobieranie ocen w niektórych przedmiotach.
-
-
-Wersja 3.0, 2019-09-13
-
- Nowy wygląd i sposób nawigacji w całej aplikacji.
- Menu nawigacji można teraz otworzyć przyciskiem na dolnym pasku . Pociągnięcie w górę tego paska wyświetla menu kontekstowe dotyczące danego widoku.
- Założyliśmy serwer Discord! https://discord.gg/n9e8pWr
-
- Librus: poprawka powielonych ogłoszeń szkolnych.
- Naprawiłem błąd nieskończonej synchronizacji w Vulcanie.
- Naprawiłem crash launchera przy dodaniu widgetu.
- Naprawiłem częste crashe związane z widokiem kalendarza.
- Nowe, ładniejsze (choć trochę) motywy kolorów.
- Dużo drobnych poprawek UI i działania aplikacji.
+ UWAGA. To jest wersja in-development. Wiele funkcji może nie działać prawidłowo (lub wcale), co oznacza tylko że nie zostały jeszcze przeniesione
+ z wersji 3.x. Proszę o cierpliwość oraz nie udostępnianie tej wersji nikomu .
+ Bardzo dużo zmian
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/emoji_glasses.xml b/app/src/main/res/drawable/emoji_glasses.xml
new file mode 100644
index 00000000..88460e0d
--- /dev/null
+++ b/app/src/main/res/drawable/emoji_glasses.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/emoji_neutral.xml b/app/src/main/res/drawable/emoji_neutral.xml
new file mode 100644
index 00000000..27f125dd
--- /dev/null
+++ b/app/src/main/res/drawable/emoji_neutral.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/emoji_no_face.xml b/app/src/main/res/drawable/emoji_no_face.xml
new file mode 100644
index 00000000..46a67e51
--- /dev/null
+++ b/app/src/main/res/drawable/emoji_no_face.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/emoji_sad.xml b/app/src/main/res/drawable/emoji_sad.xml
new file mode 100644
index 00000000..d4f0cea0
--- /dev/null
+++ b/app/src/main/res/drawable/emoji_sad.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/emoji_smiling.xml b/app/src/main/res/drawable/emoji_smiling.xml
new file mode 100644
index 00000000..94fbdbd9
--- /dev/null
+++ b/app/src/main/res/drawable/emoji_smiling.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/header.png b/app/src/main/res/drawable/header.png
new file mode 100644
index 00000000..365f66e9
Binary files /dev/null and b/app/src/main/res/drawable/header.png differ
diff --git a/app/src/main/res/drawable/ic_no_notifications.xml b/app/src/main/res/drawable/ic_no_notifications.xml
new file mode 100644
index 00000000..b94f7e12
--- /dev/null
+++ b/app/src/main/res/drawable/ic_no_notifications.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_no_timetable.xml b/app/src/main/res/drawable/ic_no_timetable.xml
new file mode 100644
index 00000000..d3a52741
--- /dev/null
+++ b/app/src/main/res/drawable/ic_no_timetable.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_sync.xml b/app/src/main/res/drawable/ic_sync.xml
new file mode 100644
index 00000000..bbed3d7f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_sync.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_timetable.xml b/app/src/main/res/drawable/ic_timetable.xml
new file mode 100644
index 00000000..be92d448
--- /dev/null
+++ b/app/src/main/res/drawable/ic_timetable.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/logo_dzienniczek.png b/app/src/main/res/drawable/logo_dzienniczek.png
new file mode 100644
index 00000000..a8ec0993
Binary files /dev/null and b/app/src/main/res/drawable/logo_dzienniczek.png differ
diff --git a/app/src/main/res/drawable/logo_idziennik.png b/app/src/main/res/drawable/logo_idziennik.png
new file mode 100644
index 00000000..7289caa6
Binary files /dev/null and b/app/src/main/res/drawable/logo_idziennik.png differ
diff --git a/app/src/main/res/drawable/logo_librus.png b/app/src/main/res/drawable/logo_librus.png
new file mode 100644
index 00000000..9749e7c0
Binary files /dev/null and b/app/src/main/res/drawable/logo_librus.png differ
diff --git a/app/src/main/res/drawable/logo_mobidziennik.png b/app/src/main/res/drawable/logo_mobidziennik.png
new file mode 100644
index 00000000..0d4d853f
Binary files /dev/null and b/app/src/main/res/drawable/logo_mobidziennik.png differ
diff --git a/app/src/main/res/drawable/logo_synergia.png b/app/src/main/res/drawable/logo_synergia.png
new file mode 100644
index 00000000..9944ae64
Binary files /dev/null and b/app/src/main/res/drawable/logo_synergia.png differ
diff --git a/app/src/main/res/drawable/logo_vulcan.png b/app/src/main/res/drawable/logo_vulcan.png
new file mode 100644
index 00000000..3644cd15
Binary files /dev/null and b/app/src/main/res/drawable/logo_vulcan.png differ
diff --git a/app/src/main/res/drawable/timetable_lesson_annotation.xml b/app/src/main/res/drawable/timetable_lesson_annotation.xml
new file mode 100644
index 00000000..4c89f473
--- /dev/null
+++ b/app/src/main/res/drawable/timetable_lesson_annotation.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/timetable_lesson_bg_dark.xml b/app/src/main/res/drawable/timetable_lesson_bg_dark.xml
new file mode 100644
index 00000000..718c9f4e
--- /dev/null
+++ b/app/src/main/res/drawable/timetable_lesson_bg_dark.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/timetable_lesson_bg_light.xml b/app/src/main/res/drawable/timetable_lesson_bg_light.xml
new file mode 100644
index 00000000..7a17b6cd
--- /dev/null
+++ b/app/src/main/res/drawable/timetable_lesson_bg_light.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/timetable_subject_color_rounded.xml b/app/src/main/res/drawable/timetable_subject_color_rounded.xml
new file mode 100644
index 00000000..5466dfa2
--- /dev/null
+++ b/app/src/main/res/drawable/timetable_subject_color_rounded.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/unread_red_circle.xml b/app/src/main/res/drawable/unread_red_circle.xml
new file mode 100644
index 00000000..8679f344
--- /dev/null
+++ b/app/src/main/res/drawable/unread_red_circle.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index f22cb668..d7aaa2ab 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -8,16 +8,17 @@
android:orientation="vertical"
android:visibility="visible">
-
+
+
-
-
-
+
+
+
diff --git a/app/src/main/res/layout/card_home_lucky_number.xml b/app/src/main/res/layout/card_home_lucky_number.xml
new file mode 100644
index 00000000..40069c32
--- /dev/null
+++ b/app/src/main/res/layout/card_home_lucky_number.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/card_home_timetable.xml b/app/src/main/res/layout/card_home_timetable.xml
new file mode 100644
index 00000000..2b456a35
--- /dev/null
+++ b/app/src/main/res/layout/card_home_timetable.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_event_manual.xml b/app/src/main/res/layout/dialog_event_manual.xml
index d26685c6..0acaf493 100644
--- a/app/src/main/res/layout/dialog_event_manual.xml
+++ b/app/src/main/res/layout/dialog_event_manual.xml
@@ -97,7 +97,8 @@
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:text="@string/dialog_event_manual_share_first_notice"
- android:visibility="gone" />
+ android:visibility="gone"
+ tools:visibility="visible" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_lesson_details.xml b/app/src/main/res/layout/dialog_lesson_details.xml
new file mode 100644
index 00000000..616221b0
--- /dev/null
+++ b/app/src/main/res/layout/dialog_lesson_details.xml
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index b2df5150..10b71cdc 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -1,6 +1,5 @@
@@ -31,33 +30,71 @@
android:layout_margin="8dp"
tools:text="TextView" />
-
-
-
+ android:orientation="vertical"
+ tools:visibility="visible"
+ tools:ignore="HardcodedText">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_home_v2.xml b/app/src/main/res/layout/fragment_home_v2.xml
new file mode 100644
index 00000000..63612c70
--- /dev/null
+++ b/app/src/main/res/layout/fragment_home_v2.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_login_chooser.xml b/app/src/main/res/layout/fragment_login_chooser.xml
index 78201b71..9b7937fa 100644
--- a/app/src/main/res/layout/fragment_login_chooser.xml
+++ b/app/src/main/res/layout/fragment_login_chooser.xml
@@ -151,6 +151,16 @@
+
+
+
diff --git a/app/src/main/res/layout/fragment_login_summary.xml b/app/src/main/res/layout/fragment_login_summary.xml
index c6937f66..0e3058bd 100644
--- a/app/src/main/res/layout/fragment_login_summary.xml
+++ b/app/src/main/res/layout/fragment_login_summary.xml
@@ -72,7 +72,8 @@
android:layout_height="0dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
- android:layout_weight="1">
+ android:layout_weight="1"
+ tools:listitem="@layout/row_login_profile_list_item">
diff --git a/app/src/main/res/layout/fragment_login_sync.xml b/app/src/main/res/layout/fragment_login_sync.xml
index ab0cce52..a0b072c6 100644
--- a/app/src/main/res/layout/fragment_login_sync.xml
+++ b/app/src/main/res/layout/fragment_login_sync.xml
@@ -51,6 +51,7 @@
android:layout_marginTop="8dp"
android:layout_marginRight="24dp"
android:layout_marginBottom="8dp"
+ android:max="100"
android:indeterminate="false" />
diff --git a/app/src/main/res/layout/fragment_notifications.xml b/app/src/main/res/layout/fragment_notifications.xml
index 96e7cdfd..e63cd2e9 100644
--- a/app/src/main/res/layout/fragment_notifications.xml
+++ b/app/src/main/res/layout/fragment_notifications.xml
@@ -1,35 +1,29 @@
-
+
-
-
+ android:layout_height="match_parent"
+ tools:listitem="@layout/row_notifications_item"
+ tools:visibility="gone" />
+ tools:visibility="visible" />
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_timetable_v2.xml b/app/src/main/res/layout/fragment_timetable_v2.xml
new file mode 100644
index 00000000..8b30d15b
--- /dev/null
+++ b/app/src/main/res/layout/fragment_timetable_v2.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_timetable_v2_day.xml b/app/src/main/res/layout/fragment_timetable_v2_day.xml
new file mode 100644
index 00000000..a94602d3
--- /dev/null
+++ b/app/src/main/res/layout/fragment_timetable_v2_day.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/message_fragment.xml b/app/src/main/res/layout/message_fragment.xml
new file mode 100644
index 00000000..a404053f
--- /dev/null
+++ b/app/src/main/res/layout/message_fragment.xml
@@ -0,0 +1,353 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/row_dialog_teacher_absence_item.xml b/app/src/main/res/layout/row_dialog_teacher_absence_item.xml
index 6aacce23..8d303464 100644
--- a/app/src/main/res/layout/row_dialog_teacher_absence_item.xml
+++ b/app/src/main/res/layout/row_dialog_teacher_absence_item.xml
@@ -36,6 +36,15 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Jan Kowalski"/>
+
+
diff --git a/app/src/main/res/layout/row_login_profile_list_item.xml b/app/src/main/res/layout/row_login_profile_list_item.xml
index 054e0ad7..322fad71 100644
--- a/app/src/main/res/layout/row_login_profile_list_item.xml
+++ b/app/src/main/res/layout/row_login_profile_list_item.xml
@@ -1,6 +1,5 @@
+ android:gravity="center_vertical"
+ android:focusable="true">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/row_notifications_item.xml b/app/src/main/res/layout/row_notifications_item.xml
index 1e079aab..3ef2f6d8 100644
--- a/app/src/main/res/layout/row_notifications_item.xml
+++ b/app/src/main/res/layout/row_notifications_item.xml
@@ -1,75 +1,35 @@
+ android:orientation="vertical"
+ android:padding="8dp"
+ android:background="?selectableItemBackground">
-
+ android:textAppearance="@style/NavView.TextView.Medium"
+ tools:text="Dzisiaj 1 to szczęśliwy numerek" />
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/timetable_free_day.xml b/app/src/main/res/layout/timetable_free_day.xml
new file mode 100644
index 00000000..96067d65
--- /dev/null
+++ b/app/src/main/res/layout/timetable_free_day.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/timetable_hour_label.xml b/app/src/main/res/layout/timetable_hour_label.xml
new file mode 100644
index 00000000..4daa29c6
--- /dev/null
+++ b/app/src/main/res/layout/timetable_hour_label.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/timetable_lesson.xml b/app/src/main/res/layout/timetable_lesson.xml
new file mode 100644
index 00000000..0e2d4cdc
--- /dev/null
+++ b/app/src/main/res/layout/timetable_lesson.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/timetable_no_lessons.xml b/app/src/main/res/layout/timetable_no_lessons.xml
new file mode 100644
index 00000000..a15aa42a
--- /dev/null
+++ b/app/src/main/res/layout/timetable_no_lessons.xml
@@ -0,0 +1,14 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/timetable_no_timetable.xml b/app/src/main/res/layout/timetable_no_timetable.xml
new file mode 100644
index 00000000..b69d762b
--- /dev/null
+++ b/app/src/main/res/layout/timetable_no_timetable.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/nav_login.xml b/app/src/main/res/navigation/nav_login.xml
index 825b646f..902daba7 100644
--- a/app/src/main/res/navigation/nav_login.xml
+++ b/app/src/main/res/navigation/nav_login.xml
@@ -21,9 +21,6 @@
-
-
-
-
-
Break
Lesson cancelled
Lesson change
+ Shifted lesson
Timetable change
Loading…
Allow registration
@@ -446,7 +447,8 @@
Absence
Excused absence
School announcement: %s
- %s on lesson %s z %s
+ %1$s on lesson %2$s on day %3$s
+ %1$s on day %3$s
Late
Excused late
Notification about data downloading
@@ -458,7 +460,8 @@
Notifications about new versions of the app
App updates
Downloading update…
- %s %s from %s
+ %1$s on %2$s from %3$s
+ %1$s on %2$s
unknown subject
Cancel
Szkolny.eu: error
@@ -469,6 +472,7 @@
Update
New grade (%s) from %s
Homework from %s for %s
+ Homework for %s
Today %d is the lucky number.
The lucky number for %s is %d.
The lucky number for tomorrow is %d.
@@ -523,7 +527,7 @@
Settings
Remove profile
Are you sure?
- You are trying to remove profile %s. This means removing this profile\'s data (grades, timetables, events…) from the app.\n\nYou\'ll be able to restore most of the data by logging in again.\n\nDo you really want to remove profile %s?
+ You are trying to remove profile %s . This means removing this profile\'s data (grades, timetables, events…) from the app.\n\nYou\'ll be able to restore most of the data by logging in again.\n\nDo you really want to remove profile %s?
Never
Later
Rate now
@@ -544,7 +548,7 @@
Open-source licenses
Privacy policy
E-register
- © Kuba Szczodrzyński September 2018 - October 2019
+ © Kuba Szczodrzyński && Kacper Ziubryniewicz\nSeptember 2018 - November 2019
Click to check for updates
Update
Version
@@ -856,4 +860,14 @@
Getting school free days
Show teacher absences in Agenda
Mark everything as read
+ App language
+ "English "
+ Change app language
+ Notice. This feature may not work on some devices or in some parts of the app.
+ Discord server
+ Join our Discord community!
+ Use system language
+ (child)
+ (parent)
+ Syncing...
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index b7deaa68..dc9d55f7 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -3,4 +3,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/errors.xml b/app/src/main/res/values/errors.xml
new file mode 100644
index 00000000..e6718985
--- /dev/null
+++ b/app/src/main/res/values/errors.xml
@@ -0,0 +1,288 @@
+
+
+
+
+ ERROR_REQUEST_FAILURE
+ ERROR_REQUEST_HTTP_400
+ ERROR_REQUEST_HTTP_401
+ ERROR_REQUEST_HTTP_403
+ ERROR_REQUEST_HTTP_404
+ ERROR_REQUEST_HTTP_405
+ ERROR_REQUEST_HTTP_410
+ ERROR_REQUEST_HTTP_500
+ ERROR_RESPONSE_EMPTY
+ ERROR_LOGIN_DATA_MISSING
+ ERROR_LOGIN_DATA_INVALID
+ ERROR_PROFILE_MISSING
+ ERROR_INVALID_LOGIN_MODE
+ ERROR_LOGIN_METHOD_NOT_SATISFIED
+ ERROR_NOT_IMPLEMENTED
+
+ ERROR_NO_STUDENTS_IN_ACCOUNT
+
+ CODE_INTERNAL_LIBRUS_ACCOUNT_410
+ CODE_INTERNAL_LIBRUS_SYNERGIA_EXPIRED
+ ERROR_LOGIN_LIBRUS_API_CAPTCHA_NEEDED
+ ERROR_LOGIN_LIBRUS_API_CONNECTION_PROBLEMS
+ ERROR_LOGIN_LIBRUS_API_INVALID_CLIENT
+ ERROR_LOGIN_LIBRUS_API_REG_ACCEPT_NEEDED
+ ERROR_LOGIN_LIBRUS_API_CHANGE_PASSWORD_ERROR
+ ERROR_LOGIN_LIBRUS_API_PASSWORD_CHANGE_REQUIRED
+ ERROR_LOGIN_LIBRUS_API_INVALID_LOGIN
+ ERROR_LOGIN_LIBRUS_API_OTHER
+ ERROR_LOGIN_LIBRUS_PORTAL_CSRF_MISSING
+ ERROR_LOGIN_LIBRUS_PORTAL_NOT_ACTIVATED
+ ERROR_LOGIN_LIBRUS_PORTAL_ACTION_ERROR
+ ERROR_LOGIN_LIBRUS_PORTAL_SYNERGIA_TOKEN_MISSING
+ ERROR_LIBRUS_API_TOKEN_EXPIRED
+ ERROR_LIBRUS_API_INSUFFICIENT_SCOPES
+ ERROR_LIBRUS_API_OTHER
+ ERROR_LIBRUS_API_ACCESS_DENIED
+ ERROR_LIBRUS_API_RESOURCE_NOT_FOUND
+ ERROR_LIBRUS_API_DATA_NOT_FOUND
+ ERROR_LIBRUS_API_TIMETABLE_NOT_PUBLIC
+ ERROR_LIBRUS_API_RESOURCE_ACCESS_DENIED
+ ERROR_LIBRUS_API_INVALID_REQUEST_PARAMS
+ ERROR_LIBRUS_API_INCORRECT_ENDPOINT
+ ERROR_LIBRUS_API_LUCKY_NUMBER_NOT_ACTIVE
+ ERROR_LIBRUS_API_NOTES_NOT_ACTIVE
+ ERROR_LOGIN_LIBRUS_SYNERGIA_NO_TOKEN
+ ERROR_LOGIN_LIBRUS_SYNERGIA_TOKEN_INVALID
+ ERROR_LOGIN_LIBRUS_SYNERGIA_NO_SESSION_ID
+ ERROR_LIBRUS_MESSAGES_ACCESS_DENIED
+ ERROR_LIBRUS_SYNERGIA_ACCESS_DENIED
+ ERROR_LOGIN_LIBRUS_MESSAGES_NO_SESSION_ID
+ ERROR_LIBRUS_PORTAL_ACCESS_DENIED
+ ERROR_LIBRUS_PORTAL_API_DISABLED
+ ERROR_LIBRUS_PORTAL_SYNERGIA_DISCONNECTED
+ ERROR_LIBRUS_PORTAL_OTHER
+ ERROR_LIBRUS_PORTAL_SYNERGIA_NOT_FOUND
+ ERROR_LOGIN_LIBRUS_PORTAL_OTHER
+ ERROR_LOGIN_LIBRUS_PORTAL_CODE_EXPIRED
+ ERROR_LOGIN_LIBRUS_PORTAL_CODE_REVOKED
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_CLIENT_ID
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_CODE
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_REFRESH
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_REDIRECT
+ ERROR_LOGIN_LIBRUS_PORTAL_UNSUPPORTED_GRANT
+ ERROR_LOGIN_LIBRUS_PORTAL_INVALID_CLIENT_ID
+ ERROR_LOGIN_LIBRUS_PORTAL_REFRESH_INVALID
+ ERROR_LOGIN_LIBRUS_PORTAL_REFRESH_REVOKED
+ ERROR_LIBRUS_SYNERGIA_OTHER
+ ERROR_LIBRUS_SYNERGIA_MAINTENANCE
+ ERROR_LIBRUS_MESSAGES_MAINTENANCE
+ ERROR_LIBRUS_MESSAGES_ERROR
+ ERROR_LIBRUS_MESSAGES_OTHER
+ ERROR_LOGIN_LIBRUS_MESSAGES_INVALID_LOGIN
+ ERROR_LOGIN_LIBRUS_PORTAL_INVALID_LOGIN
+ ERROR_LIBRUS_API_MAINTENANCE
+
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_LOGIN
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_OLD_PASSWORD
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_DEVICE
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_ARCHIVED
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_MAINTENANCE
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_ADDRESS
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_OTHER
+ ERROR_MOBIDZIENNIK_WEB_ACCESS_DENIED
+ ERROR_MOBIDZIENNIK_WEB_NO_SESSION_KEY
+ ERROR_MOBIDZIENNIK_WEB_NO_SESSION_VALUE
+ ERROR_MOBIDZIENNIK_WEB_NO_SERVER_ID
+ ERROR_MOBIDZIENNIK_WEB_INVALID_RESPONSE
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_NO_SESSION_ID
+
+ ERROR_LOGIN_VULCAN_INVALID_SYMBOL
+ ERROR_LOGIN_VULCAN_INVALID_TOKEN
+ ERROR_LOGIN_VULCAN_INVALID_PIN
+ ERROR_LOGIN_VULCAN_INVALID_PIN_0_REMAINING
+ ERROR_LOGIN_VULCAN_INVALID_PIN_1_REMAINING
+ ERROR_LOGIN_VULCAN_INVALID_PIN_2_REMAINING
+ ERROR_LOGIN_VULCAN_EXPIRED_TOKEN
+ ERROR_LOGIN_VULCAN_OTHER
+ ERROR_LOGIN_VULCAN_ONLY_KINDERGARTEN
+ ERROR_LOGIN_VULCAN_NO_PUPILS
+ ERROR_VULCAN_API_MAINTENANCE
+ ERROR_VULCAN_API_BAD_REQUEST
+ ERROR_VULCAN_API_OTHER
+
+ ERROR_LOGIN_IDZIENNIK_WEB_INVALID_LOGIN
+ ERROR_LOGIN_IDZIENNIK_WEB_INVALID_SCHOOL_NAME
+ ERROR_LOGIN_IDZIENNIK_WEB_PASSWORD_CHANGE_NEEDED
+ ERROR_LOGIN_IDZIENNIK_WEB_MAINTENANCE
+ ERROR_LOGIN_IDZIENNIK_WEB_SERVER_ERROR
+ ERROR_LOGIN_IDZIENNIK_WEB_OTHER
+ ERROR_LOGIN_IDZIENNIK_WEB_API_NO_ACCESS
+ ERROR_LOGIN_IDZIENNIK_WEB_NO_SESSION
+ ERROR_LOGIN_IDZIENNIK_WEB_NO_AUTH
+ ERROR_LOGIN_IDZIENNIK_WEB_NO_BEARER
+ ERROR_IDZIENNIK_WEB_ACCESS_DENIED
+ ERROR_IDZIENNIK_WEB_OTHER
+ ERROR_IDZIENNIK_WEB_MAINTENANCE
+ ERROR_IDZIENNIK_WEB_SERVER_ERROR
+ ERROR_IDZIENNIK_WEB_PASSWORD_CHANGE_NEEDED
+ ERROR_LOGIN_IDZIENNIK_FIRST_NO_SCHOOL_YEAR
+ ERROR_IDZIENNIK_WEB_REQUEST_NO_DATA
+ ERROR_IDZIENNIK_API_ACCESS_DENIED
+ ERROR_IDZIENNIK_API_OTHER
+
+ ERROR_TEMPLATE_WEB_OTHER
+
+ EXCEPTION_API_TASK
+ EXCEPTION_LOGIN_LIBRUS_API_TOKEN
+ EXCEPTION_LOGIN_LIBRUS_PORTAL_TOKEN
+ EXCEPTION_LIBRUS_PORTAL_SYNERGIA_TOKEN
+ EXCEPTION_LIBRUS_API_REQUEST
+ EXCEPTION_LIBRUS_SYNERGIA_REQUEST
+ EXCEPTION_MOBIDZIENNIK_WEB_REQUEST
+ EXCEPTION_VULCAN_API_REQUEST
+ EXCEPTION_NOTIFY_AND_SYNC
+ EXCEPTION_LIBRUS_MESSAGES_REQUEST
+ EXCEPTION_IDZIENNIK_WEB_REQUEST
+ EXCEPTION_IDZIENNIK_WEB_API_REQUEST
+ EXCEPTION_IDZIENNIK_API_REQUEST
+
+ LOGIN_NO_ARGUMENTS
+
+ Błąd odpowiedzi serwera
+ Błąd serwera: nieprawidłowe zapytanie
+ Błąd serwera: odmowa dostępu
+ Błąd serwera: dostęp zabroniony
+ Błąd serwera: plik nie znaleziony
+ Błąd serwera: nieprawidłowa metoda zapytania
+ Błąd serwera: odpowiedź niedostępna
+ Wewnętrzny błąd serwera
+ Brak odpowiedzi serwera
+ Dane logowania niekompletne
+ Nieprawidłowe dane logowania
+ Profil nie został ustawiony
+ Nieprawidłowy sposób logowania
+ Nie można wywołać metody logowania
+ Nie zaimplementowano
+
+ Brak uczniów przypisanych do konta
+
+ CODE_INTERNAL_LIBRUS_ACCOUNT_410
+ CODE_INTERNAL_LIBRUS_SYNERGIA_EXPIRED
+ Wymagane wypełnienie CAPTCHA
+ Problem z połączeniem
+ Nieprawidłowy identyfikator klienta
+ Wymagana akceptacja regulaminu
+ Błąd zmiany hasła
+ Wymagana zmiana hasła
+ Librus API: nieprawidłowe dane logowania
+ Inny błąd logowania do API
+ Brak tokenu CSRF
+ Konto LIBRUS nie zostało aktywowane
+ Inny błąd logowania do Portalu LIBRUS
+ Nie znaleziono tokenu Synergia
+ Token API wygasł
+ Niewystarczające uprawnienia
+ Inny błąd API
+ Odmowa dostępu do API
+ Nie znaleziono zasobu API
+ Brak danych
+ Plan lekcji nie jest publiczny
+ Brak dostępu do zasobu
+ Nieprawidłowe parametry
+ Nieprawidłowy zasób
+ Szczęśliwy numerek nie jest aktywny
+ Uwagi nie są publiczne
+ Brak tokenu logowania Synergia
+ Nieprawidłowy token logowania Synergia
+ Brak ID sesji Synergia
+ Brak dostępu do Wiadomości
+ Brak dostępu do Synergii
+ Brak ID sesji Wiadomości
+ Odmowa dostępu do Portalu Librus
+ API Portalu Librus wyłączone
+ Konto Synergia zostało rozłączone
+ Inny błąd Portalu Librus
+ Nie znaleziono konta Synergia
+ Inny błąd logowania do Portalu Librus
+ ERROR_LOGIN_LIBRUS_PORTAL_CODE_EXPIRED
+ ERROR_LOGIN_LIBRUS_PORTAL_CODE_REVOKED
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_CLIENT_ID
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_CODE
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_REFRESH
+ ERROR_LOGIN_LIBRUS_PORTAL_NO_REDIRECT
+ ERROR_LOGIN_LIBRUS_PORTAL_UNSUPPORTED_GRANT
+ ERROR_LOGIN_LIBRUS_PORTAL_INVALID_CLIENT_ID
+ ERROR_LOGIN_LIBRUS_PORTAL_REFRESH_INVALID
+ ERROR_LOGIN_LIBRUS_PORTAL_REFRESH_REVOKED
+ ERROR_LIBRUS_SYNERGIA_OTHER
+ Librus Synergia: przerwa techniczna
+ Librus Wiadomości: przerwa techniczna
+ ERROR_LIBRUS_MESSAGES_ERROR
+ ERROR_LIBRUS_MESSAGES_OTHER
+ Librus Wiadomości: nieprawidłowe dane logowania
+ Librus Portal: nieprawidłowe dane logowania
+ Librus API: przerwa techniczna
+
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_LOGIN
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_OLD_PASSWORD
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_DEVICE
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_ARCHIVED
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_MAINTENANCE
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_INVALID_ADDRESS
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_OTHER
+ ERROR_MOBIDZIENNIK_WEB_ACCESS_DENIED
+ ERROR_MOBIDZIENNIK_WEB_NO_SESSION_KEY
+ ERROR_MOBIDZIENNIK_WEB_NO_SESSION_VALUE
+ ERROR_MOBIDZIENNIK_WEB_NO_SERVER_ID
+ ERROR_MOBIDZIENNIK_WEB_INVALID_RESPONSE
+ ERROR_LOGIN_MOBIDZIENNIK_WEB_NO_SESSION_ID
+
+ ERROR_LOGIN_VULCAN_INVALID_SYMBOL
+ ERROR_LOGIN_VULCAN_INVALID_TOKEN
+ ERROR_LOGIN_VULCAN_INVALID_PIN
+ ERROR_LOGIN_VULCAN_INVALID_PIN_0_REMAINING
+ ERROR_LOGIN_VULCAN_INVALID_PIN_1_REMAINING
+ ERROR_LOGIN_VULCAN_INVALID_PIN_2_REMAINING
+ ERROR_LOGIN_VULCAN_EXPIRED_TOKEN
+ ERROR_LOGIN_VULCAN_OTHER
+ ERROR_LOGIN_VULCAN_ONLY_KINDERGARTEN
+ ERROR_LOGIN_VULCAN_NO_PUPILS
+ ERROR_VULCAN_API_MAINTENANCE
+ ERROR_VULCAN_API_BAD_REQUEST
+ ERROR_VULCAN_API_OTHER
+
+ ERROR_LOGIN_IDZIENNIK_WEB_INVALID_LOGIN
+ ERROR_LOGIN_IDZIENNIK_WEB_INVALID_SCHOOL_NAME
+ ERROR_LOGIN_IDZIENNIK_WEB_PASSWORD_CHANGE_NEEDED
+ ERROR_LOGIN_IDZIENNIK_WEB_MAINTENANCE
+ ERROR_LOGIN_IDZIENNIK_WEB_SERVER_ERROR
+ ERROR_LOGIN_IDZIENNIK_WEB_OTHER
+ ERROR_LOGIN_IDZIENNIK_WEB_API_NO_ACCESS
+ ERROR_LOGIN_IDZIENNIK_WEB_NO_SESSION
+ ERROR_LOGIN_IDZIENNIK_WEB_NO_AUTH
+ ERROR_LOGIN_IDZIENNIK_WEB_NO_BEARER
+ ERROR_IDZIENNIK_WEB_ACCESS_DENIED
+ ERROR_IDZIENNIK_WEB_OTHER
+ ERROR_IDZIENNIK_WEB_MAINTENANCE
+ ERROR_IDZIENNIK_WEB_SERVER_ERROR
+ ERROR_IDZIENNIK_WEB_PASSWORD_CHANGE_NEEDED
+ ERROR_LOGIN_IDZIENNIK_FIRST_NO_SCHOOL_YEAR
+ ERROR_IDZIENNIK_WEB_REQUEST_NO_DATA
+ ERROR_IDZIENNIK_API_ACCESS_DENIED
+ ERROR_IDZIENNIK_API_OTHER
+
+ ERROR_TEMPLATE_WEB_OTHER
+
+ EXCEPTION_API_TASK
+ EXCEPTION_LOGIN_LIBRUS_API_TOKEN
+ EXCEPTION_LOGIN_LIBRUS_PORTAL_TOKEN
+ EXCEPTION_LIBRUS_PORTAL_SYNERGIA_TOKEN
+ EXCEPTION_LIBRUS_API_REQUEST
+ EXCEPTION_LIBRUS_SYNERGIA_REQUEST
+ EXCEPTION_MOBIDZIENNIK_WEB_REQUEST
+ EXCEPTION_VULCAN_API_REQUEST
+ EXCEPTION_NOTIFY_AND_SYNC
+ EXCEPTION_LIBRUS_MESSAGES_REQUEST
+ EXCEPTION_IDZIENNIK_WEB_REQUEST
+ EXCEPTION_IDZIENNIK_WEB_API_REQUEST
+ EXCEPTION_IDZIENNIK_API_REQUEST
+
+ Nie podano parametrów
+
\ No newline at end of file
diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml
new file mode 100644
index 00000000..51e1215f
--- /dev/null
+++ b/app/src/main/res/values/ids.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/plurals.xml b/app/src/main/res/values/plurals.xml
index b933e932..8e7275b2 100644
--- a/app/src/main/res/values/plurals.xml
+++ b/app/src/main/res/values/plurals.xml
@@ -67,4 +67,18 @@
- %1$s - %2$d nieprzeczytane
- %1$s - %2$d nieprzeczytanych
+
+
+ - %d błąd krytyczny
+ - %d błędy krytyczne
+ - %d błędów krytycznych
+ - %d błędów krytycznych
+
+
+
+ - %d błąd
+ - %d błędy
+ - %d błędów
+ - %d błędów
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4179f64c..a1a84b1b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -318,6 +318,7 @@
Przerwa
Lekcja odwołana
Zastępstwo
+ Lekcja przeniesiona
Zmiana planu
Ładowanie…
Zezwól na rejestrację
@@ -448,7 +449,7 @@
Plan lekcji
Nie można pobrać załącznika
Wystąpił błąd wewnętrzny pobierania załącznika. Może to być spowodowane słabym połączeniem internetowym.
- %s (%d%%)
+ %s (%.2fMB)
%s (%s)
%s
Dodaj załącznik
@@ -488,7 +489,8 @@
Nieobecność
Nieobecność usprawiedliwiona
Ogłoszenie szkolne: %s
- %s na lekcji %s z %s
+ %1$s na lekcji %2$s z dnia %3$s
+ %1$s z dnia %3$s
Spóźnienie
Spóźnienie usprawiedliwione
Powiadomienie o pobieraniu danych dla e-dziennika
@@ -500,7 +502,8 @@
Powiadomienia o nowych wersjach aplikacji
Aktualizacje
Pobieranie aktualizacji…
- %s %s z %s
+ %1$s dnia %2$s z %3$s
+ %1$s dnia %2$s
nieznanego przedmiotu
Przerwij
Szkolny.eu: błąd
@@ -510,7 +513,8 @@
Pobieranie danych
Synchronizacja
Nowa ocena (%s) z %s
- Zadanie domowe z %s na %s
+ Zadanie domowe z %1$s na %2$s
+ Zadanie domowe na %2$s
%s %s - %s
Dzisiaj %d to szczęśliwy numerek.
Szczęsliwy numerek na %s to %d.
@@ -569,7 +573,7 @@
Ustawienia
Usuń profil
Potwierdź usunięcie
- Zamierzasz usunąć profil %s. Oznacza to usunięcie z aplikacji wszystkich danych powiązanych z tym profilem (ocen, planu lekcji, sprawdzianów…).\n\nWiększość danych będziesz mógł pobrać na nowo poprzez ponowne zalogowanie się.\n\nCzy rzeczywiście chcesz usunąć profil %s?
+ Zamierzasz usunąć profil %s . Oznacza to usunięcie z aplikacji wszystkich danych powiązanych z tym profilem (ocen, planu lekcji, sprawdzianów…).\n\nWiększość danych będziesz mógł pobrać na nowo poprzez ponowne zalogowanie się.\n\nCzy rzeczywiście chcesz usunąć profil %s?
Nigdy
Później
Oceń teraz
@@ -590,7 +594,7 @@
Licencje open-source
Polityka prywatności
E-dziennik
- © Kuba Szczodrzyński wrzesień 2018 - październik 2019
+ © Kuba Szczodrzyński && Kacper Ziubryniewicz\nwrzesień 2018 - listopad 2019
Kliknij, aby sprawdzić aktualizacje
Aktualizacja
Wersja
@@ -905,6 +909,19 @@
Serwer Discord
Dołącz do naszego serwera Discord!
Debugowanie
+ Logowanie do Portalu Librus
+ Logowanie do API
+ Logowanie do Librus Synergia
+ Logowanie do wiadomości Librus
+ Usługa synchronizacji
+ Dzięki niej, aplikacja Szkolny.eu może synchronizować dane z e-dziennikiem. Możesz ją zamknąć, ponieważ w tej chwili nic nie robi.
+ Zamknij
+ Anuluj
+ Trwa synchronizacja profilu %s...
+ Synchronizacja przerwana
+ Zgłaszanie błędów...
+ Zgłaszanie błędów
+ Pobieram informacje o uczniu...
Pobieranie dni wolnych szkoły
Aktualne
Minione
@@ -912,4 +929,129 @@
Nieobecni nauczyciele
Pobieranie komentarzy ocen
Pokazuj nieobecności nauczycieli w Terminarzu
+ Pobieram informacje o szkole...
+ Pobieranie ocen ucznia...
+ Pobieranie kategorii ocen...
+ Logowanie do Template WEB...
+ Logowanie do Template API...
+ Logowanie do MobiDziennika...
+ Logowanie do API MobiDziennika...
+ Pobieram dane...
+ Pobieram wiadomości odebrane...
+ Pobieram wiadomości...
+ Pobieram szczęśliwy numerek...
+ Pobieram kalendarz...
+ Pobieram uwagi ucznia...
+ Pobieram frekwencję ucznia...
+ Logowanie do Vulcan API...
+ Logowanie do API MobiDziennika...
+ Pobieranie wydarzeń kalendarza...
+ Pobieranie zadań domowych...
+ Pobieranie kategorii obecności...
+ Pobieranie ogłoszeń szkolnych...
+ Pierwsze logowanie
+ Pobieranie informacji o klasie...
+ Pobieranie nieobecności nauczycieli...
+ Pobieranie rodzajów nieobecności nauczycieli...
+ Pobieranie słowników...
+ Synchronizuję...
+ [%d%%] %s
+ Pobieranie uwag...
+ Pobieranie grup klasowych...
+ Pobieranie informacji o jednostce...
+ Pobieranie listy nauczycieli...
+ Pobieranie listy przedmiotów...
+ Pobieranie listy sal lekcyjnych...
+ Pobieranie kategorii wydarzeń...
+ Pobieranie kategorii uwag...
+ Pobieranie zebrań z rodzicami...
+ Logowanie do iDziennika...
+ Logowanie do iDziennika...
+ Pobieranie wiadomości wysłanych...
+ (rodzic)
+ (uczeń)
+ Język aplikacji
+ Polski
+ Zmień język aplikacji
+ Uwaga. Ta opcja może nie działać na niektórych urządzeniach oraz w niektórych fragmentach aplikacji.
+ Według systemu
+ Polski
+ English
+ Pobieranie planu lekcji...
+ Pobieranie ocen proponowanych...
+ Pobieranie listy sprawdzianów...
+ Wykryto problem z synchronizacją
+ Na urządzeniu prawdopodobnie zainstalowany jest menedżer aplikacji, który może powodować problemy z synchronizacją automatyczną.\n\nNależy wyłączyć w ustawieniach telefonu optymalizację baterii dla aplikacji Szkolny.eu.\n\nKliknij OK, aby przejść do ustawień telefonu.
+ Nie pytaj ponownie
+ Nie udało się otworzyć ustawień
+ Tworzenie powiadomień
+ Librus - logowanie
+ Dzisiaj
+ Lekcja odwołana
+ Zastępstwo
+ Zastępstwo: zamiast %s
+ Lekcja przeniesiona na godz. %s
+ Lekcja przeniesiona na %s, godz. %s
+ Lekcja przeniesiona z godz. %s
+ Lekcja przeniesiona z dnia %s, godz. %s
+ Lekcja przeniesiona na inny termin
+ Lekcja przeniesiona z innego terminu
+ Brak planu lekcji
+ Plan lekcji nie został opublikowany przez szkołę.
+ Skontaktuj się z wychowawcą w celu udostępnienia planu lekcji.
+ Dzień wolny
+ W tym dniu nie ma lekcji:
+ Pokaż plan lekcji
+ Brak lekcji tego dnia
+ Brak planu lekcji
+ Nie pobrano planu lekcji na ten tydzień.
+ Pobierz plan lekcji
+ na tydzień %s
+ Nauczyciel
+ Sala lekcyjna
+ Grupa
+ ID lekcji
+ Nr lekcji
+ Lekcja przeniesiona na %s
+ Lekcja przeniesiona z %s
+ Dodaj wpis do terminarza
+ Lekcja/godzina
+ nast. lekcja %s
+ jutro (%s)
+ %s (%s)
+ -- inna data --
+ dzisiaj (%s)
+ następny %s (%s)
+ Nie ma lekcji tego dnia
+ Profil został usunięty.
+ Wystąpił błąd
+ Synchronizacja ręczna
+ (brak nazwy)
+ Więcej opcji
+ Pobieranie komentarzy ocen...
+ Usuń wszystkie
+ Wyczyszczono powiadomienia
+ Wybierz dzień
+ Przesuń w górę
+ Przesuń w dół
+ %s • Kliknij, aby ustawić swój numerek.
+ %s • Numer w dzienniku to %d
+ Brak informacji o szczęśliwym numerku.
+ Dzisiaj to Ty masz szczęśliwy numerek!
+ Jutro to Ty masz szczęśliwy numerek!
+ Dnia %s Twój numerek jest szczęśliwy.
+ Dnia %s szczęśliwy numerek to %d.
+ %d to dzisiejszy szczęśliwy numerek.
+ %d to szczęśliwy numerek na jutro.
+ Nie ma dzisiaj szczęśliwego numerka.
+ Jutro (%1$s)
+ %1$s, %2$s
+ %1$s, %2$s
+ %d lekcji - %s do %s
+ Pierwsza: %s
+ Później:
+ brak lekcji
+ Dzisiaj
+ Teraz: %s
+ Za chwilę: %s
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 116c7a40..c6c7da22 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/build.gradle b/build.gradle
index 0ab85d27..4d0befff 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,8 +5,8 @@ buildscript {
kotlin_version = '1.3.50'
release = [
- versionName: "3.1.1",
- versionCode: 3010199
+ versionName: "3.9.12-dev",
+ versionCode: 3091200
]
setup = [
@@ -18,33 +18,34 @@ buildscript {
versions = [
kotlin : "1.3.50",
- ktx : "1.0.2",
+ ktx : "1.1.0",
androidX : '1.0.0',
annotation : '1.1.0',
- recyclerView : '1.1.0-beta04',
- material : '1.1.0-alpha09',
- appcompat : '1.1.0-rc01',
- constraintLayout : '2.0.0-beta2',
+ recyclerView : '1.1.0-rc01',
+ material : '1.2.0-alpha01',
+ appcompat : '1.1.0',
+ constraintLayout : '2.0.0-beta3',
cardview : '1.0.0',
gridLayout : '1.0.0',
navigation : "2.0.0",
navigationFragment: "1.0.0",
legacy : "1.0.0",
- room : "2.2.0-beta01",
- lifecycle : "2.2.0-alpha04",
+ room : "2.2.1",
+ lifecycle : "2.2.0-rc02",
+ work : "2.2.0",
firebase : '17.2.0',
firebasemessaging: "20.0.0",
play_services : "17.0.0",
materialdialogs : "0.9.6.0",
- materialdrawer : "62b24da031",
+ materialdrawer : "cad66092a6",
iconics : "4.0.1-b02",
font_cmd : "3.5.95.1-kotlin",
- navlib : "e4ad01dc87",
+ navlib : "8ae5e2b87a",
gifdrawable : "1.2.15"
]
@@ -58,7 +59,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.5.0'
+ classpath 'com.android.tools.build:gradle:3.5.2'
classpath 'me.tatarka:gradle-retrolambda:3.7.0'
classpath 'com.google.gms:google-services:4.3.1'
classpath 'io.fabric.tools:gradle:1.28.1'
@@ -81,6 +82,7 @@ allprojects {
jcenter()
maven { url 'https://jitpack.io' }
maven { url "https://kotlin.bintray.com/kotlinx/" }
+ maven { url "https://dl.bintray.com/wulkanowy/wulkanowy" }
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 7ddd4838..9edbc9cb 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
\ No newline at end of file
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
\ No newline at end of file
diff --git a/mhttp/src/main/java/im/wangchao/mhttp/internal/cookie/PersistentCookieJar.java b/mhttp/src/main/java/im/wangchao/mhttp/internal/cookie/PersistentCookieJar.java
index 5be7c289..3a6b5a8c 100644
--- a/mhttp/src/main/java/im/wangchao/mhttp/internal/cookie/PersistentCookieJar.java
+++ b/mhttp/src/main/java/im/wangchao/mhttp/internal/cookie/PersistentCookieJar.java
@@ -18,6 +18,7 @@ package im.wangchao.mhttp.internal.cookie;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collections;
@@ -42,21 +43,13 @@ public class PersistentCookieJar implements ClearableCookieJar {
}
@Override
- synchronized public void saveFromResponse(HttpUrl url, List cookies) {
- //Log.d("PersistentCookieJar", "FINISHING "+url.toString());
+ synchronized public void saveFromResponse(@Nullable HttpUrl url, List cookies) {
// cookies need to be reversed, in order to replace old cookies with these coming later
// (if there are duplicate cookies in the same response)
List reverseCookies = new ArrayList<>(cookies);
Collections.reverse(reverseCookies);
- /*for (Cookie cookie: reverseCookies) {
- Log.d("PersistentCookieJar", "Saving cookie "+cookie.toString()+" from URL "+url.toString());
- }*/
cache.addAll(reverseCookies);
persistor.saveAll(reverseCookies);
- /*Log.d("PersistentCookieJar", "Cookies saved: ");
- for (Cookie cookie : cache) {
- Log.d("PersistentCookieJar", "Saving cookie " + cookie.toString() + " from URL " + url.toString());
- }*/
}
@NonNull
@@ -65,23 +58,15 @@ public class PersistentCookieJar implements ClearableCookieJar {
List removedCookies = new ArrayList<>();
List validCookies = new ArrayList<>();
- //Log.d("PersistentCookieJar", "REQUESTING "+url.toString());
-
for (Iterator it = cache.iterator(); it.hasNext(); ) {
Cookie currentCookie = it.next();
- //Log.d("PersistentCookieJar", "Loading "+currentCookie.toString()+" to URL "+url.toString());
if (isCookieExpired(currentCookie)) {
- //Log.d("PersistentCookieJar", "Cookie expired at "+new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.getDefault()).format(new Date(currentCookie.expiresAt())));
removedCookies.add(currentCookie);
it.remove();
} else if (currentCookie.matches(url)) {
- //Log.d("PersistentCookieJar", "Cookie is still valid until "+new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.getDefault()).format(new Date(currentCookie.expiresAt())));
validCookies.add(currentCookie);
}
- /*else {
- Log.d("PersistentCookieJar", "URL doesn't match");
- }*/
}
persistor.removeAll(removedCookies);
@@ -89,6 +74,49 @@ public class PersistentCookieJar implements ClearableCookieJar {
return validCookies;
}
+ @NonNull
+ synchronized public List getForDomain(String domain) {
+ List removedCookies = new ArrayList<>();
+ List validCookies = new ArrayList<>();
+
+ for (Iterator it = cache.iterator(); it.hasNext(); ) {
+ Cookie currentCookie = it.next();
+ if (isCookieExpired(currentCookie)) {
+ removedCookies.add(currentCookie);
+ it.remove();
+
+ } else if (domain.equals(currentCookie.domain())) {
+ validCookies.add(currentCookie);
+ }
+ }
+
+ persistor.removeAll(removedCookies);
+
+ return validCookies;
+ }
+
+ @Nullable
+ synchronized public String getCookie(String domain, String name) {
+ String cookieValue = null;
+ List removedCookies = new ArrayList<>();
+
+ for (Iterator it = cache.iterator(); it.hasNext(); ) {
+ Cookie currentCookie = it.next();
+ if (isCookieExpired(currentCookie)) {
+ removedCookies.add(currentCookie);
+ it.remove();
+
+ } else if (domain.equals(currentCookie.domain()) && name.equals(currentCookie.name())) {
+ cookieValue = currentCookie.value();
+ break;
+ }
+ }
+
+ persistor.removeAll(removedCookies);
+
+ return cookieValue;
+ }
+
private static boolean isCookieExpired(Cookie cookie) {
return cookie.expiresAt() < System.currentTimeMillis();
}
diff --git a/settings.gradle b/settings.gradle
index 8b001cca..0def8313 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,4 +1,4 @@
-include ':app', ':agendacalendarview', ':MaterialDrawer', ':mhttp', ':material-about-library', ':cafebar', ':szkolny-font', ':nachos'
+include ':app', ':agendacalendarview', ':mhttp', ':material-about-library', ':cafebar', ':szkolny-font', ':nachos', ':community-material'
/*
include ':Navigation'
project(':Navigation').projectDir = new File(settingsDir, '../Navigation/navlib')*/
diff --git a/szkolny-font/build.gradle b/szkolny-font/build.gradle
index 3e136e8d..02d6e56b 100644
--- a/szkolny-font/build.gradle
+++ b/szkolny-font/build.gradle
@@ -1,5 +1,5 @@
/*
- * Copyright 2014 Mike Penz
+ * Copyright 2019 Mike Penz
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,8 +26,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
consumerProguardFiles 'consumer-proguard-rules.pro'
- versionCode 1
- versionName "1.0"
+ versionCode 11
+ versionName "1.1"
}
buildTypes {
release {
@@ -47,5 +47,5 @@ if (project.hasProperty('pushall') || project.hasProperty('SzkolnyFontonly')) {
dependencies {
implementation "com.mikepenz:iconics-core:${iconics}"
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
diff --git a/szkolny-font/src/main/java/com/mikepenz/iconics/typeface/library/szkolny/font/SzkolnyFont.kt b/szkolny-font/src/main/java/com/mikepenz/iconics/typeface/library/szkolny/font/SzkolnyFont.kt
index 593952fd..5e23dbd1 100644
--- a/szkolny-font/src/main/java/com/mikepenz/iconics/typeface/library/szkolny/font/SzkolnyFont.kt
+++ b/szkolny-font/src/main/java/com/mikepenz/iconics/typeface/library/szkolny/font/SzkolnyFont.kt
@@ -1,6 +1,5 @@
/*
- * Copyright 2014 Mike Penz
- * Copyright 2015 Haruki Hasegawa
+ * Copyright 2019 Mike Penz
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,21 +18,18 @@ package com.mikepenz.iconics.typeface.library.szkolny.font
import com.mikepenz.iconics.typeface.IIcon
import com.mikepenz.iconics.typeface.ITypeface
import com.mikepenz.iconics.typeface.library.szkolny.R
-import java.util.LinkedList
+import java.util.*
@Suppress("EnumEntryName")
object SzkolnyFont : ITypeface {
override val fontRes: Int
- get() = R.font.szkolny_font_font_v1_0
+ get() = R.font.szkolny_font_font_v1_1
override val characters: Map by lazy {
- mutableMapOf().apply {
- SzkolnyFont.Icon.values().associateTo(this) { it.name to it.character }
- //Icon2.values().associateTo(this) { it.name to it.character }
- }
+ Icon.values().associate { it.name to it.character }
}
-
+
override val mappingPrefix: String
get() = "szf"
@@ -41,7 +37,7 @@ object SzkolnyFont : ITypeface {
get() = "Szkolny Font"
override val version: String
- get() = "1.0"
+ get() = "1.1"
override val iconCount: Int
get() = characters.size
@@ -64,17 +60,28 @@ object SzkolnyFont : ITypeface {
override val licenseUrl: String
get() = ""
- override fun getIcon(key: String): IIcon {
- return SzkolnyFont.Icon.valueOf(key)
- }
+ override fun getIcon(key: String): IIcon = Icon.valueOf(key)
enum class Icon constructor(override val character: Char) : IIcon {
- szf_eye_check('\ue800'),
- szf_calendar_off('\ue801'),
- szf_file_document_edit('\ue802'),
- szf_message_off('\ue803'),
- szf_numeric_0_box_multiple_outline_off('\ue804');
+ szf_alarm_bell_outline('\ue800'),
+ szf_calendar_plus_outline('\ue801'),
+ szf_calendar_today_outline('\ue802'),
+ szf_clipboard_list_outline('\ue803'),
+ szf_delete_empty_outline('\ue804'),
+ szf_discord_outline('\ue805'),
+ szf_file_code_outline('\ue806'),
+ szf_file_excel_outline('\ue807'),
+ szf_file_image_outline('\ue808'),
+ szf_file_music_outline('\ue809'),
+ szf_file_pdf_outline('\ue80a'),
+ szf_file_percent_outline('\ue80b'),
+ szf_file_powerpoint_outline('\ue80c'),
+ szf_file_video_outline('\ue80d'),
+ szf_file_word_outline('\ue80e'),
+ szf_message_processing_outline('\ue80f'),
+ szf_notebook_outline('\ue810'),
+ szf_zip_box_outline('\ue811');
override val typeface: ITypeface by lazy { SzkolnyFont }
}
-}
+}
\ No newline at end of file
diff --git a/szkolny-font/src/main/res/font/szkolny_font_font_v1_0.ttf b/szkolny-font/src/main/res/font/szkolny_font_font_v1_0.ttf
deleted file mode 100644
index 351575db..00000000
Binary files a/szkolny-font/src/main/res/font/szkolny_font_font_v1_0.ttf and /dev/null differ
diff --git a/szkolny-font/src/main/res/font/szkolny_font_font_v1_1.ttf b/szkolny-font/src/main/res/font/szkolny_font_font_v1_1.ttf
new file mode 100644
index 00000000..33ad627f
Binary files /dev/null and b/szkolny-font/src/main/res/font/szkolny_font_font_v1_1.ttf differ