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
|
# 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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Generated
+2
@@ -1,3 +1,5 @@
|
|||||||
# Default ignored files
|
# Default ignored files
|
||||||
/shelf/
|
/shelf/
|
||||||
/workspace.xml
|
/workspace.xml
|
||||||
|
/AndroidProjectSystem.xml
|
||||||
|
/deviceManager.xml
|
||||||
|
|||||||
Generated
-4
@@ -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>
|
||||||
|
|||||||
Generated
-1
@@ -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">
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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 -> {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -20,3 +20,22 @@ fun showTempScreen(screen: Screen) {
|
|||||||
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
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user