Compare commits

...

5 Commits

12 changed files with 62 additions and 50 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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);

View File

@ -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

View File

@ -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? {

View File

@ -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

View File

@ -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
}

View File

@ -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()
}
}

View File

@ -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 = [