12 Commits
14 changed files with 67 additions and 41 deletions
+10 -3
View File
@@ -1,6 +1,13 @@
![solon-logo](solon_logo.png)
# 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/)
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)
+1 -1
View File
@@ -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
+2
View File
@@ -1,3 +1,5 @@
# Default ignored files
/shelf/
/workspace.xml
/AndroidProjectSystem.xml
/deviceManager.xml
-4
View File
@@ -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>
-1
View File
@@ -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">
+3 -3
View File
@@ -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)
@@ -142,4 +144,4 @@ private fun setOnInternetAvailListener(ctx: Context) {
delay(1000) // Check for internet availability every second
}
}
}
}
@@ -80,6 +80,7 @@ fun MainScreen() {
ScreenElement.Menu -> MenuScreen()
ScreenElement.About -> AboutScreen()
ScreenElement.SignOut -> SignOutScreen()
ScreenElement.Temp -> {}
}
}
}
@@ -91,4 +92,4 @@ fun MainScreen() {
NavbarScreen()
}
}
}
}
@@ -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(
@@ -812,4 +811,4 @@ fun MarksDetail() {
}
} // date
}
}
}
@@ -43,6 +43,7 @@ fun NavbarScreen() {
Button(
onClick = {
if (Util.internetAvail(ctx)) {
global.refreshed = false;
remoteLoad(ctx)
statusFactory.show(StatusType.Loading)
refreshButtonContentColor.value = PastelYellow
@@ -125,4 +126,4 @@ fun NavbarScreen() {
)
}
}
}
}
@@ -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
@@ -19,4 +19,23 @@ fun showTempScreen(screen: Screen) {
global.returnToTempScreen = true
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,25 +576,22 @@ 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
)
}
Text(
text = subject.teacher,
color = Color.White,
fontSize = 14.sp,
lineHeight = 1.sp // to achieve uniform padding
)
}
}
}