diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml
index e0538a6..9d92b58 100644
--- a/.idea/material_theme_project_new.xml
+++ b/.idea/material_theme_project_new.xml
@@ -3,7 +3,9 @@
diff --git a/mobile/.idea/caches/deviceStreaming.xml b/mobile/.idea/caches/deviceStreaming.xml
index 5a2f866..b81700b 100644
--- a/mobile/.idea/caches/deviceStreaming.xml
+++ b/mobile/.idea/caches/deviceStreaming.xml
@@ -262,7 +262,7 @@
-
+
diff --git a/mobile/.idea/deploymentTargetSelector.xml b/mobile/.idea/deploymentTargetSelector.xml
index 481bc23..5ac691b 100644
--- a/mobile/.idea/deploymentTargetSelector.xml
+++ b/mobile/.idea/deploymentTargetSelector.xml
@@ -13,10 +13,10 @@
-
+
-
+
diff --git a/mobile/.idea/vcs.xml b/mobile/.idea/vcs.xml
index 288b36b..6c0b863 100644
--- a/mobile/.idea/vcs.xml
+++ b/mobile/.idea/vcs.xml
@@ -2,6 +2,5 @@
-
\ No newline at end of file
diff --git a/mobile/app/src/main/java/com/odweta/solon/ui/theme/Global.kt b/mobile/app/src/main/java/com/odweta/solon/Global.kt
similarity index 96%
rename from mobile/app/src/main/java/com/odweta/solon/ui/theme/Global.kt
rename to mobile/app/src/main/java/com/odweta/solon/Global.kt
index 7694ac1..b1bd7e4 100644
--- a/mobile/app/src/main/java/com/odweta/solon/ui/theme/Global.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Global.kt
@@ -1,22 +1,18 @@
package com.odweta.solon
import android.view.Window
-import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.unit.dp
-import androidx.core.view.WindowCompat
import com.odweta.solon.ui.theme.PastelYellow
-import com.odweta.solon.ui.theme.PastelYellowTransparent
import okhttp3.OkHttpClient
import java.io.File
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 dcfc4d2..34c2d02 100644
--- a/mobile/app/src/main/java/com/odweta/solon/Launch.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Launch.kt
@@ -37,7 +37,7 @@ private fun setOnInternetAvailListener(ctx: Context, coscope: CoroutineScope) {
}
}
-private fun fetchNewData(ctx: Context, coscope: CoroutineScope) {
+fun fetchNewData(ctx: Context, coscope: CoroutineScope) {
coscope.launch {
done = false
diff --git a/mobile/app/src/main/java/com/odweta/solon/Navbar.kt b/mobile/app/src/main/java/com/odweta/solon/Navbar.kt
index b12dcce..32273d3 100644
--- a/mobile/app/src/main/java/com/odweta/solon/Navbar.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Navbar.kt
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons
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 c4369f4..8134a94 100644
--- a/mobile/app/src/main/java/com/odweta/solon/Timetable.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Timetable.kt
@@ -1,7 +1,6 @@
package com.odweta.solon
import android.annotation.SuppressLint
-import android.text.format.Time
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -14,22 +13,33 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.Image
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
+import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.Refresh
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Icon
+import androidx.compose.material3.Shapes
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.RectangleShape
+import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.font.FontWeight
-import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.odweta.solon.ui.theme.PastelGreen
@@ -38,16 +48,33 @@ import com.odweta.solon.ui.theme.PastelRed
import com.odweta.solon.ui.theme.PastelRedTransparent
import com.odweta.solon.ui.theme.PastelYellow
import com.odweta.solon.ui.theme.PastelYellowTransparent
-import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
import java.time.LocalDate
-import java.time.LocalDateTime
import java.time.LocalTime
import java.time.format.DateTimeFormatter
-@OptIn(ExperimentalFoundationApi::class)
@Composable
fun TimetableScreen() {
- val pagerState = rememberPagerState( pageCount = { days.size } )
+ Box(
+ modifier = Modifier
+ .fillMaxSize(),
+ contentAlignment = Alignment.BottomCenter
+ ) {
+ DayPager()
+ Box(
+ modifier = Modifier
+ .padding(bottom = 10.dp)
+ .background(color = Color.Black, shape = RoundedCornerShape(roundedCornerDimen))
+ ) {
+ RefreshButton()
+ }
+ }
+}
+
+@OptIn(ExperimentalFoundationApi::class)
+@Composable
+fun DayPager(modifier: Modifier = Modifier) {
+ val pagerState = rememberPagerState(pageCount = { days.size })
HorizontalPager(
state = pagerState,
modifier = Modifier.fillMaxSize()
@@ -56,6 +83,37 @@ fun TimetableScreen() {
}
}
+@Composable
+fun RefreshButton(modifier: Modifier = Modifier) {
+ val coscope = rememberCoroutineScope()
+ val ctx = LocalContext.current
+
+ Button(
+ onClick = {
+ coscope.launch {
+ fetchNewData(ctx, coscope)
+ }
+ },
+ colors = ButtonDefaults.buttonColors(
+ contentColor = Color.White,
+ containerColor = Color.Black
+ ),
+ modifier = Modifier
+ .border(
+ width = 5.dp,
+ shape = RoundedCornerShape(roundedCornerDimen),
+ color = PastelYellow
+ )
+ .padding(vertical = 10.dp)
+ ) {
+ Icon(
+ imageVector = Icons.Default.Refresh,
+ contentDescription = "Refresh icon",
+ modifier = Modifier.size(25.dp)
+ )
+ }
+}
+
private fun getSubjectColor(s: Subject, transparent: Boolean): Color {
return if (s.free) {
if (transparent) {
@@ -287,6 +345,8 @@ private fun DayScreen(day: Day) {
}
}
}
+ // TODO: remove when added settings to turn the refresh button on/off
+ Spacer(modifier = Modifier.height(90.dp))
}
}
}
\ No newline at end of file
diff --git a/mobile/app/src/main/java/com/odweta/solon/Toolbar.kt b/mobile/app/src/main/java/com/odweta/solon/Toolbar.kt
index 63cf810..4a1186d 100644
--- a/mobile/app/src/main/java/com/odweta/solon/Toolbar.kt
+++ b/mobile/app/src/main/java/com/odweta/solon/Toolbar.kt
@@ -1,6 +1,8 @@
package com.odweta.solon
import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
diff --git a/mobile/gradle.properties b/mobile/gradle.properties
index 20e2a01..c0f5821 100644
--- a/mobile/gradle.properties
+++ b/mobile/gradle.properties
@@ -20,4 +20,5 @@ kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
+android.nonTransitiveRClass=true
+sdk.dir=/home/thinker/Android/Sdk
\ No newline at end of file