Skip to content

Commit 44f2f24

Browse files
Merge pull request #12 from NicosNicolaou16/updates
Updates
2 parents 738d1d9 + 11fa4b3 commit 44f2f24

18 files changed

Lines changed: 214 additions & 115 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,11 @@ git clone https://github.com/NicosNicolaou16/Material_3_Expressive_List.git
9191

9292
## 🧾 Versioning
9393

94-
Material 3 version: 1.5.0-alpha09 <br />
94+
Material 3 version: 1.5.0-alpha11 <br />
9595
Target SDK version: 36 <br />
9696
Minimum SDK version: 29 <br />
97-
Kotlin version: 2.2.21 <br />
98-
Gradle version: 8.13.1 <br />
97+
Kotlin version: 2.3.0 <br />
98+
Gradle version: 8.13.2 <br />
9999

100100
## ⭐ Stargazers
101101

app/build.gradle.kts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ dependencies {
5858
implementation(libs.androidx.compose.ui)
5959
implementation(libs.androidx.compose.ui.graphics)
6060
implementation(libs.androidx.compose.ui.tooling.preview)
61-
implementation(libs.androidx.navigation.compose)
6261
implementation(libs.androidx.lifecycle.viewmodel.compose)
6362
implementation(libs.androidx.hilt.compose)
6463
implementation(libs.androidx.compose.runtime)
@@ -71,6 +70,16 @@ dependencies {
7170
implementation(libs.dagger.android)
7271
ksp(libs.dagger.compiler)
7372
ksp(libs.hilt.compiler)
73+
// Navigation 3
74+
implementation(libs.androidx.navigation3.ui)
75+
implementation(libs.androidx.navigation3.runtime)
76+
implementation(libs.androidx.lifecycle.viewmodel.navigation3)
77+
implementation(libs.androidx.material3.adaptive.navigation3)
78+
implementation(libs.kotlinx.serialization.core)
79+
// Material 3 Adaptive
80+
implementation(libs.androidx.compose.material3.adaptive)
81+
// Will remove later - temporary added
82+
ksp(libs.kotlin.metadata.jvm)
7483
// Unit Test
7584
testImplementation(libs.junit)
7685
androidTestImplementation(libs.androidx.junit)

app/src/main/java/com/nicos/material3expressivelist/presentation/buttons_group_screen/ButtonsGroupRoot.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,24 +27,24 @@ import androidx.compose.ui.text.TextStyle
2727
import androidx.compose.ui.text.style.TextAlign
2828
import androidx.compose.ui.tooling.preview.Preview
2929
import androidx.compose.ui.unit.dp
30-
import androidx.navigation.NavHostController
3130
import com.nicos.material3expressivelist.R
3231
import com.nicos.material3expressivelist.presentation.CustomToolbar
32+
import com.nicos.material3expressivelist.presentation.navigation.navigation_3.Navigator
3333
import com.nicos.material3expressivelist.ui.theme.Material3ExpressiveListTheme
3434
import kotlin.collections.fill
3535
import kotlin.collections.forEachIndexed
3636
import kotlin.collections.lastIndex
3737

3838
@Composable
3939
fun ButtonGroupsRoot(
40-
navController: NavHostController,
40+
navigator: Navigator,
4141
) {
4242
Scaffold(
4343
topBar = {
4444
CustomToolbar(
4545
title = "Button Groups",
4646
backButton = {
47-
navController.popBackStack()
47+
navigator.goBack()
4848
}
4949
)
5050
}

app/src/main/java/com/nicos/material3expressivelist/presentation/expressive_list_screen/ExpressiveListScreen.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ import androidx.compose.ui.text.style.TextAlign
3838
import androidx.compose.ui.unit.dp
3939
import androidx.compose.ui.unit.sp
4040
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
41-
import androidx.navigation.NavHostController
41+
import androidx.navigation3.runtime.NavKey
4242
import com.nicos.material3expressivelist.R
4343
import com.nicos.material3expressivelist.presentation.expressive_list_screen.models.ExpressiveListDataModel
44-
import com.nicos.material3expressivelist.presentation.navigation.ScreenRoutes
44+
import com.nicos.material3expressivelist.presentation.navigation.navigation_3.Navigator
4545
import com.nicos.material3expressivelist.ui.theme.Purple80
4646

4747
@Composable
4848
fun ExpressiveListRoot(
49-
navController: NavHostController,
49+
navigator: Navigator,
5050
) {
5151
Scaffold(
5252
topBar = {
@@ -70,7 +70,7 @@ fun ExpressiveListRoot(
7070
) { paddingValues ->
7171
ExpressiveListScreen(
7272
paddingValues = paddingValues,
73-
screen = { navController.navigate(it) }
73+
screen = { navigator.navigate(it) }
7474
)
7575
}
7676
}
@@ -79,7 +79,7 @@ fun ExpressiveListRoot(
7979
fun ExpressiveListScreen(
8080
paddingValues: PaddingValues,
8181
state: ExpressiveListViewModel = hiltViewModel(),
82-
screen: (ScreenRoutes) -> Unit
82+
screen: (NavKey) -> Unit
8383
) {
8484
val collectAsState = state.items.collectAsState().value
8585
LazyColumn(
@@ -99,7 +99,7 @@ fun ExpressiveListScreen(
9999
@Composable
100100
fun ExpressiveListItem(
101101
item: ExpressiveListDataModel,
102-
screen: (ScreenRoutes) -> Unit
102+
screen: (NavKey) -> Unit
103103
) {
104104
val interactionSource = remember { MutableInteractionSource() }
105105
val isPressed by interactionSource.collectIsPressedAsState()

app/src/main/java/com/nicos/material3expressivelist/presentation/expressive_list_screen/models/CreateExpressiveListDataModel.kt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@ package com.nicos.material3expressivelist.presentation.expressive_list_screen.mo
22

33
import android.content.Context
44
import com.nicos.material3expressivelist.R
5-
import com.nicos.material3expressivelist.presentation.navigation.ScreenRoutes
5+
import com.nicos.material3expressivelist.presentation.navigation.ButtonGroupsScreen
6+
import com.nicos.material3expressivelist.presentation.navigation.FabMenuScreen
7+
import com.nicos.material3expressivelist.presentation.navigation.FabMenuWithListScreen
8+
import com.nicos.material3expressivelist.presentation.navigation.FloatingToolBarScreen
9+
import com.nicos.material3expressivelist.presentation.navigation.FloatingToolBarWithListScreen
10+
import com.nicos.material3expressivelist.presentation.navigation.LoadingProgressIndicatorScreen
11+
import com.nicos.material3expressivelist.presentation.navigation.SplitButtonsScreen
612
import kotlinx.coroutines.flow.Flow
713
import kotlinx.coroutines.flow.flow
814

@@ -17,49 +23,49 @@ class CreateExpressiveListDataModel(
1723
list.add(
1824
ExpressiveListDataModel(
1925
context.getString(R.string.button_groups),
20-
screenRoutes = ScreenRoutes.ButtonGroupsScreen
26+
screenRoutes = ButtonGroupsScreen
2127
)
2228
)
2329

2430
list.add(
2531
ExpressiveListDataModel(
2632
context.getString(R.string.split_buttons),
27-
screenRoutes = ScreenRoutes.SplitButtonsScreen
33+
screenRoutes = SplitButtonsScreen
2834
)
2935
)
3036

3137
list.add(
3238
ExpressiveListDataModel(
3339
context.getString(R.string.loading_progress_indicator),
34-
screenRoutes = ScreenRoutes.LoadingProgressIndicatorScreen
40+
screenRoutes = LoadingProgressIndicatorScreen
3541
)
3642
)
3743

3844
list.add(
3945
ExpressiveListDataModel(
4046
context.getString(R.string.fab_menu_with_list),
41-
screenRoutes = ScreenRoutes.FabMenuWithListScreen
47+
screenRoutes = FabMenuWithListScreen
4248
)
4349
)
4450

4551
list.add(
4652
ExpressiveListDataModel(
4753
context.getString(R.string.fab_menu),
48-
screenRoutes = ScreenRoutes.FabMenuScreen
54+
screenRoutes = FabMenuScreen
4955
)
5056
)
5157

5258
list.add(
5359
ExpressiveListDataModel(
5460
context.getString(R.string.floating_toolbar_with_list),
55-
screenRoutes = ScreenRoutes.FloatingToolBarWithListScreen
61+
screenRoutes = FloatingToolBarWithListScreen
5662
)
5763
)
5864

5965
list.add(
6066
ExpressiveListDataModel(
6167
context.getString(R.string.floating_toolbar),
62-
screenRoutes = ScreenRoutes.FloatingToolBarScreen
68+
screenRoutes = FloatingToolBarScreen
6369
)
6470
)
6571

Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.nicos.material3expressivelist.presentation.expressive_list_screen.models
22

3-
import com.nicos.material3expressivelist.presentation.navigation.ScreenRoutes
3+
import androidx.navigation3.runtime.NavKey
44

55
data class ExpressiveListDataModel(
66
val title: String,
7-
val screenRoutes: ScreenRoutes
7+
val screenRoutes: NavKey
88
)

app/src/main/java/com/nicos/material3expressivelist/presentation/fab_menu_screen/FabMenuRoot.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,20 @@ import androidx.compose.ui.semantics.traversalIndex
4444
import androidx.navigation.NavHostController
4545
import com.nicos.material3expressivelist.R
4646
import com.nicos.material3expressivelist.presentation.CustomToolbar
47+
import com.nicos.material3expressivelist.presentation.navigation.navigation_3.Navigator
4748
import kotlin.collections.forEachIndexed
4849
import kotlin.to
4950

5051
@Composable
5152
fun FabMenuRoot(
52-
navController: NavHostController,
53+
navigator: Navigator,
5354
) {
5455
Scaffold(
5556
topBar = {
5657
CustomToolbar(
5758
title = stringResource(R.string.fab_menu),
5859
backButton = {
59-
navController.popBackStack()
60+
navigator.goBack()
6061
}
6162
)
6263
},

app/src/main/java/com/nicos/material3expressivelist/presentation/fab_menu_with_list_screen/FabMenuWithListRoot.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,23 +59,23 @@ import androidx.compose.ui.semantics.semantics
5959
import androidx.compose.ui.semantics.stateDescription
6060
import androidx.compose.ui.semantics.traversalIndex
6161
import androidx.compose.ui.unit.dp
62-
import androidx.navigation.NavController
6362
import com.nicos.material3expressivelist.R
6463
import com.nicos.material3expressivelist.presentation.CustomToolbar
64+
import com.nicos.material3expressivelist.presentation.navigation.navigation_3.Navigator
6565
import kotlin.collections.forEachIndexed
6666
import kotlin.ranges.until
6767
import kotlin.to
6868

6969
@Composable
7070
fun FabMenuWithListRoot(
71-
navController: NavController,
71+
navigator: Navigator,
7272
) {
7373
Scaffold(
7474
topBar = {
7575
CustomToolbar(
7676
title = stringResource(R.string.fab_menu_with_list),
7777
backButton = {
78-
navController.popBackStack()
78+
navigator.goBack()
7979
}
8080
)
8181
}

app/src/main/java/com/nicos/material3expressivelist/presentation/floating_toolbar_screen/FloatingToolbarRoot.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,18 @@ import androidx.compose.ui.unit.dp
3131
import androidx.navigation.NavController
3232
import com.nicos.material3expressivelist.R
3333
import com.nicos.material3expressivelist.presentation.CustomToolbar
34+
import com.nicos.material3expressivelist.presentation.navigation.navigation_3.Navigator
3435

3536
@Composable
3637
fun FloatingToolbarRoot(
37-
navController: NavController,
38+
navigator: Navigator,
3839
) {
3940
Scaffold(
4041
topBar = {
4142
CustomToolbar(
4243
title = stringResource(id = R.string.floating_toolbar),
4344
backButton = {
44-
navController.popBackStack()
45+
navigator.goBack()
4546
}
4647
)
4748
}

app/src/main/java/com/nicos/material3expressivelist/presentation/floating_toolbar_with_list_screen/FloatingToolbarWithListRoot.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,18 @@ import androidx.compose.ui.unit.dp
4242
import androidx.navigation.NavController
4343
import com.nicos.material3expressivelist.R
4444
import com.nicos.material3expressivelist.presentation.CustomToolbar
45+
import com.nicos.material3expressivelist.presentation.navigation.navigation_3.Navigator
4546

4647
@Composable
4748
fun FloatingToolbarWithListRoot(
48-
navController: NavController,
49+
navigator: Navigator,
4950
) {
5051
Scaffold(
5152
topBar = {
5253
CustomToolbar(
5354
title = stringResource(R.string.floating_toolbar_with_list),
5455
backButton = {
55-
navController.popBackStack()
56+
navigator.goBack()
5657
}
5758
)
5859
}

0 commit comments

Comments
 (0)