diff --git a/app/src/main/assets/pl-changelog.html b/app/src/main/assets/pl-changelog.html
index 605ee6b7..06eaf13b 100644
--- a/app/src/main/assets/pl-changelog.html
+++ b/app/src/main/assets/pl-changelog.html
@@ -1,6 +1,9 @@
-
Wersja 4.13.2-rc.2, 2022-11-25
+Wersja 4.13.3, 2022-12-06
- - Poprawiono synchronizację w Mobidzienniku bez adresu e-mail.
+ - Notatki zastępujące treść lekcji są teraz wyświetlane wszędzie.
+ - Opcja wyświetlania nazwy przedmiotu w miejscu rodzaju wydarzenia.
+ - Na ekranie odliczania czasu lekcji również pada śnieg.
+ - Poprawiono synchronizację w Mobidzienniku bez ustawionego adresu e-mail.
- Poprawiono błąd synchronizacji w Vulcanie.
diff --git a/app/src/main/cpp/szkolny-signing.cpp b/app/src/main/cpp/szkolny-signing.cpp
index 1a5bf529..5864ba65 100644
--- a/app/src/main/cpp/szkolny-signing.cpp
+++ b/app/src/main/cpp/szkolny-signing.cpp
@@ -9,7 +9,7 @@
/*secret password - removed for source code publication*/
static toys AES_IV[16] = {
- 0x1c, 0x6e, 0x5f, 0x6b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+ 0xff, 0xf1, 0x81, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat);
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/App.kt b/app/src/main/java/pl/szczodrzynski/edziennik/App.kt
index 30225982..cf688b03 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/App.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/App.kt
@@ -422,6 +422,12 @@ class App : MultiDexApplication(), Configuration.Provider, CoroutineScope {
try {
App.data = AppData.get(profile.loginStoreType)
d("App", "Loaded AppData: ${App.data}")
+ // apply newly-added config overrides, if not changed by the user yet
+ for ((key, value) in App.data.configOverrides) {
+ val config = App.profile.config
+ if (!config.has(key))
+ config.set(key, value)
+ }
} catch (e: Exception) {
Log.e("App", "Cannot load AppData", e)
Toast.makeText(this, R.string.app_cannot_load_data, Toast.LENGTH_LONG).show()
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt
index ce39bc77..7965d17a 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/MainActivity.kt
@@ -322,7 +322,7 @@ class MainActivity : AppCompatActivity(), CoroutineScope {
// IT'S WINTER MY DUDES
val today = Date.getToday()
- if ((today.month % 11 == 1) && app.config.ui.snowfall) {
+ if ((today.month / 3 % 4 == 0) && app.config.ui.snowfall) {
b.rootFrame.addView(layoutInflater.inflate(R.layout.snowfall, b.rootFrame, false))
} else if (app.config.ui.eggfall && BigNightUtil().isDataWielkanocyNearDzisiaj()) {
val eggfall = layoutInflater.inflate(
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/config/BaseConfig.kt b/app/src/main/java/pl/szczodrzynski/edziennik/config/BaseConfig.kt
index 69d232c5..76d95b0b 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/config/BaseConfig.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/config/BaseConfig.kt
@@ -43,4 +43,6 @@ abstract class BaseConfig(
db.configDao().add(ConfigEntry(profileId ?: -1, key, value))
}
}
+
+ fun has(key: String) = values.containsKey(key)
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/config/ProfileConfigUI.kt b/app/src/main/java/pl/szczodrzynski/edziennik/config/ProfileConfigUI.kt
index 4bfaf047..35951082 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/config/ProfileConfigUI.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/config/ProfileConfigUI.kt
@@ -15,6 +15,7 @@ class ProfileConfigUI(base: ProfileConfig) {
var agendaGroupByType by base.config(false)
var agendaLessonChanges by base.config(true)
var agendaTeacherAbsence by base.config(true)
+ var agendaSubjectImportant by base.config(false)
var agendaElearningMark by base.config(false)
var agendaElearningGroup by base.config(true)
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt
index 0d3abba3..83963340 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/edziennik/vulcan/data/VulcanHebe.kt
@@ -228,20 +228,6 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) {
val callback = object : JsonCallbackHandler() {
override fun onSuccess(json: JsonObject?, response: Response?) {
- if (allow404 && response?.code() == HTTP_NOT_FOUND) {
- try {
- onSuccess(null as T, response)
- } catch (e: Exception) {
- data.error(
- ApiError(tag, EXCEPTION_VULCAN_HEBE_REQUEST)
- .withResponse(response)
- .withThrowable(e)
- .withApiResponse(json)
- )
- }
- return
- }
-
if (json == null) {
data.error(
ApiError(TAG, ERROR_RESPONSE_EMPTY)
@@ -311,6 +297,19 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) {
}
override fun onFailure(response: Response?, throwable: Throwable?) {
+ if (allow404 && response?.code() == HTTP_NOT_FOUND) {
+ try {
+ onSuccess(null as T, response)
+ } catch (e: Exception) {
+ data.error(
+ ApiError(tag, EXCEPTION_VULCAN_HEBE_REQUEST)
+ .withResponse(response)
+ .withThrowable(e)
+ )
+ }
+ return
+ }
+
data.error(
ApiError(tag, ERROR_REQUEST_FAILURE)
.withResponse(response)
@@ -338,9 +337,6 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) {
setTextBody(jsonString, MediaTypeUtils.APPLICATION_JSON)
}
}
-
- if (allow404)
- allowErrorCode(HttpURLConnection.HTTP_NOT_FOUND)
}
.allowErrorCode(HttpURLConnection.HTTP_BAD_REQUEST)
.allowErrorCode(HttpURLConnection.HTTP_FORBIDDEN)
@@ -449,8 +445,8 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) {
)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
- apiGet(tag, url, query, allow404) { json: JsonArray, response ->
- onSuccess(json.map { it.asJsonObject }, response)
+ apiGet(tag, url, query, allow404 = allow404) { json: JsonArray?, response ->
+ onSuccess(json?.map { it.asJsonObject } ?: listOf(), response)
}
}
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt
index e3cc532d..ae959d43 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/szkolny/interceptor/Signing.kt
@@ -46,6 +46,6 @@ object Signing {
/*fun provideKey(param1: String, param2: Long): ByteArray {*/
fun pleaseStopRightNow(param1: String, param2: Long): ByteArray {
- return "$param1.MTIzNDU2Nzg5MDcenMiuYc===.$param2".sha256()
+ return "$param1.MTIzNDU2Nzg5MDgyAWPEgk===.$param2".sha256()
}
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt
index b91399a6..fb261e0e 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ext/JsonExtensions.kt
@@ -73,7 +73,8 @@ fun JsonObject(vararg properties: Pair): JsonObject {
is Number -> addProperty(key, value)
is Boolean -> addProperty(key, value)
is Enum<*> -> addProperty(key, value.toInt())
- else -> add(key, property.toJsonElement())
+ null -> add(key, null)
+ else -> add(key, value.toJsonElement())
}
}
}
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/agenda/event/AgendaEventRenderer.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/agenda/event/AgendaEventRenderer.kt
index 31eb6730..a1b9ead4 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/agenda/event/AgendaEventRenderer.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/agenda/event/AgendaEventRenderer.kt
@@ -11,6 +11,7 @@ import android.widget.TextView
import androidx.core.view.isVisible
import com.github.tibolte.agendacalendarview.render.EventRenderer
import com.mikepenz.iconics.view.IconicsTextView
+import pl.szczodrzynski.edziennik.App
import pl.szczodrzynski.edziennik.R
import pl.szczodrzynski.edziennik.databinding.AgendaWrappedEventBinding
import pl.szczodrzynski.edziennik.databinding.AgendaWrappedEventCompactBinding
@@ -53,16 +54,24 @@ class AgendaEventRenderer(
else
event.time!!.stringHM
+ val agendaSubjectImportant = App.profile.config.ui.agendaSubjectImportant
val eventSubtitle = listOfNotNull(
timeText,
- event.subjectLongName,
+ event.subjectLongName.takeIf { !agendaSubjectImportant },
+ event.typeName.takeIf { agendaSubjectImportant },
event.teacherName,
event.teamName
).join(", ")
card.foreground.setTintColor(event.eventColor)
card.background.setTintColor(event.eventColor)
- manager.setEventTopic(title, event, doneIconColor = textColor)
+ manager.setEventTopic(
+ title = title,
+ event = event,
+ doneIconColor = textColor,
+ showType = !agendaSubjectImportant,
+ showSubject = agendaSubjectImportant,
+ )
title.setTextColor(textColor)
subtitle?.text = eventSubtitle
subtitle?.setTextColor(textColor)
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventDetailsDialog.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventDetailsDialog.kt
index efd8f700..30701f9c 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventDetailsDialog.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventDetailsDialog.kt
@@ -113,9 +113,20 @@ class EventDetailsDialog(
b.typeColor.background?.setTintColor(event.eventColor)
- b.details = mutableListOf(
+ val agendaSubjectImportant = event.subjectLongName != null
+ && App.config[event.profileId].ui.agendaSubjectImportant
+
+ b.name = if (agendaSubjectImportant)
+ event.subjectLongName
+ else
+ event.typeName
+
+ b.details = listOfNotNull(
+ if (agendaSubjectImportant)
+ event.typeName
+ else
event.subjectLongName,
- event.teamName?.asColoredSpannable(colorSecondary)
+ event.teamName?.asColoredSpannable(colorSecondary)
).concat(bullet)
b.addedBy.setText(
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventListAdapter.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventListAdapter.kt
index f991eeef..5c2f4eef 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventListAdapter.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventListAdapter.kt
@@ -24,6 +24,7 @@ class EventListAdapter(
val showDate: Boolean = false,
val showColor: Boolean = true,
val showType: Boolean = true,
+ val showTypeColor: Boolean = showType,
val showTime: Boolean = true,
val showSubject: Boolean = true,
val markAsSeen: Boolean = true,
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventViewHolder.kt
index bee5e305..f22be345 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventViewHolder.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/event/EventViewHolder.kt
@@ -113,7 +113,7 @@ class EventViewHolder(
b.attachmentIcon.isVisible = item.hasAttachments
b.typeColor.background?.setTintColor(item.eventColor)
- b.typeColor.isVisible = adapter.showType && adapter.showColor
+ b.typeColor.isVisible = adapter.showTypeColor
b.editButton.isVisible = !adapter.simpleMode
&& item.addedManually
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/CounterActivity.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/CounterActivity.kt
index c63311e1..b1f10d3b 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/CounterActivity.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/CounterActivity.kt
@@ -4,8 +4,10 @@
package pl.szczodrzynski.edziennik.ui.home
+import android.graphics.BitmapFactory
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
+import com.jetradarmobile.snowfall.SnowfallView
import com.mikepenz.iconics.IconicsDrawable
import com.mikepenz.iconics.utils.colorInt
import com.mikepenz.iconics.utils.sizeDp
@@ -20,6 +22,7 @@ import pl.szczodrzynski.edziennik.ext.startCoroutineTimer
import pl.szczodrzynski.edziennik.ext.timeLeft
import pl.szczodrzynski.edziennik.ext.timeTill
import pl.szczodrzynski.edziennik.ui.dialogs.BellSyncTimeChooseDialog
+import pl.szczodrzynski.edziennik.utils.BigNightUtil
import pl.szczodrzynski.edziennik.utils.models.Date
import pl.szczodrzynski.edziennik.utils.models.Time
import kotlin.coroutines.CoroutineContext
@@ -61,6 +64,7 @@ class CounterActivity : AppCompatActivity(), CoroutineScope {
it.type != Lesson.TYPE_SHIFTED_SOURCE
})
}
+ lessonList.onEach { it.filterNotes() }
}
b.bellSync.setImageDrawable(
@@ -81,6 +85,27 @@ class CounterActivity : AppCompatActivity(), CoroutineScope {
counterJob = startCoroutineTimer(repeatMillis = 500) {
update()
}
+
+ // IT'S WINTER MY DUDES
+ val today = Date.getToday()
+ if ((today.month / 3 % 4 == 0) && app.config.ui.snowfall) {
+ b.rootFrame.addView(layoutInflater.inflate(R.layout.snowfall, b.rootFrame, false))
+ } else if (app.config.ui.eggfall && BigNightUtil().isDataWielkanocyNearDzisiaj()) {
+ val eggfall = layoutInflater.inflate(
+ R.layout.eggfall,
+ b.rootFrame,
+ false
+ ) as SnowfallView
+ eggfall.setSnowflakeBitmaps(listOf(
+ BitmapFactory.decodeResource(resources, R.drawable.egg1),
+ BitmapFactory.decodeResource(resources, R.drawable.egg2),
+ BitmapFactory.decodeResource(resources, R.drawable.egg3),
+ BitmapFactory.decodeResource(resources, R.drawable.egg4),
+ BitmapFactory.decodeResource(resources, R.drawable.egg5),
+ BitmapFactory.decodeResource(resources, R.drawable.egg6)
+ ))
+ b.rootFrame.addView(eggfall)
+ }
}}
private fun update() {
@@ -101,13 +126,15 @@ class CounterActivity : AppCompatActivity(), CoroutineScope {
when {
actual != null -> {
- b.lessonName.text = actual.displaySubjectName
+ b.lessonName.text = actual.getNoteSubstituteText(showNotes = true)
+ ?: actual.displaySubjectName
val left = actual.displayEndTime!! - now
b.timeLeft.text = timeLeft(left.toInt(), "\n", countInSeconds)
}
next != null -> {
- b.lessonName.text = next.displaySubjectName
+ b.lessonName.text = next.getNoteSubstituteText(showNotes = true)
+ ?: next.displaySubjectName
val till = next.displayStartTime!! - now
b.timeLeft.text = timeTill(till.toInt(), "\n", countInSeconds)
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeEventsCard.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeEventsCard.kt
index db26d8e9..acf99b2c 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeEventsCard.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeEventsCard.kt
@@ -63,9 +63,10 @@ class HomeEventsCard(
simpleMode = true,
showWeekDay = true,
showDate = true,
- showType = true,
+ showType = !profile.config.ui.agendaSubjectImportant,
+ showTypeColor = true,
showTime = false,
- showSubject = false,
+ showSubject = profile.config.ui.agendaSubjectImportant,
markAsSeen = false,
onEventClick = {
EventDetailsDialog(
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeTimetableCard.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeTimetableCard.kt
index f5523eec..39959121 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeTimetableCard.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/home/cards/HomeTimetableCard.kt
@@ -232,6 +232,7 @@ class HomeTimetableCard(
}
lessons = lessons.filter { it.type != Lesson.TYPE_NO_LESSONS }
+ lessons.onEach { it.filterNotes() }
b.timetableLayout.visibility = View.VISIBLE
b.noTimetableLayout.visibility = View.GONE
@@ -344,6 +345,7 @@ class HomeTimetableCard(
private val LessonFull?.subjectSpannable: CharSequence
get() = if (this == null) "?" else when {
+ hasReplacingNotes() -> getNoteSubstituteText(showNotes = true) ?: "?"
isCancelled -> displaySubjectName?.asStrikethroughSpannable() ?: "?"
isChange -> displaySubjectName?.asItalicSpannable() ?: "?"
else -> displaySubjectName ?: "?"
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/timetable/WidgetTimetableProvider.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/timetable/WidgetTimetableProvider.kt
index 2ac510f5..10df27c3 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/timetable/WidgetTimetableProvider.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/widgets/timetable/WidgetTimetableProvider.kt
@@ -337,8 +337,11 @@ class WidgetTimetableProvider : AppWidgetProvider() {
scrollPos = pos + 1
}
+ // remove notes from other profiles
+ lesson.filterNotes()
// set the subject and classroom name
- model.subjectName = lesson.displaySubjectName
+ model.subjectName = lesson.getNoteSubstituteText(showNotes = true)
+ ?: lesson.displaySubjectName
model.classroomName = lesson.displayClassroom
// set the bell sync to calculate progress in ListProvider
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/EventManager.kt b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/EventManager.kt
index cedf3122..38a8fee3 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/EventManager.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/EventManager.kt
@@ -48,6 +48,7 @@ class EventManager(val app: App) : CoroutineScope {
title: TextView,
event: EventFull,
showType: Boolean = true,
+ showSubject: Boolean = false,
showNotes: Boolean = true,
doneIconColor: Int? = null
) {
@@ -60,6 +61,7 @@ class EventManager(val app: App) : CoroutineScope {
if (event.hasNotes() && hasReplacingNotes && showNotes) "{cmd-swap-horizontal} " else null,
if (event.hasNotes() && !hasReplacingNotes && showNotes) "{cmd-playlist-edit} " else null,
if (showType) "${event.typeName ?: "wydarzenie"} - " else null,
+ if (showSubject) event.subjectLongName?.plus(" - ") else null,
topicSpan,
).concat()
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/NoteManager.kt b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/NoteManager.kt
index 866555bd..50ac84cd 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/NoteManager.kt
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/NoteManager.kt
@@ -171,7 +171,7 @@ class NoteManager(private val app: App) {
activity = activity,
simpleMode = true,
showDate = true,
- showColor = false,
+ showTypeColor = false,
showTime = false,
markAsSeen = false,
showNotes = false,
diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/utils/models/ItemWidgetTimetableModel.java b/app/src/main/java/pl/szczodrzynski/edziennik/utils/models/ItemWidgetTimetableModel.java
index 05c41e3b..964bee93 100644
--- a/app/src/main/java/pl/szczodrzynski/edziennik/utils/models/ItemWidgetTimetableModel.java
+++ b/app/src/main/java/pl/szczodrzynski/edziennik/utils/models/ItemWidgetTimetableModel.java
@@ -19,7 +19,7 @@ public class ItemWidgetTimetableModel {
public Time endTime;
public boolean lessonPassed;
public boolean lessonCurrent;
- public String subjectName = "";
+ public CharSequence subjectName = "";
public String classroomName = "";
public boolean lessonChange = false;
public boolean lessonChangeNoClassroom = false;
diff --git a/app/src/main/res/layout/activity_counter.xml b/app/src/main/res/layout/activity_counter.xml
index 9c7f832d..77b1cde2 100644
--- a/app/src/main/res/layout/activity_counter.xml
+++ b/app/src/main/res/layout/activity_counter.xml
@@ -1,6 +1,9 @@
-
+
-
+
diff --git a/app/src/main/res/layout/dialog_config_agenda.xml b/app/src/main/res/layout/dialog_config_agenda.xml
index 3258f656..effe23fe 100644
--- a/app/src/main/res/layout/dialog_config_agenda.xml
+++ b/app/src/main/res/layout/dialog_config_agenda.xml
@@ -50,6 +50,14 @@
android:minHeight="32dp"
android:text="@string/agenda_config_teacher_absence" />
+
+
+
@@ -55,7 +56,7 @@
Ustaw tworzone wydarzenia domyślnie jako udostępnione
Rejestracja
Wszystkie lekcje:
+ Wyświetl nazwę przedmiotu zamiast rodzaju
diff --git a/build.gradle b/build.gradle
index dd4f8c0d..1cad0c68 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,8 +5,8 @@ buildscript {
kotlin_version = '1.6.10'
release = [
- versionName: "4.13.2-rc.2",
- versionCode: 4130220
+ versionName: "4.13.3",
+ versionCode: 4130399
]
setup = [