-
-
Save egorikftp/5b18bd863282719b286e577df52cea00 to your computer and use it in GitHub Desktop.
Cicerone
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sealed class Screen { | |
fun getKey(): String = this::class.java.simpleName | |
sealed class Auth { | |
class Register() : Screen() | |
class ConfirmSms( | |
val verificationId: String, | |
val phone: String, | |
val mode: Boolean | |
) : Screen() | |
} | |
class Main() : Screen() | |
class ClientContainer() : Screen() | |
class DriverContainer() : Screen() | |
sealed class Order { | |
class List() : Screen() | |
class Create() : Screen() | |
} | |
sealed class Offer { | |
class Create() : Screen() | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ScreenRouter : Router() { | |
companion object { | |
private const val errorMessage = "Use methods with class Screen instead screenKey" | |
} | |
fun newScreenChain(screen: Screen) { | |
super.newScreenChain(screen.getKey(), screen) | |
} | |
fun navigateTo(screen: Screen) { | |
super.navigateTo(screen.getKey(), screen) | |
} | |
fun backTo(screen: Screen) { | |
super.backTo(screen.getKey()) | |
} | |
fun replaceScreen(screen: Screen) { | |
super.replaceScreen(screen.getKey(), screen) | |
} | |
fun newRootScreen(screen: Screen) { | |
super.newRootScreen(screen.getKey(), screen) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun newScreenChain(screenKey: String) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun newScreenChain(screenKey: String, data: Any?) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun navigateTo(screenKey: String) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun navigateTo(screenKey: String, data: Any?) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun backTo(screenKey: String) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun replaceScreen(screenKey: String) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun replaceScreen(screenKey: String, data: Any?) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun newRootScreen(screenKey: String) { | |
throw Exception(errorMessage) | |
} | |
@Deprecated(errorMessage, level = DeprecationLevel.ERROR) | |
override fun newRootScreen(screenKey: String, data: Any?) { | |
throw Exception(errorMessage) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment