Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23963e295c | ||
|
|
dd921c6e78 | ||
|
|
0c27450560 | ||
|
|
4084c3b2cb | ||
|
|
f52cddd311 | ||
|
|
156342e379 | ||
|
|
06e7efe55e | ||
|
|
d3d96d0130 | ||
|
|
2ee1df0d7f | ||
|
|
647fcc8ba6 | ||
|
|
57cc25ba9a | ||
|
|
06f9d7521b |
@@ -1,6 +1,13 @@
|
||||

|
||||
# Zorientujte se rychleji v této odlehčené verzi Školy OnLine
|
||||
# Odkaz na stažení aplikace pro Android [zde](https://gitlab.com/Odweta/solon/-/releases/2.5/downloads/app-release.apk) (verze 2.5)
|
||||
# Odkaz na stažení aplikace pro Android [zde](https://gitlab.com/Odweta/solon/-/releases/2.5.2/downloads/app-release.apk) (verze 2.5.2)
|
||||
|
||||
<hr>
|
||||
|
||||
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
|
||||
alt="Nyní na F-Droidu"
|
||||
height="80">](https://f-droid.org/packages/com.odweta.solon/)
|
||||
|
||||
[<img src='https://play.google.com/intl/en_us/badges/static/images/badges/cs_badge_web_generic.png'
|
||||
alt='Nyní na Google Play'
|
||||
height="80">](https://play.google.com/store/apps/details?id=com.odweta.solon)
|
||||
|
||||
@@ -28,7 +28,7 @@ echo
|
||||
echo
|
||||
echo "[signing]"
|
||||
echo
|
||||
~/Android/Sdk/build-tools/35.0.1/apksigner sign --alignment-preserved --ks ~/Documents/android-keystore.jks --ks-pass pass:$ks_pass app/build/outputs/apk/release/com.odweta.solon_$ver.apk
|
||||
apksigner sign --alignment-preserved --ks ~/docs/android-keystore.jks --ks-pass pass:$ks_pass app/build/outputs/apk/release/com.odweta.solon_$ver.apk
|
||||
|
||||
# create the tag
|
||||
echo
|
||||
|
||||
Generated
+2
@@ -1,3 +1,5 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
/AndroidProjectSystem.xml
|
||||
/deviceManager.xml
|
||||
|
||||
Generated
-4
@@ -6,10 +6,6 @@
|
||||
<component name="Kotlin2JvmCompilerArguments">
|
||||
<option name="jvmTarget" value="1.8" />
|
||||
</component>
|
||||
<component name="KotlinCommonCompilerArguments">
|
||||
<option name="apiVersion" value="2.0" />
|
||||
<option name="languageVersion" value="2.0" />
|
||||
</component>
|
||||
<component name="KotlinJpsPluginSettings">
|
||||
<option name="version" value="2.0.0" />
|
||||
</component>
|
||||
|
||||
Generated
-1
@@ -1,4 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||
|
||||
@@ -12,7 +12,7 @@ tasks.register("printVersionName") {
|
||||
|
||||
tasks.register("deploy") {
|
||||
dependsOn("assembleDebug")
|
||||
//dependsOn("installDebug")
|
||||
dependsOn("installDebug")
|
||||
doLast {
|
||||
exec {
|
||||
commandLine("adb", "shell", "am", "start", "-n", "com.odweta.solon/.MainActivity")
|
||||
@@ -32,8 +32,8 @@ android {
|
||||
applicationId = "com.odweta.solon"
|
||||
minSdk = 28
|
||||
targetSdk = 34
|
||||
versionCode = 213
|
||||
versionName = "2.5"
|
||||
versionCode = 216
|
||||
versionName = "2.6.0"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
@@ -193,7 +193,8 @@ enum class ScreenElement {
|
||||
FinalMarks,
|
||||
Menu,
|
||||
About,
|
||||
SignOut
|
||||
SignOut,
|
||||
Temp
|
||||
}
|
||||
|
||||
class Global {
|
||||
@@ -225,6 +226,7 @@ class Global {
|
||||
var currentLectureNumber: Int = 0
|
||||
|
||||
var tempScreen by mutableStateOf(Screen.Settings)
|
||||
var tempScreenElement by mutableStateOf(ScreenElement.Timetable)
|
||||
var currentScreen by mutableStateOf(Screen.Main)
|
||||
var currentScreenElement by mutableStateOf(ScreenElement.Timetable)
|
||||
|
||||
|
||||
@@ -114,6 +114,8 @@ fun launchContinue(
|
||||
global.refreshed = true
|
||||
refreshButtonContentColor.value = Color.White
|
||||
|
||||
showTempScreen(Screen.Main)
|
||||
|
||||
// show the full name of the user in the toolbar as a status
|
||||
if (Util.internetAvail(ctx)) {
|
||||
statusFactory.show(StatusType.NameRole)
|
||||
|
||||
@@ -80,6 +80,7 @@ fun MainScreen() {
|
||||
ScreenElement.Menu -> MenuScreen()
|
||||
ScreenElement.About -> AboutScreen()
|
||||
ScreenElement.SignOut -> SignOutScreen()
|
||||
ScreenElement.Temp -> {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.odweta.solon
|
||||
|
||||
import android.util.Log
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
@@ -123,6 +124,7 @@ fun NewMarksScreen() {
|
||||
modifier = Modifier.verticalScroll(ss)
|
||||
) {
|
||||
for ((k, v) in global.newMarks) {
|
||||
if (v.filter { it.grade in "0123456789" }.size == 0) continue
|
||||
if (v.isNotEmpty()) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
@@ -306,6 +308,7 @@ fun MarksAll() {
|
||||
.verticalScroll(scrollState)
|
||||
) {
|
||||
for ((subject, markList) in global.marks) {
|
||||
if (markList.filter { it.grade in "0123456789" }.size == 0) continue
|
||||
val amoledModifier = if (settings.useAmoledMode.checked.value == true) {
|
||||
Modifier
|
||||
.width(150.dp)
|
||||
@@ -374,13 +377,7 @@ fun MarksAll() {
|
||||
.background(Color.Black)
|
||||
}
|
||||
|
||||
var marksString = ""
|
||||
for (m in 0 until markList.size-1) {
|
||||
if (markList[m].grade in "0123456789") {
|
||||
marksString += markList[m].grade + ", "
|
||||
}
|
||||
}
|
||||
marksString += markList[markList.size-1].grade
|
||||
var marksString = markList.filter { it.grade in "0123456789" }.joinToString(separator = ",") { it.grade }
|
||||
|
||||
if (global.marks.keys.indexOf(subject) > 0) {
|
||||
Box(modifier = Modifier.height(10.dp))
|
||||
@@ -559,6 +556,8 @@ fun MarksSubject() {
|
||||
color = Color.White,
|
||||
textAlign = TextAlign.Center,
|
||||
fontSize = 30.sp,
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis, // more elegant i think
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.border(
|
||||
|
||||
@@ -43,6 +43,7 @@ fun NavbarScreen() {
|
||||
Button(
|
||||
onClick = {
|
||||
if (Util.internetAvail(ctx)) {
|
||||
global.refreshed = false;
|
||||
remoteLoad(ctx)
|
||||
statusFactory.show(StatusType.Loading)
|
||||
refreshButtonContentColor.value = PastelYellow
|
||||
|
||||
@@ -267,9 +267,6 @@ class Parsing {
|
||||
)
|
||||
n -= 1
|
||||
}
|
||||
val finalSubjects: MutableList<Subject> = mutableListOf()
|
||||
finalSubjects.addAll(newSubjects.reversed())
|
||||
finalSubjects.addAll(auxSubjects)
|
||||
|
||||
for ((i, s) in auxSubjects.withIndex()) {
|
||||
if (s.free) {
|
||||
@@ -278,6 +275,10 @@ class Parsing {
|
||||
}
|
||||
}
|
||||
|
||||
val finalSubjects: MutableList<Subject> = mutableListOf()
|
||||
finalSubjects.addAll(newSubjects.reversed())
|
||||
finalSubjects.addAll(auxSubjects)
|
||||
|
||||
val day = Day()
|
||||
day.name = name
|
||||
day.date = date
|
||||
|
||||
@@ -20,3 +20,22 @@ fun showTempScreen(screen: Screen) {
|
||||
global.tempScreen = screen
|
||||
global.currentScreen = Screen.Temp
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TempScreenElement() {
|
||||
when (global.tempScreenElement) {
|
||||
ScreenElement.Timetable -> {}
|
||||
ScreenElement.Marks -> {}
|
||||
ScreenElement.NewMarks -> {}
|
||||
ScreenElement.FinalMarks -> {}
|
||||
ScreenElement.Menu -> {}
|
||||
ScreenElement.About -> {}
|
||||
ScreenElement.SignOut -> {}
|
||||
ScreenElement.Temp -> {}
|
||||
}
|
||||
}
|
||||
|
||||
fun showTempScreenElement(element: ScreenElement) {
|
||||
global.tempScreenElement = element
|
||||
global.currentScreenElement = ScreenElement.Temp
|
||||
}
|
||||
|
||||
@@ -492,7 +492,7 @@ private fun DayScreen(day: Day) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
.padding(start = 20.dp),
|
||||
.padding(start = 10.dp), // same as on the right
|
||||
verticalArrangement = Arrangement.Center,
|
||||
horizontalAlignment = Alignment.Start
|
||||
) {
|
||||
@@ -576,29 +576,26 @@ private fun DayScreen(day: Day) {
|
||||
verticalArrangement = Arrangement.Center,
|
||||
horizontalAlignment = Alignment.End
|
||||
) {
|
||||
// show only for non prepended free lectures
|
||||
if ((subject.free && subject.start != "00:00" && subject.end != "00:00") || !subject.free) {
|
||||
// show only for non free lectures
|
||||
if (!subject.free) {
|
||||
Text(
|
||||
text = "${subject.start}–${subject.end}",
|
||||
color = Color.White,
|
||||
fontSize = 21.sp
|
||||
fontSize = 23.sp
|
||||
)
|
||||
}
|
||||
|
||||
if (!subject.free) {
|
||||
Box (
|
||||
contentAlignment = Alignment.BottomEnd
|
||||
) {
|
||||
Text(
|
||||
text = subject.teacher,
|
||||
color = Color.White,
|
||||
fontSize = 12.sp
|
||||
fontSize = 14.sp,
|
||||
lineHeight = 1.sp // to achieve uniform padding
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Box(modifier = Modifier
|
||||
.fillMaxSize()
|
||||
|
||||
Reference in New Issue
Block a user