|
1 | 1 | package org.jetbrains.kotlinconf.navigation |
2 | 2 |
|
| 3 | +import androidx.navigation3.runtime.NavKey |
3 | 4 | import kotlinx.serialization.SerialName |
4 | 5 | import kotlinx.serialization.Serializable |
5 | 6 | import org.jetbrains.kotlinconf.PartnerId |
6 | 7 | import org.jetbrains.kotlinconf.SessionId |
7 | 8 | import org.jetbrains.kotlinconf.SpeakerId |
8 | 9 |
|
| 10 | +@Serializable |
| 11 | +sealed interface AppRoute : NavKey |
| 12 | + |
9 | 13 | @Serializable |
10 | 14 | @SerialName("AboutConference") |
11 | | -data object AboutConferenceScreen |
| 15 | +data object AboutConferenceScreen : AppRoute |
12 | 16 |
|
13 | 17 | @Serializable |
14 | 18 | @SerialName("CodeOfConduct") |
15 | | -data object CodeOfConductScreen |
| 19 | +data object CodeOfConductScreen : AppRoute |
16 | 20 |
|
17 | 21 | @Serializable |
18 | 22 | @SerialName("AboutApp") |
19 | | -data object AboutAppScreen |
20 | | - |
21 | | -@Serializable |
22 | | -@SerialName("Info") |
23 | | -data object InfoScreen: MainScreenMarker |
| 23 | +data object AboutAppScreen : AppRoute |
24 | 24 |
|
25 | 25 | @Serializable |
26 | 26 | @SerialName("WelcomePrivacyNotice") |
27 | | -data object StartPrivacyNoticeScreen |
| 27 | +data object StartPrivacyNoticeScreen : AppRoute |
28 | 28 |
|
29 | 29 | @Serializable |
30 | 30 | @SerialName("WelcomeSetupNotifications") |
31 | | -data object StartNotificationsScreen |
| 31 | +data object StartNotificationsScreen : AppRoute |
32 | 32 |
|
33 | 33 | @Serializable |
34 | 34 | @SerialName("AppPrivacyNoticePrompt") |
35 | | -data object AppPrivacyNoticePrompt |
| 35 | +data object AppPrivacyNoticePrompt : AppRoute |
36 | 36 |
|
37 | 37 | @Serializable |
38 | 38 | @SerialName("Settings") |
39 | | -data object SettingsScreen |
| 39 | +data object SettingsScreen : AppRoute |
40 | 40 |
|
41 | 41 | @Serializable |
42 | 42 | @SerialName("VisitorPrivacyNotice") |
43 | | -data object VisitorPrivacyNoticeScreen |
| 43 | +data object VisitorPrivacyNoticeScreen : AppRoute |
44 | 44 |
|
45 | 45 | @Serializable |
46 | 46 | @SerialName("AppPrivacyNotice") |
47 | | -data object AppPrivacyNoticeScreen |
| 47 | +data object AppPrivacyNoticeScreen : AppRoute |
48 | 48 |
|
49 | 49 | @Serializable |
50 | 50 | @SerialName("TermsOfUse") |
51 | | -data object TermsOfUseScreen |
| 51 | +data object TermsOfUseScreen : AppRoute |
52 | 52 |
|
53 | 53 | @Serializable |
54 | 54 | @SerialName("AppTermsOfUse") |
55 | | -data object AppTermsOfUseScreen |
| 55 | +data object AppTermsOfUseScreen : AppRoute |
56 | 56 |
|
57 | 57 | @Serializable |
58 | 58 | @SerialName("Licenses") |
59 | | -data object LicensesScreen |
| 59 | +data object LicensesScreen : AppRoute |
60 | 60 |
|
61 | 61 | @Serializable |
62 | 62 | @SerialName("License") |
63 | 63 | data class SingleLicenseScreen( |
64 | 64 | val licenseName: String, |
65 | 65 | val licenseText: String, |
66 | | -) |
| 66 | +) : AppRoute |
67 | 67 |
|
68 | 68 | @Serializable |
69 | 69 | @SerialName("Partners") |
70 | | -data object PartnersScreen |
| 70 | +data object PartnersScreen : AppRoute |
71 | 71 |
|
72 | 72 | @Serializable |
73 | 73 | @SerialName("Partner") |
74 | | -data class PartnerDetailScreen(val partnerId: PartnerId) |
| 74 | +data class PartnerDetailScreen(val partnerId: PartnerId) : AppRoute |
75 | 75 |
|
76 | 76 | @Serializable |
77 | 77 | @SerialName("Main") |
78 | | -data object MainScreen |
79 | | - |
80 | | -sealed interface MainScreenMarker |
81 | | - |
82 | | -@Serializable |
83 | | -@SerialName("Schedule") |
84 | | -data object ScheduleScreen : MainScreenMarker |
| 78 | +data object MainScreen : AppRoute |
85 | 79 |
|
86 | 80 | @Serializable |
87 | 81 | @SerialName("Session") |
88 | 82 | data class SessionScreen( |
89 | 83 | val sessionId: SessionId, |
90 | 84 | val openedForFeedback: Boolean = false, |
91 | | -) |
92 | | - |
93 | | -@Serializable |
94 | | -@SerialName("Speakers") |
95 | | -data object SpeakersScreen: MainScreenMarker |
| 85 | +) : AppRoute |
96 | 86 |
|
97 | 87 | @Serializable |
98 | 88 | @SerialName("Speaker") |
99 | | -data class SpeakerDetailScreen(val speakerId: SpeakerId) |
100 | | - |
101 | | -@Serializable |
102 | | -@SerialName("Map") |
103 | | -data object MapScreen: MainScreenMarker |
| 89 | +data class SpeakerDetailScreen(val speakerId: SpeakerId) : AppRoute |
104 | 90 |
|
105 | 91 | @Serializable |
106 | 92 | @SerialName("MapDetail") |
107 | | -data class NestedMapScreen(val roomName: String) |
| 93 | +data class NestedMapScreen(val roomName: String) : AppRoute |
108 | 94 |
|
109 | 95 | @Serializable |
110 | | -@SerialName("News") |
111 | | -data object NewsListScreen |
| 96 | +@SerialName("NewsList") |
| 97 | +data object NewsListScreen : AppRoute |
112 | 98 |
|
113 | 99 | @Serializable |
114 | | -@SerialName("News") |
115 | | -data class NewsDetailScreen(val newsId: String) |
| 100 | +@SerialName("NewsDetail") |
| 101 | +data class NewsDetailScreen(val newsId: String) : AppRoute |
116 | 102 |
|
117 | 103 | @Serializable |
118 | 104 | @SerialName("DeveloperMenu") |
119 | | -data object DeveloperMenuScreen |
| 105 | +data object DeveloperMenuScreen : AppRoute |
0 commit comments