From 3bac016a8b51406f129028b952fda649740e8ebc Mon Sep 17 00:00:00 2001 From: Odweta Date: Tue, 4 Feb 2025 19:15:56 +0100 Subject: [PATCH] made google play demo account; removed quickdays; removed lecturenotes; fixed settings not applying right away bug --- mobile/.idea/caches/deviceStreaming.xml | 351 ------------------ mobile/.idea/misc.xml | 2 +- mobile/app/build.gradle.kts | 4 +- .../src/main/java/com/odweta/solon/Global.kt | 2 + .../src/main/java/com/odweta/solon/Launch.kt | 7 +- .../src/main/java/com/odweta/solon/Marks.kt | 16 +- .../main/java/com/odweta/solon/Settings.kt | 8 +- .../src/main/java/com/odweta/solon/SignIn.kt | 57 ++- .../main/java/com/odweta/solon/Timetable.kt | 6 +- 9 files changed, 72 insertions(+), 381 deletions(-) delete mode 100644 mobile/.idea/caches/deviceStreaming.xml diff --git a/mobile/.idea/caches/deviceStreaming.xml b/mobile/.idea/caches/deviceStreaming.xml deleted file mode 100644 index 2717eab..0000000 --- a/mobile/.idea/caches/deviceStreaming.xml +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/mobile/.idea/misc.xml b/mobile/.idea/misc.xml index a4f09e2..74dd639 100644 --- a/mobile/.idea/misc.xml +++ b/mobile/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/mobile/app/build.gradle.kts b/mobile/app/build.gradle.kts index 142efca..7e1f118 100644 --- a/mobile/app/build.gradle.kts +++ b/mobile/app/build.gradle.kts @@ -32,8 +32,8 @@ android { applicationId = "com.odweta.solon" minSdk = 28 targetSdk = 34 - versionCode = 212 - versionName = "2.4.1" + versionCode = 213 + versionName = "2.5" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/mobile/app/src/main/java/com/odweta/solon/Global.kt b/mobile/app/src/main/java/com/odweta/solon/Global.kt index b899408..54148d4 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Global.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Global.kt @@ -239,6 +239,8 @@ class Global { var subjectToShow by mutableStateOf("") var markToShow by mutableStateOf(Mark()) + var demoMode: Boolean = false + inner class FilePaths { val accountData: String = "account_data.txt" val timetable: String = "timetable.json" diff --git a/mobile/app/src/main/java/com/odweta/solon/Launch.kt b/mobile/app/src/main/java/com/odweta/solon/Launch.kt index ad1eac5..6d3ba00 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Launch.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Launch.kt @@ -91,8 +91,11 @@ fun launchContinue( global.finalMarks = Parsing.parseFinalMarks(finalMarks) // load the lecture notes - Util.loadLectureNotes() - Util.csvToLectureNotes() + //Util.loadLectureNotes() + //Util.csvToLectureNotes() + + // load the settings + settings = Util.fileToString(global.filePaths.settings).toSettingsData() // listen for internet availability in case of disconnection if (!global.internetAwaitListenerRunning) diff --git a/mobile/app/src/main/java/com/odweta/solon/Marks.kt b/mobile/app/src/main/java/com/odweta/solon/Marks.kt index b0c4f7c..45c6cb3 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Marks.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Marks.kt @@ -341,8 +341,10 @@ fun MarksAll() { shape = RoundedCornerShape(global.dimens.roundedCorner) ) .clickable { - global.marksDepthLevel = MarksDepthLevel.Subject - global.subjectToShow = subject + if (markList[0].grade != "0") { + global.marksDepthLevel = MarksDepthLevel.Subject + global.subjectToShow = subject + } // else { isInDemo == true } } } else { Modifier @@ -353,8 +355,10 @@ fun MarksAll() { shape = RoundedCornerShape(global.dimens.roundedCorner) ) .clickable { - global.marksDepthLevel = MarksDepthLevel.Subject - global.subjectToShow = subject + if (markList[0].grade != "0") { + global.marksDepthLevel = MarksDepthLevel.Subject + global.subjectToShow = subject + } // else { isInDemo == true } } } @@ -467,7 +471,7 @@ fun MarksAll() { ) } - FloatingActionButton( + /*FloatingActionButton( onClick = { global.currentScreenElement = ScreenElement.FinalMarks }, modifier = Modifier .padding(10.dp) @@ -483,7 +487,7 @@ fun MarksAll() { contentDescription = "Final marks", tint = PastelYellow // You can customize the icon color ) - } + }*/ } } } diff --git a/mobile/app/src/main/java/com/odweta/solon/Settings.kt b/mobile/app/src/main/java/com/odweta/solon/Settings.kt index 23d73bf..d9cc0c3 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Settings.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Settings.kt @@ -45,7 +45,9 @@ fun SettingsScreen() { // load the settings dat every time the settings screen is opened, // maybe i can add a flag that determines if the settings are up to date? - settings = Util.fileToString(global.filePaths.settings).toSettingsData() + if (!global.demoMode) { + settings = Util.fileToString(global.filePaths.settings).toSettingsData() + } val scrollState = rememberScrollState() @@ -60,7 +62,9 @@ fun SettingsScreen() { SettingsTableRow(settings.useAmoledMode) - SettingsTableRow(settings.showRefreshButton) + if (!global.demoMode) { + SettingsTableRow(settings.showRefreshButton) + } SettingsTableRow(settings.useAnimations) } diff --git a/mobile/app/src/main/java/com/odweta/solon/SignIn.kt b/mobile/app/src/main/java/com/odweta/solon/SignIn.kt index f29c248..c061ca3 100644 --- a/mobile/app/src/main/java/com/odweta/solon/SignIn.kt +++ b/mobile/app/src/main/java/com/odweta/solon/SignIn.kt @@ -89,26 +89,55 @@ fun signInButtonCallback(ctx: Context, usernameText: String, passwordText: Strin } CoroutineScope(Dispatchers.IO).launch { - val valid = Account.isValid(acc) - - checked = true - - if (valid) { - Account.save(acc) - global.currentScreen = Screen.Splash - launchStart(ctx) + if (global.username == "demo" && global.password == "Demo1234") { + // start the demo + launchDemo(ctx) } else { - withContext(Dispatchers.Main) { - Toast.makeText( - ctx, - "Neplatné přihlašovací údaje nebo nejste připojeni k internetu, zkuste to znovu.", - Toast.LENGTH_LONG - ).show() + val valid = Account.isValid(acc) + + checked = true + + if (valid) { + Account.save(acc) + global.currentScreen = Screen.Splash + launchStart(ctx) + } else { + withContext(Dispatchers.Main) { + Toast.makeText( + ctx, + "Neplatné přihlašovací údaje nebo nejste připojeni k internetu, zkuste to znovu.", + Toast.LENGTH_LONG + ).show() + } } } } } +fun launchDemo(ctx: Context) { + global.demoMode = true + + settings = Util.fileToString(global.filePaths.settings).toSettingsData() + settings.showRefreshButton.checked.value = false + + val d = Day() + d.name = "demoday" + d.date = "1. 1." + d.subjects = listOf(Subject.empty()) + global.timetable = listOf(d) + + global.marks = mutableMapOf("demomarks" to mutableListOf(Mark().none())) + + global.newMarks = global.marks + + global.status = "demo" + + global.launched = true + global.refreshed = true + global.currentScreen = Screen.Main + global.currentScreenElement = ScreenElement.Timetable +} + @Composable fun SignInScreen() { // handle the back gesture (back swipe form side or back button on bottom android navbar) diff --git a/mobile/app/src/main/java/com/odweta/solon/Timetable.kt b/mobile/app/src/main/java/com/odweta/solon/Timetable.kt index 6304aee..f6fd89f 100644 --- a/mobile/app/src/main/java/com/odweta/solon/Timetable.kt +++ b/mobile/app/src/main/java/com/odweta/solon/Timetable.kt @@ -83,7 +83,7 @@ var showDetailDialog by mutableStateOf(false) fun TimetableScreen() { val pagerState = rememberPagerState(pageCount = { if (global.timetable.isNotEmpty()) global.timetable.size else 6 }) // FIXME Column { - QuickDays(pagerState) + //QuickDays(pagerState) Box( modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.BottomCenter @@ -603,10 +603,10 @@ private fun DayScreen(day: Day) { Box(modifier = Modifier .fillMaxSize() .zIndex(99f) - .clickable { + /*.clickable { global.selectedLecture = lectureId showDetailDialog = true - }) + }*/) if ( (global.lectureNotes[global.selectedLecture] != null &&