diff --git a/.travis.yml b/.travis.yml
index 24280c5f..e383a74b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,8 +3,8 @@ jdk: oraclejdk8
env:
global:
- - ANDROID_API_LEVEL=29
- - ANDROID_BUILD_TOOLS_VERSION=29.0.3
+ - ANDROID_API_LEVEL=30
+ - ANDROID_BUILD_TOOLS_VERSION=30.0.2
cache:
directories:
@@ -14,7 +14,7 @@ cache:
branches:
only:
- develop
- - 0.21.2
+ - 0.22.0
android:
licenses:
@@ -28,22 +28,26 @@ android:
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
# The SDK version used to compile your project
- android-$ANDROID_API_LEVEL
- # Additional components
+ # Additional components
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- addon-google_apis-google-$ANDROID_API_LEVEL
- # Android emulator
+ # Android emulator
- android-22
- sys-img-armeabi-v7a-android-22
+before_install:
+ - yes | sdkmanager "platforms;android-30"
+ - yes | sdkmanager "build-tools;30.0.2"
+
before_script:
- # Launch emulator before the execution
- - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
- - emulator -avd test -no-audio -no-window &
- - android-wait-for-emulator
- - adb shell input keyevent 82 &
- - "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | sudo bash"
+ # Launch emulator before the execution
+ - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
+ - emulator -avd test -no-audio -no-window &
+ - android-wait-for-emulator
+ - adb shell input keyevent 82 &
+ - "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | sudo bash"
script:
- ./gradlew dependencies --stacktrace --daemon
diff --git a/README.en.md b/README.en.md
index 28cce1c3..4c5e53da 100644
--- a/README.en.md
+++ b/README.en.md
@@ -32,14 +32,17 @@ Unofficial android VULCAN UONET+ register client for both students and their par
## Download
-You can download the current beta version from the Google Play or the F-Droid store
+You can download the current beta version from the Google Play, F-Droid or Huawei AppGallery store
[](https://play.google.com/store/apps/details?id=io.github.wulkanowy)
+ alt="Get it on Google Play"
+ height="80">](https://play.google.com/store/apps/details?id=io.github.wulkanowy)
[](https://f-droid.org/packages/io.github.wulkanowy/)
+[](https://appgallery.cloud.huawei.com/ag/n/app/C101440411?channelId=Badge&id=1b3f7fbb700849a9be0dba6b520b2282&s=EB1D3BF9ED9D1564D869B7B94B18016D3CABFCA5AEFB8E29F675FA04E0DC131D&detailType=0&v=)
You can also download a [development version](https://wulkanowy.github.io/#download) that includes new features being prepared for the next release
diff --git a/README.md b/README.md
index 02e1900c..9e29cdb6 100644
--- a/README.md
+++ b/README.md
@@ -32,14 +32,17 @@ Nieoficjalny klient dziennika VULCAN UONET+ dla ucznia i rodzica
## Pobierz
-Aktualną wersję beta możesz pobrać ze sklepu Google Play lub F-Droid
+Aktualną wersję beta możesz pobrać ze sklepu Google Play, F-Droid lub Huawei AppGallery
[](https://play.google.com/store/apps/details?id=io.github.wulkanowy)
+ alt="Pobierz z Google Play"
+ height="80">](https://play.google.com/store/apps/details?id=io.github.wulkanowy)
[](https://f-droid.org/packages/io.github.wulkanowy/)
+[](https://appgallery.cloud.huawei.com/ag/n/app/C101440411?channelId=Badge&id=1b3f7fbb700849a9be0dba6b520b2282&s=EB1D3BF9ED9D1564D869B7B94B18016D3CABFCA5AEFB8E29F675FA04E0DC131D&detailType=0&v=)
Możesz także pobrać [wersję rozwojową](https://wulkanowy.github.io/#download), która zawiera nowe funkcje przygotowywane do następnego wydania
diff --git a/app/build.gradle b/app/build.gradle
index 56609466..b1ba7e62 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,16 +10,16 @@ apply from: 'sonarqube.gradle'
apply from: 'hooks.gradle'
android {
- compileSdkVersion 29
- buildToolsVersion '29.0.3'
+ compileSdkVersion 30
+ buildToolsVersion '30.0.2'
defaultConfig {
applicationId "io.github.wulkanowy"
testApplicationId "io.github.tests.wulkanowy"
minSdkVersion 17
- targetSdkVersion 29
- versionCode 72
- versionName "0.21.2"
+ targetSdkVersion 30
+ versionCode 73
+ versionName "0.22.0"
multiDexEnabled true
resValue "string", "app_name", "Wulkanowy"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -112,14 +112,15 @@ play {
serviceAccountCredentials = file('key.p12')
defaultToAppBundles = false
track = 'alpha'
+ updatePriority = 0
}
ext {
work_manager = "2.4.0"
room = "2.2.5"
- chucker = "3.2.0"
- mockk = "1.10.0"
- moshi = "1.9.3"
+ chucker = "3.3.0"
+ mockk = "1.10.2"
+ moshi = "1.11.0"
}
configurations.all {
@@ -127,14 +128,14 @@ configurations.all {
}
dependencies {
- implementation "io.github.wulkanowy:sdk:0.21.2"
+ implementation "io.github.wulkanowy:sdk:0.22.0"
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
- implementation "androidx.core:core-ktx:1.3.1"
+ implementation "androidx.core:core-ktx:1.3.2"
implementation "androidx.activity:activity-ktx:1.1.0"
implementation "androidx.appcompat:appcompat:1.2.0"
implementation "androidx.appcompat:appcompat-resources:1.2.0"
@@ -179,15 +180,16 @@ dependencies {
implementation "fr.bipi.treessence:treessence:0.3.2"
implementation "com.mikepenz:aboutlibraries-core:$about_libraries"
implementation 'com.wdullaer:materialdatetimepicker:4.2.3'
- implementation "io.coil-kt:coil:1.0.0-rc2"
+ implementation "io.coil-kt:coil:1.0.0-rc3"
implementation "io.github.wulkanowy:AppKillerManager:3.0.0"
implementation 'me.xdrop:fuzzywuzzy:1.3.1'
- playImplementation 'com.google.firebase:firebase-analytics:17.5.0'
+ playImplementation 'com.google.firebase:firebase-analytics:17.6.0'
playImplementation 'com.google.firebase:firebase-inappmessaging-display-ktx:19.1.1'
playImplementation "com.google.firebase:firebase-inappmessaging-ktx:19.1.1"
- playImplementation 'com.google.firebase:firebase-messaging:20.2.4'
- playImplementation 'com.google.firebase:firebase-crashlytics:17.2.1'
+ playImplementation 'com.google.firebase:firebase-messaging:20.3.0'
+ playImplementation 'com.google.firebase:firebase-crashlytics:17.2.2'
+ playImplementation 'com.google.android.play:core-ktx:1.8.1'
playImplementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
releaseImplementation "com.github.ChuckerTeam.Chucker:library-no-op:$chucker"
diff --git a/app/src/fdroid/java/io/github/wulkanowy/utils/UpdateHelper.kt b/app/src/fdroid/java/io/github/wulkanowy/utils/UpdateHelper.kt
new file mode 100644
index 00000000..3abab962
--- /dev/null
+++ b/app/src/fdroid/java/io/github/wulkanowy/utils/UpdateHelper.kt
@@ -0,0 +1,17 @@
+package io.github.wulkanowy.utils
+
+import android.app.Activity
+import android.view.View
+import javax.inject.Inject
+
+@Suppress("UNUSED_PARAMETER")
+class UpdateHelper @Inject constructor() {
+
+ lateinit var messageContainer: View
+
+ fun checkAndInstallUpdates(activity: Activity) {}
+
+ fun onActivityResult(requestCode: Int, resultCode: Int) {}
+
+ fun onResume(activity: Activity) {}
+}
diff --git a/app/src/main/java/io/github/wulkanowy/data/RepositoryModule.kt b/app/src/main/java/io/github/wulkanowy/data/RepositoryModule.kt
index 3370d0ac..6486cab9 100644
--- a/app/src/main/java/io/github/wulkanowy/data/RepositoryModule.kt
+++ b/app/src/main/java/io/github/wulkanowy/data/RepositoryModule.kt
@@ -33,7 +33,11 @@ internal class RepositoryModule {
setSimpleHttpLogger { Timber.d(it) }
// for debug only
- addInterceptor(ChuckerInterceptor(context, chuckerCollector), true)
+ addInterceptor(ChuckerInterceptor(
+ context = context,
+ collector = chuckerCollector,
+ alwaysReadResponseBody = true
+ ), true)
}
}
diff --git a/app/src/main/java/io/github/wulkanowy/services/alarm/TimetableNotificationSchedulerHelper.kt b/app/src/main/java/io/github/wulkanowy/services/alarm/TimetableNotificationSchedulerHelper.kt
index 5c4b916b..2593a555 100644
--- a/app/src/main/java/io/github/wulkanowy/services/alarm/TimetableNotificationSchedulerHelper.kt
+++ b/app/src/main/java/io/github/wulkanowy/services/alarm/TimetableNotificationSchedulerHelper.kt
@@ -72,18 +72,22 @@ class TimetableNotificationSchedulerHelper @Inject constructor(
withContext(dispatchersProvider.backgroundThread) {
lessons.groupBy { it.date }
.map { it.value.sortedBy { lesson -> lesson.start } }
- .map { it.filter { lesson -> !lesson.canceled && lesson.isStudentPlan } }
+ .map { it.filter { lesson -> lesson.isStudentPlan } }
.map { day ->
- day.forEachIndexed { index, lesson ->
- val intent = createIntent(student, lesson, day.getOrNull(index + 1))
+ val canceled = day.filter { it.canceled }
+ val active = day.filter { !it.canceled }
+
+ cancelScheduled(canceled)
+ active.forEachIndexed { index, lesson ->
+ val intent = createIntent(student, lesson, active.getOrNull(index + 1))
if (lesson.start > now()) {
- scheduleBroadcast(intent, student.studentId, NOTIFICATION_TYPE_UPCOMING, getUpcomingLessonTime(index, day, lesson))
+ scheduleBroadcast(intent, student.studentId, NOTIFICATION_TYPE_UPCOMING, getUpcomingLessonTime(index, active, lesson))
}
if (lesson.end > now()) {
scheduleBroadcast(intent, student.studentId, NOTIFICATION_TYPE_CURRENT, lesson.start)
- if (day.lastIndex == index) {
+ if (active.lastIndex == index) {
scheduleBroadcast(intent, student.studentId, NOTIFICATION_TYPE_LAST_LESSON_CANCELLATION, lesson.end)
}
}
diff --git a/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt b/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt
index 8d6739a1..341ae459 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/base/ErrorDialog.kt
@@ -22,9 +22,11 @@ import io.github.wulkanowy.utils.getString
import io.github.wulkanowy.utils.openAppInMarket
import io.github.wulkanowy.utils.openEmailClient
import io.github.wulkanowy.utils.openInternetBrowser
+import okhttp3.internal.http2.StreamResetException
import java.io.InterruptedIOException
import java.io.PrintWriter
import java.io.StringWriter
+import java.net.ConnectException
import java.net.SocketTimeoutException
import java.net.UnknownHostException
import javax.inject.Inject
@@ -85,6 +87,8 @@ class ErrorDialog : BaseDialogFragment() {
errorDialogReport.isEnabled = when (error) {
is UnknownHostException,
is InterruptedIOException,
+ is ConnectException,
+ is StreamResetException,
is SocketTimeoutException,
is ServiceUnavailableException,
is FeatureDisabledException,
diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt
index 97b7b71c..9f4f8f26 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/modules/grade/details/GradeDetailsPresenter.kt
@@ -81,7 +81,10 @@ class GradeDetailsPresenter @Inject constructor(
}.onEach {
when (it.status) {
Status.LOADING -> Timber.i("Select mark grades as read")
- Status.SUCCESS -> Timber.i("Mark as read result: Success")
+ Status.SUCCESS -> {
+ Timber.i("Mark as read result: Success")
+ loadData(currentSemesterId, false)
+ }
Status.ERROR -> {
Timber.i("Mark as read result: An exception occurred")
errorHandler.dispatch(it.error!!)
diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt
index 749989e3..aff1c84c 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginActivity.kt
@@ -14,6 +14,7 @@ import io.github.wulkanowy.ui.modules.login.form.LoginFormFragment
import io.github.wulkanowy.ui.modules.login.recover.LoginRecoverFragment
import io.github.wulkanowy.ui.modules.login.studentselect.LoginStudentSelectFragment
import io.github.wulkanowy.ui.modules.login.symbol.LoginSymbolFragment
+import io.github.wulkanowy.utils.UpdateHelper
import io.github.wulkanowy.utils.setOnSelectPageListener
import javax.inject.Inject
@@ -25,6 +26,9 @@ class LoginActivity : BaseActivity(), Logi
private val loginAdapter = BaseFragmentPagerAdapter(supportFragmentManager)
+ @Inject
+ lateinit var updateHelper: UpdateHelper
+
companion object {
fun getStartIntent(context: Context) = Intent(context, LoginActivity::class.java)
@@ -37,8 +41,20 @@ class LoginActivity : BaseActivity(), Logi
setContentView(ActivityLoginBinding.inflate(layoutInflater).apply { binding = this }.root)
setSupportActionBar(binding.loginToolbar)
messageContainer = binding.loginContainer
+ updateHelper.messageContainer = binding.loginContainer
presenter.onAttachView(this)
+ updateHelper.checkAndInstallUpdates(this)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ updateHelper.onResume(this)
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ updateHelper.onActivityResult(requestCode, resultCode)
}
override fun initView() {
diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt
index 95b4aa77..abc002de 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt
@@ -40,6 +40,7 @@ import io.github.wulkanowy.ui.modules.note.NoteFragment
import io.github.wulkanowy.ui.modules.timetable.TimetableFragment
import io.github.wulkanowy.utils.AppInfo
import io.github.wulkanowy.utils.FirebaseAnalyticsHelper
+import io.github.wulkanowy.utils.UpdateHelper
import io.github.wulkanowy.utils.dpToPx
import io.github.wulkanowy.utils.getThemeAttrColor
import io.github.wulkanowy.utils.safelyPopFragments
@@ -56,6 +57,9 @@ class MainActivity : BaseActivity(), MainVie
@Inject
lateinit var analytics: FirebaseAnalyticsHelper
+ @Inject
+ lateinit var updateHelper: UpdateHelper
+
@Inject
lateinit var appInfo: AppInfo
@@ -100,6 +104,7 @@ class MainActivity : BaseActivity(), MainVie
setContentView(ActivityMainBinding.inflate(layoutInflater).apply { binding = this }.root)
setSupportActionBar(binding.mainToolbar)
messageContainer = binding.mainFragmentContainer
+ updateHelper.messageContainer = binding.mainFragmentContainer
presenter.onAttachView(this, MainView.Section.values().singleOrNull { it.id == intent.getIntExtra(EXTRA_START_MENU, -1) })
@@ -107,6 +112,18 @@ class MainActivity : BaseActivity(), MainVie
initialize(startMenuIndex, savedInstanceState)
pushFragment(moreMenuFragments[startMenuMoreIndex])
}
+ updateHelper.checkAndInstallUpdates(this)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ updateHelper.onResume(this)
+ }
+
+ @SuppressLint("NewApi")
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ updateHelper.onActivityResult(requestCode, resultCode)
if (appInfo.systemVersion >= Build.VERSION_CODES.N_MR1) initShortcuts()
}
@@ -181,8 +198,8 @@ class MainActivity : BaseActivity(), MainVie
analytics.setCurrentScreen(this, name)
}
- override fun onOptionsItemSelected(item: MenuItem?): Boolean {
- return if (item?.itemId == R.id.mainMenuAccount) presenter.onAccountManagerSelected()
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ return if (item.itemId == R.id.mainMenuAccount) presenter.onAccountManagerSelected()
else false
}
diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt
index 740f4927..b35731ca 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/modules/message/preview/MessagePreviewFragment.kt
@@ -174,7 +174,7 @@ class MessagePreviewFragment :
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun printDocument(html: String, jobName: String) {
- val webView = WebView(activity)
+ val webView = WebView(requireContext())
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest) = false
diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/message/send/SendMessageActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/message/send/SendMessageActivity.kt
index 2267279c..59944d41 100644
--- a/app/src/main/java/io/github/wulkanowy/ui/modules/message/send/SendMessageActivity.kt
+++ b/app/src/main/java/io/github/wulkanowy/ui/modules/message/send/SendMessageActivity.kt
@@ -1,5 +1,6 @@
package io.github.wulkanowy.ui.modules.message.send
+import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.graphics.Rect
@@ -74,6 +75,7 @@ class SendMessageActivity : BaseActivity getString(R.string.error_no_internet)
- is SocketTimeoutException, is InterruptedIOException -> getString(R.string.error_timeout)
+ is SocketTimeoutException, is InterruptedIOException, is ConnectException, is StreamResetException -> getString(R.string.error_timeout)
is NotLoggedInException -> getString(R.string.error_login_failed)
is PasswordChangeRequiredException -> getString(R.string.error_password_change_required)
is ServiceUnavailableException -> getString(R.string.error_service_unavailable)
is FeatureDisabledException -> getString(R.string.error_feature_disabled)
is FeatureNotAvailableException -> getString(R.string.error_feature_not_available)
+ is VulcanException -> getString(R.string.error_unknown_uonet)
+ is ScrapperException -> getString(R.string.error_unknown_app)
else -> getString(R.string.error_unknown)
}
diff --git a/app/src/main/play/release-notes/pl-PL/default.txt b/app/src/main/play/release-notes/pl-PL/default.txt
index 7553e2cb..e89c473f 100644
--- a/app/src/main/play/release-notes/pl-PL/default.txt
+++ b/app/src/main/play/release-notes/pl-PL/default.txt
@@ -1,10 +1,7 @@
-Wersja 0.21.2
-- naprawiliśmy logowanie do tarnowskiego dziennika
-- naprawiliśmy wyświetlanie podsumowania punktów klasy
-- dodaliśmy skróty aplikacji
-- dodaliśmy opcję pokazywania nazwy grupy w planie lekcji na liście
-- dodaliśmy opcję pokazywania w ocenach przedmiotów bez ocen
-- dodaliśmy dodatkowe opcje sortowania ocen
-- dodaliśmy rozróżnianie powiadomień dla pochwał i uwag
+Wersja 0.22
+- naprawiliśmy krytyczny błąd ze stabilnością przy ładowaniu danych
+- naprawiliśmy skalowanie tekstu przy bardzo dużych jego rozmiarach
+- naprawiliśmy wyświetlanie powiadomień o odwołanych lekcjach (nie powinny się już pokazywać)
+- dodaliśmy informowanie o dostępności aktualizacji w aplikacji
Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 2ea0a4d3..2f88ecc8 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,5 +1,5 @@
-
+ app:contentInsetStartWithNavigation="0dp"
+ app:layout_constraintTop_toTopOf="parent" />
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toTopOf="@id/mainBottomNav"
+ app:layout_constraintTop_toBottomOf="@id/mainToolbar" />
-
+ app:layout_constraintBottom_toBottomOf="parent" />
+
diff --git a/app/src/main/res/layout/item_about.xml b/app/src/main/res/layout/item_about.xml
index f988c47b..6a95e552 100644
--- a/app/src/main/res/layout/item_about.xml
+++ b/app/src/main/res/layout/item_about.xml
@@ -33,7 +33,8 @@
+ android:orientation="vertical"
+ app:layout_constraintBottom_toBottomOf="@+id/attendanceItemDetailsContainer"
+ app:layout_constraintEnd_toStartOf="@+id/attendanceItemDetailsContainer"
+ app:layout_constraintHorizontal_bias="0.5"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="@+id/attendanceItemDetailsContainer">
-
+ android:layout_marginEnd="10dp"
+ app:layout_constraintEnd_toStartOf="@+id/attendanceItemAlert"
+ app:layout_constraintHorizontal_bias="0.5"
+ app:layout_constraintStart_toEndOf="@+id/attendanceItemNumberContainer"
+ app:layout_constraintTop_toTopOf="parent">
-
+
+
+
+
-
+
diff --git a/app/src/main/res/layout/item_attendance_summary_subject.xml b/app/src/main/res/layout/item_attendance_summary_subject.xml
index 263c08a7..ff731461 100644
--- a/app/src/main/res/layout/item_attendance_summary_subject.xml
+++ b/app/src/main/res/layout/item_attendance_summary_subject.xml
@@ -3,7 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/attendanceSummaryItemSubject"
android:layout_width="match_parent"
- android:layout_height="48dp"
+ android:layout_height="wrap_content"
+ android:minHeight="48dp"
android:gravity="start"
android:maxLines="1"
android:paddingLeft="16dp"
diff --git a/app/src/main/res/layout/item_completed_lesson.xml b/app/src/main/res/layout/item_completed_lesson.xml
index b9beec80..e9944f56 100644
--- a/app/src/main/res/layout/item_completed_lesson.xml
+++ b/app/src/main/res/layout/item_completed_lesson.xml
@@ -12,8 +12,11 @@
diff --git a/app/src/main/res/layout/item_grade_details.xml b/app/src/main/res/layout/item_grade_details.xml
index ccc968c0..2f3bd2de 100644
--- a/app/src/main/res/layout/item_grade_details.xml
+++ b/app/src/main/res/layout/item_grade_details.xml
@@ -18,62 +18,82 @@
-
+ app:layout_constraintTop_toTopOf="parent">
-
+
-
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_license.xml b/app/src/main/res/layout/item_license.xml
index aaa7cd34..cb55ab87 100644
--- a/app/src/main/res/layout/item_license.xml
+++ b/app/src/main/res/layout/item_license.xml
@@ -2,7 +2,8 @@
diff --git a/app/src/main/res/values-cs-rCZ/preferences_values.xml b/app/src/main/res/values-cs-rCZ/preferences_values.xml
new file mode 100644
index 00000000..bcb690e5
--- /dev/null
+++ b/app/src/main/res/values-cs-rCZ/preferences_values.xml
@@ -0,0 +1,52 @@
+
+
+
+ - Světlý
+ - Tmavý
+ - Černý (AMOLED)
+
+
+ - Jazyk systému
+ - Polski
+ - English
+ - Pусский
+ - Українська
+ - Deutsch
+ - Čeština
+
+
+ - 15 minut
+ - 30 minut
+ - 1 hodina
+ - 2 hodiny
+ - 6 hodin
+ - 12 hodin
+ - 24 hodin
+
+
+ - 0,00
+ - 0,25
+ - 0,33
+ - 0,5
+ - 0,75
+
+
+ - Abecedně
+ - Podle data
+
+
+ - Dzienniczek+
+ - Wulkanowy
+ - Barvy známek v deníku
+
+
+ - Průměrná známka od druhého semestru
+ - Průměr známek z obou semestrů
+ - Průměr známek z celého roku
+
+
+ - Neukaž
+ - Ukázat vše
+ - Ukázat menší
+
+
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
new file mode 100644
index 00000000..c55abd96
--- /dev/null
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -0,0 +1,457 @@
+
+
+
+ Přihlásit se
+ Wulkanowy
+ Známky
+ Prezence
+ Zkoušky
+ Plán lekce
+ Nastavení
+ Více
+ O aplikaci
+ Prohlížeč protokolů
+ Tvůrci
+ Licence
+ Zprávy
+ Nová zpráva
+ Poznámky a úspěchy
+ Domácí práce
+ Vyberte účet
+
+ Semestr %1$d, %2$d/%3$d
+
+ Přihlaste se pomocí studentského nebo nadřazeného účtu
+ Zadejte symbol
+ Uživatelské jméno
+ Email
+ Přihlášení, číslo PESEL nebo e-mail
+ Heslo
+ Deník UONET+
+ Mobile API
+ Scraper
+ Hybridní
+ Token
+ PIN
+ Klíč API
+ Symbol
+ Přihlásit
+ Toto heslo je příliš krátké
+ Přihlašovací údaje jsou nesprávné. Zkontrolujte, zda je v poli níže vybrán správný deník UONET+
+ Neplatný PIN
+ Neplatný token
+ Platnost tokenu vypršela
+ Nesprávná e-mailová adresa
+ Neplatné přihlášení
+ Neplatný symbol
+ Student nebyl nalezen. Zkontrolujte symbol
+ Toto pole je povinné
+ Vybraný student je již přihlášen
+ Symbol najdete na stránce deníku v Uczeń → Dostęp Mobilny → Zarejestruj urządzenie mobilne
+ Vyberte studenty k přihlášení do aplikace
+ Jiné možnosti
+ V tomto režimu nefungují následující: šťastné číslo, statistiky třídy, shrnutí docházky, ospravedlnění nepřítomnosti, absolvované lekce, informace o škole a prohlížení seznamu registrovaných zařízení
+ Tento režim zobrazuje stejná data, která se zobrazují na webových stránkách deníka
+ Kombinace nejlepších vlastností ostatních dvou režimů. Funguje rychleji než scraper a poskytuje funkce, které nejsou k dispozici v režimu Mobile API. Je to v experimentální fázi
+ Zásady ochrany osobních údajů
+ Problémy s přihlášením? Napište nám!
+ Email
+ Discord
+ Poslat e-mail
+ Popište podrobnosti problému:
+ Ujistěte se, že je vybrán správný UONET+ deník!
+ Zapomněl jsem své heslo
+ Obnovte svůj účet
+ Obnovit
+ Student je již přihlášen
+
+ Správce účtu
+ Přihlásit se
+ Platnost relace vypršela
+ Vaše relace vypršela, přihlaste se prosím znovu
+
+ Známka
+ Semestr %d
+ Změnit semestr
+ Žádné známky
+ Váha
+ Váha: %s
+ Komentář
+ Žádné nové známky
+ Počet nových známek: %1$d
+ Průměrný: %1$.2f
+ Body: %s
+ Žádný průměr
+ Předpovězeno: %1$s
+ Konečná: %1$s
+ Celkem bodů
+ Konečná známka
+ Předpokládaná známka
+ Vypočítaný průměr
+ Konečný průměr
+ Souhrn
+ Třída
+ Označit jako přečtené
+ Částečně
+ Semestr
+ Body
+
+ - %d známka
+ - %d známky
+ - %d známky
+ - %d známky
+
+
+ - Nová známka
+ - Nové známky
+ - Nové známky
+ - Nové známky
+
+
+ - Nová předpokládaná známka
+ - Nové předpovídané známky
+ - Nové předpovídané známky
+ - Nové předpovídané známky
+
+
+ - Nová konečná známka
+ - Nové konečné známky
+ - Nové konečné známky
+ - Nové konečné známky
+
+
+ - Máte %1$d novou známku
+ - Máte %1$d nové známky
+ - Máte %1$d nové známky
+ - Máte %1$d nové známky
+
+
+ - Máte %1$d novou konečnou známku
+ - Máte %1$d nové konečné známky
+ - Máte %1$d nové konečné známky
+ - Máte %1$d nové konečné známky
+
+
+ - Máte %1$d novou konečnou známku
+ - Máte %1$d nové konečné známky
+ - Máte %1$d nové konečné známky
+ - Máte %1$d nové konečné známky
+
+
+ Lekce
+ Pokoj
+ Skupina
+ Hodiny
+ Změny
+ Dnes žádné lekce
+ %s min
+ %s sek
+ dosud %1$s
+ za %1$s
+ Lekce skončila
+ Nyní: %s
+ Okamžik: %s
+ Později: %s
+
+ Dokončené lekce
+ Zobrazit dokončené lekce
+ Žádné informace o absolvovaných lekcích
+ Téma
+ Absence
+ Zdroje
+
+ Souhrn docházky
+ Nepřítomen ze školních důvodů
+ Omluvená absence
+ Neomluvená absence
+ Osvobození
+ Oprávněné zpoždění
+ Neomluvená zpoždění
+ Přítomnost
+ Smazáno
+ Neznámý
+ Číslo lekce
+ Žádné položky
+
+ - %1$d absence
+ - %1$d absence
+ - %1$d absence
+ - %1$d absence
+
+ Důvod absence (volitelný)
+ Poslat
+ Absence úspěšně omluvena!
+ Musíte vybrat alespoň jednu nepřítomnost!
+ Ospravedlnit
+
+ Účast
+ Celkový
+
+ Tento týden žádné testy
+ Typ
+ Datum vstupu
+
+ Doručená pošta
+ Odesláno
+ Koš
+ (žádné téma)
+ Žádné zprávy
+ Při stahování obsahu zprávy došlo k chybě
+ Od:
+ Do:
+ Datum: %s
+ Odpověď
+ Poslat dále
+ Vymazat
+ Přesunout do koše
+ Trvale smazat
+ Zpráva byla úspěšně smazána
+ Podíl
+ Vytisknout
+ Téma
+ Obsah
+ Zpráva úspěšně odeslána
+ Musíte vybrat alespoň 1 příjemce
+ Obsah zprávy musí mít alespoň 3 znaky
+
+ - %d zpráva
+ - %d zprávy
+ - %d zprávy
+ - %d zprávy
+
+
+ - Nová zpráva
+ - Nové zprávy
+ - Nové zprávy
+ - Nové zprávy
+
+
+ - Obdrželi jste %1$d zprávu
+ - Obdrželi jste %1$d zpráv
+ - Obdrželi jste %1$d zpráv
+ - Obdrželi jste %1$d zpráv
+
+
+ Žádné informace o poznámkách
+ Body
+
+ - %d poznámka
+ - %d poznámky
+ - %d poznámky
+ - %d poznámky
+
+
+ - Nová poznámka
+ - Nové poznámky
+ - Nové poznámky
+ - Nové poznámky
+
+
+ - Máte %1$d novou poznámku
+ - Máte %1$d nové poznámky
+ - Máte %1$d nové poznámky
+ - Máte %1$d nové poznámky
+
+
+
+ - %d chvála
+ - %d chvály
+ - %d chvály
+ - %d chvály
+
+
+ - Nová chvála
+ - Nové chvály
+ - Nové chvály
+ - Nové chvály
+
+
+ - Máte %1$d novou chválu
+ - Máte %1$d nové chvály
+ - Máte %1$d nové chvály
+ - Máte %1$d nové chvály
+
+
+
+ - %d neutrální poznámka
+ - %d neutrální poznámky
+ - %d neutrální poznámky
+ - %d neutrální poznámky
+
+
+ - Nová neutrální poznámka
+ - Nové neutrální poznámky
+ - Nové neutrální poznámky
+ - Nové neutrální poznámky
+
+
+ - Máte %1$d novou neutrální pozornost
+ - Máte %1$d nové neutrální komentáře
+ - Máte %1$d nové neutrální komentáře
+ - Máte %1$d nové neutrální komentáře
+
+
+ Žádný domácí úkol
+ Označit jako hotové
+ Neudělané
+ Přílohy
+
+ Šťastné číslo
+ Dnešní šťastné číslo je
+ Žádné informace o šťastném čísle
+ Šťastné číslo pro dnešek
+ Dnes je šťastným číslem: %d
+
+ Mobilní přístup
+ Žádná zařízení
+ Zrušit registraci
+ Zařízení odstraněno
+ QR kód
+ Token
+ Symbol
+ PIN
+
+ Škola a učitelé
+
+ Škola
+ Žádné informace o škole
+ Školní jméno
+ Adresa školy
+ Telefon
+ Jméno ředitele
+ Jméno pedagoga
+ Zobrazit na mapě
+ Volání
+
+ Učitelé
+ Žádné informace o učitelích
+ Žádný předmět
+
+ Přidat účet
+ Odhlásit se
+ Chcete se odhlásit z aktivního studenta?
+ Odhlášení studentů
+ Studentský účet
+ Rodičovský účet
+ Režimu Mobíle API
+ Hybridní režim
+
+ Verze aplikace
+ Tvůrci
+ Seznam vývojářů Wulkanowy
+ Nahlásit chybu
+ Pošlete hlášení o chybě e-mailem
+ FAQ
+ Přečtěte si často kladené otázky
+ Server Discord
+ Připojte se ke komunitě Wulkanowy
+ Zásady ochrany osobních údajů
+ Pravidla pro shromažďování osobních údajů
+ Domovská stránka
+ Navštivte web a pomozte s vývojem aplikace
+ Licence
+ Licence knihoven použitých v aplikaci
+
+ Licence
+
+ Avatar
+ Zobrazit více na GitHub
+
+ Sdílejte protokoly
+ Obnovit
+
+ Kontrola aktualizací
+ Před nahlášením chyby nejprve zkontrolujte, zda je k dispozici aktualizace s opravou chyby
+
+ Obsah
+ Zkuste to znovu
+ Popis
+ Bez popisu
+ Učitel
+ Datum
+ Datum vstupu
+ Barva
+ Detaily
+ Kategorie
+ Zavřít
+ Žádná data
+ Předmět
+ Předchozí
+ Další
+ Vyhledávání
+ Vyhledávání…
+
+ Žádné lekce
+ Vyberte téma
+ Světlý
+ Tmavý
+ Téma systému
+
+ Vzhled
+ Výchozí zobrazení
+ Výpočet koncoročního průměru
+ Vynutit průměrný výpočet podle aplikace
+ Zobrazit přítomnost v účasti
+ Téma aplikace
+ Rozbalit známky
+ Označte aktuální lekci v plánu lekce
+ Ukázat skupiny vedle předmětů v plánu lekce
+ Ukázat seznam grafů ve třídních známkách
+ Ukázat lekce pro celou třídu
+ Ukázat předměty bez známek v \"Známky\"
+ Známky barevné schéma
+ Předměty seřazené v \"Známky\"
+ Jazyk aplikace
+ Oznámení
+ Ukázat notifikace
+ Ukázat nadcházející oznámení o lekci
+ Opravte problémy se synchronizací a upozorněním
+ Ve vašem zařízení mohou nastat problémy se synchronizací dat a oznámenímii.\n\nChcete-li je opravit, přidejte Wulkanowy do funkce Autostart a vypněte optimalizaci/úsporu baterie v nastavení systému telefonu.
+ Jdi do nastavení
+ Ukázat oznámení o ladění
+ Synchronizace
+ Automatická aktualizace
+ Pozastaveno na dovolené
+ Interval aktualizací
+ Pouze Wi-Fi
+ Nyní synchronizovat
+ Synchronizováno!
+ Synchronizace se nezdařila
+ Probíhá synchronizace
+ Synchronizace
+ Ruční synchronizace neobnoví zobrazení aplikace.
+ \nChcete-li zobrazit synchronizovaná data, restartujte aplikaci po synchronizaci.
+
+ Jiný
+ Hodnota plusu
+ Hodnota mínusu
+ Odpovědět s historií zpráv
+
+ Nové položky v deník
+ Nové známky
+ Šťastné číslo
+ Nové zprávy
+ Nové poznámky
+ Oznámení push
+ Nadcházející lekce
+ Ladění
+
+ Černý
+ Červený
+ Modrý
+ Zelený
+ Nachový
+ Žádná barva
+
+ Zkopírováno
+ Vrátit
+
+ Žádné internetové připojení
+ Vypršel časový limit připojení k denik
+ Přihlášení selhalo. Zkuste to znovu nebo restartujte aplikaci
+ Je vyžadována změna hesla
+ Probíhá údržba UONET+ deník. Zkuste to později znovu
+ Došlo k neočekávané chybě
+ Funkce deaktivována vaší školou
+ Funkce není k dispozici. Přihlaste se v jiném režimu než Mobile API
+
diff --git a/app/src/main/res/values-de/preferences_values.xml b/app/src/main/res/values-de/preferences_values.xml
index 11935b49..2ee70f62 100644
--- a/app/src/main/res/values-de/preferences_values.xml
+++ b/app/src/main/res/values-de/preferences_values.xml
@@ -12,6 +12,7 @@
- Pусский
- Українська
- Deutsch
+ - Čeština
- 15 Minuten
@@ -29,6 +30,10 @@
- 0,5
- 0,75
+
+ - Alphabetic
+ - By date
+
- Dzienniczek+
- Wulkanowy
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 7e287767..c33c273a 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -154,6 +154,8 @@
Entschuldigte Verspätung
Unentschuldigte Verspätung
Anwesend
+ Deleted
+ Unknown
Lektion Nummer
Keine Einträgen
@@ -222,6 +224,32 @@
- Du hast %1$d Eintrag bekommen
- Du hast %1$d Eintragen bekommen
+
+
+ - %d praise
+ - %d praises
+
+
+ - New praise
+ - New praises
+
+
+ - You received %1$d praise
+ - You received %1$d praises
+
+
+
+ - %d neutral note
+ - %d neutral notes
+
+
+ - New neutral note
+ - New neutral notes
+
+
+ - You received %1$d neutral note
+ - You received %1$d neutral notes
+
Keine Informationen über Hausaufgaben
Gemacht
@@ -327,9 +355,12 @@
Thema der Anwendung
Noten erweitern
Aktuelle Lektion im Stundenplan markieren
+ Show groups next to subjects in timetable
Liste der Diagramme in Klassenbewertungen anzeigen
Unterricht der ganzen Klasse anzeigen
+ Show subjects without grades in Grades
Farbschema der Noten
+ Subjects sorting in \"Grades\"
App Sprache
Benachrichtigungen
Benachrichtigungen anzeigen
diff --git a/app/src/main/res/values-pl/preferences_values.xml b/app/src/main/res/values-pl/preferences_values.xml
index c57d2be5..0634f657 100644
--- a/app/src/main/res/values-pl/preferences_values.xml
+++ b/app/src/main/res/values-pl/preferences_values.xml
@@ -12,6 +12,7 @@
- Pусский
- Українська
- Deutsch
+ - Čeština
- 15 minut
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 0923951a..8dea2123 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -400,7 +400,7 @@
Pokazuj lekcje całej klasy
Pokazuj przedmioty bez ocen w Oceny
Schemat kolorów ocen
- Sortowanie przedmiotów w "Oceny"
+ Sortowanie przedmiotów w \"Oceny\"
Język aplikacji
Powiadomienia
Pokazuj powiadomienia
@@ -448,9 +448,11 @@
Brak połączenia z internetem
Upłynął limit czasu na połączenie z dziennikiem
- Logowanie nie powiodło się. Spróbuj ponownie lub zrestartuj aplikację
+ Logowanie nie powiodło się. Spróbuj ponownie
Wymagana zmiana hasła
Trwa przerwa techniczna dziennika UONET+. Spróbuj ponownie później
+ Wystąpił nieznany błąd dziennika UONET+. Spróbuj ponownie później
+ Wystąpił nieznany błąd aplikacji
Wystąpił nieoczekiwany błąd
Funkcja wyłączona przez szkołę
Funkcja niedostępna. Zaloguj się w trybie innym niż Mobilne API
diff --git a/app/src/main/res/values-ru/preferences_values.xml b/app/src/main/res/values-ru/preferences_values.xml
index a41abf35..304d678f 100644
--- a/app/src/main/res/values-ru/preferences_values.xml
+++ b/app/src/main/res/values-ru/preferences_values.xml
@@ -12,6 +12,7 @@
- Pусский
- Українська
- Deutsch
+ - Čeština
- 15 минут
@@ -29,6 +30,10 @@
- 0,5
- 0,75
+
+ - Алфавитный
+ - По дате
+
- Dzienniczek+
- Wulkanowy
@@ -36,8 +41,8 @@
- Средняя оценка со 2 семестра
- - Average of grades from both semesters
- - Average of grades from the whole year
+ - Средняя оценка с двух семестров
+ - Средняя оценок со всего года
- Не показывать
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 7052fbc9..28ac6943 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -108,16 +108,16 @@
- Новые оценки
- - New predicted grade
- - New predicted grades
- - New predicted grades
- - New predicted grades
+ - Новая ожидаемая оценка
+ - Новые ожидаемые оценки
+ - Новые ожидаемые оценки
+ - Новые ожидаемые оценки
- - New final grade
- - New final grades
- - New final grades
- - New final grades
+ - Новая итоговая оценка
+ - Новые итоговые оценки
+ - Новые итоговые оценки
+ - Новые итоговые оценки
- Вы получили %1$d оценку
@@ -126,16 +126,16 @@
- Вы получили %1$d оценок
- - You received %1$d predicted grade
- - You received %1$d predicted grades
- - You received %1$d predicted grades
- - You received %1$d predicted grades
+ - Вы получили %1$d ожидаемую оценку
+ - Вы получили %1$d ожидаемые оценки
+ - Вы получили %1$d ожидаемых оценок
+ - Вы получили %1$d ожидаемых оценок
- - You received %1$d final grade
- - You received %1$d final grades
- - You received %1$d final grades
- - You received %1$d final grades
+ - Вы получили %1$d финальную оценку
+ - Вы получили %1$d итоговых оценки
+ - Вы получили %1$d итоговых оценок
+ - Вы получили %1$d финальные оценки
Урок
@@ -168,6 +168,8 @@
Опоздание по уважительным причинам
Опоздание по неуважительным причинам
Присутствие
+ Удалено
+ Неизвестно
Урок №
Данные не найдены
@@ -204,8 +206,8 @@
Перенести в корзину
Удалить навсегда
Сообщение успешно удалено
- Share
- Print
+ Поделиться
+ Печать
Тема
Текст
Сообщение успешно отправлено
@@ -250,6 +252,44 @@
- Вы получили %1$d предупреждений
- Вы получили %1$d предупреждений
+
+
+ - %d похвала
+ - %d похвала
+ - %d похвала
+ - %d похвала
+
+
+ - Новая похвала
+ - Новые похвалы
+ - Новые свершения
+ - Новые похвалы
+
+
+ - Вы получили %1$d похвалу
+ - Вы получили %1$d похвалы
+ - Вы получили %1$d похвалы
+ - Вы получили %1$d похвалы
+
+
+
+ - %d нейтральное замечание
+ - %d нейтральных замечания
+ - %d нейтральных замечаний
+ - %d нейтральных замечаний
+
+
+ - Новое нейтральное замечание
+ - Новые нейтральные замечания
+ - Новые нейтральные замечания
+ - Новые нейтральные замечания
+
+
+ - Вы получили %1$d нейтральное замечание
+ - Вы получили %1$d нейтральных замечания
+ - Вы получили %1$d нейтральных замечаний
+ - Вы получили %1$d нейтральных замечаний
+
Нет домашних заданий
сделанный
@@ -291,10 +331,10 @@
Выйти
Вы точно хотите выйти из данного аккаунта?
Выйти
- Student account
- Parent account
- Mobile API mode
- Hybrid mode
+ Профиль ученика
+ Профиль родителя
+ Режим Mobile API
+ Гибридный режим
Версия приложения
Разработчики
@@ -353,11 +393,14 @@
Принудительно высчитать среднюю оценку через приложение
Показывать присутствия в посещаемости
Тема приложения
- Больше оценок
+ Разворачивать оценки
Отмечать текущий урок в расписании
+ Показать группу возле предмета в расписании
Показывать диаграммы в оценках класса
Показать уроки всего класса
+ Показывать предметы без оценок в \"Оценках\"
Схема цветов оценок
+ Сортировка предметов в \"Оценках\"
Язык приложения
Уведомления
Показывать уведомления
diff --git a/app/src/main/res/values-uk/preferences_values.xml b/app/src/main/res/values-uk/preferences_values.xml
index 9942621a..0ff8bfd0 100644
--- a/app/src/main/res/values-uk/preferences_values.xml
+++ b/app/src/main/res/values-uk/preferences_values.xml
@@ -12,6 +12,7 @@
- Pусский
- Українська
- Deutsch
+ - Čeština
- 15 хвилин
@@ -29,6 +30,10 @@
- 0,5
- 0,75
+
+ - Alphabetic
+ - By date
+
- Dzienniczek+
- Wulkanowy
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 15fe203d..ed10d24d 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -168,6 +168,8 @@
Спізнення з поважних причин
Спізнення з не поважних причин
Присутність
+ Deleted
+ Unknown
Номер уроку
Брак записів
@@ -250,6 +252,44 @@
- %1$d нових зауважень
- %1$d нових зауважень
+
+
+ - %d praise
+ - %d praises
+ - %d praises
+ - %d praises
+
+
+ - New praise
+ - New praises
+ - New praises
+ - New praises
+
+
+ - You received %1$d praise
+ - You received %1$d praises
+ - You received %1$d praises
+ - You received %1$d praises
+
+
+
+ - %d neutral note
+ - %d neutral notes
+ - %d neutral notes
+ - %d neutral notes
+
+
+ - New neutral note
+ - New neutral notes
+ - New neutral notes
+ - New neutral notes
+
+
+ - You received %1$d neutral note
+ - You received %1$d neutral notes
+ - You received %1$d neutral notes
+ - You received %1$d neutral notes
+
Брак домашніх завдань
Позначити як зроблене
@@ -355,9 +395,12 @@
Тема додатку
Більше оцінок
Позначити поточний урок у розкладі
+ Show groups next to subjects in timetable
Показувати діаграми в оцінках класу
Показати уроки всього класу
+ Show subjects without grades in Grades
Схема кольорів оцінок
+ Subjects sorting in \"Grades\"
Мова додатку
Повідомлення
Показувати повідомлення
diff --git a/app/src/main/res/values/preferences_values.xml b/app/src/main/res/values/preferences_values.xml
index 06a9d8c4..d994213c 100644
--- a/app/src/main/res/values/preferences_values.xml
+++ b/app/src/main/res/values/preferences_values.xml
@@ -31,6 +31,7 @@
- Pусский
- Українська
- Deutsch
+ - Čeština
- system
@@ -39,6 +40,7 @@
- ru
- uk
- de
+ - cs
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bf4727be..d45ef8dc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -472,13 +472,21 @@
Copied
Undo
+
+ Start downloading update…
+ An update has just been downloaded.
+ Restart
+ Update failed! Wulkanowy may not function properly. Consider updating
+
No internet connection
Connection to the register timed out
- Login failed. Try again or restart the app
+ Login failed. Try again
Password change required
Maintenance underway UONET + register. Try again later
+ Unknown UONET + register error. Try again later
+ Unknown application error
An unexpected error occurred
Feature disabled by your school
Feature not available. Login in a mode other than Mobile API
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 8f30e345..58ad1640 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -23,7 +23,7 @@
- @drawable/layer_splash_background
-