diff --git a/.gitignore b/.gitignore index 810f5e7aa..12c6f2419 100644 --- a/.gitignore +++ b/.gitignore @@ -71,7 +71,6 @@ captures/ .idea/deploymentTargetDropDown.xml .idea/deploymentTargetSelector.xml .idea/kotlinc.xml -.idea/studiobot.xml # Keystore files *.jks diff --git a/app/build.gradle b/app/build.gradle index 887b6d2d5..e7e93e4a9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,8 +27,8 @@ android { testApplicationId "io.github.tests.wulkanowy" minSdkVersion 21 targetSdkVersion 34 - versionCode 177 - versionName "2.7.0" + versionCode 175 + versionName "2.6.15" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" resValue "string", "app_name", "Wulkanowy" @@ -161,7 +161,7 @@ play { track = 'production' releaseStatus = ReleaseStatus.IN_PROGRESS userFraction = 0.99d - updatePriority = 2 + updatePriority = 3 enabled.set(false) } @@ -191,7 +191,7 @@ ext { } dependencies { - implementation 'io.github.wulkanowy:sdk:2.7.0' + implementation 'io.github.wulkanowy:sdk:2.6.13' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' @@ -221,7 +221,7 @@ dependencies { implementation "androidx.work:work-runtime:$work_manager" playImplementation "androidx.work:work-gcm:$work_manager" - implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.8.2" + implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.8.0" implementation "androidx.room:room-runtime:$room" implementation "androidx.room:room-ktx:$room" @@ -256,7 +256,7 @@ dependencies { playImplementation 'com.google.firebase:firebase-crashlytics:' playImplementation 'com.google.firebase:firebase-config' - playImplementation 'com.google.android.gms:play-services-ads:22.6.0' + playImplementation 'com.google.android.gms:play-services-ads:23.1.0' playImplementation "com.google.android.play:integrity:1.3.0" playImplementation 'com.google.android.play:app-update-ktx:2.1.0' playImplementation 'com.google.android.play:review-ktx:2.0.1' diff --git a/app/src/main/java/io/github/wulkanowy/data/Resource.kt b/app/src/main/java/io/github/wulkanowy/data/Resource.kt index 61eaaea19..712a946f3 100644 --- a/app/src/main/java/io/github/wulkanowy/data/Resource.kt +++ b/app/src/main/java/io/github/wulkanowy/data/Resource.kt @@ -1,6 +1,5 @@ package io.github.wulkanowy.data -import io.github.wulkanowy.data.repositories.isEndDateReached import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.Flow @@ -268,8 +267,7 @@ inline fun networkBoundResource( emit(Resource.Loading()) val data = query().first() - val updatedShouldFetch = if (isEndDateReached) false else shouldFetch(data) - if (updatedShouldFetch) { + if (shouldFetch(data)) { emit(Resource.Intermediate(data)) try { diff --git a/app/src/main/java/io/github/wulkanowy/data/WulkanowySdkFactory.kt b/app/src/main/java/io/github/wulkanowy/data/WulkanowySdkFactory.kt index 9de751c5c..6b8555e43 100644 --- a/app/src/main/java/io/github/wulkanowy/data/WulkanowySdkFactory.kt +++ b/app/src/main/java/io/github/wulkanowy/data/WulkanowySdkFactory.kt @@ -36,9 +36,7 @@ class WulkanowySdkFactory @Inject constructor( private val migrationFailedStudentIds = mutableSetOf() private val sandbox: ListenableFuture? = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && JavaScriptSandbox.isSupported()) - runCatching { JavaScriptSandbox.createConnectedInstanceAsync(context) } - .onFailure { Timber.e(it) } - .getOrNull() + JavaScriptSandbox.createConnectedInstanceAsync(context) else null private val sdk = Sdk().apply { diff --git a/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt b/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt index a25f8a0e6..815f8b758 100644 --- a/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt +++ b/app/src/main/java/io/github/wulkanowy/data/repositories/WulkanowyRepository.kt @@ -12,13 +12,9 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.filterNot import kotlinx.coroutines.sync.Mutex import timber.log.Timber -import java.time.LocalDate import javax.inject.Inject import javax.inject.Singleton -private val endDate = LocalDate.of(2024, 6, 25) -val isEndDateReached = LocalDate.now() >= endDate - @Singleton class WulkanowyRepository @Inject constructor( private val wulkanowyService: WulkanowyService, @@ -28,6 +24,7 @@ class WulkanowyRepository @Inject constructor( ) { private val saveFetchResultMutex = Mutex() + private val cacheKey = "mapping_refresh_key" fun getAdminMessages(): Flow>> = diff --git a/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt b/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt index aa0700b3e..e0a136f98 100644 --- a/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt +++ b/app/src/main/java/io/github/wulkanowy/services/sync/SyncManager.kt @@ -4,27 +4,19 @@ import android.os.Build.VERSION.SDK_INT import android.os.Build.VERSION_CODES.O import androidx.core.app.NotificationManagerCompat import androidx.lifecycle.asFlow +import androidx.work.* import androidx.work.BackoffPolicy.EXPONENTIAL -import androidx.work.Constraints -import androidx.work.Data import androidx.work.ExistingPeriodicWorkPolicy.KEEP import androidx.work.ExistingPeriodicWorkPolicy.UPDATE -import androidx.work.ExistingWorkPolicy import androidx.work.NetworkType.CONNECTED import androidx.work.NetworkType.UNMETERED -import androidx.work.OneTimeWorkRequestBuilder -import androidx.work.PeriodicWorkRequestBuilder -import androidx.work.WorkInfo -import androidx.work.WorkManager import io.github.wulkanowy.data.db.SharedPrefProvider import io.github.wulkanowy.data.db.SharedPrefProvider.Companion.APP_VERSION_CODE_KEY import io.github.wulkanowy.data.repositories.PreferencesRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.services.sync.channels.Channel import io.github.wulkanowy.utils.AppInfo import io.github.wulkanowy.utils.isHolidays import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flowOf import timber.log.Timber import java.time.LocalDate.now import java.util.concurrent.TimeUnit.MINUTES @@ -42,9 +34,7 @@ class SyncManager @Inject constructor( ) { init { - if (now().isHolidays || isEndDateReached) { - stopSyncWorker() - } + if (now().isHolidays) stopSyncWorker() if (SDK_INT >= O) { channels.forEach { it.create() } @@ -60,7 +50,7 @@ class SyncManager @Inject constructor( } fun startPeriodicSyncWorker(restart: Boolean = false) { - if (preferencesRepository.isServiceEnabled && !now().isHolidays && isEndDateReached) { + if (preferencesRepository.isServiceEnabled && !now().isHolidays) { val serviceInterval = preferencesRepository.servicesInterval workManager.enqueueUniquePeriodicWork( @@ -80,10 +70,6 @@ class SyncManager @Inject constructor( // if quiet, no notifications will be sent fun startOneTimeSyncWorker(quiet: Boolean = false): Flow { - if (isEndDateReached) { - return flowOf(null) - } - val work = OneTimeWorkRequestBuilder() .setInputData( Data.Builder() diff --git a/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt b/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt index a7639a258..bcbc23ef2 100644 --- a/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt +++ b/app/src/main/java/io/github/wulkanowy/services/sync/SyncWorker.kt @@ -15,7 +15,6 @@ import io.github.wulkanowy.R import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.SemesterRepository import io.github.wulkanowy.data.repositories.StudentRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.sdk.exception.FeatureNotAvailableException import io.github.wulkanowy.sdk.scrapper.exception.FeatureDisabledException import io.github.wulkanowy.sdk.scrapper.exception.FeatureUnavailableException @@ -43,9 +42,7 @@ class SyncWorker @AssistedInject constructor( override suspend fun doWork(): Result = withContext(dispatchersProvider.io) { Timber.i("SyncWorker is starting") - if (!studentRepository.isCurrentStudentSet() || isEndDateReached) { - return@withContext Result.failure() - } + if (!studentRepository.isCurrentStudentSet()) return@withContext Result.failure() val (student, semester) = try { val student = studentRepository.getCurrentStudent() @@ -94,7 +91,6 @@ class SyncWorker @AssistedInject constructor( .build() ) } - errors.isNotEmpty() -> Result.retry() else -> { preferencesRepository.lasSyncDate = Instant.now() diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndFragment.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndFragment.kt deleted file mode 100644 index cefbdddd3..000000000 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndFragment.kt +++ /dev/null @@ -1,31 +0,0 @@ -package io.github.wulkanowy.ui.modules.end - -import android.os.Bundle -import android.text.method.LinkMovementMethod -import android.view.View -import androidx.activity.addCallback -import androidx.core.text.HtmlCompat -import dagger.hilt.android.AndroidEntryPoint -import io.github.wulkanowy.R -import io.github.wulkanowy.databinding.FragmentEndBinding -import io.github.wulkanowy.ui.base.BaseFragment - -@AndroidEntryPoint -class EndFragment : BaseFragment(R.layout.fragment_end), EndView { - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - binding = FragmentEndBinding.bind(view) - - requireActivity().onBackPressedDispatcher.addCallback { - requireActivity().finishAffinity() - } - - binding.endClose.setOnClickListener { requireActivity().finishAffinity() } - - val message = getString(R.string.end_message) - binding.endDescription.movementMethod = LinkMovementMethod.getInstance() - binding.endDescription.text = - HtmlCompat.fromHtml(message, HtmlCompat.FROM_HTML_MODE_COMPACT) - } -} diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndView.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndView.kt deleted file mode 100644 index 730d570e6..000000000 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/end/EndView.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.github.wulkanowy.ui.modules.end - -import io.github.wulkanowy.ui.base.BaseView - -interface EndView : BaseView 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 0d9bb21ef..e528c5147 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 @@ -15,7 +15,6 @@ import io.github.wulkanowy.R import io.github.wulkanowy.data.pojos.RegisterUser import io.github.wulkanowy.databinding.ActivityLoginBinding import io.github.wulkanowy.ui.base.BaseActivity -import io.github.wulkanowy.ui.modules.end.EndFragment import io.github.wulkanowy.ui.modules.login.advanced.LoginAdvancedFragment import io.github.wulkanowy.ui.modules.login.form.LoginFormFragment import io.github.wulkanowy.ui.modules.login.recover.LoginRecoverFragment @@ -116,14 +115,9 @@ class LoginActivity : BaseActivity(), Logi } } - override fun navigateToEnd() { - openFragment(EndFragment(), clearBackStack = true) - } - override fun onResume() { super.onResume() inAppUpdateHelper.onResume() presenter.updateSdkMappings() - presenter.checkIfEnd() } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt index 36552193c..aff0515f0 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginPresenter.kt @@ -2,8 +2,6 @@ package io.github.wulkanowy.ui.modules.login import io.github.wulkanowy.data.repositories.StudentRepository import io.github.wulkanowy.data.repositories.WulkanowyRepository -import io.github.wulkanowy.data.repositories.isEndDateReached -import io.github.wulkanowy.services.sync.SyncManager import io.github.wulkanowy.ui.base.BasePresenter import io.github.wulkanowy.ui.base.ErrorHandler import kotlinx.coroutines.launch @@ -13,8 +11,7 @@ import javax.inject.Inject class LoginPresenter @Inject constructor( private val wulkanowyRepository: WulkanowyRepository, errorHandler: ErrorHandler, - studentRepository: StudentRepository, - private val syncManager: SyncManager + studentRepository: StudentRepository ) : BasePresenter(errorHandler, studentRepository) { override fun onAttachView(view: LoginView) { @@ -29,11 +26,4 @@ class LoginPresenter @Inject constructor( .onFailure { Timber.e(it) } } } - - fun checkIfEnd() { - if (isEndDateReached) { - syncManager.stopSyncWorker() - view?.navigateToEnd() - } - } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt index 3fe1f0463..a0949e6d9 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/login/LoginView.kt @@ -5,6 +5,4 @@ import io.github.wulkanowy.ui.base.BaseView interface LoginView : BaseView { fun initView() - - fun navigateToEnd() } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt index 18437ef7a..e6de17818 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/luckynumberwidget/LuckyNumberWidgetProvider.kt @@ -14,9 +14,7 @@ import io.github.wulkanowy.R import io.github.wulkanowy.data.dataOrThrow import io.github.wulkanowy.data.db.SharedPrefProvider import io.github.wulkanowy.data.repositories.LuckyNumberRepository -import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.StudentRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.data.toFirstResult import io.github.wulkanowy.ui.modules.Destination import io.github.wulkanowy.ui.modules.splash.SplashActivity @@ -37,9 +35,6 @@ class LuckyNumberWidgetProvider : AppWidgetProvider() { @Inject lateinit var sharedPref: SharedPrefProvider - @Inject - lateinit var preferencesRepository: PreferencesRepository - companion object { private const val LUCKY_NUMBER_WIDGET_MAX_SIZE = 196 @@ -135,10 +130,6 @@ class LuckyNumberWidgetProvider : AppWidgetProvider() { } private fun getLuckyNumber(studentId: Long, appWidgetId: Int) = runBlocking { - if (isEndDateReached) { - return@runBlocking null - } - try { val students = studentRepository.getSavedStudents() val student = students.singleOrNull { it.student.id == studentId }?.student 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 23aa51b42..e64aa9b07 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 @@ -33,7 +33,6 @@ import io.github.wulkanowy.ui.modules.Destination import io.github.wulkanowy.ui.modules.account.accountquick.AccountQuickDialog import io.github.wulkanowy.ui.modules.auth.AuthDialog import io.github.wulkanowy.ui.modules.captcha.CaptchaDialog -import io.github.wulkanowy.ui.modules.end.EndFragment import io.github.wulkanowy.ui.modules.settings.appearance.menuorder.AppMenuItem import io.github.wulkanowy.utils.AnalyticsHelper import io.github.wulkanowy.utils.AppInfo @@ -140,7 +139,6 @@ class MainActivity : BaseActivity(), MainVie super.onResume() inAppUpdateHelper.onResume() presenter.updateSdkMappings() - presenter.checkIfEnd() } override fun onCreateOptionsMenu(menu: Menu): Boolean { @@ -364,10 +362,4 @@ class MainActivity : BaseActivity(), MainVie super.onSaveInstanceState(outState) navController.onSaveInstanceState(outState) } - - override fun navigateToEnd() { - binding.mainToolbar.isVisible = false - pushView(EndFragment()) - onBackCallback?.isEnabled = false - } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt index 13edac6e1..6a072718d 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainPresenter.kt @@ -7,7 +7,6 @@ import io.github.wulkanowy.data.onResourceSuccess import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.StudentRepository import io.github.wulkanowy.data.repositories.WulkanowyRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.data.resourceFlow import io.github.wulkanowy.services.sync.SyncManager import io.github.wulkanowy.ui.base.BasePresenter @@ -16,7 +15,6 @@ import io.github.wulkanowy.ui.base.ErrorHandler import io.github.wulkanowy.ui.modules.Destination import io.github.wulkanowy.ui.modules.account.AccountView import io.github.wulkanowy.ui.modules.account.accountdetails.AccountDetailsView -import io.github.wulkanowy.ui.modules.end.EndView import io.github.wulkanowy.ui.modules.studentinfo.StudentInfoView import io.github.wulkanowy.utils.AdsHelper import io.github.wulkanowy.utils.AnalyticsHelper @@ -112,7 +110,6 @@ class MainPresenter @Inject constructor( } private fun shouldShowBottomNavigation(destination: BaseView) = when (destination) { - is EndView, is AccountView, is StudentInfoView, is AccountDetailsView -> false @@ -211,11 +208,4 @@ class MainPresenter @Inject constructor( .onFailure { Timber.e(it) } } } - - fun checkIfEnd() { - if (isEndDateReached) { - syncManager.stopSyncWorker() - view?.navigateToEnd() - } - } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt index c83d95681..70a94fc81 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainView.kt @@ -48,8 +48,6 @@ interface MainView : BaseView { fun openMoreDestination(destination: Destination) - fun navigateToEnd() - interface MainChildView { fun onFragmentReselected() diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt index 55621bc5a..e60d54880 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/timetablewidget/TimetableWidgetFactory.kt @@ -22,7 +22,6 @@ import io.github.wulkanowy.data.repositories.PreferencesRepository import io.github.wulkanowy.data.repositories.SemesterRepository import io.github.wulkanowy.data.repositories.StudentRepository import io.github.wulkanowy.data.repositories.TimetableRepository -import io.github.wulkanowy.data.repositories.isEndDateReached import io.github.wulkanowy.data.toFirstResult import io.github.wulkanowy.ui.modules.timetablewidget.TimetableWidgetProvider.Companion.getDateWidgetKey import io.github.wulkanowy.ui.modules.timetablewidget.TimetableWidgetProvider.Companion.getStudentWidgetKey @@ -72,8 +71,6 @@ class TimetableWidgetFactory( items = emptyList() - if (isEndDateReached) return - runBlocking { runCatching { val student = getStudent(studentId) ?: return@runBlocking diff --git a/app/src/main/java/io/github/wulkanowy/utils/TimeExtension.kt b/app/src/main/java/io/github/wulkanowy/utils/TimeExtension.kt index 77689fcb7..e7a50d0c3 100644 --- a/app/src/main/java/io/github/wulkanowy/utils/TimeExtension.kt +++ b/app/src/main/java/io/github/wulkanowy/utils/TimeExtension.kt @@ -1,32 +1,14 @@ package io.github.wulkanowy.utils import java.text.SimpleDateFormat -import java.time.DayOfWeek.FRIDAY -import java.time.DayOfWeek.MONDAY -import java.time.DayOfWeek.SATURDAY -import java.time.DayOfWeek.SUNDAY -import java.time.Instant -import java.time.LocalDate -import java.time.LocalDateTime -import java.time.Month -import java.time.ZoneId -import java.time.ZoneOffset +import java.time.* +import java.time.DayOfWeek.* import java.time.format.DateTimeFormatter -import java.time.temporal.TemporalAdjusters.firstInMonth -import java.time.temporal.TemporalAdjusters.next -import java.time.temporal.TemporalAdjusters.previous -import java.util.Locale +import java.time.temporal.TemporalAdjusters.* +import java.util.* private const val DEFAULT_DATE_PATTERN = "dd.MM.yyyy" -fun getDefaultLocaleWithFallback(): Locale { - val locale = Locale.getDefault() - if (locale.language == "csb") { - return Locale.forLanguageTag("pl") - } - return locale -} - fun LocalDate.toTimestamp(): Long = atStartOfDay() .toInstant(ZoneOffset.UTC) .toEpochMilli() @@ -41,7 +23,7 @@ fun String.toLocalDate(format: String = DEFAULT_DATE_PATTERN): LocalDate = LocalDate.parse(this, DateTimeFormatter.ofPattern(format)) fun LocalDate.toFormattedString(pattern: String = DEFAULT_DATE_PATTERN): String = - format(DateTimeFormatter.ofPattern(pattern, getDefaultLocaleWithFallback())) + format(DateTimeFormatter.ofPattern(pattern)) fun Instant.toFormattedString( pattern: String = DEFAULT_DATE_PATTERN, @@ -49,7 +31,7 @@ fun Instant.toFormattedString( ): String = atZone(tz).format(DateTimeFormatter.ofPattern(pattern)) fun Month.getFormattedName(): String { - val formatter = SimpleDateFormat("LLLL", getDefaultLocaleWithFallback()) + val formatter = SimpleDateFormat("LLLL", Locale.getDefault()) val date = LocalDateTime.now().withMonth(value) return formatter.format(date.toInstant(ZoneOffset.UTC).toEpochMilli()).capitalise() @@ -94,7 +76,7 @@ inline val LocalDate.previousOrSameSchoolDay: LocalDate } inline val LocalDate.weekDayName: String - get() = format(DateTimeFormatter.ofPattern("EEEE", getDefaultLocaleWithFallback())) + get() = format(DateTimeFormatter.ofPattern("EEEE", Locale.getDefault())) inline val LocalDate.monday: LocalDate get() = with(MONDAY) 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 c616505f8..329da27f1 100644 --- a/app/src/main/play/release-notes/pl-PL/default.txt +++ b/app/src/main/play/release-notes/pl-PL/default.txt @@ -1,7 +1,5 @@ -Wersja 2.7.0 +Wersja 2.6.15 -— naprawiliśmy ustawienia wyglądu po zmianie na język kaszubski -— dodaliśmy ekran końca -- naprawiliśmy ładowanie ocen z modułu Uczeń Plus +— naprawiliśmy moduł wiadomości Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases diff --git a/app/src/main/res/layout/fragment_end.xml b/app/src/main/res/layout/fragment_end.xml deleted file mode 100644 index 883f0fc56..000000000 --- a/app/src/main/res/layout/fragment_end.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-cs/preferences_values.xml b/app/src/main/res/values-cs/preferences_values.xml index fa5bad545..c9b2258fc 100644 --- a/app/src/main/res/values-cs/preferences_values.xml +++ b/app/src/main/res/values-cs/preferences_values.xml @@ -19,7 +19,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi 15 minut diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 25537b148..bfb19ee14 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -895,7 +895,4 @@ Zrušit ztlumení Ztlumili jste tohoto uživatele Zrušili jste ztlumení tohoto uživatele - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href=\"https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl\">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa! diff --git a/app/src/main/res/values-csb-rPL-v29/preferences_values.xml b/app/src/main/res/values-csb-rPL-v29/preferences_values.xml deleted file mode 100644 index 23a933143..000000000 --- a/app/src/main/res/values-csb-rPL-v29/preferences_values.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Motiw systemu - Jôsny - Cemny - Cemny (AMOLED) - - diff --git a/app/src/main/res/values-csb-rPL/preferences_values.xml b/app/src/main/res/values-csb-rPL/preferences_values.xml index 902014177..8b4be0d9b 100644 --- a/app/src/main/res/values-csb-rPL/preferences_values.xml +++ b/app/src/main/res/values-csb-rPL/preferences_values.xml @@ -19,7 +19,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi 15 minutów diff --git a/app/src/main/res/values-csb-rPL/strings.xml b/app/src/main/res/values-csb-rPL/strings.xml index 130509a3c..15793491d 100644 --- a/app/src/main/res/values-csb-rPL/strings.xml +++ b/app/src/main/res/values-csb-rPL/strings.xml @@ -64,7 +64,7 @@ Symbòl mòżna nalézc na starnie dzénnika w Ùczeń→ Dostãp mòbilny → Wëgeneruj kòd dostãpù .\n\nÙgwësni sã, że ùstôwił jes pasowną òdmianã dzénnika w pòlu Òdmiana dzénnika UONET+ na pierszim ekranie logòwania Wëbierzë ùczniów do zalogòwaniô w aplikacëje Jiné òpcëje - W tim tribie nie dzejô szczestlëwi numerk, ùczeń na tle klasë, pòdrëchòwanié frekwencëje, ùsprôwiedliwianié niebëtnoscë, zajmë zrealizowóné, jimfòrmacëje ò szkòle i pòzdrzatk listë zarejestrowónëch ùrządzeniów + W tim tribie nie dzejô szczestlëwi numerk, ùczeń na tle klasë, pòdsumòwanié frekwencëje, ùsprôwiedliwianié nieòbecnoscë, zajmë zrealizowóné, jimfòrmacëje ò szkòle i pòzdrzatk listë zarejestrowónëch ùrządzeniów Nen trib wëswietlô ne samé dane, chtërne są widoczné na jinternetowi starnie dzénnika Sparłãczënié nôlepszich znanków dwùch òstatnich tribów. Dzejô chùdzy jak scraper i ùgwësniô Fùnkcëje niédostãpné w tribie Mòbilné API, Je to w eksperimentalnym stadium Pòlitëka priwatnoscë @@ -128,9 +128,9 @@ Òbrechòwiwónô strzédnô to je aritmeticznô strzédnô jakô je òbrechòwiwónô ze strzédnëch z apartnëch przibiorów. Pòzwôlô na doznanié sã przëblëżony kùńcowi strzédny. Òna je òbrechòwiwónô na ôrt wëbróny przez brëkòwnika w nastawach aplikacje. Bédëjemë wëbrac pasowną òpcją, kò òbrechòwiwanié szkòłowëch strzédnëch mòże sã jinaczëc. Żelë wasza szkòła pòdôwô strzédné z przibiorów na starnie Vulcan, aplikacjô je scygô a sama nick nie òbrechòwiwô. To mòże to zmienic przez wëmùszenié òbrechòwiwaniégò w nastawach aplikacje.\n\nStrzédnô taksów leno z wëbrónégò semestru:\n1. Òbrechòwiwanié wôżony strzédny dlô kòżdégò przibioru w dónym semestrze\n2.Dodôwanié òbrechòwónëch strzédnëch\n3. Òbrëchòwiwanié aritmeticzny strzédny ze strzédnëch zesadzonëch razã\n\nStrzédnô ze strzédnëch z òbùch semestrów:\n1.Òbrechòwiwanié wôżony strzédny dlô kòżdégò przibioru w 1. i 2. semestrze\n2. Òbrechòwiwanié aritmeticzny strzédny ze strzédnëch òbrechòwónëch dlô kòżdégò przëbioru na semester 1. i 2.\n3. Dodôwanié òbrechòwónëch strzédnëch\n4. Òbrëchòwiwanié aritmeticzny strzédny ze strzédnëch zesadzonëch razã\n\nStrzédnô taksów z całégò rokù:\n1. Òbrechòwiwanié wôżony strzédny w rocznym pòzdrzatkù dlô kòżdégò przibioru. Kùńcowô strzédnô w 1. semestrze sã nie rechùje. \n2. Dodôwanié òbrechòwónëch strzédnëch\n3. Òbrëchòwiwanié aritmeticzny strzédny ze strzédnëch zesadzonëch razã Jak fónksnéruje kùńcowô strzédna? Kùńcową strzédną je strzédnô aritmetëcznô òbliczonô na spòdlim wszëtczich òbecno dostãpnëch taksów kùńcowëch w danym semestrze.\n\nSchemat òbliczeniów skłôdô sã z nôstãpùjącëch kroków:\n1. Sumòwanié kùńcowëch taksów wpisanëch przez szkólnëch\n2. Dzélenié przez lëczbã zajmów, z chtërnëch taksë òstałë ju wstôwioné - Kùńcowô strzédna + Lùńcowô strzédna z %1$d na %2$d zajmów - Pòdrëchòwanié + Pòdsëmòwanié Klasa Zamérkô jakò przeczëtóné Cawné @@ -163,29 +163,29 @@ Nowé kùńcowé taksë - Nowô òpisowô taksa - Nowé òpisowé taksë - Nowé òpisowé taksë + New descriptive grade + New descriptive grades + New descriptive grades - Môsz %1$d nową taksã - Môsz %1$d nowé taksë - Môsz %1$d nowëch taksów + You received %1$d grade + You received %1$d grades + You received %1$d grades - Môsz %1$d nową spodzóną taksã - Môsz %1$d nowé spodzón taksë - Môsz %1$d nowëch spodzónëch taksów + You received %1$d predicted grade + You received %1$d predicted grades + You received %1$d predicted grades - Môsz %1$d nową kùńcową taksã - Môsz %1$d nowé kùńcowé taksë - Môsz %1$d nowëch kùńcowëch taksów + You received %1$d final grade + You received %1$d final grades + You received %1$d final grades - Môsz %1$d nową òpisową taksã - Môsz %1$d nowé òpisowé taksë - Môsz %1$d nowëch òpisowëch taksów + You received %1$d descriptive grade + You received %1$d descriptive grades + You received %1$d descriptive grades Ùczba @@ -196,47 +196,47 @@ Zmianë Felënk ùczbów dzysô %s min - %s sek - jesz %1$s - za %1$s - Fardëch - Terô: %s - Pòstãpné: %s - Pózdni: %s - %1$s ùczba %2$d - %3$s - Pòzmiana zalë z %1$s na %2$s - Pòzmiana szkólnégò z %1$s na %2$s - Pòzmiana zajmë z %1$s na %2$s + %s sec + %1$s left + in %1$s + Finished + Now: %s + Next: %s + Later: %s + %1$s lesson %2$d - %3$s + Change of room from %1$s to %2$s + Change of teacher from %1$s to %2$s + Change of subject from %1$s to %2$s - Ni ma ùczbë - Ni ma ùczbów - Ni ma ùczbów + No lesson + No lessons + No lessons - Pòzmiana planu zajmów - Pòzmianë planu zajmów - Pòzmianë planu zajmów + Timetable change + Timetable changes + Timetable changes - %1$s - %2$d Pòzmiana planu zajmów - %1$s - %2$d Pòzmianë planu zajmów - %1$s - %2$d Pòzmianów planu ùczbów + %1$s - %2$d change in timetable + %1$s - %2$d changes in timetable + %1$s - %2$d changes in timetable - %1$d Pòzmiana planu zajmów - %1$d Pòzmianë planu zajmów - %1$d Pòzmianë planu zajmów + %1$d change in timetable + %1$d changes in timetable + %1$d changes in timetable - %d Pòzmiana - %d Pòzmianë - %d Pòzmianë + %d change + %d changes + %d changes - Ùczbë są skùńczoné + Completed lessons Pòkôżë skùńczoné ùczbë - Felënk jinfòrmacëjów ò ùkòńczonëch ùczbach - Témat + No info about completed lessons + Topic Niebëtnosc Zôsóbczi @@ -246,609 +246,606 @@ Nowô ùczba Nowô dodatkòwô ùczba Dodatkòwa ùczba òsta dodónô z sukcesã - Dodôtkòwô ùczba òsta rëmniãtô z sukcesã - Pòwtórzë co tidzéń - Rëmni dodôtkòwą ùczbã - Leno ta ùczba - Wszëtczé w serie - Gòdzëna zôczãcô - Gòdzëna skùńczeniô - Gòdzëna skùńczeniô mùszi bëc pózdniszô jak gòdzëzna zôczãcô + Additional lesson deleted successfully + Repeat weekly + Delete additional lesson + Just this lesson + All in the series + Start time + End time + End time must be greater than start time - Pòdrëchòwanié bëtnoscë - Kalkulator bëtnoscë - %1$d Wëżi célu - dokładno kù célu - %1$d niżi célu - %1$d/%2$d bëtnoscë - Nié zaùwôżono niżôdny frekwencëje - Niebëtnosc z szkòlnëch przëczënów - Ùsprawiedlëwiono niéòbecnosc - Nieùsprawiedlëwiono niéòbecnosc - Zwòlnienié - Spózdnienié ùsprawiedlëwioné - Spózdnienié Nieùsprawiedlëwioné - Bëtnosc - Rëmniãto - Niéznóny - Lëczba ùczbów - Ni ma wpisów - Pòwód niebëtnoscë (òpcjonalny) - Wëslë - Proszba ò ùsprawiedlëwienié òsta wësłónô z sukcesã! - Mùszisz wëbrac bënômni jedną nieòbecnosc! - Ùsprawiedliwi + Attendance summary + Attendance calculator + %1$d over target + right on target + %1$d under target + %1$d/%2$d presences + No attendances recorded + Absent for school reasons + Excused absence + Unexcused absence + Exemption + Excused lateness + Unexcused lateness + Present + Deleted + Unknown + Number of lesson + No entries + Absence reason (optional) + Send + Absence excuse request sent successfully! + You must select at least one absence! + Excuse - Nowô frekwencjô - Nowé frekwencëje - Nowé frekwencëje + New attendance + New attendance + New attendance - %1$d nowô frekwencjô - %1$d nowé frekwencëje - %1$d nowëch frekwencjów + %1$d new attendance + %1$d attendance + %1$d attendance - %d frekwencjô - %d frekwencëje - %d frekwencjów + %d attendance + %d attendance + %d attendance - Razã + Total - Ni ma testów w tim tidzéniu - Ôrt - Data wpisënkù + No exams this week + Type + Entry date - Nowi test - Nowé testë - Nowé testë + New exam + New exams + New exams - %d nowi test - %d nowé testë - %d nowëch testów + %d new exam + %d new exams + %d new exams - %d test - %d testë - %d testów + %d exam + %d exams + %d exams - Òdebróné - Wësłóno - Wãbórk - (Niżôdny témat) - Ni ma wiadów - Òd: - Do: - Data: %1$s - Òdrzekni - Wëslë dali - Zamérkô wszëtkò - Òdmérkô wszëtkò - Przëwrócë z wãbórka - Przeniesë do wãbórka - Rëmni na wiedno - Wiada òsta przëwróconô z sukcesã - Wiada òsta rëmniãtô z sukcesã - ùczeń - rodzëc - òpiekùn - robòtnik - Ùdostãpni - Drukùj - Témat - Tresc - Wiada òsta wësłónô z sukcesã - Wiada nie jistnieje - Mùszisz wëbrac bënômni 1 adresata - Tresc wiadë mùszi zawierac bënômni 3 znanczi - Wszëtczé skrzënie - Leno nieprzeczëtóné - Leno z lopkama - Przeczëtónô: %s - Przeczëtónô bez: %1$d z %2$d osób + Inbox + Sent + Trash + (no subject) + No messages + From: + To: + Date: %1$s + Reply + Forward + Select all + Unselect all + Restore from trash + Move to trash + Delete permanently + Message restored successfully + Message deleted successfully + student + parent + guardian + employee + Share + Print + Subject + Content + Message sent successfully + Message does not exist + You need to choose at least 1 recipient + The message content must be at least 3 characters + All mailboxes + Only unread + Only with attachments + Read: %s + Read by: %1$d of %2$d people - %1$d wiada - %1$d wiadë - %1$d wiadë + %1$d message + %1$d messages + %1$d messages - Nowô wiada - Nowé wiadë - Nowé wiadë + New message + New messages + New messages - Chcemë le przëwrócyc robòczą wersëją wiadów? - Chcemë le przëwrócyc robòczą wersëją wiadów z adresatama? %s? + Do you want to restore draft message? + Do you want to restore draft message with recipients: %s? - Môsz %1$d nową wiadã - Môsz %1$d nowé wiadë - Môsz %1$d nowëch wiadów + You received %1$d message + You received %1$d messages + You received %1$d messages - %1$d wëbrónô - %1$d wëbróné - %1$d wëbrónëch + %1$d selected + %1$d selected + %1$d selected - Wiadë òstałë rëmniãté - Przewrócono wiadë - Wëbierzë skrzënią - Trib incognito je włączony - Dzãka tribòwi incognito nadôwca nié òbôczi, że przeczëtôł jes ną wiadã + Messages deleted + Messages restored + Choose mailbox + Incognito mode is on + Thanks to incognito mode sender is not notified when you read the message - Ni ma jinfòrmacëjów ò ùwôgach - Pónktë + No info about notes + Points - %d ùwôga - %d ùwôdżi - %d ùwôgów + %d note + %d notes + %d notes - Nowô ùwôga - Nowé ùwôdżi - Nowé ùwôdżi + New note + New notes + New notes - Môsz %1$d nową ùwôgã - Môsz %1$d nowé ùwôdżi - Môsz %1$d nowëch ùwôgów + You received %1$d note + You received %1$d notes + You received %1$d notes - %d chwôła - %d chwałë - %d chwôłów + %d praise + %d praises + %d praises - Nowô chwôła - Nowé chwôłë - Nowé chwôłë + New praise + New praises + New praises - Môsz %1$d nową chwôłã - Môsz %1$d nowé chwôłë - Môsz %1$d nowëch chwôłów + You received %1$d praise + You received %1$d praises + You received %1$d praises - %d neùtralnô ùwôga - %d neùtralné ùwôdżi - %d neùtralnëch ùwôgów + %d neutral note + %d neutral notes + %d neutral notes - Nowô neùtralnô ùwôga - Nowé neùtralné ùwôdżi - Nowé neùtralné ùwôdżi + New neutral note + New neutral notes + New neutral notes - Môsz %1$d nową neùtralną ùwôgã - Môsz %1$d nowé neùtralné ùwôdżi - Môsz %1$d nowëch neùtralnëch ùwôgów + You received %1$d neutral note + You received %1$d neutral notes + You received %1$d neutral notes - Ni ma zadaniów dodóm - Fardëch - Nié je fardëch - Dodôj Zadanié dodóm - Zadanié dodóm dodóné z sukcesã - Zadanié dodóm rëmniãté z sukcesã - Lópk + No info about homework + Mark as done + Mark as undone + Add homework + Homework added successfully + Homework deleted successfully + Attachments - Nowé zadanié dodóm - Nowé zadania dodóm - Nowé zadania dodóm + New homework + New homework + New homework - Môsz %d nowé zadania dodóm - Môsz %d nowé zadania dodóm - Môsz %d nowëch zadaniów dodóm + You received %d new homework + You received %d new homework + You received %d new homework - %d zadanié dodóm - %d zadania dodóm - %d zadaniów dodóm + %d homework + %d homework + %d homework - Szczestlëwi numerk - Dzysészim szczestlëwim numerkã je - Ni ma jinfòrmacëjów ò szczestlëwim numerkù - Szczestlëwi numerk na dzysô - Dzysészim szczestlëwim numerkã je: %s - Pòkôżë historëją + Lucky number + Today\'s lucky number is + No info about the lucky number + Lucky number for today + Today\'s lucky number is: %s + Show history - Historijô numerków - Ni ma jinfòrmacëjów ò szczestlëwich numerkach + Lucky number history + No info about lucky numbers - Przëstãp mòbilny - Ni ma ùrządzeniów - Wërejestruj - Ùrządzenié òstało rëmniãté - Kòd QR + Mobile devices + No devices + Deregister + Device removed + QR code Token Symbol PIN - Szkòła i szkólny + School and teachers - Szkòła - Ni ma jinfòrmacëjów ò szkòle - Pòzwa szkòłë - Adresa szkòłë - Telefòn - Miono i nôzwëskò direktóra - Miono i nôzwëskò pedagóga - Pòkôżë na kôrce - Zazwòni + School + No info about school + School name + School address + Telephone + Name of headmaster + Name of pedagogue + Show on map + Call - Szkólny - Ni ma jinfòrmacëjów ò szkólnëch - Ni ma zajmë + Teachers + No info about teachers + No subject - Zéńdzenia - Ni ma jinfòrmacëjów ò zéńdzeniach + Conferences + No info about conferences - %d zéńdzenié - %d zéńdzenia - %d zéńdzeniów + %d conference + %d conferences + %d conferences - Nowé zéńdzenie - Nowé zéńdzenia - Nowé zéńdzenia + New conference + New conferences + New conferences - Môsz %1$d nowé zéńdzenié - Môsz %1$d nowé zéńdzenia - Môsz %1$d nowëch zéńdzeniów + You have %1$d new conference + You have %1$d new conferences + You have %1$d new conferences - Òbecnosc na zéńdzenim + Present at conference Agenda - Plac - Témat + Place + Topic - Szkòlowi ògłos - Ni ma szkòlowich ògłosów + School announcements + No school announcements - %d szkòlowi ògłos - %d szkòlowé ògłosë - %d szkòlowich ògłosów + %d school announcement + %d school announcements + %d school announcements - %d Nowi szkòlowi ògłos - %d Nowé szkòlowé ògłosë - %d Nowé szkòlowé ògłosë + New school announcement + New school announcements + New school announcements - Môsz %1$d nowi szkòlowi ògłos - Môsz %1$d nowé szkòlowé ògłosë - Môsz %1$d nowëch szkòlowich ògłosów + You have %1$d new school announcement + You have %1$d new school announcements + You have %1$d new school announcements - Dodôj kònto - Wëlogùj sã - Chcemë le wëlogòwac tegò ùcznia? - Wëlogòwanié ùcznia - Kònto ùcznia - Rodzëcelsczé kònto - Edituj dane - Czerownik kòntów - Wëbierzë ùcznia - Rodzëzna - Kòntakt - Adresowé dane - Òsobòwé dane + Add account + Logout + Do you want to log out this student? + Student logout + Student account + Parent account + Edit data + Accounts manager + Select student + Family + Contact + Residence details + Personal information - Wersëjô aplikacëje - Wkłôdôrze - Lësta programistów Wùlkanowégò - Zgłosë błãd - Wëslë zgłoszenié ò błãdze bez e-mail + App version + Contributors + List of Wulkanowy developers + Report a bug + Send a bug report via e-mail FAQ - Òbôczë nôczãscy zadawóné pëtania - Serwer Discord - Dołączë do spòlëznë Wùlkanowégò - Fanpage na Facebookù - Starna na Twitterze - Szlachùj nas na Twitterze - Pòlub najégò fanpage na Facebookù - Pòlitëka priwatnoscë - Regle zbieraniégò òsobòwëch danëch - Systemòwé nastôwë - Òdemkni systemòwé nastôwë - Domôcô starna - Òdwiedzë starnã i pòmòżë rozwijac aplikacëją - Licencëje - Licencëje ùżitëch biblijotéków w aplikacëje + Read Frequently Asked Questions + Discord server + Join the Wulkanowy community + Facebook fanpage + Twitter page + Follow us on twitter + Like our facebook fanpage + Privacy policy + Rules for collecting personal data + System settings + Open system settings + Homepage + Visit the website and help develop the application + Licenses + Licenses of libraries used in the application - Licencëjô + License - Awatar - Òbôczë wicy na GitHub + Avatar + See more on GitHub - Ni ma jinfòrmacëjów ò ùczniu abò rodzëznie ùcznia - Miono - Drëdżé miono - Płoc - Pòlsczé òbëwatelstwò - Rodné nazwëskò - Miono òjca i mùterczi - Telefòn - Mòbilk - Adresa e-mail - Adresa zamieszkaniô - Adresa zameldowaniô - Adresa kòrespòndencëjnë - Nôzwëskò ë miono - Stopień pòkrëwieństwa - Adresa - Telefònë - Chłop - Białka - Nôzwëskò - Òpiekùn + No info about student or student family + Name + Second name + Gender + Polish citizenship + Family name + Mother\'s and father\'s names + Phone + Cellphone + E-mail + Address of residence + Address of registration + Correspondence address + Surname and first name + Degree of kinship + Address + Phones + Male + Female + Last name + Guardian - Pòzwa - Dodôj Pòzwã - Wëbierzë farwã profilowégò + Nick + Add nick + Choose avatar color - Ùdostãpni logi - Òdswieżë + Share logs + Refresh - Ùczbë - (Witro) - (Dzysô i witro) - Za chwilã: - Wnetka: - Pierszi: - Terô: - Kùńc ùczbë - Pòstãpno: - Pòzdze: + Lessons + (Tomorrow) + (Today and tomorrow) + In a moment: + Soon: + First: + Now: + End of lessons + Next: + Later: - Jesz %1$d ùczba - Jesz %1$d ùczbë - Jesz %1$d ùczbów + %1$d more lesson + %1$d more lessons + %1$d more lessons - do %1$s - Felënk przińdłich ùczbów - Wëstąpił błãd òbczas ładowaniô ùczbë - Zadanié dodóm - Ni ma zadaniów dodóm do przërëchtowaniô - Wëstąpił błãd òbczas ładowaniô zadaniégò dodóm + until %1$s + No upcoming lessons + An error occurred while loading the lessons + Homework + No homework to do + An error occurred while loading the homework - Jesz %1$d zadanié dodóm - Jesz %1$d zadaniów dodóm - Jesz %1$d zadaniów dodóm + %1$d more homework + %1$d more homework + %1$d more homework - do %1$s - Slédné taksë - Ni ma nowëch taksów - Wëstąpił błãd òbczas ładowaniô taksów - Szkòlowé ògłosë - Ni ma aktualnëch ògłosów - Wëstąpił błãd òbczas ładowaniô ògłosów + due %1$s + Last grades + No new grades + An error occurred while loading the grades + School announcements + No current announcements + An error occurred while loading the announcements - Jesz %1$d ògłos - Jesz %1$d ògłosë - Jesz %1$d ògłosów + %1$d more announcement + %1$d more announcements + %1$d more announcements - Testë - Felënk przińdłich testów - Wëstąpił błãd òbczas ładowaniô testów + Exams + No upcoming exams + An error occurred while loading the exams - Jesz %1$d test - Jesz %1$d testë - Jesz %1$d testów + %1$d more exam + %1$d more exams + %1$d more exams - Zéńdzenia - Ni ma przińdłich zéńdzeniów - Wëstąpił błãd òbczas ładowaniô zéńdzeniów + Conferences + No upcoming conferences + An error occurred while loading the conferences - Jesz %1$d dodôtkòwé zéńdzenié - Jesz %1$d dodôtkòwé zéńdzenia - Jesz %1$d zéńdzeniów + %1$d more conference + %1$d more conferences + %1$d more conferences - Wëstąpił błãd òbczas ładowaniô danëch - Niżôdny + An error occurred while loading data + None - Sprôwdzë dostãpnosc aktualizacëjów - Przed zgłoszenim błãdu sprôwdzë wczesny czë dostãpnô je ju aktualizacëjô z pòprôwką błãdu + Check for updates + Before reporting a bug, check first if an update with the bug fix is available - Tresc - Pònowi - Òpisënk - Felënk òpisënkù - Szkólny - Data - Data wpisënkù - Farwa - Detale - Kategòrijô - Zamkni - Ni ma danëch - Témat - Slédny - Pòstãpny - Szëkôj - Szëkôj… - Jo - Nié - Zapiszë - Titel - Dodôj - Òstało skòpiérowóné - Cofni - Zmieni - Dodôj do kaléndarzu - Anuluj + Content + Retry + Description + No description + Teacher + Date + Entry date + Color + Details + Category + Close + No data + Subject + Prev + Next + Search + Search… + Yes + No + Save + Title + Add + Copied + Undo + Change + Add to calendar + Cancel - Ni ma ùczbów - Zsynchronizowóno %1$s ò %2$s - Wëbierzë témã - Jôsny - Cemny - Systemòwô téma + No lessons + Synchronized on %1$s at %2$s + Choose theme + Light + Dark + System Theme - Aplikacëjô - Domëslny pòzdrzatk - Nastôwë òbliczony strzédny - Wëmùszë òbliczenié strzédny bez aplikacëją - Pòkôżë bëtnosc - Docélowô bëtnosc - Pòkôżë témë bez frekwencji - Zortowanié kalkulatora bëtnoscë - Téma - Rozwijanié taksów - Pòkazuj karno kòl zajmë - Pòkôżë dodatkòwé ùczbë - Pòkôzuj pùsté kachle gdze ni ma ùczbów - Pòkôżë lëstã nacéchùnków w klasowich taksach - Pòkôżë zajmë bez taksów - Schemat farwów taksów - Zortowanié zajmów - Jãzëk - Kònfigùracëjô menu - Ùstôw kòlejnosc fónkcëje w menu - Wiadła - Jiné - Pòkôżë wiadła - Pòkôżë wiadła ò przińdłich ùczbach - Ùstawi wiadło ò przińdłi ùczbie jakò trwałé - Wëłączë ga wiadła nie pòkazëją sã na twòjim zégarkù/òpasce - Òdemkô systemòwé nastôwë wiadłów - Naprawi tôkle z synchronizacëją i wiadłama - Na twòjim ùrządzeniu mògą sã pòkôzywac tôkle z synchronizacëją danëch i wiadłama.\n\nBë je naprawic, dodôj Wùlkanowégò do aùtostartu i wëłączë òptimalizacëją/òszczãdzanié baterije w nastôwach systemòwëch mòbilkù. - Pòkôżë debùgòwanié wiadła - Synchronizacja je wëłączonô - Wiadła òficjalny aplikacëje - Przechwatiwanié wiadłów òficjalny aplikacëje - Rëmni wiadła òficjalny aplikacëje pò przechwôceniu - Przechwatiwanié wiadłów - Dzãka ti òpcje mòżesz zwëskac erzac pòwiadomieniów push tak jak w òficjalny aplikacje. Do tegò brëkùjesz ùdzelëc pòzwòleniégò na dostôwanié wszëtczich pòwiadomieniów w systémòwëch nastawach.\n\nJak to dzejô?\nCzedë Dziennik VULCAN wësle do cebie pòwiadomienié, Wulkanowy je òdbierze (do te brëkòwné są te dodôwkòwé pòzwòlenia), a tak ùrëszni synchronizacją, dzãka chtërny bãdze mógł wësłac swòje gwôsné pòwiadomienié.\n\nLENO DLÔ ZAAWANSOWÓNËCH BRËKÒWNIKÓW - Wiadła ò przińdłich ùczbach - Mùszisz zezwòlëc Wùlkanowémù na twòrzenié alarmów i przëpòmnieniów w nastôwach Twòjégò systemù, abë ùżic ti fónkcje. - Jidzë do nastôwów - Synchronizacja - Automaticznô aktulizacëja - Wstrzëmónô òbczas wakacjów - Jinterwôł aktualizacëjów - Leno Wi-Fi - Synchronizuj terô - Zsynchronizowóno! - Synchronizacëjô sã nié ùda - Synchronizacëjô w tokù - Òstatniô fùl synchronizacëjô: %s - Wôrtnosc plusa - Wôrtnosc minusa - Òdpòwiadôj z historëją wiadów - Licz strzédną aritmeticzną, ga niżôdnô taksa ni ma wôdżi - Trib incognito - Nie jinfòrmùj ò przeczëtaniu wiadë - Wspiarcé - Pòlitëka priwatnoscë - Zgòdë - Pòkôżë zgòdã na òbrabianié danëch - Pòkôżë reklamë w aplikacëje - Òbezdrzë jedurną reklamã, bë wesprzec projekt - Zgòdã na przerôbianié danëch - Abë òbézdrzëc reklamã, mùszisz sã zgòdzyc na warënczi przerôbianiégò danëch zawôrtë w naszi Pòlitëce Priwatnoscë - Zgôdzóm sã - Pòlitëka priwatnoscë - Reklama sã ładuje - Dzãkùjemë za wspiarcé, wrócë pózdni pò wicy reklamów - Zaawansowóné - Wëzdrzatk i zachòwanié - Wiadła - Synchronizacëjô - Reklamë - Taksë - Doma - Widocznosc kachlów - Frekwencjô - Kalkùlator frekwencëje - Nastôwë - Plan zajmów - Taksë - Òbliczonô strzédna - Wiadë - Wëzdrzatk i zachòwanié - Jãzëczi, témë, zortowanié témów - Wiadła aplikacëje, naprawianié tôklów - Wiadła - Synchronizacëjô - Aùtomaticznô aktualizacëjô, jinterwôł synchronizacëje - Wôrtnoscë plusa i minusa, òbliczanié strzédny - Zaawansowóné - Wersëjô aplikacëje, twórcë, spòlëznowé media - Wëswietlanié reklamów, wspiarcé projektu + App + Default view + Calculated average options + Force average calculation by app + Show presence + Attendance target + Show subjects without any attendances + Attendance calculator sorting + Theme + Grades expanding + Show groups next to subjects + Show additional lessons + Show empty tiles where there\'s no lesson + Show chart list in class grades + Show subjects without grades + Grades color scheme + Subjects sorting + Language + Menu configuration + Set the order of functions in the menu + Notifications + Other + Show notifications + Show upcoming lesson notifications + Make upcoming lesson notification persistent + Turn off when notification is not showing in your watch/band + Open system notification settings + Fix synchronization & notifications issues + Your device may have data synchronization issues and with notifications.\n\nTo fix them, you need to add Wulkanowy to the autostart and turn off battery optimization/saving in the phone settings. + Show debug notifications + Synchronization is disabled + Official app notifications + Capture official app notifications + Remove official app notifications after capture + Capture notifications + With this feature you can gain a substitute of push notifications like in the official app. All you need to do is allow Wulkanowy to receive all notifications in your system settings.\n\nHow it works?\nWhen you get a notification in Dziennik VULCAN, Wulkanowy will be notified (that\'s what these extra permissions are for) and will trigger a sync so that can send its own notification.\n\nFOR ADVANCED USERS ONLY + Upcoming lesson notifications + You must allow the Wulkanowy app to set alarms and reminders in your system settings to use this feature. + Go to settings + Synchronization + Automatic update + Suspended on holidays + Updates interval + Wi-Fi only + Sync now + Synced! + Sync failed + Sync in progress + Last full sync: %s + Value of the plus + Value of the minus + Reply with message history + Show arithmetic average when no weights provided + Incognito mode + Do not inform about reading the message + Support + Privacy Policy + Agreements + Show consent to data processing + Show ads in app + Watch single ad to support project + Consent to data processing + To view an advertisement you must agree to the data processing terms of our Privacy Policy + Agree + Privacy policy + Ad is loading + Thank you for your support, come back later for more ads + Advanced + Appearance & Behavior + Notifications + Synchronization + Advertisements + Grades + Dashboard + Tiles visibility + Attendance + Attendance calculator + Settings + Timetable + Grades + Calculated average + Messages + Appearance & Behavior + Languages, themes, subjects sorting + App notifications, fix problems + Notifications + Synchronization + Automatic update, synchronization interval + Plus and minus values, average calculation + Advanced + App version, contributors, social portals + Displaying advertisements, project support - Nowé taksë - Nowé zadanié dodóm - Nowé zéńdzenia - Nowé testë - Szczestlëwi numerk - Nowé wiadë - Nowé ùwôdżi - Nowé szkòlowé ògłosë - Wiadła push - Przińdłé ùczbë - Debùgòwanié - Pòzmianë planu zajmów - Nowô frekwencjô + New grades + New homework + New conferences + New exams + Lucky number + New messages + New notes + New school announcements + Push notifications + Upcoming lessons + Debug + Timetable change + New attendance - Czôrny - Czerwiony - Mòdri - Zelony - Lilewi - Felënk farwë + Black + Red + Blue + Green + Purple + No color - Ładowanié aktualizacëje òstało zôczãté… - Aktualizacëjô prawie òsta załadowónô. - Restartuj - Aktualizacëjô sã nié pòwiodła! Wùlkanowi mòże nie dzejac richtic. Rozważë aktualizacëjã + Download of updates has started… + An update has just been downloaded. + Restart + Update failed! Wulkanowy may not function properly. Consider updating - Restartuj aplikacëjã - Żebë zmianë sã zapisałë, aplikacëjô mùszi sã zrestartowac - Restartuj + Application restart + The application must restart for the changes to be saved + Restart - Autorizacëjô òsta òdrzëconô. Dane chtërne bëłë dóné są niezgòdné z danyma w sekretariace. - Złi PESEL + Authorization has been rejected. The data provided does not match the records in the secretary\'s office. + Invalid PESEL PESEL - Pòcwierdzë - Autorizacëjô skùńczonô z sukcesã - Autorizacëjô - Drodżi Rodzëcu,<br /><br />Żebë pòcwierdzëc a zagwësnic bezpiek dónëch, prosëmë ò wpisanié niżi numru PESEL ùczni <b>%1$s</b>. Taczé detale są brëkòwné dlô pòprawnégò przedzéleniô przistãpù a téż òbarnë personowëch dónëch zgódno z òbrzesziwającyma reglama.<br /><br />Pò wprowadzenim dónëch, òstóną òne sprôwdzoné, żebë ùgwësnic sã czë przistãp do systémù VULCAN je przëznôwóny leno ùprôwnionym òsobóm. W przëtrôfkù jaczich le wątplëwòtów a tôklów, w célu wëwidnieniô stojiznë skòntaktuj sã ze administracją w szkòle.<br /><br />Ùtrzimiwómë nôwëższé sztandardë òbarnë personowëch dónëch, a garantérëjemë że wszëtczé pòdôwóné jinfòrmacje są w bezpiekù. Aplikacjô Wulkanowy nie przetrzimiwô ani nie przerôbiô numru PESEL.<br /><br />Przëbôcziwómë, że pòdanié fùlnëch a prôwdzëwëch dónëch je òbrzészkòwé a brëkòwné żebë ùżëwac systémù VULCAN. - Timczasã pòmiń + Authorize + Authorization completed successfully + Authorization + Dear Parent,<br /><br />To authorize and ensure the security of data, we kindly ask you to enter below PESEL number of student <b>%1$s</b>. These details are essential for the proper assignment of access and protection of personal data in accordance with applicable regulations.<br /><br />After entering the data, it will be verified to ensure that access to the VULCAN system is granted exclusively to authorized individuals. Should you have any doubts or problems, please contact the school diary administrator to clarify the situation.<br /><br />We maintain the highest standards of personal data protection and ensure that all information provided is secure. Wulkanowy app does not store or process the PESEL number.<br /><br />We remind you that providing full and accurate data is mandatory and necessary for the use of the VULCAN system. + Skip for now - Starna dzénnika VULCAN wëmôga werëfikacëji - Dlôcze to widzã?\n Jinternetowô starna dzénnika, z chtërny Wùlkanowy ładuje dabe, wëswietlô ną samą ekranã jak wëżi, tej Wùlkanowy téż mùszi ją pòkôzac, zebë móc załadowac dane z ny starnë. Niémòżnô tegò òbéńc - Zwerëfikòwóno z sukcesã + VULCAN\'s website requires verification + Why am I seeing this?\nThe register website from which Wulkanowy downloads data displays the same screen as above, so Wulkanowy must also show it to be able to download data from this website. There\'s no way around it + Verified successfully - Awarëjné dostãp + Emergency access - Felënk sparłãczëniô z jinternetã - Wëstąpił błãd. Sprôwdzë twòji ùrządzenia - Kònto je niéaktywné. Spróbùj zalogòwac sã pònowno - Nie ùdało sã sparłãczëc z dzénnika. Serwerë mògą bëc przecyżoné. Spróbùj pònowno pózdni - Ładowanié pòdôwków skùńczoné niezdarã. Proszã spróbòwac znowù pòzdze - Twòjô parola zgôsłô abò òsta zmienionô. Zalogùj sã pònowno - Wëmôgô zmienic parolã do dzénnika - Trwô technicznô przerwa dzénnika UONET+. Spróbùj pònowno pózdni - Nieznóné błãd dzénnika UONET+. Spróbùj znowù pòzdze - Nieznóné błãd aplikacëji. Proszã spróbòwac znowù pòzdze - Brekòwóna werëfikacëja captcha - Wëstąpił nieżdónié błãd - Funkcëjô je wëłączona przez twòją szkòłã - Funkcëjô nie je dostąpnô. Zalogùj sã w jinszim tribie nigle Móbilné API - To pòle je brekòwané + No internet connection + An error occurred. Check your device clock + This account is inactive. Try logging in again + Connection to register failed. Servers can be overloaded. Please try again later + Loading data failed. Please try again later + Your password has expired or been changed. Please log in again + Register password change required + Maintenance underway UONET + register. Try again later + Unknown UONET + register error. Try again later + Unknown application error. Please try again later + Captcha verification required + An unexpected error occurred + Feature disabled by your school + Feature not available. Login in a mode other than Mobile API + This field is required - Wëcëszenié - Wëłączë wëcëszenié - Wëcësził jes tegò brëkòwnika - Wëłącził jes wëcëszenié tegò brëkòwnika - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href=\"https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl\">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa! + Mute + Unmute + You have muted this user + You have unmuted this user diff --git a/app/src/main/res/values-de/preferences_values.xml b/app/src/main/res/values-de/preferences_values.xml index a6d698416..23828b030 100644 --- a/app/src/main/res/values-de/preferences_values.xml +++ b/app/src/main/res/values-de/preferences_values.xml @@ -19,7 +19,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi 15 Minuten diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 69254c2c3..cf682cf56 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -801,7 +801,4 @@ Stummschaltung aufheben Sie haben diesen Benutzer stummgeschaltet Sie haben die Stummschaltung dieses Benutzers aufgehoben - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href=\"https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl\">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa! diff --git a/app/src/main/res/values-pl/preferences_values.xml b/app/src/main/res/values-pl/preferences_values.xml index ae7d0ac84..8eafa1cb4 100644 --- a/app/src/main/res/values-pl/preferences_values.xml +++ b/app/src/main/res/values-pl/preferences_values.xml @@ -19,7 +19,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi 15 minut diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index f7af09f36..9d291261e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -895,7 +895,4 @@ Wyłącz wyciszenie Wyciszyleś tego użytkownika Wyłączyłeś wyciszenie tego użytkownika - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href=\"https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl\">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa! diff --git a/app/src/main/res/values-ru/preferences_values.xml b/app/src/main/res/values-ru/preferences_values.xml index 095a2a975..63ab4fc44 100644 --- a/app/src/main/res/values-ru/preferences_values.xml +++ b/app/src/main/res/values-ru/preferences_values.xml @@ -19,7 +19,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi 15 минут diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4014a9374..8f6847c75 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -58,7 +58,7 @@ Используйте назначенный логин или email в @%1$s Недопустимый суффикс домена Неверный символ. Если вы не можете найти символ, пожалуйста, свяжитесь со школой - Неверный символ. Если вы не можете найти символ, пожалуйста, свяжитесь со школой + Don\'t make this up! If you cannot find it, please contact the school Ученик не найден. Проверьте symbol и выбранный тип дненика UONET+ Данный ученик уже авторизован Symbol можно найти на странице регистрации в  Uczeń → Dostęp Mobilny → Wygeneruj kod dostępu.\n\nУбедитесь, что вы выбрали соответствующий тип дневника в поле Тип дневника UONET+ на первом экране входа @@ -123,7 +123,7 @@ Ожидаемая оценка Описательная оценка Рассчитанная средняя семестра - Рассчитанная средняя оценка + Calculated annual average Как работает \"Рассчитанная средняя оценка\"? Рассчитанная средняя оценка - это среднее арифметическое, рассчитанное на основе средних оценок по предметам. Это позволяет узнать приблизительную итоговую среднюю оценку. Она рассчитывается способом, выбранным пользователем в настройках приложения. Рекомендуется выбрать подходящий вариант, так как каждая школа по разному считает среднюю оценку. Кроме того, если ваша школа выставляет средние оценки по предметам на странице Vulcan, приложение просто загрузит их. Это можно изменить, заставив приложение считать среднюю оценку в настройках.\n\nСредняя из оценок выбранного семестра:\n1. Вычисление средневзвешенного значения по каждому предмету за семестр\n2.Суммирование вычисленных значений\n3. Вычисление среднего арифметического суммированных значений\n\nСредняя из средних оценок семестров:\n1.Расчет средневзвешенного значения для каждого предмета в семестрах. \n2. Вычисление среднего арифметического из средневзвешенных значений для каждого предмета в семестрах.\n3. Суммирование средних арифметических\n4. Вычисление среднего арифматического из суммированных значений\n\nСредняя из оценок со всего года:\n1. Расчет средневзвешенного значения по каждому предмету за год. Итоговое среднее значение за 1 семестр не имеет значения.\n2. Суммирование вычисленных средних\n3. Расчет среднего арифметического суммированных чисел Как работает \"Итоговая средняя оценка\"? @@ -271,11 +271,11 @@ Итоговая посещаемость Калькулятор посещаемости - %1$d выше нормы - является нормой - %1$d выше нормы - %1$d/%2$d посещаемостей - Нет зарегистрированных участников + %1$d over target + right on target + %1$d under target + %1$d/%2$d presences + No attendances recorded Отсутствие по школьным причинам Отсутствие по уважительной причине Отсутствие по неуважительной причине @@ -742,9 +742,9 @@ Параметры расчёта средних оценок Принудительно высчитать среднюю оценку через приложение Показывать присутствия - Норма посещаемости - Показать предметы без посещаемостей - Сортировка рассчитанных посещаемостей + Attendance target + Show subjects without any attendances + Attendance calculator sorting Тема Разворачивание оценок Показать группы рядом с темами @@ -870,10 +870,10 @@ Пропустить сейчас Требуется верификация веб-сайта VULCAN - Почему я это вижу?\n Веб-сайт регистрации, с которого Wulkanowy загружает данные, отображает тот же экран, что и выше, поэтому Wulkanowy также должен показать его, чтобы иметь возможность загружать данные с этого веб-сайта. Нет никакого способа обойти это + Why am I seeing this?\nThe register website from which Wulkanowy downloads data displays the same screen as above, so Wulkanowy must also show it to be able to download data from this website. There\'s no way around it Верификация успешна - Экстренный доступ + Emergency access Интернет-соединение отсутствует Произошла ошибка. Проверьте время на вашем устройстве @@ -895,7 +895,4 @@ Включить уведомления Вы отключили уведомления от этого пользователя Вы включили уведомления от этого пользователя снова - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href=\"https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl\">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa! diff --git a/app/src/main/res/values-sk/preferences_values.xml b/app/src/main/res/values-sk/preferences_values.xml index af34eebcc..b06f2b3fa 100644 --- a/app/src/main/res/values-sk/preferences_values.xml +++ b/app/src/main/res/values-sk/preferences_values.xml @@ -19,7 +19,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi 15 minút diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 7de883e92..519670f6c 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -895,7 +895,4 @@ Zrušiť stlmenie Stlmili ste tohto používateľa Zrušili ste stlmenie tohto používateľa - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href=\"https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl\">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa! diff --git a/app/src/main/res/values-uk/preferences_values.xml b/app/src/main/res/values-uk/preferences_values.xml index 4b090f095..72abe1f70 100644 --- a/app/src/main/res/values-uk/preferences_values.xml +++ b/app/src/main/res/values-uk/preferences_values.xml @@ -19,7 +19,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi 15 хвилин diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index a2586935d..c6f6f0462 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -895,7 +895,4 @@ Ввімкнути сповіщення Ви ігноруєте цього користувача Ви не ігноруєте цього користувача - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href=\"https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl\">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa! diff --git a/app/src/main/res/values/preferences_values.xml b/app/src/main/res/values/preferences_values.xml index fc9a4eeb4..e5020b533 100644 --- a/app/src/main/res/values/preferences_values.xml +++ b/app/src/main/res/values/preferences_values.xml @@ -40,7 +40,6 @@ Deutsch Čeština Slovenčina - Kaszëbsczi system @@ -51,7 +50,6 @@ de cs sk - csb diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2337cfe87..82ccf5a2a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -895,8 +895,4 @@ Unmute You have muted this user You have unmuted this user - - - Koniec Wulkanowego - Jak zapewne niektórzy z Was się domyślali zbliża się ten moment, aby zakończyć pewien etap. Wraz z końcem tego roku szkolnego zamykamy projekt Wulkanowy. Stworzenie apki było ekscytującym wyzwaniem, ale skala projektu jest tak duża, że nie jesteśmy w stanie odpowiedzialnie utrzymywać aplikacji. Wulkanowy był fajną przygodą, ale sytuacja wymknęła się nam spod kontroli – zarówno pod względem technicznym, jak i społecznym. Nie akceptujemy pojawiającego się hejtu wobec nas ani wobec innych, także Vulcana. Nie chcemy brać udziału w tych działaniach i być z nimi utożsamiani. Prosimy Was o powściągliwość i rozwagę w publikowanych komentarzach i nieprzekraczanie dopuszczalnych granic.<br /><br />Prosimy Was też o uszanowanie naszej decyzji, jest ona przemyślana i ostateczna. Wszystkim dotychczasowym użytkownikom Wulkanowego rekomendujemy użycie oficjalnej aplikacji <a href="https://play.google.com/store/apps/details?id=pl.edu.vulcan.hebe&hl=pl">Dzienniczek VULCAN</a>. Jeszcze raz dziękujemy wszystkim użytkownikom za lata wsparcia, pomoc i miłe słowa!