Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Regélő – Android alkalmazás (v1.3.5)
# Regélő – Android alkalmazás (v1.3.6)

Magyar írói és olvasói platform (Wattpad / Inkitt jellegű), Kotlin + Jetpack Compose.

Expand All @@ -23,7 +23,7 @@ Google Playre aláírt Android App Bundle-t (AAB) tölts fel, ne fejlesztői deb
4. Készítsd el az AAB-t, ellenőrizd a Play Console belső tesztcsatornáján, majd csak sikeres ellenőrzés után
indítsd a szélesebb körű kiadást.
5. Minden új feltöltés előtt növeld az `app/build.gradle.kts` fájlban a `versionCode` értékét. Jelenlegi értéke
`135`; ez azonos vagy kisebb értékkel nem tölthető fel frissítésként.
`136`; ez azonos vagy kisebb értékkel nem tölthető fel frissítésként.

### Parancssoros/CI aláírás
Biztonságos build/CI titokként add meg mind a négy környezeti változót:
Expand Down Expand Up @@ -93,6 +93,8 @@ Hivatalos e-mail: regeloapp@gmail.com · Hivatalos profil az appban: @regelohiva
- **1.3.5 – Saját művek a Profilon** – A saját profil új „Műveim” részén külön választhatók a publikált művek,
piszkozatok és sorozatok. A saját történetek megnyithatók vagy szerkeszthetők, a sorozatok adatlapja és kezelése
közvetlenül elérhető; mások profilján privát írói tartalom nem jelenik meg.
- **1.3.6 – Személyes olvasás a Kezdőlapon** – Az olvasási kihívás és az „Olvasás folytatása” szekció a
Kezdőlap tetejére került, az új és felkapott történetek felfedezése elé.
- **v1.4 backend-kiegészítés** – A könyv befejezésének mentése szerveroldali, idempotens művelet,
amely a budapesti naptári évet és az adatbázisban szereplő publikált/befejezett állapotot használja.
A rate limit párhuzamos kéréseknél is atomikusan érvényesül. A kliens nem ment tokent titkosítatlanul,
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ android {
applicationId = "hu.regelo.app"
minSdk = 26
targetSdk = 37
versionCode = 135
versionName = "1.3.5"
versionCode = 136
versionName = "1.3.6"

buildConfigField("String", "SUPABASE_URL", "\"https://pqmfezkvaslqedalwwnn.supabase.co\"")
// Nyilvános (publishable) kulcs – a sorszintű jogosultságok (RLS) védik az adatokat.
Expand Down
31 changes: 15 additions & 16 deletions app/src/main/java/hu/regelo/app/ui/screens/LibraryScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -161,25 +161,10 @@ fun LibraryScreen(nav: Navigator) {
if (data == null) {
item { hu.regelo.app.ui.components.LoadingBox(Modifier.height(240.dp)) }
} else {
if (data.newest.isNotEmpty()) {
item { SectionTitle("Új történetek", action = "Felfedezés", onAction = { nav.select(Tab.DISCOVER) }) }
item { Shelf(data.newest) { nav.push(Route.BookDetail(it)) } }
}
if (data.recentAuthors.isNotEmpty()) {
item { SectionTitle("Friss szerzők", action = "Keresés", onAction = { nav.open(Tab.DISCOVER, Route.Search(people = true)) }) }
items(data.recentAuthors, key = { "home-author-${it.userId}" }) { author ->
hu.regelo.app.ui.components.PersonRow(author, onClick = { nav.push(Route.Profile(author.userId)) })
}
}
if (data.popular.isNotEmpty()) {
item { SectionTitle("Felkapott történetek", action = "Mind", onAction = { nav.select(Tab.DISCOVER) }) }
item { Shelf(data.popular) { nav.push(Route.BookDetail(it)) } }
}
// Olvasási kihívás (éves cél)
// A személyes olvasási cél és a folytatás legyen az első felfedezési tartalom.
data.challenge?.let { ch ->
item { Spacer(Modifier.height(4.dp)); hu.regelo.app.ui.components.ReadingChallengeCard(ch, onClick = { challengeDialog = true }) }
}
// Olvasás folytatása
if (data.continueItems.isNotEmpty()) {
item { SectionTitle("Olvasás folytatása") }
val first = data.continueItems.first()
Expand All @@ -206,6 +191,20 @@ fun LibraryScreen(nav: Navigator) {
}
}
}
if (data.newest.isNotEmpty()) {
item { SectionTitle("Új történetek", action = "Felfedezés", onAction = { nav.select(Tab.DISCOVER) }) }
item { Shelf(data.newest) { nav.push(Route.BookDetail(it)) } }
}
if (data.recentAuthors.isNotEmpty()) {
item { SectionTitle("Friss szerzők", action = "Keresés", onAction = { nav.open(Tab.DISCOVER, Route.Search(people = true)) }) }
items(data.recentAuthors, key = { "home-author-${it.userId}" }) { author ->
hu.regelo.app.ui.components.PersonRow(author, onClick = { nav.push(Route.Profile(author.userId)) })
}
}
if (data.popular.isNotEmpty()) {
item { SectionTitle("Felkapott történetek", action = "Mind", onAction = { nav.select(Tab.DISCOVER) }) }
item { Shelf(data.popular) { nav.push(Route.BookDetail(it)) } }
}
// A Regélőtől: hivatalos kiadványok (összecsukható, elrejthető sáv)
if (showStrip && data.official.isNotEmpty()) {
item(key = "official-strip") {
Expand Down
Loading