mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-06-26 03:55:29 +02:00
Compare commits
5 Commits
v4.11-rc.1
...
v4.11-rc.2
Author | SHA1 | Date | |
---|---|---|---|
3b80adf355 | |||
cae41d17b6 | |||
519d75d9d9 | |||
cb953ea8a8 | |||
52968cafad |
7
.github/workflows/build-nightly-apk.yml
vendored
7
.github/workflows/build-nightly-apk.yml
vendored
@ -54,9 +54,8 @@ jobs:
|
||||
- name: Setup JDK 11
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
distribution: 'temurin'
|
||||
java-version: '11'
|
||||
cache: 'gradle'
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@v2
|
||||
- name: Clean build artifacts
|
||||
@ -65,7 +64,9 @@ jobs:
|
||||
rm -rf app/build/outputs/apk/*
|
||||
rm -rf app/build/outputs/bundle/*
|
||||
- name: Assemble official release with Gradle
|
||||
run: ./gradlew assembleOfficialRelease
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: assembleOfficialRelease
|
||||
sign:
|
||||
name: Sign APK
|
||||
runs-on: self-hosted
|
||||
|
7
.github/workflows/build-release-aab-play.yml
vendored
7
.github/workflows/build-release-aab-play.yml
vendored
@ -46,9 +46,8 @@ jobs:
|
||||
- name: Setup JDK 11
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
distribution: 'temurin'
|
||||
java-version: '11'
|
||||
cache: 'gradle'
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@v2
|
||||
- name: Clean build artifacts
|
||||
@ -57,7 +56,9 @@ jobs:
|
||||
rm -rf app/build/outputs/apk/*
|
||||
rm -rf app/build/outputs/bundle/*
|
||||
- name: Bundle play release with Gradle
|
||||
run: ./gradlew bundlePlayRelease
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: bundlePlayRelease
|
||||
sign:
|
||||
name: Sign App Bundle
|
||||
runs-on: self-hosted
|
||||
|
7
.github/workflows/build-release-apk.yml
vendored
7
.github/workflows/build-release-apk.yml
vendored
@ -46,9 +46,8 @@ jobs:
|
||||
- name: Setup JDK 11
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
distribution: 'temurin'
|
||||
java-version: '11'
|
||||
cache: 'gradle'
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@v2
|
||||
- name: Clean build artifacts
|
||||
@ -57,7 +56,9 @@ jobs:
|
||||
rm -rf app/build/outputs/apk/*
|
||||
rm -rf app/build/outputs/bundle/*
|
||||
- name: Assemble official release with Gradle
|
||||
run: ./gradlew assembleOfficialRelease
|
||||
uses: gradle/gradle-build-action@v2
|
||||
with:
|
||||
arguments: assembleOfficialRelease
|
||||
sign:
|
||||
name: Sign APK
|
||||
runs-on: self-hosted
|
||||
|
1
app/proguard-rules.pro
vendored
1
app/proguard-rules.pro
vendored
@ -25,6 +25,7 @@
|
||||
-keep class pl.szczodrzynski.edziennik.data.db.entity.Event { *; }
|
||||
-keep class pl.szczodrzynski.edziennik.data.db.full.EventFull { *; }
|
||||
-keep class pl.szczodrzynski.edziennik.data.db.entity.FeedbackMessage { *; }
|
||||
-keep class pl.szczodrzynski.edziennik.data.db.entity.Note { *; }
|
||||
-keep class pl.szczodrzynski.edziennik.ui.home.HomeCardModel { *; }
|
||||
-keepclassmembers class pl.szczodrzynski.edziennik.ui.widgets.WidgetConfig { public *; }
|
||||
-keepnames class pl.szczodrzynski.edziennik.ui.widgets.timetable.WidgetTimetableProvider
|
||||
|
@ -1,4 +1,4 @@
|
||||
<h3>Wersja 4.11-rc.1, 2021-10-29</h3>
|
||||
<h3>Wersja 4.11-rc.2, 2021-10-30</h3>
|
||||
<ul>
|
||||
<li>Nowości w module Wiadomości:</li>
|
||||
<li>→ <b>Formatowanie tekstu</b> przy wysyłaniu wiadomości oraz dodawaniu wydarzeń.</li>
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
/*secret password - removed for source code publication*/
|
||||
static toys AES_IV[16] = {
|
||||
0xf3, 0x0e, 0xf9, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
||||
0x15, 0x02, 0x8d, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
||||
|
||||
unsigned char *agony(unsigned int laugh, unsigned char *box, unsigned char *heat);
|
||||
|
||||
|
@ -37,8 +37,10 @@ class ProfileConfigMigration(config: ProfileConfig) {
|
||||
}
|
||||
|
||||
if (dataVersion < 3) {
|
||||
ui.homeCards = ui.homeCards.toMutableList().also {
|
||||
it.add(HomeCardModel(config.profileId, HomeCard.CARD_NOTES))
|
||||
if (ui.homeCards.isNotEmpty()) {
|
||||
ui.homeCards = ui.homeCards.toMutableList().also {
|
||||
it.add(HomeCardModel(config.profileId, HomeCard.CARD_NOTES))
|
||||
}
|
||||
}
|
||||
|
||||
dataVersion = 3
|
||||
|
@ -22,7 +22,6 @@ import pl.szczodrzynski.edziennik.data.api.models.ApiError
|
||||
import pl.szczodrzynski.edziennik.data.db.entity.LessonRange
|
||||
import pl.szczodrzynski.edziennik.data.db.entity.Subject
|
||||
import pl.szczodrzynski.edziennik.data.db.entity.Teacher
|
||||
import pl.szczodrzynski.edziennik.data.db.entity.Team
|
||||
import pl.szczodrzynski.edziennik.ext.*
|
||||
import pl.szczodrzynski.edziennik.utils.Utils.d
|
||||
import pl.szczodrzynski.edziennik.utils.models.Date
|
||||
@ -91,41 +90,31 @@ open class VulcanHebe(open val data: DataVulcan, open val lastSync: Long?) {
|
||||
|
||||
fun getTeamId(json: JsonObject?, key: String): Long? {
|
||||
val team = json.getJsonObject(key)
|
||||
val teamId = team.getLong("Id") ?: return null
|
||||
if (data.teamList[teamId] == null) {
|
||||
var name = team.getString("Shortcut")
|
||||
?: team.getString("Name")
|
||||
?: ""
|
||||
name = "${profile?.studentClassName ?: ""} $name"
|
||||
data.teamList[teamId] = Team(
|
||||
data.profileId,
|
||||
teamId,
|
||||
name,
|
||||
Team.TYPE_VIRTUAL,
|
||||
"${data.schoolCode}:$name",
|
||||
-1
|
||||
)
|
||||
}
|
||||
return teamId
|
||||
val teamId = team.getLong("Id")
|
||||
var teamName = team.getString("Shortcut")
|
||||
?: team.getString("Name")
|
||||
?: ""
|
||||
teamName = "${profile?.studentClassName ?: ""} $teamName"
|
||||
return data.getTeam(
|
||||
id = teamId,
|
||||
name = teamName,
|
||||
schoolCode = data.schoolCode ?: "",
|
||||
isTeamClass = false,
|
||||
).id
|
||||
}
|
||||
|
||||
fun getClassId(json: JsonObject?, key: String): Long? {
|
||||
val team = json.getJsonObject(key)
|
||||
val teamId = team.getLong("Id") ?: return null
|
||||
if (data.teamList[teamId] == null) {
|
||||
val name = data.profile?.studentClassName
|
||||
?: team.getString("Name")
|
||||
?: ""
|
||||
data.teamList[teamId] = Team(
|
||||
data.profileId,
|
||||
teamId,
|
||||
name,
|
||||
Team.TYPE_CLASS,
|
||||
"${data.schoolCode}:$name",
|
||||
-1
|
||||
)
|
||||
}
|
||||
return teamId
|
||||
val teamId = team.getLong("Id")
|
||||
val teamName = data.profile?.studentClassName
|
||||
?: team.getString("Name")
|
||||
?: ""
|
||||
return data.getTeam(
|
||||
id = teamId,
|
||||
name = teamName,
|
||||
schoolCode = data.schoolCode ?: "",
|
||||
isTeamClass = true,
|
||||
).id
|
||||
}
|
||||
|
||||
fun getLessonRange(json: JsonObject?, key: String): LessonRange? {
|
||||
|
@ -151,6 +151,15 @@ class VulcanHebeMain(
|
||||
studentData["senderAddressName"] = senderAddressName
|
||||
studentData["senderAddressHash"] = senderAddressHash
|
||||
studentData["hebeContext"] = hebeContext
|
||||
|
||||
// create the default TeamClass
|
||||
data.getTeam(
|
||||
id = null,
|
||||
name = studentClassName,
|
||||
schoolCode = schoolCode,
|
||||
isTeamClass = true,
|
||||
profileId = this.id,
|
||||
)
|
||||
}
|
||||
dateSemester1Start?.let {
|
||||
newProfile.dateSemester1Start = it
|
||||
|
@ -406,7 +406,13 @@ abstract class Data(val app: App, val profile: Profile?, val loginStore: LoginSt
|
||||
return subject
|
||||
}
|
||||
|
||||
fun getTeam(id: Long?, name: String, schoolCode: String, isTeamClass: Boolean = false): Team {
|
||||
fun getTeam(
|
||||
id: Long?,
|
||||
name: String,
|
||||
schoolCode: String,
|
||||
isTeamClass: Boolean = false,
|
||||
profileId: Int? = null,
|
||||
): Team {
|
||||
if (isTeamClass && teamClass != null)
|
||||
return teamClass as Team
|
||||
var team = teamList.singleOrNull { it.id == id }
|
||||
@ -417,7 +423,7 @@ abstract class Data(val app: App, val profile: Profile?, val loginStore: LoginSt
|
||||
|
||||
if (team == null) {
|
||||
team = Team(
|
||||
profileId,
|
||||
profileId ?: this.profileId,
|
||||
id ?: name.crc32(),
|
||||
name,
|
||||
if (isTeamClass) Team.TYPE_CLASS else Team.TYPE_VIRTUAL,
|
||||
@ -425,6 +431,8 @@ abstract class Data(val app: App, val profile: Profile?, val loginStore: LoginSt
|
||||
-1
|
||||
)
|
||||
teamList[team.id] = team
|
||||
} else if (id != null) {
|
||||
team.id = id
|
||||
}
|
||||
return team
|
||||
}
|
||||
|
@ -46,6 +46,6 @@ object Signing {
|
||||
|
||||
/*fun provideKey(param1: String, param2: Long): ByteArray {*/
|
||||
fun pleaseStopRightNow(param1: String, param2: Long): ByteArray {
|
||||
return "$param1.MTIzNDU2Nzg5MDTSWXKh0v===.$param2".sha256()
|
||||
return "$param1.MTIzNDU2Nzg5MDoVA49hWj===.$param2".sha256()
|
||||
}
|
||||
}
|
||||
|
@ -5,8 +5,8 @@ buildscript {
|
||||
kotlin_version = '1.5.30'
|
||||
|
||||
release = [
|
||||
versionName: "4.11-rc.1",
|
||||
versionCode: 4110010
|
||||
versionName: "4.11-rc.2",
|
||||
versionCode: 4110020
|
||||
]
|
||||
|
||||
setup = [
|
||||
|
Reference in New Issue
Block a user