12 Commits
14 changed files with 67 additions and 41 deletions
+10 -3
View File
@@ -1,6 +1,13 @@
![solon-logo](solon_logo.png) ![solon-logo](solon_logo.png)
# Zorientujte se rychleji v této odlehčené verzi Školy OnLine # 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" [<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Nyní na F-Droidu" alt="Nyní na F-Droidu"
height="80">](https://f-droid.org/packages/com.odweta.solon/) 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)
+1 -1
View File
@@ -28,7 +28,7 @@ echo
echo echo
echo "[signing]" echo "[signing]"
echo 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 # create the tag
echo echo
+2
View File
@@ -1,3 +1,5 @@
# Default ignored files # Default ignored files
/shelf/ /shelf/
/workspace.xml /workspace.xml
/AndroidProjectSystem.xml
/deviceManager.xml
-4
View File
@@ -6,10 +6,6 @@
<component name="Kotlin2JvmCompilerArguments"> <component name="Kotlin2JvmCompilerArguments">
<option name="jvmTarget" value="1.8" /> <option name="jvmTarget" value="1.8" />
</component> </component>
<component name="KotlinCommonCompilerArguments">
<option name="apiVersion" value="2.0" />
<option name="languageVersion" value="2.0" />
</component>
<component name="KotlinJpsPluginSettings"> <component name="KotlinJpsPluginSettings">
<option name="version" value="2.0.0" /> <option name="version" value="2.0.0" />
</component> </component>
-1
View File
@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
+3 -3
View File
@@ -12,7 +12,7 @@ tasks.register("printVersionName") {
tasks.register("deploy") { tasks.register("deploy") {
dependsOn("assembleDebug") dependsOn("assembleDebug")
//dependsOn("installDebug") dependsOn("installDebug")
doLast { doLast {
exec { exec {
commandLine("adb", "shell", "am", "start", "-n", "com.odweta.solon/.MainActivity") commandLine("adb", "shell", "am", "start", "-n", "com.odweta.solon/.MainActivity")
@@ -32,8 +32,8 @@ android {
applicationId = "com.odweta.solon" applicationId = "com.odweta.solon"
minSdk = 28 minSdk = 28
targetSdk = 34 targetSdk = 34
versionCode = 213 versionCode = 216
versionName = "2.5" versionName = "2.6.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
} }
@@ -193,7 +193,8 @@ enum class ScreenElement {
FinalMarks, FinalMarks,
Menu, Menu,
About, About,
SignOut SignOut,
Temp
} }
class Global { class Global {
@@ -225,6 +226,7 @@ class Global {
var currentLectureNumber: Int = 0 var currentLectureNumber: Int = 0
var tempScreen by mutableStateOf(Screen.Settings) var tempScreen by mutableStateOf(Screen.Settings)
var tempScreenElement by mutableStateOf(ScreenElement.Timetable)
var currentScreen by mutableStateOf(Screen.Main) var currentScreen by mutableStateOf(Screen.Main)
var currentScreenElement by mutableStateOf(ScreenElement.Timetable) var currentScreenElement by mutableStateOf(ScreenElement.Timetable)
@@ -114,6 +114,8 @@ fun launchContinue(
global.refreshed = true global.refreshed = true
refreshButtonContentColor.value = Color.White refreshButtonContentColor.value = Color.White
showTempScreen(Screen.Main)
// show the full name of the user in the toolbar as a status // show the full name of the user in the toolbar as a status
if (Util.internetAvail(ctx)) { if (Util.internetAvail(ctx)) {
statusFactory.show(StatusType.NameRole) statusFactory.show(StatusType.NameRole)
@@ -142,4 +144,4 @@ private fun setOnInternetAvailListener(ctx: Context) {
delay(1000) // Check for internet availability every second delay(1000) // Check for internet availability every second
} }
} }
} }
@@ -80,6 +80,7 @@ fun MainScreen() {
ScreenElement.Menu -> MenuScreen() ScreenElement.Menu -> MenuScreen()
ScreenElement.About -> AboutScreen() ScreenElement.About -> AboutScreen()
ScreenElement.SignOut -> SignOutScreen() ScreenElement.SignOut -> SignOutScreen()
ScreenElement.Temp -> {}
} }
} }
} }
@@ -91,4 +92,4 @@ fun MainScreen() {
NavbarScreen() NavbarScreen()
} }
} }
} }
@@ -1,6 +1,7 @@
package com.odweta.solon package com.odweta.solon
import android.util.Log import android.util.Log
import androidx.compose.ui.text.style.TextOverflow
import androidx.activity.compose.BackHandler import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.border import androidx.compose.foundation.border
@@ -123,6 +124,7 @@ fun NewMarksScreen() {
modifier = Modifier.verticalScroll(ss) modifier = Modifier.verticalScroll(ss)
) { ) {
for ((k, v) in global.newMarks) { for ((k, v) in global.newMarks) {
if (v.filter { it.grade in "0123456789" }.size == 0) continue
if (v.isNotEmpty()) { if (v.isNotEmpty()) {
Column( Column(
modifier = Modifier modifier = Modifier
@@ -306,6 +308,7 @@ fun MarksAll() {
.verticalScroll(scrollState) .verticalScroll(scrollState)
) { ) {
for ((subject, markList) in global.marks) { for ((subject, markList) in global.marks) {
if (markList.filter { it.grade in "0123456789" }.size == 0) continue
val amoledModifier = if (settings.useAmoledMode.checked.value == true) { val amoledModifier = if (settings.useAmoledMode.checked.value == true) {
Modifier Modifier
.width(150.dp) .width(150.dp)
@@ -374,13 +377,7 @@ fun MarksAll() {
.background(Color.Black) .background(Color.Black)
} }
var marksString = "" var marksString = markList.filter { it.grade in "0123456789" }.joinToString(separator = ",") { it.grade }
for (m in 0 until markList.size-1) {
if (markList[m].grade in "0123456789") {
marksString += markList[m].grade + ", "
}
}
marksString += markList[markList.size-1].grade
if (global.marks.keys.indexOf(subject) > 0) { if (global.marks.keys.indexOf(subject) > 0) {
Box(modifier = Modifier.height(10.dp)) Box(modifier = Modifier.height(10.dp))
@@ -559,6 +556,8 @@ fun MarksSubject() {
color = Color.White, color = Color.White,
textAlign = TextAlign.Center, textAlign = TextAlign.Center,
fontSize = 30.sp, fontSize = 30.sp,
maxLines = 1,
overflow = TextOverflow.Ellipsis, // more elegant i think
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.border( .border(
@@ -812,4 +811,4 @@ fun MarksDetail() {
} }
} // date } // date
} }
} }
@@ -43,6 +43,7 @@ fun NavbarScreen() {
Button( Button(
onClick = { onClick = {
if (Util.internetAvail(ctx)) { if (Util.internetAvail(ctx)) {
global.refreshed = false;
remoteLoad(ctx) remoteLoad(ctx)
statusFactory.show(StatusType.Loading) statusFactory.show(StatusType.Loading)
refreshButtonContentColor.value = PastelYellow refreshButtonContentColor.value = PastelYellow
@@ -125,4 +126,4 @@ fun NavbarScreen() {
) )
} }
} }
} }
@@ -267,9 +267,6 @@ class Parsing {
) )
n -= 1 n -= 1
} }
val finalSubjects: MutableList<Subject> = mutableListOf()
finalSubjects.addAll(newSubjects.reversed())
finalSubjects.addAll(auxSubjects)
for ((i, s) in auxSubjects.withIndex()) { for ((i, s) in auxSubjects.withIndex()) {
if (s.free) { if (s.free) {
@@ -278,6 +275,10 @@ class Parsing {
} }
} }
val finalSubjects: MutableList<Subject> = mutableListOf()
finalSubjects.addAll(newSubjects.reversed())
finalSubjects.addAll(auxSubjects)
val day = Day() val day = Day()
day.name = name day.name = name
day.date = date day.date = date
@@ -19,4 +19,23 @@ fun showTempScreen(screen: Screen) {
global.returnToTempScreen = true global.returnToTempScreen = true
global.tempScreen = screen global.tempScreen = screen
global.currentScreen = Screen.Temp 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( Column(
modifier = Modifier modifier = Modifier
.fillMaxHeight() .fillMaxHeight()
.padding(start = 20.dp), .padding(start = 10.dp), // same as on the right
verticalArrangement = Arrangement.Center, verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.Start horizontalAlignment = Alignment.Start
) { ) {
@@ -576,25 +576,22 @@ private fun DayScreen(day: Day) {
verticalArrangement = Arrangement.Center, verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.End horizontalAlignment = Alignment.End
) { ) {
// show only for non prepended free lectures // show only for non free lectures
if ((subject.free && subject.start != "00:00" && subject.end != "00:00") || !subject.free) { if (!subject.free) {
Text( Text(
text = "${subject.start}${subject.end}", text = "${subject.start}${subject.end}",
color = Color.White, color = Color.White,
fontSize = 21.sp fontSize = 23.sp
) )
} }
if (!subject.free) { if (!subject.free) {
Box ( Text(
contentAlignment = Alignment.BottomEnd text = subject.teacher,
) { color = Color.White,
Text( fontSize = 14.sp,
text = subject.teacher, lineHeight = 1.sp // to achieve uniform padding
color = Color.White, )
fontSize = 12.sp
)
}
} }
} }
} }