diff --git a/.gitignore b/.gitignore
index 4996023..8ef9597 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,17 @@
*.iml
.gradle
/local.properties
-/.idea/caches
-/.idea/libraries
-/.idea/modules.xml
-/.idea/workspace.xml
-/.idea/navEditor.xml
-/.idea/assetWizardSettings.xml
+#/.idea/caches
+#/.idea/libraries
+#/.idea/modules.xml
+#/.idea/workspace.xml
+#/.idea/navEditor.xml
+#/.idea/assetWizardSettings.xml
+# .idea/deploymentTargetDropDown.xml
+# .idea/deploymentTargetSelector.xml
+/.gradle/*
+/.idea/*
+/.kotlin/*
.DS_Store
/build
/captures
@@ -14,5 +19,3 @@
.cxx
local.properties
*.log
-.idea/deploymentTargetDropDown.xml
-.idea/deploymentTargetSelector.xml
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml
deleted file mode 100644
index 371f2e2..0000000
--- a/.idea/appInsightsSettings.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 7643783..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xmlns:android
-
- ^$
-
-
-
-
-
-
-
-
- xmlns:.*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*:id
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:name
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- name
-
- ^$
-
-
-
-
-
-
-
-
- style
-
- ^$
-
-
-
-
-
-
-
-
- .*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*
-
- http://schemas.android.com/apk/res/android
-
-
- ANDROID_ATTRIBUTE_ORDER
-
-
-
-
-
-
- .*
-
- .*
-
-
- BY_NAME
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 79ee123..0000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index b589d56..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 5d77963..0000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/icon.svg b/.idea/icon.svg
deleted file mode 100644
index db2cdb5..0000000
--- a/.idea/icon.svg
+++ /dev/null
@@ -1,125 +0,0 @@
-
-
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index b67486e..0000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
deleted file mode 100644
index 6d0ee1c..0000000
--- a/.idea/kotlinc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
deleted file mode 100644
index f8051a6..0000000
--- a/.idea/migrations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 8978d23..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations/app.xml b/.idea/runConfigurations/app.xml
deleted file mode 100644
index 1ad4fcf..0000000
--- a/.idea/runConfigurations/app.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c7cc539..37971dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,35 +6,58 @@
## Known issues
- `Your current wallpaper` option in app background settings will be disabled on Android 14 and later. You can check why in `Issue` tab in repository.
+## 2.0-draft23 (1882)
+- Just a version about improve codes :)
+
+
+More details for developments
+
+- [Implemented] Updated dependencies to latest.
+ - [Changed] Updated `dutwrapper` dependency with `jar` file (due to GitHub Packages limitation).
+ - [Changed] Updated AGP to 8.7.0.
+- [Changed] Permission Request activity has been merged with Miscellaneous activity.
+
+
## 2.0-draft22 (1702)
+- [Changed] Add a button to copy all information to clipboard in `Training Result` -> `Subject Result`.
+- [Fixed] Fix a issue cause save settings slower than expected when enable background image.
+
+
+More details for developments
+
- [Implemented] Updated dependencies to latest.
- [Changed] Updated `dutwrapper` dependency with GitHub Packages.
- [Changed] Removed all deprecated functions due to updated dependencies.
-- [Changed] Add a button to copy all information to clipboard in `Training Result` -> `Subject Result`.
-- [Fixed] Fix a issue cause save settings slower than expected when enable background image.
+
## 2.0-draft21 (1653)
- [Changed] Wallpaper settings and background opacity/component opacity will be grouped into one.
- [Fixed] Fix a issue cause account session remains even after logged out.
## 2.0-draft20 (1638)
-- [Implemented] Updated dependencies to latest.
- - [Changed] Need to modify any file to update functions about `dutwrapper` dependency.
- [Changed] This application will no longer direct links when URL Protocol is used (ex: example://,...).
- A option that enable them will be available in future version.
+
+More details for developments
+
+- [Implemented] Updated dependencies to latest.
+ - [Changed] Need to modify any file to update functions about `dutwrapper` dependency.
+
+
## 2.0-draft19 (1605)
- [Reworked] Account Training Subject Result screen.
+- [Fixed] Account Training Result score isn't readable when in dark mode.
+
+
+More details for developments
+
- [Implemented] Update dependencies to latest.
- This will resolve crash app when sv.dut.udn.vn is not reachable.
-- [Fixed] Account Training Result score isn't readable when in dark mode.
- [Changed] Removed ~~NewsGlobalGroupByDate~~, ~~NewsSubjectGroupByDate~~.
+
## 2.0-draft18 (1448)
-- [Implemented] Update dependencies to latest
- - Gradle to 8.8
- - AGP to 8.5.0
- - This will resolve login issue when server rebooted
- [Implemented] When you're failed when logging in but done it before, this will show a option for you to re-login instead.
- [Implemented] Improve Vietnamese strings
- [Changed] SchoolYearChooser will choose between two arrows instead of ComboBox
@@ -45,22 +68,36 @@
- [Changed] Main Screen (tab mode)
- Remove SnackbarState in Notifications (fixes duplicate SnackbarState)
+
+More details for developments
+
+- [Implemented] Update dependencies to latest
+ - Gradle to 8.8
+ - AGP to 8.5.0
+ - This will resolve login issue when server rebooted
+
+
## 2.0-draft17 (1404)
-- [Reworked] Subject Fee (not final yet).
- [New] News notification settings: Change your preferences about news notifications.
- [New] Add a option to get current school year from Internet.
- To access that, please go to `Settings` -> `Experiment Settings` -> `Current School Year`.
+- [Reworked] Subject Fee (not final yet).
- [Implemented] Login screen will let you relogin if previous attempt was failed.
- You can clear previous login to attempt with another account.
- [Implemented] Now you can turn off notifications about news global and news subject.
- In news subject notifications, you can choose about "All", "Match your filter" and "Off".
- News filter settings will now only shown when enabled (this mean it will hidden at default).
- [Implemented] Update Vietnamese strings for most screens, but not done yet.
-- [Implemented] Optimized codes and updated dependencies to latest.
- - Updated dependencies to latest to fix issues about Account feature.
- [Fixed] [#24](https://github.com/ZoeMeow1027/DutSchedule/issues/24).
- [Known Issue] Some settings won't load after update. You might need to reconfig them in settings. I'm sorry about that.
+
+More details for developments
+
+- [Implemented] Optimized codes and updated dependencies to latest.
+ - Updated dependencies to latest to fix issues about Account feature.
+
+
## 2.0-draft16 (1063)
- AccountActivity:
- Add option to refresh login when previous is failed.
diff --git a/app/build.gradle b/app/build.gradle
index 68baa7f..ef4ed7a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -15,7 +15,7 @@ android {
applicationId "io.zoemeow.dutschedule"
minSdk 21
targetSdkVersion 35
- versionCode 1702
+ versionCode 1882
versionName "2.0-draft22"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -65,19 +65,19 @@ dependencies {
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.6'
implementation 'androidx.activity:activity-compose:1.9.2'
- implementation platform('androidx.compose:compose-bom:2024.09.02')
- implementation "androidx.compose.ui:ui:1.7.2"
- implementation "androidx.compose.ui:ui-tooling-preview:1.7.2"
- implementation platform('androidx.compose:compose-bom:2024.09.02')
+ implementation platform('androidx.compose:compose-bom:2024.09.03')
+ implementation "androidx.compose.ui:ui:1.7.3"
+ implementation "androidx.compose.ui:ui-tooling-preview:1.7.3"
+ implementation platform('androidx.compose:compose-bom:2024.09.03')
implementation 'androidx.compose.ui:ui-graphics'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
- androidTestImplementation platform('androidx.compose:compose-bom:2024.09.02')
- androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.7.2"
- androidTestImplementation platform('androidx.compose:compose-bom:2024.09.02')
- debugImplementation "androidx.compose.ui:ui-tooling:1.7.2"
- debugImplementation "androidx.compose.ui:ui-test-manifest:1.7.2"
+ androidTestImplementation platform('androidx.compose:compose-bom:2024.09.03')
+ androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.7.3"
+ androidTestImplementation platform('androidx.compose:compose-bom:2024.09.03')
+ debugImplementation "androidx.compose.ui:ui-tooling:1.7.3"
+ debugImplementation "androidx.compose.ui:ui-test-manifest:1.7.3"
implementation "androidx.appcompat:appcompat:1.7.0"
implementation "androidx.appcompat:appcompat-resources:1.7.0"
@@ -85,7 +85,7 @@ dependencies {
implementation 'androidx.core:core-splashscreen:1.2.0-alpha02'
// https://mvnrepository.com/artifact/androidx.navigation/navigation-compose
- implementation 'androidx.navigation:navigation-compose:2.8.1'
+ implementation 'androidx.navigation:navigation-compose:2.8.2'
// https://mvnrepository.com/artifact/androidx.lifecycle/lifecycle-viewmodel-ktx
runtimeOnly 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6'
@@ -94,7 +94,7 @@ dependencies {
runtimeOnly 'androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6'
// https://mvnrepository.com/artifact/androidx.fragment/fragment-ktx
- runtimeOnly 'androidx.fragment:fragment-ktx:1.8.3'
+ runtimeOnly 'androidx.fragment:fragment-ktx:1.8.4'
// Material design
implementation 'com.google.android.material:material:1.12.0'
diff --git a/app/src/main/java/io/zoemeow/dutschedule/GlobalVariables.kt b/app/src/main/java/io/zoemeow/dutschedule/GlobalVariables.kt
index 09da369..df6d901 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/GlobalVariables.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/GlobalVariables.kt
@@ -4,8 +4,8 @@ import androidx.compose.ui.unit.dp
class GlobalVariables {
companion object {
- const val LINK_FORGOT_PASSWORD = "https://github.com/ZoeMeow1027/DutSchedule/wiki/Changing-Password-In-DUT#qu%C3%AAn-m%E1%BA%ADt-kh%E1%BA%A9u"
const val LINK_REPOSITORY = "https://github.com/ZoeMeow1027/DutSchedule"
+ const val LINK_FORGOT_PASSWORD = "${LINK_REPOSITORY}/wiki/Changing-Password-In-DUT#qu%C3%AAn-m%E1%BA%ADt-kh%E1%BA%A9u"
const val LINK_REPOSITORY_LICENSE = "${LINK_REPOSITORY}/blob/stable/LICENSE"
const val LINK_REPOSITORY_CREDITS = "${LINK_REPOSITORY}?tab=readme-ov-file#credits-and-license"
const val LINK_REPOSITORY_RELEASE = "${LINK_REPOSITORY}/releases"
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/components/ButtonBase.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/components/ButtonBase.kt
index 11bf637..02cdb80 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/components/ButtonBase.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/components/ButtonBase.kt
@@ -27,6 +27,7 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
+import io.zoemeow.dutschedule.GlobalVariables
@Composable
fun ButtonBase(
@@ -37,7 +38,7 @@ fun ButtonBase(
content: @Composable RowScope.() -> Unit,
isOutlinedButton: Boolean = false,
horizontalArrangement: Arrangement.Horizontal = Arrangement.Center,
- cornerSize: Dp = 5.dp,
+ cornerSize: Dp = GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE,
opacity: Float = 1f
) {
Surface(
@@ -48,7 +49,7 @@ fun ButtonBase(
if (opacity == 1f) 2.dp else 0.dp,
MaterialTheme.colorScheme.inversePrimary
),
- shape = RoundedCornerShape(5.dp)
+ shape = RoundedCornerShape(cornerSize)
)
.run {
if (isEnabled) return@run this.clickable { clicked?.let { it() } }
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/components/DialogBase.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/components/DialogBase.kt
index c63a0a3..be6980f 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/components/DialogBase.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/components/DialogBase.kt
@@ -36,6 +36,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
+import io.zoemeow.dutschedule.GlobalVariables
@Composable
fun DialogBase(
@@ -67,7 +68,7 @@ fun DialogBase(
indication = null,
) { },
color = MaterialTheme.colorScheme.secondaryContainer,
- shape = RoundedCornerShape(10.dp),
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE),
content = {
Column(
horizontalAlignment = Alignment.Start,
@@ -105,86 +106,3 @@ fun DialogBase(
)
}
}
-
-@Composable
-fun DialogBaseLegacy(
- content: @Composable () -> Unit,
- actionButtons: @Composable (RowScope.() -> Unit)? = null,
- title: String,
- padding: PaddingValues = PaddingValues(0.dp),
- isVisible: Boolean = false,
- canDismiss: Boolean = true,
- dismissClicked: (() -> Unit)? = null,
- isTitleCentered: Boolean = false,
- fillMaxWidth: Boolean = true,
- fillMaxHeight: Boolean = false,
- enterTransition: EnterTransition = fadeIn(animationSpec = tween(200)),
- exitTransition: ExitTransition = fadeOut(animationSpec = tween(200)),
-) {
- val modifier: MutableState = remember {
- mutableStateOf(
- Modifier.padding(padding)
- )
- }
- modifier.value =
- if (fillMaxWidth) modifier.value.fillMaxWidth() else modifier.value.wrapContentWidth()
- modifier.value =
- if (fillMaxHeight) modifier.value.fillMaxHeight() else modifier.value.wrapContentHeight()
-
- AnimatedVisibility(
- visible = isVisible,
- enter = enterTransition,
- exit = exitTransition,
- content = {
- Surface(
- modifier = Modifier
- .fillMaxSize()
- .clickable {
- if (canDismiss) {
- dismissClicked?.let { it() }
- }
- },
- color = MaterialTheme.colorScheme.background.copy(alpha = 0.7f),
- content = {
- Surface(
- color = MaterialTheme.colorScheme.secondaryContainer,
- modifier = modifier.value
- .clip(RoundedCornerShape(7.dp))
- .clickable { },
- content = {
- Column(
- horizontalAlignment = Alignment.Start,
- verticalArrangement = Arrangement.Top,
- modifier = Modifier.padding(20.dp),
- ) {
- Column(
- horizontalAlignment = if (isTitleCentered) Alignment.CenterHorizontally else Alignment.Start,
- verticalArrangement = Arrangement.Top,
- modifier = Modifier.fillMaxWidth(),
- ) {
- Text(
- title,
- style = TextStyle(fontSize = 27.sp),
- modifier = Modifier.padding(bottom = 15.dp)
- )
- }
- content()
- actionButtons?.let {
- Row(
- horizontalArrangement = Arrangement.End,
- verticalAlignment = Alignment.CenterVertically,
- modifier = Modifier
- .fillMaxWidth()
- .wrapContentHeight()
- .padding(top = 10.dp),
- content = it,
- )
- }
- }
- },
- )
- }
- )
- }
- )
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/components/SimpleCardItem.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/components/SimpleCardItem.kt
index eee7ed3..1ff96ab 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/components/SimpleCardItem.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/components/SimpleCardItem.kt
@@ -20,6 +20,7 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import io.zoemeow.dutschedule.GlobalVariables
@Composable
fun SimpleCardItem(
@@ -38,7 +39,7 @@ fun SimpleCardItem(
.fillMaxWidth()
.wrapContentHeight()
.padding(padding)
- .clip(RoundedCornerShape(7.dp))
+ .clip(RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE))
.background(MaterialTheme.colorScheme.secondaryContainer.copy(alpha = opacity))
.run {
if (clicked != null) return@run this.clickable { clicked() }
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/MainViewDashboard.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/MainViewDashboard.kt
index a4e7f2a..dcfa7b0 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/MainViewDashboard.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/MainViewDashboard.kt
@@ -80,7 +80,7 @@ fun Activity_MainView_Dashboard(
topBar = {
TopAppBar(
title = { Text(text = context.getString(R.string.app_name)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/controls/NotificationItem.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/controls/NotificationItem.kt
index 9f492db..0ee995e 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/controls/NotificationItem.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/main/controls/NotificationItem.kt
@@ -28,6 +28,7 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import io.zoemeow.dutschedule.GlobalVariables
import io.zoemeow.dutschedule.R
import io.zoemeow.dutschedule.model.NotificationHistory
import io.zoemeow.dutschedule.utils.CustomDateUtils
@@ -51,7 +52,7 @@ fun NotificationItem(
) {
Surface(
modifier = modifier.clickable { onClick?.let { it() } },
- shape = RoundedCornerShape(5.dp),
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE),
color = MaterialTheme.colorScheme.secondaryContainer.copy(alpha = opacity),
content = {
Row(
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/PermissionRequest.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/PermissionRequest.kt
index 35475d9..668471a 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/PermissionRequest.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/PermissionRequest.kt
@@ -17,21 +17,20 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExtendedFloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.unit.dp
import io.zoemeow.dutschedule.R
import io.zoemeow.dutschedule.model.AppearanceState
-import io.zoemeow.dutschedule.ui.view.permissionrequest.controls.PermissionInformation
+import io.zoemeow.dutschedule.ui.view.miscellaneous.controls.PermissionInformation
import io.zoemeow.dutschedule.utils.PermissionUtils
@OptIn(ExperimentalMaterial3Api::class)
@@ -46,19 +45,16 @@ fun Activity_Miscellaneous_PermissionRequest(
onMessageReceived: ((String, Boolean) -> Unit)? = null,
onBack: (() -> Unit)? = null
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
-
Scaffold(
modifier = Modifier
- .fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ .fillMaxSize(),
snackbarHost = { SnackbarHost(hostState = snackBarHostState) },
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(text = context.getString(R.string.activity_permissionrequest_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(containerColor = Color.Transparent, scrolledContainerColor = Color.Transparent),
+ colors = TopAppBarDefaults.topAppBarColors(containerColor = Color.Transparent, scrolledContainerColor = Color.Transparent),
navigationIcon = {
IconButton(
onClick = {
@@ -72,8 +68,7 @@ fun Activity_Miscellaneous_PermissionRequest(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
},
bottomBar = {
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/controls/ClickableExternalLinks.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/controls/ClickableExternalLinks.kt
index e375f7f..b9e66ea 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/controls/ClickableExternalLinks.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/controls/ClickableExternalLinks.kt
@@ -12,6 +12,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
+import io.zoemeow.dutschedule.GlobalVariables
import io.zoemeow.dutschedule.model.HelpLinkInfo
@Composable
@@ -28,7 +29,7 @@ fun ClickableExternalLinks(
else return@run this
},
color = MaterialTheme.colorScheme.secondaryContainer.copy(alpha = opacity),
- shape = RoundedCornerShape(10.dp)
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE)
) {
Column(
modifier = Modifier.padding(horizontal = 15.dp, vertical = 10.dp)
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/permissionrequest/controls/PermissionInformation.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/controls/PermissionInformation.kt
similarity index 91%
rename from app/src/main/java/io/zoemeow/dutschedule/ui/view/permissionrequest/controls/PermissionInformation.kt
rename to app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/controls/PermissionInformation.kt
index 2dc19b3..341c732 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/permissionrequest/controls/PermissionInformation.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/miscellaneous/controls/PermissionInformation.kt
@@ -1,4 +1,4 @@
-package io.zoemeow.dutschedule.ui.view.permissionrequest.controls
+package io.zoemeow.dutschedule.ui.view.miscellaneous.controls
import android.content.Context
import androidx.compose.foundation.BorderStroke
@@ -27,10 +27,11 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import io.zoemeow.dutschedule.GlobalVariables
import io.zoemeow.dutschedule.R
@Composable
-fun PermissionInformation(
+ fun PermissionInformation(
context: Context,
title: String,
permissionCode: String? = null,
@@ -47,9 +48,9 @@ fun PermissionInformation(
.wrapContentHeight()
.border(
border = BorderStroke(3.dp, if (isGranted) Color.Green else if (isRequired) Color.Red else Color(0xFFfc9003)),
- shape = RoundedCornerShape(7.dp),
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE),
)
- .clip(shape = RoundedCornerShape(7.dp))
+ .clip(shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE))
.clickable { clicked?.let { it() } },
color = MaterialTheme.colorScheme.onSecondary.copy(alpha = opacity),
content = {
@@ -74,7 +75,7 @@ fun PermissionInformation(
modifier = Modifier.padding(vertical = 5.dp),
color = if (isGranted) Color.Green else Color.Red,
contentColor = if (isGranted) Color.Black else Color.White,
- shape = RoundedCornerShape(15.dp)
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE)
) {
Row(
modifier = Modifier.padding(horizontal = 10.dp, vertical = 3.dp),
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/MainView.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/MainView.kt
index 04e76bf..af711b0 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/MainView.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/MainView.kt
@@ -30,6 +30,7 @@ import androidx.compose.material3.SegmentedButtonDefaults
import androidx.compose.material3.SingleChoiceSegmentedButtonRow
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
+import androidx.compose.material3.Tab
import androidx.compose.material3.Text
import androidx.compose.material3.TooltipBox
import androidx.compose.material3.TooltipDefaults
@@ -43,6 +44,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
+import com.google.android.material.tabs.TabLayout
import com.google.gson.Gson
import io.dutwrapper.dutwrapper.News.NewsItem
import io.zoemeow.dutschedule.R
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/NewsDetail.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/NewsDetail.kt
index 9e16ccf..a16856e 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/NewsDetail.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/NewsDetail.kt
@@ -12,17 +12,16 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ExtendedFloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.unit.dp
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
@@ -46,18 +45,15 @@ fun Activity_News_NewsDetail(
onMessageReceived: (String, Boolean, String?, (() -> Unit)?) -> Unit, // (msg, forceDismissBefore, actionText, action)
onBack: () -> Unit
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
-
Scaffold(
- modifier = Modifier.fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = { SnackbarHost(hostState = snackBarHostState) },
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.news_detail_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -74,8 +70,7 @@ fun Activity_News_NewsDetail(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
},
floatingActionButton = {
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/controls/NewsListItem.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/controls/NewsListItem.kt
index 0dbfb90..aa5c698 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/controls/NewsListItem.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/news/controls/NewsListItem.kt
@@ -17,6 +17,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
+import io.zoemeow.dutschedule.GlobalVariables
import io.zoemeow.dutschedule.utils.CustomDateUtils
@Composable
@@ -33,7 +34,7 @@ fun NewsListItem(
.fillMaxWidth()
.padding(vertical = 5.dp)
// https://www.android--code.com/2021/09/jetpack-compose-box-rounded-corners_25.html
- .clip(RoundedCornerShape(10.dp))
+ .clip(RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE))
//.background(MaterialTheme.colorScheme.secondaryContainer.copy(alpha = 1.0f))
.clickable {
onClick?.let { it() }
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/AboutSettings.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/AboutSettings.kt
index 4dd0e60..45dc6c9 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/AboutSettings.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/AboutSettings.kt
@@ -23,6 +23,7 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@@ -49,19 +50,15 @@ fun Activity_Settings_AboutApplication(
onLinkClicked: ((String) -> Unit)? = null,
onBack: () -> Unit
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
-
Scaffold(
- modifier = Modifier
- .fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = { SnackbarHost(hostState = snackBarHostState) },
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.settings_about_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -78,8 +75,7 @@ fun Activity_Settings_AboutApplication(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
}
) { paddingValues ->
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ExperimentSettings.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ExperimentSettings.kt
index f3d2463..65fa374 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ExperimentSettings.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ExperimentSettings.kt
@@ -13,18 +13,17 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.unit.dp
import io.zoemeow.dutschedule.R
import io.zoemeow.dutschedule.model.AppearanceState
@@ -46,19 +45,17 @@ fun Activity_Settings_ExperimentSettings(
onMessageReceived: (String, Boolean, String?, (() -> Unit)?) -> Unit, // (msg, forceDismissBefore, actionText, action)
onBack: () -> Unit
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
val dialogSchoolYear = remember { mutableStateOf(false) }
Scaffold(
- modifier = Modifier.fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = { SnackbarHost(hostState = snackBarHostState) },
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.settings_experiment_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -75,8 +72,7 @@ fun Activity_Settings_ExperimentSettings(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
},
content = {
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/LanguageSettings.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/LanguageSettings.kt
index b0f5194..d45559b 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/LanguageSettings.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/LanguageSettings.kt
@@ -14,19 +14,18 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.unit.dp
import io.zoemeow.dutschedule.R
import io.zoemeow.dutschedule.di.LocaleService
@@ -46,20 +45,17 @@ fun Activity_Settings_AppLanguageSettings(
onNotificationRegister: () -> Unit,
onBack: () -> Unit
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
val pendingTag = remember { mutableStateOf("") }
Scaffold(
- modifier = Modifier
- .fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = { SnackbarHost(hostState = snackBarHostState) },
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.settings_applanguage_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -76,8 +72,7 @@ fun Activity_Settings_AppLanguageSettings(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
},
content = {
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/MainView.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/MainView.kt
index 9fe7f28..b8b1a1b 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/MainView.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/MainView.kt
@@ -19,11 +19,11 @@ import androidx.compose.material.icons.filled.Notifications
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
@@ -32,7 +32,6 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import io.zoemeow.dutschedule.BuildConfig
@@ -61,20 +60,17 @@ fun Activity_Settings(
onMessageReceived: ((String, Boolean, String?, (() -> Unit)?) -> Unit)? = null,
onBack: (() -> Unit)? = null
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
-
val dialogAppTheme: MutableState = remember { mutableStateOf(false) }
Scaffold(
- modifier = Modifier.fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = { snackBarHostState?.let { SnackbarHost(hostState = it) } },
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.settings_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -93,8 +89,7 @@ fun Activity_Settings(
}
)
}
- },
- scrollBehavior = scrollBehavior
+ }
)
},
content = {
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/NewsNotificationSettings.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/NewsNotificationSettings.kt
index d920698..54880a8 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/NewsNotificationSettings.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/NewsNotificationSettings.kt
@@ -25,7 +25,6 @@ import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Slider
@@ -34,6 +33,7 @@ import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.SuggestionChip
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
@@ -43,7 +43,6 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import io.zoemeow.dutschedule.R
@@ -55,8 +54,8 @@ import io.zoemeow.dutschedule.ui.components.OptionItem
import io.zoemeow.dutschedule.ui.components.RadioButtonOption
import io.zoemeow.dutschedule.ui.components.SimpleCardItem
import io.zoemeow.dutschedule.ui.components.SwitchWithTextInSurface
-import io.zoemeow.dutschedule.ui.view.settings.controls.Dialog_Settings_NewsNotificationSettings_Add
import io.zoemeow.dutschedule.ui.view.settings.controls.ContentRegion
+import io.zoemeow.dutschedule.ui.view.settings.controls.Dialog_Settings_NewsNotificationSettings_Add
import io.zoemeow.dutschedule.ui.view.settings.controls.Dialog_Settings_NewsNotificationSettings_ClearAll
import io.zoemeow.dutschedule.ui.view.settings.controls.Dialog_Settings_NewsNotificationSettings_Delete
@@ -80,7 +79,6 @@ fun Activity_Settings_NewsNotificationSettings(
onSubjectFilterDelete: ((SubjectCode) -> Unit)? = null,
onSubjectFilterClear: (() -> Unit)? = null
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
val durationTemp = remember {
mutableIntStateOf(fetchNewsInBackgroundDuration)
}
@@ -91,8 +89,7 @@ fun Activity_Settings_NewsNotificationSettings(
val dialogDeleteAll = remember { mutableStateOf(false) }
Scaffold(
- modifier = Modifier.fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = {
snackBarHostState?.let {
SnackbarHost(hostState = it)
@@ -101,9 +98,9 @@ fun Activity_Settings_NewsNotificationSettings(
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.settings_newsnotify_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -120,8 +117,7 @@ fun Activity_Settings_NewsNotificationSettings(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
}
) { paddingValues ->
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ParseNewsSubjectNotification.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ParseNewsSubjectNotification.kt
index 3a02c3f..6e18186 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ParseNewsSubjectNotification.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/ParseNewsSubjectNotification.kt
@@ -16,22 +16,22 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
+import io.zoemeow.dutschedule.GlobalVariables
import io.zoemeow.dutschedule.R
import io.zoemeow.dutschedule.model.AppearanceState
import io.zoemeow.dutschedule.ui.components.SwitchWithTextInSurface
@@ -46,18 +46,15 @@ fun Activity_Settings_ParseNewsSubjectNotification(
onChange: () -> Unit,
onBack: () -> Unit
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
-
Scaffold(
- modifier = Modifier.fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = { SnackbarHost(hostState = snackBarHostState) },
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.settings_parsenewssubject_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -74,8 +71,7 @@ fun Activity_Settings_ParseNewsSubjectNotification(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
},
content = {
@@ -89,7 +85,7 @@ fun Activity_Settings_ParseNewsSubjectNotification(
.fillMaxWidth()
.padding(horizontal = 20.dp)
.padding(bottom = 5.dp),
- shape = RoundedCornerShape(30.dp),
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE),
color = MaterialTheme.colorScheme.secondaryContainer.copy(
alpha = appearanceState.componentOpacity
),
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/WallpaperSettings.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/WallpaperSettings.kt
index 7d93adc..4bbef88 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/WallpaperSettings.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/WallpaperSettings.kt
@@ -14,16 +14,15 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
-import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@@ -50,12 +49,8 @@ fun Activity_Settings_WallpaperAndControlsSettings(
valueComponentOpacity: Float = 1f,
onValueComponentOpacityChanged: ((Float) -> Unit)? = null
) {
- val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
-
Scaffold(
- modifier = Modifier
- .fillMaxSize()
- .nestedScroll(scrollBehavior.nestedScrollConnection),
+ modifier = Modifier.fillMaxSize(),
snackbarHost = {
snackBarHostState?.let {
SnackbarHost(hostState = it)
@@ -64,9 +59,9 @@ fun Activity_Settings_WallpaperAndControlsSettings(
containerColor = appearanceState.containerColor,
contentColor = appearanceState.contentColor,
topBar = {
- LargeTopAppBar(
+ TopAppBar(
title = { Text(context.getString(R.string.settings_wallpaperandcontrols_title)) },
- colors = TopAppBarDefaults.largeTopAppBarColors(
+ colors = TopAppBarDefaults.topAppBarColors(
containerColor = Color.Transparent,
scrolledContainerColor = Color.Transparent
),
@@ -83,8 +78,7 @@ fun Activity_Settings_WallpaperAndControlsSettings(
)
}
)
- },
- scrollBehavior = scrollBehavior
+ }
)
}
) { paddingValues ->
diff --git a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/controls/DialogSchoolYearSettings.kt b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/controls/DialogSchoolYearSettings.kt
index 7889eda..589f151 100644
--- a/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/controls/DialogSchoolYearSettings.kt
+++ b/app/src/main/java/io/zoemeow/dutschedule/ui/view/settings/controls/DialogSchoolYearSettings.kt
@@ -28,6 +28,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import io.dutwrapper.dutwrapper.Utils
+import io.zoemeow.dutschedule.GlobalVariables
import io.zoemeow.dutschedule.R
import io.zoemeow.dutschedule.model.ProcessState
import io.zoemeow.dutschedule.model.account.SchoolYearItem
@@ -108,7 +109,7 @@ fun DialogSchoolYearSettings(
)
Surface(
modifier = Modifier.fillMaxWidth(),
- shape = RoundedCornerShape(10.dp)
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE)
) {
Column(
modifier = Modifier.padding(10.dp)
@@ -139,7 +140,7 @@ fun DialogSchoolYearSettings(
}
Surface(
modifier = Modifier.fillMaxWidth().padding(top = 10.dp, bottom = 7.dp),
- shape = RoundedCornerShape(10.dp)
+ shape = RoundedCornerShape(GlobalVariables.ROUNDED_CORNER_SHAPE_SIZE)
) {
Column(
modifier = Modifier.padding(10.dp)
diff --git a/build.gradle b/build.gradle
index 9fa9314..360d4ec 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,6 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
- id 'com.android.application' version '8.6.1' apply false
+ id 'com.android.application' version '8.7.0' apply false
id 'org.jetbrains.kotlin.android' version '2.0.0' apply false
id 'com.google.dagger.hilt.android' version '2.51.1' apply false
id 'org.jetbrains.kotlin.plugin.compose' version '2.0.0'