Skip to content

Commit 119f993

Browse files
authored
Navigate to next screen from composable (#88)
* Navigate to next screen from composable * Rename method to match other screens naming convention
1 parent 1a91c88 commit 119f993

File tree

5 files changed

+11
-28
lines changed

5 files changed

+11
-28
lines changed

fundamentals/android/auth-sign-in-with-google/Notes/app/src/main/java/com/notes/app/NotesApp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ fun NavGraphBuilder.notesGraph(appState: NotesAppState) {
8282

8383
composable(SIGN_IN_SCREEN) {
8484
SignInScreen(
85-
onSignUpClicked = { route -> appState.navigate(route) },
85+
openScreen = { route -> appState.navigate(route) },
8686
openAndPopUp = { route, popUp -> appState.navigateAndPopUp(route, popUp) }
8787
)
8888
}

fundamentals/android/auth-sign-in-with-google/Notes/app/src/main/java/com/notes/app/screens/authentication/sign_in/SignInScreen.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import androidx.compose.ui.unit.dp
3838
import androidx.compose.ui.unit.sp
3939
import androidx.hilt.navigation.compose.hiltViewModel
4040
import com.notes.app.R
41+
import com.notes.app.SIGN_UP_SCREEN
4142
import com.notes.app.screens.authentication.AuthenticationButton
4243
import com.notes.app.screens.authentication.launchCredManBottomSheet
4344
import com.notes.app.ui.theme.NotesTheme
@@ -46,7 +47,7 @@ import com.notes.app.ui.theme.Purple40
4647
@Composable
4748
@OptIn(ExperimentalMaterial3Api::class)
4849
fun SignInScreen(
49-
onSignUpClicked: (String) -> Unit,
50+
openScreen: (String) -> Unit,
5051
openAndPopUp: (String, String) -> Unit,
5152
modifier: Modifier = Modifier,
5253
viewModel: SignInViewModel = hiltViewModel()
@@ -159,7 +160,7 @@ fun SignInScreen(
159160
.fillMaxWidth()
160161
.padding(8.dp))
161162

162-
TextButton(onClick = { viewModel.onSignUpClick(onSignUpClicked) }) {
163+
TextButton(onClick = { openScreen(SIGN_UP_SCREEN) }) {
163164
Text(text = stringResource(R.string.sign_up_description), fontSize = 16.sp, color = Purple40)
164165
}
165166
}

fundamentals/android/auth-sign-in-with-google/Notes/app/src/main/java/com/notes/app/screens/authentication/sign_in/SignInViewModel.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential.Co
88
import com.notes.app.ERROR_TAG
99
import com.notes.app.SIGN_IN_SCREEN
1010
import com.notes.app.NOTES_LIST_SCREEN
11-
import com.notes.app.SIGN_UP_SCREEN
1211
import com.notes.app.UNEXPECTED_CREDENTIAL
1312
import com.notes.app.model.service.AccountService
1413
import com.notes.app.screens.NotesAppViewModel
@@ -55,8 +54,4 @@ class SignInViewModel @Inject constructor(
5554
}
5655
}
5756
}
58-
59-
fun onSignUpClick(openScreen: (String) -> Unit) {
60-
openScreen(SIGN_UP_SCREEN)
61-
}
6257
}

fundamentals/android/auth-sign-in-with-google/Notes/app/src/main/java/com/notes/app/screens/notes_list/NotesListScreen.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ import androidx.compose.ui.res.stringResource
3434
import androidx.compose.ui.tooling.preview.Preview
3535
import androidx.compose.ui.unit.dp
3636
import androidx.hilt.navigation.compose.hiltViewModel
37+
import com.notes.app.ACCOUNT_CENTER_SCREEN
38+
import com.notes.app.NOTE_DEFAULT_ID
39+
import com.notes.app.NOTE_ID
40+
import com.notes.app.NOTE_SCREEN
3741
import com.notes.app.R
3842
import com.notes.app.model.Note
3943
import com.notes.app.model.getTitle
@@ -54,7 +58,7 @@ fun NotesListScreen(
5458
Scaffold(
5559
floatingActionButton = {
5660
FloatingActionButton(
57-
onClick = { viewModel.onAddClick(openScreen) },
61+
onClick = { openScreen("$NOTE_SCREEN?$NOTE_ID=$NOTE_DEFAULT_ID") },
5862
modifier = modifier.padding(16.dp),
5963
containerColor = Purple40,
6064
shape = RoundedCornerShape(16.dp)
@@ -71,7 +75,7 @@ fun NotesListScreen(
7175
TopAppBar(
7276
title = { Text(stringResource(R.string.app_name)) },
7377
actions = {
74-
IconButton(onClick = { viewModel.onAccountCenterClick(openScreen) }) {
78+
IconButton(onClick = { openScreen(ACCOUNT_CENTER_SCREEN) }) {
7579
Icon(Icons.Filled.Person, "Account center")
7680
}
7781
}
@@ -90,7 +94,7 @@ fun NotesListScreen(
9094
items(notes, key = { it.id }) { noteItem ->
9195
NoteItem(
9296
note = noteItem,
93-
onActionClick = { viewModel.onNoteClick(openScreen, noteItem) }
97+
onActionClick = { openScreen("$NOTE_SCREEN?$NOTE_ID=${noteItem.id}") }
9498
)
9599
}
96100
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package com.notes.app.screens.notes_list
22

3-
import com.notes.app.ACCOUNT_CENTER_SCREEN
4-
import com.notes.app.NOTE_DEFAULT_ID
5-
import com.notes.app.NOTE_ID
6-
import com.notes.app.NOTE_SCREEN
73
import com.notes.app.SPLASH_SCREEN
8-
import com.notes.app.model.Note
94
import com.notes.app.model.service.AccountService
105
import com.notes.app.model.service.StorageService
116
import com.notes.app.screens.NotesAppViewModel
@@ -26,16 +21,4 @@ class NotesListViewModel @Inject constructor(
2621
}
2722
}
2823
}
29-
30-
fun onAddClick(openScreen: (String) -> Unit) {
31-
openScreen("$NOTE_SCREEN?$NOTE_ID=$NOTE_DEFAULT_ID")
32-
}
33-
34-
fun onNoteClick(openScreen: (String) -> Unit, note: Note) {
35-
openScreen("$NOTE_SCREEN?$NOTE_ID=${note.id}")
36-
}
37-
38-
fun onAccountCenterClick(openScreen: (String) -> Unit) {
39-
openScreen(ACCOUNT_CENTER_SCREEN)
40-
}
4124
}

0 commit comments

Comments
 (0)