@@ -19,32 +19,47 @@ import kotlinx.serialization.Serializable
1919sealed interface AppRoute : NavKey , Parcelable {
2020
2121 /* * Initial loading/splash route shown while auth state resolves. */
22- @Serializable @Parcelize data object Loading : AppRoute
22+ @Serializable
23+ @Parcelize
24+ data object Loading : AppRoute
2325
2426 @Serializable
2527 @Parcelize
2628 // TODO: turn into a Flow
27- sealed interface Onboarding : AppRoute {
28- @Serializable data class Login (val seed : String? = null , val fromDeeplink : Boolean = false ) : Onboarding
29- @Serializable data object SeedInput : Onboarding
30- @Serializable data object AccessKey : Onboarding
31- @Serializable data object AccessKeySavedLocation : Onboarding
32- @Serializable data class Purchase (val fromLogin : Boolean = false ) : Onboarding
33- @Deprecated(" Onboarding streamlined; permissions now requested at time of use" )
34- @Serializable data class NotificationPermission (val postCreate : Boolean = false ) : Onboarding
29+ sealed interface Onboarding : AppRoute {
30+ @Serializable
31+ data class Login (val seed : String? = null , val fromDeeplink : Boolean = false ) : Onboarding
32+ @Serializable
33+ data object SeedInput : Onboarding
34+ @Serializable
35+ data object AccessKey : Onboarding
36+ @Serializable
37+ data object AccessKeySavedLocation : Onboarding
38+ @Serializable
39+ data class Purchase (val fromLogin : Boolean = false ) : Onboarding
40+
41+ @Serializable
42+ data class NotificationPermission (val postCreate : Boolean = false ) : Onboarding
43+ @Serializable
44+ data class NotificationPermissionRationale (val permanentlyDenied : Boolean = false ) : Onboarding
45+
3546 @Deprecated(" Onboarding streamlined; permissions now requested at time of use" )
36- @Serializable data class CameraPermission (val postCreate : Boolean = false ) : Onboarding
47+ @Serializable
48+ data class CameraPermission (val postCreate : Boolean = false ) : Onboarding
3749 }
3850
3951
4052 @Serializable
4153 @Parcelize
42- sealed interface Main : AppRoute {
43- @Serializable data class AppRestricted (val restrictionType : RestrictionType ) : Main
44- @Serializable data object Scanner : Main
54+ sealed interface Main : AppRoute {
55+ @Serializable
56+ data class AppRestricted (val restrictionType : RestrictionType ) : Main
57+ @Serializable
58+ data object Scanner : Main
4559
4660 // TODO: is there a better place for this to live?
47- @Serializable data class RegionSelection (val kind : RegionSelectionKind ) : Main
61+ @Serializable
62+ data class RegionSelection (val kind : RegionSelectionKind ) : Main
4863
4964 @Serializable
5065 @Parcelize
@@ -63,32 +78,57 @@ sealed interface AppRoute : NavKey, Parcelable {
6378 val includeEmail : Boolean = true ,
6479 val email : String? = null ,
6580 val emailVerificationCode : String? = null ,
66- ): AppRoute
81+ ) : AppRoute
6782
6883 @Serializable
6984 @Parcelize
70- sealed interface Sheets : AppRoute {
71- @Serializable data class TokenSelection (val purpose : TokenPurpose ): Sheets
72- @Serializable data class Give (val mint : Mint ? = null , val fromTokenInfo : Boolean = false ) : Sheets
73- @Serializable data object Wallet : Sheets
74- @Serializable data object Menu : Sheets
75- @Serializable data object Lab : Sheets
76- @Serializable data object ShareApp : Sheets
85+ sealed interface Sheets : AppRoute {
86+ @Serializable
87+ data class TokenSelection (val purpose : TokenPurpose ) : Sheets
88+ @Serializable
89+ data class Give (val mint : Mint ? = null , val fromTokenInfo : Boolean = false ) : Sheets
90+ @Serializable
91+ data object Wallet : Sheets
92+ @Serializable
93+ data object Menu : Sheets
94+ @Serializable
95+ data object Lab : Sheets
96+ @Serializable
97+ data object ShareApp : Sheets
7798 }
7899
79100 @Serializable
80101 @Parcelize
81- sealed interface Token : AppRoute {
82- @Serializable data class Info (val mint : Mint , val forNeededFunds : Boolean = false , val fromDeeplink : Boolean = false ): Token
83- @Serializable data class Transactions (val mint : Mint ): Token
84- @Serializable data class SwapTransact (val purpose : TokenSwapPurpose , val forNeededFunds : Boolean = false ): Token
85- @Serializable data class TxProcessing (val swapId : SwapId , val awaitExternalWallet : Boolean = false ): Token, NonDismissableRoute, NonDraggableRoute
86- @Serializable data object SellReceipt : Token
87- }
102+ sealed interface Token : AppRoute {
103+ @Serializable
104+ data class Info (
105+ val mint : Mint ,
106+ val forNeededFunds : Boolean = false ,
107+ val fromDeeplink : Boolean = false
108+ ) : Token
109+
110+ @Serializable
111+ data class Transactions (val mint : Mint ) : Token
112+ @Serializable
113+ data class SwapTransact (
114+ val purpose : TokenSwapPurpose ,
115+ val forNeededFunds : Boolean = false
116+ ) : Token
117+
118+ @Serializable
119+ data class TxProcessing (val swapId : SwapId , val awaitExternalWallet : Boolean = false ) :
120+ Token , NonDismissableRoute , NonDraggableRoute
121+
122+ @Serializable
123+ data object SellReceipt : Token
124+
125+ @Serializable
126+ data object Discovery : AppRoute
88127
128+ }
89129 @Serializable
90130 @Parcelize
91- sealed interface OnRamp : AppRoute {
131+ sealed interface OnRamp : AppRoute {
92132 @Serializable
93133 data class ProviderList (
94134 val from : AppRoute ? = null ,
@@ -101,27 +141,36 @@ sealed interface AppRoute : NavKey, Parcelable {
101141
102142 @Serializable
103143 @Parcelize
104- sealed interface Transfers : AppRoute {
144+ sealed interface Transfers : AppRoute {
105145
106146 sealed interface Withdrawal {
107- @Serializable data class Amount (val mint : Mint ) : Transfers
108- @Serializable data object Destination : Transfers
109- @Serializable data object Confirmation : Transfers
147+ @Serializable
148+ data class Amount (val mint : Mint ) : Transfers
149+ @Serializable
150+ data object Destination : Transfers
151+ @Serializable
152+ data object Confirmation : Transfers
110153 }
111154 }
112155
113156 @Serializable
114157 @Parcelize
115- sealed interface Menu : AppRoute {
116- @Serializable data object MyAccount : Menu
117- @Serializable data class Deposit (val mint : Mint ) : Menu
118- @Serializable data object BackupKey : Menu
119- @Serializable data object AppSettings : Menu
120- @Serializable data object AdvancedFeatures : Menu
121- @Serializable data object Lab : Menu
158+ sealed interface Menu : AppRoute {
159+ @Serializable
160+ data object MyAccount : Menu
161+ @Serializable
162+ data class Deposit (val mint : Mint ) : Menu
163+ @Serializable
164+ data object BackupKey : Menu
165+ @Serializable
166+ data object AppSettings : Menu
167+ @Serializable
168+ data object AdvancedFeatures : Menu
169+ @Serializable
170+ data object Lab : Menu
122171 }
123172
124173 @Serializable
125174 @Parcelize
126- sealed interface Advanced : AppRoute
175+ sealed interface Advanced : AppRoute
127176}
0 commit comments