@@ -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,54 @@ 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
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
87124 }
88125
89126 @Serializable
90127 @Parcelize
91- sealed interface OnRamp : AppRoute {
128+ sealed interface OnRamp : AppRoute {
92129 @Serializable
93130 data class ProviderList (
94131 val from : AppRoute ? = null ,
@@ -101,27 +138,36 @@ sealed interface AppRoute : NavKey, Parcelable {
101138
102139 @Serializable
103140 @Parcelize
104- sealed interface Transfers : AppRoute {
141+ sealed interface Transfers : AppRoute {
105142
106143 sealed interface Withdrawal {
107- @Serializable data class Amount (val mint : Mint ) : Transfers
108- @Serializable data object Destination : Transfers
109- @Serializable data object Confirmation : Transfers
144+ @Serializable
145+ data class Amount (val mint : Mint ) : Transfers
146+ @Serializable
147+ data object Destination : Transfers
148+ @Serializable
149+ data object Confirmation : Transfers
110150 }
111151 }
112152
113153 @Serializable
114154 @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
155+ sealed interface Menu : AppRoute {
156+ @Serializable
157+ data object MyAccount : Menu
158+ @Serializable
159+ data class Deposit (val mint : Mint ) : Menu
160+ @Serializable
161+ data object BackupKey : Menu
162+ @Serializable
163+ data object AppSettings : Menu
164+ @Serializable
165+ data object AdvancedFeatures : Menu
166+ @Serializable
167+ data object Lab : Menu
122168 }
123169
124170 @Serializable
125171 @Parcelize
126- sealed interface Advanced : AppRoute
172+ sealed interface Advanced : AppRoute
127173}
0 commit comments