From e696898c9fa32243baeb57aef00ecb520eca2c4d Mon Sep 17 00:00:00 2001 From: "sergey.smykovskyi" Date: Tue, 18 Apr 2023 09:48:24 -0700 Subject: [PATCH] Update formatters versions: `gjf` 1.7 -> 1.16.0 `ktfmt` 0.23 -> 0.43 `ktlint` 0.41.0 -> 0.48.2 `spotless` 5.11.0 -> 6.18.0 Manual changes : Renamed `logged_in` package -> `loggedIn` Renamed `logged_out` package -> `loggedOut` Renamed `off_game` package -> `offGame` Renamed `tic_tac_toe` package -> `ticTacToe` --- android/build.gradle | 12 +- .../uber/rib/compose/root/RootInteractor.kt | 3 +- .../com/uber/rib/compose/root/RootRouter.kt | 10 +- .../com/uber/rib/compose/root/RootView.kt | 8 +- .../uber/rib/compose/root/main/AuthStream.kt | 6 +- .../rib/compose/root/main/MainInteractor.kt | 8 +- .../uber/rib/compose/root/main/MainRouter.kt | 23 ++-- .../uber/rib/compose/root/main/MainScope.kt | 18 ++- .../uber/rib/compose/root/main/MainView.kt | 13 +- .../{logged_in => loggedIn}/LoggedInEvent.kt | 2 +- .../LoggedInInteractor.kt | 14 ++- .../{logged_in => loggedIn}/LoggedInRouter.kt | 20 ++- .../{logged_in => loggedIn}/LoggedInScope.kt | 21 ++-- .../{logged_in => loggedIn}/LoggedInView.kt | 16 +-- .../{logged_in => loggedIn}/ScoreStream.kt | 33 ++--- .../offGame}/OffGameEvent.kt | 2 +- .../offGame}/OffGameInteractor.kt | 20 +-- .../offGame}/OffGameRouter.kt | 2 +- .../offGame}/OffGameScope.kt | 25 ++-- .../offGame}/OffGameView.kt | 8 +- .../offGame}/OffGameViewModel.kt | 4 +- .../ticTacToe}/Board.kt | 29 +++-- .../ticTacToe}/BoardCoordinate.kt | 2 +- .../ticTacToe}/TicTacToeEvent.kt | 2 +- .../ticTacToe}/TicTacToeInteractor.kt | 31 +++-- .../ticTacToe}/TicTacToeRouter.kt | 2 +- .../ticTacToe}/TicTacToeScope.kt | 20 ++- .../ticTacToe}/TicTacToeView.kt | 45 ++++--- .../ticTacToe}/TicTacToeViewModel.kt | 4 +- .../LoggedOutEvent.kt | 2 +- .../LoggedOutInteractor.kt | 19 +-- .../LoggedOutRouter.kt | 4 +- .../LoggedOutScope.kt | 17 +-- .../LoggedOutView.kt | 21 ++-- .../LoggedOutViewModel.kt | 4 +- .../uber/rib/compose/util/AnalyticsClient.kt | 5 +- .../com/uber/rib/compose/util/CustomButton.kt | 8 +- .../rib/compose/util/CustomClientProvider.kt | 4 +- .../com/uber/rib/compose/util/StateStream.kt | 1 + .../java/com/uber/rib/root/RootBuilder.java | 6 +- .../com/uber/rib/root/RootInteractor.java | 2 +- .../java/com/uber/rib/root/RootRouter.java | 6 +- .../LoggedInBuilder.java | 8 +- .../root/loggedIn}/LoggedInInteractor.java | 4 +- .../LoggedInRouter.java | 10 +- .../offGame}/OffGameBuilder.java | 2 +- .../offGame}/OffGameInteractor.java | 2 +- .../offGame}/OffGameRouter.java | 2 +- .../offGame}/OffGameView.java | 2 +- .../ticTacToe}/Board.java | 2 +- .../ticTacToe}/BoardCoordinate.java | 2 +- .../ticTacToe}/TicTacToeBuilder.java | 2 +- .../ticTacToe}/TicTacToeInteractor.java | 4 +- .../loggedIn/ticTacToe}/TicTacToeRouter.java | 2 +- .../ticTacToe}/TicTacToeView.java | 2 +- .../LoggedOutBuilder.java | 2 +- .../LoggedOutInteractor.java | 4 +- .../rib/root/loggedOut}/LoggedOutRouter.java | 2 +- .../LoggedOutView.java | 2 +- .../src/main/res/layout/logged_out_rib.xml | 4 +- .../src/main/res/layout/off_game_rib.xml | 4 +- .../src/main/res/layout/tic_tac_toe_rib.xml | 4 +- .../java/com/uber/rib/root/RootBuilder.java | 6 +- .../com/uber/rib/root/RootInteractor.java | 2 +- .../java/com/uber/rib/root/RootRouter.java | 6 +- .../LoggedInBuilder.java | 8 +- .../LoggedInInteractor.java | 4 +- .../LoggedInRouter.java | 10 +- .../offGame}/OffGameBuilder.java | 2 +- .../offGame}/OffGameInteractor.java | 2 +- .../root/loggedIn/offGame}/OffGameRouter.java | 2 +- .../offGame}/OffGameView.java | 2 +- .../rib/root/loggedIn/ticTacToe}/Board.java | 2 +- .../ticTacToe}/BoardCoordinate.java | 2 +- .../ticTacToe}/TicTacToeBuilder.java | 2 +- .../ticTacToe}/TicTacToeInteractor.java | 4 +- .../loggedIn/ticTacToe}/TicTacToeRouter.java | 2 +- .../ticTacToe}/TicTacToeView.java | 2 +- .../LoggedOutBuilder.java | 2 +- .../root/loggedOut}/LoggedOutInteractor.java | 4 +- .../rib/root/loggedOut}/LoggedOutRouter.java | 2 +- .../LoggedOutView.java | 2 +- .../src/main/res/layout/logged_out_rib.xml | 4 +- .../src/main/res/layout/off_game_rib.xml | 4 +- .../src/main/res/layout/tic_tac_toe_rib.xml | 4 +- .../java/com/uber/rib/root/RootBuilder.java | 6 +- .../com/uber/rib/root/RootInteractor.java | 2 +- .../java/com/uber/rib/root/RootRouter.java | 6 +- .../LoggedInBuilder.java | 2 +- .../LoggedInInteractor.java | 4 +- .../LoggedInRouter.java | 2 +- .../LoggedOutBuilder.java | 2 +- .../LoggedOutInteractor.java | 4 +- .../rib/root/loggedOut}/LoggedOutRouter.java | 2 +- .../LoggedOutView.java | 2 +- .../src/main/res/layout/logged_out_rib.xml | 4 +- android/gradle/dependencies.gradle | 8 +- .../com/uber/rib/core/BasicComposeRouter.kt | 2 +- .../com/uber/rib/core/ActivityDelegate.kt | 22 ++-- .../uber/rib/core/CoreAppCompatActivity.kt | 4 +- .../com/uber/rib/core/ActivityContext.kt | 6 +- .../com/uber/rib/core/ActivityStarter.kt | 2 +- .../com/uber/rib/core/BasicViewRouter.kt | 2 +- .../kotlin/com/uber/rib/core/IntentCreator.kt | 2 +- .../kotlin/com/uber/rib/core/IntentFactory.kt | 2 +- .../kotlin/com/uber/rib/core/RibActivity.kt | 69 ++++++----- .../kotlin/com/uber/rib/core/ViewBuilder.kt | 7 +- .../kotlin/com/uber/rib/core/ViewPresenter.kt | 2 +- .../kotlin/com/uber/rib/core/ViewRouter.kt | 11 +- .../src/main/kotlin/com/uber/rib/core/XRay.kt | 41 ++++--- .../core/lifecycle/ActivityCallbackEvent.kt | 44 ++++--- .../core/lifecycle/ActivityLifecycleEvent.kt | 26 ++-- .../com/uber/rib/core/RibActivityTest.kt | 23 ++-- .../com/uber/rib/core/ViewBuilderTest.kt | 32 ++--- .../test/kotlin/com/uber/rib/core/XRayTest.kt | 4 +- .../com/uber/rib/core/BasicInteractor.kt | 5 +- .../main/kotlin/com/uber/rib/core/Bundle.kt | 14 ++- .../com/uber/rib/core/EmptyPresenter.kt | 2 +- .../kotlin/com/uber/rib/core/FlowAsScope.kt | 20 +-- .../kotlin/com/uber/rib/core/Initializer.kt | 11 +- .../kotlin/com/uber/rib/core/Interactor.kt | 64 +++++----- .../uber/rib/core/InteractorAndViewModule.kt | 2 +- .../com/uber/rib/core/InteractorComponent.kt | 3 +- .../com/uber/rib/core/InteractorType.kt | 5 +- .../kotlin/com/uber/rib/core/Presenter.kt | 21 ++-- .../src/main/kotlin/com/uber/rib/core/Rib.kt | 20 ++- .../kotlin/com/uber/rib/core/RibBuilder.kt | 2 +- .../main/kotlin/com/uber/rib/core/RibEvent.kt | 4 +- .../kotlin/com/uber/rib/core/RibEventType.kt | 3 +- .../kotlin/com/uber/rib/core/RibEvents.kt | 5 +- .../kotlin/com/uber/rib/core/RibInteractor.kt | 2 +- .../kotlin/com/uber/rib/core/RibRefWatcher.kt | 12 +- .../main/kotlin/com/uber/rib/core/Router.kt | 58 +++++---- .../main/kotlin/com/uber/rib/core/Worker.kt | 14 +-- .../com/uber/rib/core/WorkerScopeProvider.kt | 5 +- .../com/uber/rib/core/WorkerUnbinder.kt | 6 +- .../rib/core/lifecycle/InteractorEvent.kt | 5 +- .../uber/rib/core/lifecycle/PresenterEvent.kt | 5 +- .../uber/rib/core/lifecycle/WorkerEvent.kt | 7 +- .../src/test/kotlin/android/os/Bundle.kt | 2 +- .../src/test/kotlin/android/os/Parcelable.kt | 2 +- .../uber/rib/core/InteractorAndRouterTest.kt | 70 ++++++----- .../com/uber/rib/core/RecordingObserver.kt | 11 +- .../kotlin/com/uber/rib/core/RouterTest.kt | 30 ++--- .../com/uber/rib/core/WorkerBinderTest.kt | 13 +- .../uber/rib/compiler/AnnotationVerifier.kt | 5 +- .../compiler/InteractorAnnotationVerifier.kt | 28 +++-- .../InteractorAnnotationVerifierTest.kt | 2 +- .../compiler/InteractorProcessorTestBase.kt | 27 ++-- .../kotlin/com/uber/rib/compiler/Constants.kt | 2 +- .../rib/compiler/InteractorTestGenerator.kt | 49 ++++---- .../com/uber/rib/compiler/RibTestProcessor.kt | 7 +- ...nteractorTestGeneratorProcessorTestBase.kt | 40 +++--- .../com/uber/rib/core/RibCoroutinesRule.kt | 7 +- .../uber/rib/core/TestRibCoroutineScopes.kt | 79 +++++------- .../com/uber/rib/core/TestRibDispatchers.kt | 5 +- .../kotlin/com/uber/rib/core/RibScopesTest.kt | 40 +++--- .../com/uber/rib/core/RibCoroutineScopes.kt | 61 +++++----- .../com/uber/rib/core/RibCoroutinesConfig.kt | 21 ++-- .../com/uber/rib/core/RibDispatchers.kt | 115 ++++++++++-------- .../com/uber/rib/core/RouterAndState.kt | 60 +++++---- .../com/uber/rib/core/RouterAndStateTest.kt | 5 +- .../uber/rib/core/StackRouterNavigatorTest.kt | 69 ++++++----- .../src/test/kotlin/os/Bundle.kt | 2 +- .../src/test/kotlin/os/Parcelable.kt | 2 +- .../rib/core/screenstack/ScreenStackBase.kt | 13 +- .../uber/rib/core/screenstack/ViewProvider.kt | 14 +-- .../screenstack/lifecycle/ScreenStackEvent.kt | 7 +- .../rib/core/AndroidRecordingRx2Observer.kt | 11 +- .../com/uber/rib/workflow/core/StepTester.kt | 26 ++-- .../uber/rib/workflow/core/ActionableItem.kt | 4 +- .../kotlin/com/uber/rib/workflow/core/Step.kt | 27 ++-- .../com/uber/rib/workflow/core/Workflow.kt | 5 +- .../workflow/core/AndroidSchedulersRule.kt | 13 +- .../rib/workflow/core/DelegatingScheduler.kt | 7 +- .../com/uber/rib/workflow/core/StepTest.kt | 50 +++++--- .../uber/rib/workflow/core/WorkflowTest.kt | 12 +- .../com/uber/rib/flipper/RibEventPayload.kt | 26 ++-- .../uber/rib/flipper/RibTreeMessageType.kt | 3 +- .../com/uber/rib/flipper/RibTreePlugin.kt | 10 +- .../action/rib/GenerateAction.java | 4 +- .../intellij_plugin/generator/Generator.java | 20 ++- .../android/rib/AndroidDeviceRepository.kt | 3 +- .../plugin/android/rib/CommandLineUtils.kt | 6 +- .../plugin/android/rib/RibHierarchyBrowser.kt | 29 +++-- .../plugin/android/rib/RibHierarchyPanel.kt | 28 +++-- .../plugin/android/rib/RibHierarchyUtils.kt | 2 +- .../plugin/android/rib/RibProjectService.kt | 12 +- .../plugin/android/rib/RibViewBrowser.kt | 19 +-- .../android/rib/io/LogcatRequestProcessor.kt | 7 +- .../intellij/plugin/android/rib/io/Request.kt | 2 +- .../android/rib/io/RibHierarchyRequest.kt | 4 +- .../android/rib/io/RibHighlightRequest.kt | 2 +- .../plugin/android/rib/io/RibLocateRequest.kt | 4 +- .../android/rib/ui/HierarchyBrowserBase.kt | 14 +-- .../rib/ui/RibHierarchyActivityDescriptor.kt | 2 +- .../ui/RibHierarchyApplicationDescriptor.kt | 2 +- .../android/rib/ui/RibHierarchyDescriptor.kt | 9 +- .../rib/ui/RibHierarchyNodeDescriptor.kt | 2 +- .../rib/ui/RibHierarchyRootNodeDescriptor.kt | 2 +- .../rib/ui/RibHierarchyTreeStructure.kt | 24 ++-- .../android/rib/ui/RibViewNodeDescriptor.kt | 5 +- .../rib/ui/RibViewRootNodeDescriptor.kt | 4 +- .../java/com/uber/rib/root/RootBuilder.java | 2 +- .../java/com/uber/rib/root/RootRouter.java | 4 +- .../offGame}/OffGameBuilder.java | 2 +- .../offGame}/OffGameInteractor.java | 2 +- .../root/loggedIn/offGame}/OffGameRouter.java | 2 +- .../offGame}/OffGameView.java | 2 +- .../rib/root/loggedIn/ticTacToe}/Board.java | 2 +- .../ticTacToe}/BoardCoordinate.java | 2 +- .../ticTacToe}/TicTacToeBuilder.java | 2 +- .../ticTacToe}/TicTacToeInteractor.java | 4 +- .../loggedIn/ticTacToe}/TicTacToeRouter.java | 2 +- .../loggedIn/ticTacToe}/TicTacToeView.java | 2 +- .../LoggedOutBuilder.java | 2 +- .../LoggedOutInteractor.java | 4 +- .../rib/root/loggedOut}/LoggedOutRouter.java | 2 +- .../LoggedOutView.java | 2 +- .../src/main/res/layout/logged_out_rib.xml | 4 +- .../src/main/res/layout/off_game_rib.xml | 4 +- .../src/main/res/layout/tic_tac_toe_rib.xml | 4 +- .../com/uber/rib/root/RootRouterTest.java | 2 +- .../LoggedOutInteractorTest.java | 2 +- .../LoggedOutRouterTest.java | 2 +- .../java/com/uber/rib/root/RootBuilder.java | 6 +- .../com/uber/rib/root/RootInteractor.java | 2 +- .../java/com/uber/rib/root/RootRouter.java | 6 +- .../LoggedInBuilder.java | 10 +- .../LoggedInInteractor.java | 6 +- .../rib/root/loggedIn}/LoggedInRouter.java | 10 +- .../MutableScoreStream.java | 2 +- .../{logged_in => loggedIn}/ScoreStream.java | 2 +- .../offGame}/OffGameBuilder.java | 4 +- .../offGame}/OffGameInteractor.java | 4 +- .../offGame}/OffGameRouter.java | 2 +- .../offGame}/OffGameView.java | 2 +- .../ticTacToe}/Board.java | 2 +- .../ticTacToe}/BoardCoordinate.java | 2 +- .../ticTacToe}/TicTacToeBuilder.java | 2 +- .../ticTacToe}/TicTacToeInteractor.java | 4 +- .../loggedIn/ticTacToe}/TicTacToeRouter.java | 2 +- .../loggedIn/ticTacToe}/TicTacToeView.java | 2 +- .../rib/root/loggedOut}/LoggedOutBuilder.java | 2 +- .../LoggedOutInteractor.java | 4 +- .../rib/root/loggedOut/LoggedOutRouter.java | 27 ++++ .../LoggedOutView.java | 2 +- .../rib/root/logged_out/LoggedOutRouter.java | 27 ---- .../src/main/res/layout/logged_out_rib.xml | 4 +- .../src/main/res/layout/off_game_rib.xml | 4 +- .../src/main/res/layout/tic_tac_toe_rib.xml | 4 +- .../com/uber/rib/root/RootRouterTest.java | 4 +- .../LoggedInInteractorTest.java | 2 +- .../root/loggedIn}/LoggedInRouterTest.java | 6 +- .../offGame}/OffGameInteractorTest.java | 4 +- .../loggedIn/offGame}/OffGameRouterTest.java | 2 +- .../ticTacToe}/TicTacToeInteractorTest.java | 2 +- .../ticTacToe}/TicTacToeRouterTest.java | 2 +- .../LoggedOutInteractorTest.java | 2 +- .../LoggedOutRouterTest.java | 2 +- .../java/com/uber/rib/root/RootBuilder.java | 6 +- .../com/uber/rib/root/RootInteractor.java | 2 +- .../java/com/uber/rib/root/RootRouter.java | 6 +- .../LoggedInBuilder.java | 8 +- .../root/loggedIn}/LoggedInInteractor.java | 4 +- .../rib/root/loggedIn}/LoggedInRouter.java | 10 +- .../offGame}/OffGameBuilder.java | 2 +- .../offGame}/OffGameInteractor.java | 2 +- .../root/loggedIn/offGame/OffGameRouter.java | 27 ++++ .../offGame}/OffGameView.java | 2 +- .../rib/root/loggedIn/ticTacToe/Board.java | 73 +++++++++++ .../loggedIn/ticTacToe/BoardCoordinate.java | 35 ++++++ .../ticTacToe}/TicTacToeBuilder.java | 2 +- .../ticTacToe}/TicTacToeInteractor.java | 4 +- .../loggedIn/ticTacToe/TicTacToeRouter.java | 27 ++++ .../loggedIn/ticTacToe}/TicTacToeView.java | 2 +- .../rib/root/loggedOut}/LoggedOutBuilder.java | 2 +- .../root/loggedOut}/LoggedOutInteractor.java | 4 +- .../rib/root/loggedOut/LoggedOutRouter.java | 27 ++++ .../LoggedOutView.java | 2 +- .../logged_in/off_game/OffGameRouter.java | 27 ---- .../rib/root/logged_in/tic_tac_toe/Board.java | 73 ----------- .../tic_tac_toe/BoardCoordinate.java | 35 ------ .../tic_tac_toe/TicTacToeRouter.java | 27 ---- .../rib/root/logged_out/LoggedOutRouter.java | 27 ---- .../src/main/res/layout/logged_out_rib.xml | 4 +- .../src/main/res/layout/off_game_rib.xml | 4 +- .../src/main/res/layout/tic_tac_toe_rib.xml | 4 +- .../com/uber/rib/root/RootRouterTest.java | 4 +- .../LoggedInInteractorTest.java | 2 +- .../root/loggedIn}/LoggedInRouterTest.java | 6 +- .../offGame}/OffGameInteractorTest.java | 2 +- .../loggedIn/offGame}/OffGameRouterTest.java | 2 +- .../ticTacToe}/TicTacToeInteractorTest.java | 2 +- .../ticTacToe}/TicTacToeRouterTest.java | 2 +- .../LoggedOutInteractorTest.java | 2 +- .../LoggedOutRouterTest.java | 2 +- .../java/com/uber/rib/root/RootBuilder.java | 6 +- .../com/uber/rib/root/RootInteractor.java | 2 +- .../java/com/uber/rib/root/RootRouter.java | 10 +- .../java/com/uber/rib/root/RootWorkflow.java | 4 +- .../root/{logged_in => loggedIn}/GameKey.java | 2 +- .../{logged_in => loggedIn}/GameProvider.java | 2 +- .../LoggedInActionableItem.java | 2 +- .../LoggedInBuilder.java | 14 +-- .../LoggedInInteractor.java | 10 +- .../LoggedInRouter.java | 8 +- .../MutableScoreStream.java | 2 +- .../{logged_in => loggedIn}/ScoreStream.java | 2 +- .../offGame}/OffGameBuilder.java | 6 +- .../offGame}/OffGameInteractor.java | 6 +- .../root/loggedIn/offGame/OffGameRouter.java | 27 ++++ .../offGame}/OffGameView.java | 4 +- .../randomWinner}/RandomWinnerBuilder.java | 2 +- .../randomWinner}/RandomWinnerInteractor.java | 2 +- .../randomWinner}/RandomWinnerRouter.java | 2 +- .../randomWinner}/RandomWinnerView.java | 2 +- .../rib/root/loggedIn/ticTacToe/Board.java | 73 +++++++++++ .../loggedIn/ticTacToe/BoardCoordinate.java | 35 ++++++ .../ticTacToe}/TicTacToeBuilder.java | 2 +- .../ticTacToe}/TicTacToeInteractor.java | 4 +- .../loggedIn/ticTacToe/TicTacToeRouter.java | 27 ++++ .../ticTacToe}/TicTacToeView.java | 2 +- .../LoggedOutBuilder.java | 2 +- .../LoggedOutInteractor.java | 4 +- .../rib/root/loggedOut/LoggedOutRouter.java | 27 ++++ .../LoggedOutView.java | 2 +- .../logged_in/off_game/OffGameRouter.java | 27 ---- .../rib/root/logged_in/tic_tac_toe/Board.java | 73 ----------- .../tic_tac_toe/BoardCoordinate.java | 35 ------ .../tic_tac_toe/TicTacToeRouter.java | 27 ---- .../rib/root/logged_out/LoggedOutRouter.java | 27 ---- .../src/main/res/layout/logged_out_rib.xml | 4 +- .../src/main/res/layout/off_game_rib.xml | 4 +- .../src/main/res/layout/tic_tac_toe_rib.xml | 4 +- 335 files changed, 1916 insertions(+), 1752 deletions(-) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in => loggedIn}/LoggedInEvent.kt (93%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in => loggedIn}/LoggedInInteractor.kt (84%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in => loggedIn}/LoggedInRouter.kt (82%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in => loggedIn}/LoggedInScope.kt (74%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in => loggedIn}/LoggedInView.kt (86%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in => loggedIn}/ScoreStream.kt (66%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/off_game => loggedIn/offGame}/OffGameEvent.kt (92%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/off_game => loggedIn/offGame}/OffGameInteractor.kt (85%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/off_game => loggedIn/offGame}/OffGameRouter.kt (94%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/off_game => loggedIn/offGame}/OffGameScope.kt (72%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/off_game => loggedIn/offGame}/OffGameView.kt (93%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/off_game => loggedIn/offGame}/OffGameViewModel.kt (89%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/Board.kt (66%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/BoardCoordinate.kt (91%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeEvent.kt (92%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeInteractor.kt (83%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeRouter.kt (94%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeScope.kt (69%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeView.kt (76%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeViewModel.kt (89%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_out => loggedOut}/LoggedOutEvent.kt (93%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_out => loggedOut}/LoggedOutInteractor.kt (80%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_out => loggedOut}/LoggedOutRouter.kt (90%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_out => loggedOut}/LoggedOutScope.kt (80%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_out => loggedOut}/LoggedOutView.kt (86%) rename android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/{logged_out => loggedOut}/LoggedOutViewModel.kt (89%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInBuilder.java (93%) rename android/{tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in => demos/flipper/src/main/java/com/uber/rib/root/loggedIn}/LoggedInInteractor.java (93%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInRouter.java (88%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameBuilder.java (98%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractor.java (97%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameRouter.java (95%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameView.java (97%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/Board.java (97%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/BoardCoordinate.java (94%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeBuilder.java (98%) rename android/{tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeInteractor.java (96%) rename android/demos/{intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeRouter.java (95%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeView.java (98%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutBuilder.java (98%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractor.java (94%) rename android/demos/{memory-leaks/src/main/java/com/uber/rib/root/logged_out => flipper/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutRouter.java (96%) rename android/demos/flipper/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutView.java (98%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInBuilder.java (93%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInInteractor.java (93%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInRouter.java (88%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameBuilder.java (98%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractor.java (97%) rename android/{tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game => demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame}/OffGameRouter.java (95%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameView.java (97%) rename android/{tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/Board.java (97%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/BoardCoordinate.java (94%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeBuilder.java (98%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeInteractor.java (96%) rename android/{tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeRouter.java (95%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeView.java (98%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutBuilder.java (98%) rename android/{tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out => demos/intellij/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutInteractor.java (94%) rename android/demos/{flipper/src/main/java/com/uber/rib/root/logged_out => intellij/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutRouter.java (96%) rename android/demos/intellij/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutView.java (98%) rename android/demos/memory-leaks/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInBuilder.java (98%) rename android/demos/memory-leaks/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInInteractor.java (89%) rename android/demos/memory-leaks/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInRouter.java (96%) rename android/demos/memory-leaks/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutBuilder.java (98%) rename android/demos/memory-leaks/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractor.java (95%) rename android/{tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out => demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutRouter.java (96%) rename android/demos/memory-leaks/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutView.java (97%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameBuilder.java (98%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractor.java (97%) rename android/{demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game => tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame}/OffGameRouter.java (95%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameView.java (97%) rename android/{demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/Board.java (97%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/BoardCoordinate.java (94%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeBuilder.java (98%) rename android/{demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeInteractor.java (96%) rename android/tutorials/{tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeRouter.java (95%) rename android/tutorials/{tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeView.java (98%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutBuilder.java (98%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractor.java (93%) rename android/{demos/intellij/src/main/java/com/uber/rib/root/logged_out => tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutRouter.java (96%) rename android/tutorials/tutorial2/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutView.java (97%) rename android/tutorials/tutorial2/src/test/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractorTest.java (97%) rename android/tutorials/tutorial2/src/test/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutRouterTest.java (96%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInBuilder.java (93%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInInteractor.java (92%) rename android/tutorials/{tutorial3/src/main/java/com/uber/rib/root/logged_in => tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn}/LoggedInRouter.java (88%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/MutableScoreStream.java (97%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/ScoreStream.java (95%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameBuilder.java (97%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractor.java (96%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameRouter.java (95%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameView.java (98%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/Board.java (97%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/BoardCoordinate.java (94%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeBuilder.java (98%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeInteractor.java (97%) rename android/{demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeRouter.java (95%) rename android/tutorials/{tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeView.java (98%) rename android/tutorials/{tutorial3/src/main/java/com/uber/rib/root/logged_out => tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutBuilder.java (98%) rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractor.java (95%) create mode 100644 android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java rename android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutView.java (98%) delete mode 100644 android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java rename android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInInteractorTest.java (96%) rename android/tutorials/{tutorial3/src/test/java/com/uber/rib/root/logged_in => tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn}/LoggedInRouterTest.java (88%) rename android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractorTest.java (93%) rename android/tutorials/{tutorial3/src/test/java/com/uber/rib/root/logged_in/off_game => tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/offGame}/OffGameRouterTest.java (95%) rename android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeInteractorTest.java (96%) rename android/tutorials/{tutorial3/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeRouterTest.java (95%) rename android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractorTest.java (98%) rename android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutRouterTest.java (96%) rename android/tutorials/tutorial3/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInBuilder.java (93%) rename android/{demos/flipper/src/main/java/com/uber/rib/root/logged_in => tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn}/LoggedInInteractor.java (93%) rename android/tutorials/{tutorial3-completed/src/main/java/com/uber/rib/root/logged_in => tutorial3/src/main/java/com/uber/rib/root/loggedIn}/LoggedInRouter.java (88%) rename android/tutorials/tutorial3/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameBuilder.java (98%) rename android/tutorials/tutorial3/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractor.java (97%) create mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java rename android/tutorials/tutorial3/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameView.java (97%) create mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java create mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java rename android/tutorials/tutorial3/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeBuilder.java (98%) rename android/tutorials/{tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeInteractor.java (96%) create mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java rename android/tutorials/{tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeView.java (98%) rename android/tutorials/{tutorial3-completed/src/main/java/com/uber/rib/root/logged_out => tutorial3/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutBuilder.java (98%) rename android/{demos/intellij/src/main/java/com/uber/rib/root/logged_out => tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut}/LoggedOutInteractor.java (94%) create mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java rename android/tutorials/tutorial3/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutView.java (98%) delete mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java delete mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java delete mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java delete mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java delete mode 100644 android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java rename android/tutorials/tutorial3/src/test/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInInteractorTest.java (96%) rename android/tutorials/{tutorial3-completed/src/test/java/com/uber/rib/root/logged_in => tutorial3/src/test/java/com/uber/rib/root/loggedIn}/LoggedInRouterTest.java (88%) rename android/tutorials/tutorial3/src/test/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractorTest.java (96%) rename android/tutorials/{tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/off_game => tutorial3/src/test/java/com/uber/rib/root/loggedIn/offGame}/OffGameRouterTest.java (95%) rename android/tutorials/tutorial3/src/test/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeInteractorTest.java (95%) rename android/tutorials/{tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe => tutorial3/src/test/java/com/uber/rib/root/loggedIn/ticTacToe}/TicTacToeRouterTest.java (95%) rename android/tutorials/tutorial3/src/test/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractorTest.java (98%) rename android/tutorials/tutorial3/src/test/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutRouterTest.java (96%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/GameKey.java (94%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/GameProvider.java (95%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInActionableItem.java (95%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInBuilder.java (92%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInInteractor.java (87%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/LoggedInRouter.java (91%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/MutableScoreStream.java (97%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in => loggedIn}/ScoreStream.java (95%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameBuilder.java (96%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameInteractor.java (95%) create mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/off_game => loggedIn/offGame}/OffGameView.java (97%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/random_winner => loggedIn/randomWinner}/RandomWinnerBuilder.java (98%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/random_winner => loggedIn/randomWinner}/RandomWinnerInteractor.java (97%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/random_winner => loggedIn/randomWinner}/RandomWinnerRouter.java (95%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/random_winner => loggedIn/randomWinner}/RandomWinnerView.java (96%) create mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java create mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeBuilder.java (98%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeInteractor.java (97%) create mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_in/tic_tac_toe => loggedIn/ticTacToe}/TicTacToeView.java (98%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutBuilder.java (98%) rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutInteractor.java (95%) create mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java rename android/tutorials/tutorial4/src/main/java/com/uber/rib/root/{logged_out => loggedOut}/LoggedOutView.java (98%) delete mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java delete mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java delete mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java delete mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java delete mode 100644 android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java diff --git a/android/build.gradle b/android/build.gradle index c4405c18..86b3541c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -14,8 +14,9 @@ * limitations under the License. */ import net.ltgt.gradle.errorprone.CheckSeverity +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + -apply from: 'gradle/dependencies.gradle' buildscript { apply from: rootProject.file('gradle/dependencies.gradle') @@ -72,9 +73,8 @@ subprojects { } kotlin { target "**/*.kt" - ktlint(deps.versions.ktlint).userData(['indent_size': '2', 'continuation_indent_size' : '4']) - // TODO: enable when ktfmt depends on google-java-format < v1.8 - // ktfmt(deps.versions.ktfmt) + ktlint(deps.versions.ktlint).editorConfigOverride(['indent_size': '2', 'continuation_indent_size' : '4']) + ktfmt(deps.versions.ktfmt).googleStyle() licenseHeaderFile rootProject.file('config/spotless/copyright.kt') trimTrailingWhitespace() endWithNewline() @@ -172,7 +172,7 @@ subprojects { androidTest.java.srcDirs += 'src/androidTest/kotlin' } - tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + tasks.withType(KotlinCompile).configureEach { kotlinOptions { freeCompilerArgs = extraCompilerArgs jvmTarget = "1.8" @@ -196,7 +196,7 @@ subprojects { } } -task clean(type: Delete) { +tasks.register('clean', Delete) { delete rootProject.buildDir } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootInteractor.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootInteractor.kt index ec8c3821..83874993 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootInteractor.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootInteractor.kt @@ -18,4 +18,5 @@ package com.uber.rib.compose.root import com.uber.rib.core.BasicInteractor import com.uber.rib.core.EmptyPresenter -class RootInteractor(presenter: EmptyPresenter) : BasicInteractor(presenter) +class RootInteractor(presenter: EmptyPresenter) : + BasicInteractor(presenter) diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootRouter.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootRouter.kt index 6129e6fc..0163591e 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootRouter.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootRouter.kt @@ -21,7 +21,7 @@ import com.uber.rib.core.BasicViewRouter class RootRouter( view: RootView, interactor: RootInteractor, - private val scope: RootScope + private val scope: RootScope, ) : BasicViewRouter(view, interactor) { private var mainRouter: MainRouter? = null @@ -36,15 +36,11 @@ class RootRouter( private fun attachMain() { if (mainRouter == null) { - mainRouter = scope.mainScope(view).router().also { - attachChild(it) - } + mainRouter = scope.mainScope(view).router().also { attachChild(it) } } } private fun detachMain() { - mainRouter?.let { - detachChild(it) - } + mainRouter?.let { detachChild(it) } } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootView.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootView.kt index 6a05711c..91cc8a0f 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootView.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/RootView.kt @@ -21,10 +21,12 @@ import android.util.AttributeSet import android.widget.FrameLayout import android.widget.TextView -class RootView @JvmOverloads constructor( +class RootView +@JvmOverloads +constructor( context: Context, attrs: AttributeSet? = null, - defStyle: Int = 0 + defStyle: Int = 0, ) : FrameLayout(context, attrs, defStyle) { init { @@ -33,7 +35,7 @@ class RootView @JvmOverloads constructor( TextView(context).apply { text = "root (view)" setTextColor(Color.WHITE) - } + }, ) } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/AuthStream.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/AuthStream.kt index ff386751..a39eacd5 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/AuthStream.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/AuthStream.kt @@ -30,4 +30,8 @@ class AuthStream { } } -data class AuthInfo(val isLoggedIn: Boolean, val playerOne: String = "", val playerTwo: String = "") +data class AuthInfo( + val isLoggedIn: Boolean, + val playerOne: String = "", + val playerTwo: String = "", +) diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainInteractor.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainInteractor.kt index 9ebe3427..10bcaade 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainInteractor.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainInteractor.kt @@ -25,14 +25,15 @@ import kotlinx.coroutines.flow.onEach class MainInteractor( presenter: ComposePresenter, private val authStream: AuthStream, - private val childContent: MainRouter.ChildContent + private val childContent: MainRouter.ChildContent, ) : BasicInteractor(presenter) { override fun didBecomeActive(savedInstanceState: Bundle?) { super.didBecomeActive(savedInstanceState) router.view.setContent { MainView(childContent = childContent) } - authStream.observe() + authStream + .observe() .onEach { if (it.isLoggedIn) { router.detachLoggedOut() @@ -41,6 +42,7 @@ class MainInteractor( router.detachLoggedIn() router.attachLoggedOut() } - }.launchIn(coroutineScope) + } + .launchIn(coroutineScope) } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainRouter.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainRouter.kt index dcbaaa13..2d141ebd 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainRouter.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainRouter.kt @@ -20,8 +20,8 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.platform.ComposeView -import com.uber.rib.compose.root.main.logged_in.LoggedInRouter -import com.uber.rib.compose.root.main.logged_out.LoggedOutRouter +import com.uber.rib.compose.root.main.loggedIn.LoggedInRouter +import com.uber.rib.compose.root.main.loggedOut.LoggedOutRouter import com.uber.rib.core.BasicViewRouter class MainRouter( @@ -29,7 +29,7 @@ class MainRouter( interactor: MainInteractor, private val parentView: ViewGroup, private val scope: MainScope, - private val childContent: ChildContent + private val childContent: ChildContent, ) : BasicViewRouter(view, interactor) { private var loggedOutRouter: LoggedOutRouter? = null @@ -47,32 +47,25 @@ class MainRouter( internal fun attachLoggedOut() { if (loggedOutRouter == null) { - loggedOutRouter = scope.loggedOutScope(childContent.fullScreenSlot).router().also { - attachChild(it) - } + loggedOutRouter = + scope.loggedOutScope(childContent.fullScreenSlot).router().also { attachChild(it) } } } internal fun attachLoggedIn(authInfo: AuthInfo) { if (loggedInRouter == null) { loggedInRouter = - scope.loggedInScope(childContent.fullScreenSlot, authInfo).router().also { - attachChild(it) - } + scope.loggedInScope(childContent.fullScreenSlot, authInfo).router().also { attachChild(it) } } } internal fun detachLoggedOut() { - loggedOutRouter?.let { - detachChild(it) - } + loggedOutRouter?.let { detachChild(it) } loggedOutRouter = null } internal fun detachLoggedIn() { - loggedInRouter?.let { - detachChild(it) - } + loggedInRouter?.let { detachChild(it) } loggedInRouter = null } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainScope.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainScope.kt index d6fdf2cd..9bb13cfb 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainScope.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainScope.kt @@ -21,8 +21,8 @@ import androidx.compose.runtime.MutableState import androidx.compose.ui.platform.ComposeView import androidx.lifecycle.ViewTreeLifecycleOwner import androidx.savedstate.setViewTreeSavedStateRegistryOwner -import com.uber.rib.compose.root.main.logged_in.LoggedInScope -import com.uber.rib.compose.root.main.logged_out.LoggedOutScope +import com.uber.rib.compose.root.main.loggedIn.LoggedInScope +import com.uber.rib.compose.root.main.loggedOut.LoggedOutScope import com.uber.rib.compose.util.AnalyticsClient import com.uber.rib.compose.util.ExperimentClient import com.uber.rib.compose.util.LoggerClient @@ -36,8 +36,7 @@ interface MainScope { fun loggedOutScope(slot: MutableState<(@Composable () -> Unit)>): LoggedOutScope - fun loggedInScope(slot: MutableState<(@Composable () -> Unit)>, authInfo: AuthInfo): - LoggedInScope + fun loggedInScope(slot: MutableState<(@Composable () -> Unit)>, authInfo: AuthInfo): LoggedInScope @motif.Objects abstract class Objects { @@ -49,19 +48,17 @@ interface MainScope { childContent: MainRouter.ChildContent, analyticsClient: AnalyticsClient, experimentClient: ExperimentClient, - loggerClient: LoggerClient + loggerClient: LoggerClient, ): ComposePresenter { return object : ComposePresenter() { - override val composable = @Composable { - MainView(childContent) - } + override val composable = @Composable { MainView(childContent) } } } fun view( parentViewGroup: ViewGroup, activity: RibActivity, - presenter: ComposePresenter + presenter: ComposePresenter, ): ComposeView { return ComposeView(parentViewGroup.context).apply { ViewTreeLifecycleOwner.set(this, activity) @@ -71,7 +68,6 @@ interface MainScope { abstract fun childContent(): MainRouter.ChildContent - @Expose - abstract fun authStream(): AuthStream + @Expose abstract fun authStream(): AuthStream } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainView.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainView.kt index 97e9597b..fdb48378 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainView.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/MainView.kt @@ -35,19 +35,12 @@ fun MainView(childContent: MainRouter.ChildContent) { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Top, - modifier = Modifier - .fillMaxSize() - .padding(all = 4.dp) - .padding(top = 14.dp) - .background(Color(0xFFFFA500)) + modifier = + Modifier.fillMaxSize().padding(all = 4.dp).padding(top = 14.dp).background(Color(0xFFFFA500)), ) { Text("Main RIB (Compose w/ CompView)") Box( - modifier = Modifier - .fillMaxWidth() - .weight(1.0f) - .padding(4.dp) - .background(Color.Yellow) + modifier = Modifier.fillMaxWidth().weight(1.0f).padding(4.dp).background(Color.Yellow), ) { childContent.fullScreenSlot.value.invoke() } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInEvent.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInEvent.kt similarity index 93% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInEvent.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInEvent.kt index 64aa6690..8a06092d 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInEvent.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInEvent.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in +package com.uber.rib.compose.root.main.loggedIn sealed class LoggedInEvent { object LogOutClick : LoggedInEvent() diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInInteractor.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInInteractor.kt similarity index 84% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInInteractor.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInInteractor.kt index 9a115ba1..07b35448 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInInteractor.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInInteractor.kt @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in +package com.uber.rib.compose.root.main.loggedIn import com.uber.rib.compose.root.main.AuthInfo import com.uber.rib.compose.root.main.AuthStream -import com.uber.rib.compose.root.main.logged_in.off_game.OffGameInteractor -import com.uber.rib.compose.root.main.logged_in.tic_tac_toe.TicTacToeInteractor +import com.uber.rib.compose.root.main.loggedIn.offGame.OffGameInteractor +import com.uber.rib.compose.root.main.loggedIn.ticTacToe.TicTacToeInteractor import com.uber.rib.compose.util.EventStream import com.uber.rib.core.BasicInteractor import com.uber.rib.core.Bundle @@ -33,15 +33,17 @@ class LoggedInInteractor( private val authInfo: AuthInfo, private val authStream: AuthStream, private val eventStream: EventStream, - private val scoreStream: ScoreStream -) : BasicInteractor(presenter), + private val scoreStream: ScoreStream, +) : + BasicInteractor(presenter), OffGameInteractor.Listener, TicTacToeInteractor.Listener { override fun didBecomeActive(savedInstanceState: Bundle?) { super.didBecomeActive(savedInstanceState) - eventStream.observe() + eventStream + .observe() .onEach { when (it) { is LoggedInEvent.LogOutClick -> authStream.accept(AuthInfo(false)) diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInRouter.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInRouter.kt similarity index 82% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInRouter.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInRouter.kt index 95f07168..2d5c4bd1 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInRouter.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInRouter.kt @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in +package com.uber.rib.compose.root.main.loggedIn import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import com.uber.rib.compose.root.main.AuthInfo -import com.uber.rib.compose.root.main.logged_in.off_game.OffGameRouter -import com.uber.rib.compose.root.main.logged_in.tic_tac_toe.TicTacToeRouter +import com.uber.rib.compose.root.main.loggedIn.offGame.OffGameRouter +import com.uber.rib.compose.root.main.loggedIn.ticTacToe.TicTacToeRouter import com.uber.rib.core.BasicComposeRouter import com.uber.rib.core.ComposePresenter @@ -29,7 +29,7 @@ class LoggedInRouter( interactor: LoggedInInteractor, slot: MutableState<(@Composable () -> Unit)>, private val scope: LoggedInScope, - private val childContent: ChildContent + private val childContent: ChildContent, ) : BasicComposeRouter(presenter, interactor, slot) { private var offGameRouter: OffGameRouter? = null @@ -38,9 +38,7 @@ class LoggedInRouter( internal fun attachOffGame(authInfo: AuthInfo) { if (offGameRouter == null) { offGameRouter = - scope.offGameScope(childContent.fullScreenSlot, authInfo).router().also { - attachChild(it) - } + scope.offGameScope(childContent.fullScreenSlot, authInfo).router().also { attachChild(it) } } } @@ -54,16 +52,12 @@ class LoggedInRouter( } internal fun detachOffGame() { - offGameRouter?.let { - detachChild(it) - } + offGameRouter?.let { detachChild(it) } offGameRouter = null } internal fun detachTicTacToe() { - ticTacToeRouter?.let { - detachChild(it) - } + ticTacToeRouter?.let { detachChild(it) } ticTacToeRouter = null } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInScope.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInScope.kt similarity index 74% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInScope.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInScope.kt index 1cac6db1..9b1b3a80 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInScope.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInScope.kt @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in +package com.uber.rib.compose.root.main.loggedIn import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import com.uber.rib.compose.root.main.AuthInfo -import com.uber.rib.compose.root.main.logged_in.off_game.OffGameInteractor -import com.uber.rib.compose.root.main.logged_in.off_game.OffGameScope -import com.uber.rib.compose.root.main.logged_in.tic_tac_toe.TicTacToeInteractor -import com.uber.rib.compose.root.main.logged_in.tic_tac_toe.TicTacToeScope +import com.uber.rib.compose.root.main.loggedIn.offGame.OffGameInteractor +import com.uber.rib.compose.root.main.loggedIn.offGame.OffGameScope +import com.uber.rib.compose.root.main.loggedIn.ticTacToe.TicTacToeInteractor +import com.uber.rib.compose.root.main.loggedIn.ticTacToe.TicTacToeScope import com.uber.rib.compose.util.EventStream import com.uber.rib.core.ComposePresenter import motif.Expose @@ -32,7 +32,10 @@ interface LoggedInScope { fun offGameScope(slot: MutableState<(@Composable (() -> Unit))>, authInfo: AuthInfo): OffGameScope - fun ticTacToeScope(slot: MutableState<(@Composable (() -> Unit))>, authInfo: AuthInfo): TicTacToeScope + fun ticTacToeScope( + slot: MutableState<(@Composable (() -> Unit))>, + authInfo: AuthInfo, + ): TicTacToeScope @motif.Objects abstract class Objects { @@ -44,12 +47,10 @@ interface LoggedInScope { fun presenter( eventStream: EventStream, - childContent: LoggedInRouter.ChildContent + childContent: LoggedInRouter.ChildContent, ): ComposePresenter { return object : ComposePresenter() { - override val composable = @Composable { - LoggedInView(eventStream, childContent) - } + override val composable = @Composable { LoggedInView(eventStream, childContent) } } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInView.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInView.kt similarity index 86% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInView.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInView.kt index 22438a2c..1e1e6c68 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/LoggedInView.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/LoggedInView.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in +package com.uber.rib.compose.root.main.loggedIn import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -42,27 +42,19 @@ fun LoggedInView( Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Top, - modifier = Modifier - .fillMaxSize() - .background(Color.Green) + modifier = Modifier.fillMaxSize().background(Color.Green), ) { Text("Logged In! (Compose RIB)") Spacer(Modifier.height(16.dp)) Box( - modifier = Modifier - .fillMaxWidth() - .weight(1.0f) - .padding(4.dp) - .background(Color.LightGray) + modifier = Modifier.fillMaxWidth().weight(1.0f).padding(4.dp).background(Color.LightGray), ) { childContent.fullScreenSlot.value.invoke() } CustomButton( analyticsId = "8a570808-07a4", onClick = { eventStream.notify(LoggedInEvent.LogOutClick) }, - modifier = Modifier - .fillMaxWidth() - .padding(16.dp) + modifier = Modifier.fillMaxWidth().padding(16.dp), ) { Text(text = "LOGOUT") } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/ScoreStream.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ScoreStream.kt similarity index 66% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/ScoreStream.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ScoreStream.kt index 4e68b109..95b25259 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/ScoreStream.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ScoreStream.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in +package com.uber.rib.compose.root.main.loggedIn import com.uber.rib.core.RibDispatchers import kotlinx.coroutines.flow.MutableStateFlow @@ -23,23 +23,28 @@ import kotlinx.coroutines.withContext class ScoreStream(playerOne: String, playerTwo: String) { - private val _scoresFlow = MutableStateFlow( - mapOf( - playerOne to 0, - playerTwo to 0 + private val _scoresFlow = + MutableStateFlow( + mapOf( + playerOne to 0, + playerTwo to 0, + ), ) - ) private val scoresFlow = _scoresFlow.asStateFlow() - suspend fun addVictory(userName: String) = withContext(RibDispatchers.Default) { - _scoresFlow.update { scores -> - scores.toMutableMap().apply { - if (userName in scores) { - set(userName, getValue(userName) + 1) - } - }.toMap() + suspend fun addVictory(userName: String) = + withContext(RibDispatchers.Default) { + _scoresFlow.update { scores -> + scores + .toMutableMap() + .apply { + if (userName in scores) { + set(userName, getValue(userName) + 1) + } + } + .toMap() + } } - } fun scores() = scoresFlow } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameEvent.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameEvent.kt similarity index 92% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameEvent.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameEvent.kt index b085796d..3499fa8b 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameEvent.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameEvent.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.off_game +package com.uber.rib.compose.root.main.loggedIn.offGame sealed class OffGameEvent { object StartGame : OffGameEvent() diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameInteractor.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameInteractor.kt similarity index 85% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameInteractor.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameInteractor.kt index 174379c1..861bc134 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameInteractor.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameInteractor.kt @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.off_game +package com.uber.rib.compose.root.main.loggedIn.offGame -import com.uber.rib.compose.root.main.logged_in.ScoreStream +import com.uber.rib.compose.root.main.loggedIn.ScoreStream import com.uber.rib.compose.util.EventStream import com.uber.rib.compose.util.StateStream import com.uber.rib.core.BasicInteractor @@ -30,31 +30,35 @@ class OffGameInteractor( private val eventStream: EventStream, private val stateStream: StateStream, private val scoreStream: ScoreStream, - private val listener: Listener + private val listener: Listener, ) : BasicInteractor(presenter) { override fun didBecomeActive(savedInstanceState: Bundle?) { super.didBecomeActive(savedInstanceState) - eventStream.observe() + eventStream + .observe() .onEach { when (it) { is OffGameEvent.StartGame -> { listener.onStartGame() } } - }.launchIn(coroutineScope) + } + .launchIn(coroutineScope) - scoreStream.scores() + scoreStream + .scores() .onEach { val currentState = stateStream.current() stateStream.dispatch( currentState.copy( playerOneWins = it[currentState.playerOne] ?: 0, playerTwoWins = it[currentState.playerTwo] ?: 0, - ) + ), ) - }.launchIn(coroutineScope) + } + .launchIn(coroutineScope) } interface Listener { diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameRouter.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameRouter.kt similarity index 94% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameRouter.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameRouter.kt index a3db2c4a..ae675cde 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameRouter.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameRouter.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.off_game +package com.uber.rib.compose.root.main.loggedIn.offGame import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameScope.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameScope.kt similarity index 72% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameScope.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameScope.kt index 1a744879..cf8bd2f6 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameScope.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameScope.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.off_game +package com.uber.rib.compose.root.main.loggedIn.offGame import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -34,22 +34,27 @@ interface OffGameScope { fun presenter( stateStream: StateStream, - eventStream: EventStream + eventStream: EventStream, ): ComposePresenter { return object : ComposePresenter() { - override val composable = @Composable { - OffGameView(stateStream.observe().collectAsState(initial = stateStream.current()), eventStream) - } + override val composable = + @Composable { + OffGameView( + stateStream.observe().collectAsState(initial = stateStream.current()), + eventStream, + ) + } } } fun eventStream() = EventStream() - fun stateStream(authInfo: AuthInfo) = StateStream( - OffGameViewModel( - playerOne = authInfo.playerOne, - playerTwo = authInfo.playerTwo + fun stateStream(authInfo: AuthInfo) = + StateStream( + OffGameViewModel( + playerOne = authInfo.playerOne, + playerTwo = authInfo.playerTwo, + ), ) - ) } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameView.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameView.kt similarity index 93% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameView.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameView.kt index 0e2f6f49..fff42ac5 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/off_game/OffGameView.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/offGame/OffGameView.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.off_game +package com.uber.rib.compose.root.main.loggedIn.offGame import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -36,9 +36,7 @@ import com.uber.rib.compose.util.EventStream @Composable fun OffGameView(viewModel: State, eventStream: EventStream) { Column( - modifier = Modifier - .fillMaxSize() - .padding(16.dp), + modifier = Modifier.fillMaxSize().padding(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp, alignment = Alignment.Bottom), ) { Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { @@ -52,7 +50,7 @@ fun OffGameView(viewModel: State, eventStream: EventStream, private val stateStream: StateStream, - private val listener: Listener + private val listener: Listener, ) : BasicInteractor(presenter) { var currentPlayer: Board.MarkerType = Board.MarkerType.CROSS @@ -38,7 +38,8 @@ class TicTacToeInteractor( override fun didBecomeActive(savedInstanceState: Bundle?) { super.didBecomeActive(savedInstanceState) - eventStream.observe() + eventStream + .observe() .onEach { when (it) { is TicTacToeEvent.BoardClick -> { @@ -67,22 +68,26 @@ class TicTacToeInteractor( listener.onGameWon(null) } - val newPlayerName = if (currentPlayer == Board.MarkerType.CROSS) { - authInfo.playerOne - } else { - authInfo.playerTwo - } + val newPlayerName = + if (currentPlayer == Board.MarkerType.CROSS) { + authInfo.playerOne + } else { + authInfo.playerTwo + } stateStream.dispatch( - stateStream.current().copy( - board = board, - currentPlayer = newPlayerName - ) + stateStream + .current() + .copy( + board = board, + currentPlayer = newPlayerName, + ), ) } TicTacToeEvent.XpButtonClick -> TODO("Go somewhere") } - }.launchIn(coroutineScope) + } + .launchIn(coroutineScope) } interface Listener { diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeRouter.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeRouter.kt similarity index 94% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeRouter.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeRouter.kt index 17a1efb0..c8c43eb6 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeRouter.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeRouter.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.tic_tac_toe +package com.uber.rib.compose.root.main.loggedIn.ticTacToe import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeScope.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeScope.kt similarity index 69% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeScope.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeScope.kt index c7f1a90d..0144a621 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeScope.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeScope.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.tic_tac_toe +package com.uber.rib.compose.root.main.loggedIn.ticTacToe import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -32,16 +32,24 @@ interface TicTacToeScope { abstract fun interactor(): TicTacToeInteractor - fun presenter(stateStream: StateStream, eventStream: EventStream): ComposePresenter { + fun presenter( + stateStream: StateStream, + eventStream: EventStream, + ): ComposePresenter { return object : ComposePresenter() { - override val composable = @Composable { - TicTacToeView(stateStream.observe().collectAsState(initial = stateStream.current()), eventStream) - } + override val composable = + @Composable { + TicTacToeView( + stateStream.observe().collectAsState(initial = stateStream.current()), + eventStream, + ) + } } } fun eventStream() = EventStream() - fun stateStream(authInfo: AuthInfo) = StateStream(TicTacToeViewModel(authInfo.playerOne, Board())) + fun stateStream(authInfo: AuthInfo) = + StateStream(TicTacToeViewModel(authInfo.playerOne, Board())) } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeView.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeView.kt similarity index 76% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeView.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeView.kt index 1dab9321..470c2f10 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeView.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeView.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.tic_tac_toe +package com.uber.rib.compose.root.main.loggedIn.ticTacToe import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background @@ -46,15 +46,11 @@ fun TicTacToeView(viewModel: State, eventStream: EventStream Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Top, - modifier = Modifier - .fillMaxSize() - .background(Color.Blue) + modifier = Modifier.fillMaxSize().background(Color.Blue), ) { Text("Current Player: ${viewModel.value.currentPlayer}", color = Color.White) Box( - modifier = Modifier - .aspectRatio(1f) - .fillMaxSize() + modifier = Modifier.aspectRatio(1f).fillMaxSize(), ) { LazyVerticalGrid(columns = GridCells.Fixed(3), modifier = Modifier.fillMaxSize()) { val board = viewModel.value.board @@ -62,24 +58,25 @@ fun TicTacToeView(viewModel: State, eventStream: EventStream val row = i / 3 val col = i % 3 Text( - text = when (board.cells[row][col]) { - Board.MarkerType.CROSS -> "X" - Board.MarkerType.NOUGHT -> "O" - else -> " " - }, + text = + when (board.cells[row][col]) { + Board.MarkerType.CROSS -> "X" + Board.MarkerType.NOUGHT -> "O" + else -> " " + }, textAlign = TextAlign.Center, - modifier = Modifier - .fillMaxWidth() - .aspectRatio(1f) - .padding(16.dp) - .background(Color.LightGray) - .clickable( - enabled = board.cells[row][col] == null, - onClick = { - eventStream.notify(TicTacToeEvent.BoardClick(BoardCoordinate(row, col))) - } - ) - .padding(32.dp) + modifier = + Modifier.fillMaxWidth() + .aspectRatio(1f) + .padding(16.dp) + .background(Color.LightGray) + .clickable( + enabled = board.cells[row][col] == null, + onClick = { + eventStream.notify(TicTacToeEvent.BoardClick(BoardCoordinate(row, col))) + }, + ) + .padding(32.dp), ) } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeViewModel.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeViewModel.kt similarity index 89% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeViewModel.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeViewModel.kt index 38c2fcca..93d06ac9 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_in/tic_tac_toe/TicTacToeViewModel.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedIn/ticTacToe/TicTacToeViewModel.kt @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_in.tic_tac_toe +package com.uber.rib.compose.root.main.loggedIn.ticTacToe data class TicTacToeViewModel( val currentPlayer: String, - val board: Board + val board: Board, ) diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutEvent.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutEvent.kt similarity index 93% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutEvent.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutEvent.kt index a09e9616..dc9f032d 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutEvent.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutEvent.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_out +package com.uber.rib.compose.root.main.loggedOut sealed class LoggedOutEvent { class PlayerNameChanged(val name: String, val num: Int) : LoggedOutEvent() diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutInteractor.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutInteractor.kt similarity index 80% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutInteractor.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutInteractor.kt index f51e39c1..a0e4532a 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutInteractor.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutInteractor.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_out +package com.uber.rib.compose.root.main.loggedOut import com.uber.rib.compose.root.main.AuthInfo import com.uber.rib.compose.root.main.AuthStream @@ -30,20 +30,22 @@ class LoggedOutInteractor( presenter: ComposePresenter, private val authStream: AuthStream, private val eventStream: EventStream, - private val stateStream: StateStream + private val stateStream: StateStream, ) : BasicInteractor(presenter) { override fun didBecomeActive(savedInstanceState: Bundle?) { super.didBecomeActive(savedInstanceState) - eventStream.observe() + eventStream + .observe() .onEach { when (it) { is LoggedOutEvent.PlayerNameChanged -> { with(stateStream) { dispatch( - current().copy( - playerOne = if (it.num == 1) it.name else current().playerOne, - playerTwo = if (it.num == 2) it.name else current().playerTwo - ) + current() + .copy( + playerOne = if (it.num == 1) it.name else current().playerOne, + playerTwo = if (it.num == 2) it.name else current().playerTwo, + ), ) } } @@ -52,6 +54,7 @@ class LoggedOutInteractor( authStream.accept(AuthInfo(true, currentState.playerOne, currentState.playerTwo)) } } - }.launchIn(coroutineScope) + } + .launchIn(coroutineScope) } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutRouter.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutRouter.kt similarity index 90% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutRouter.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutRouter.kt index e1c5505e..624cb3df 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutRouter.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutRouter.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_out +package com.uber.rib.compose.root.main.loggedOut import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState @@ -23,5 +23,5 @@ import com.uber.rib.core.ComposePresenter class LoggedOutRouter( presenter: ComposePresenter, interactor: LoggedOutInteractor, - slot: MutableState<(@Composable () -> Unit)> + slot: MutableState<(@Composable () -> Unit)>, ) : BasicComposeRouter(presenter, interactor, slot) diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutScope.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutScope.kt similarity index 80% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutScope.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutScope.kt index 23145c63..675e00e2 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutScope.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutScope.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_out +package com.uber.rib.compose.root.main.loggedOut import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -33,15 +33,16 @@ interface LoggedOutScope { fun presenter( stateStream: StateStream, - eventStream: EventStream + eventStream: EventStream, ): ComposePresenter { return object : ComposePresenter() { - override val composable = @Composable { - LoggedOutView( - stateStream.observe().collectAsState(initial = stateStream.current()), - eventStream - ) - } + override val composable = + @Composable { + LoggedOutView( + stateStream.observe().collectAsState(initial = stateStream.current()), + eventStream, + ) + } } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutView.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutView.kt similarity index 86% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutView.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutView.kt index 75cd5ea6..afa13e8d 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutView.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutView.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_out +package com.uber.rib.compose.root.main.loggedOut import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -38,30 +38,29 @@ import com.uber.rib.compose.util.EventStream @Composable fun LoggedOutView(viewModel: State, eventStream: EventStream) { Column( - modifier = Modifier - .fillMaxSize() - .padding(16.dp), + modifier = Modifier.fillMaxSize().padding(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp, alignment = Alignment.Bottom), ) { TextField( value = viewModel.value.playerOne, onValueChange = { eventStream.notify(LoggedOutEvent.PlayerNameChanged(it, 1)) }, placeholder = { Text(text = "Player One Name") }, - modifier = Modifier.fillMaxWidth() + modifier = Modifier.fillMaxWidth(), ) TextField( value = viewModel.value.playerTwo, onValueChange = { eventStream.notify(LoggedOutEvent.PlayerNameChanged(it, 2)) }, placeholder = { Text(text = "Player Two Name") }, - modifier = Modifier.fillMaxWidth() + modifier = Modifier.fillMaxWidth(), ) Button( - colors = ButtonDefaults.buttonColors( - backgroundColor = Color.Black, - contentColor = Color.White - ), + colors = + ButtonDefaults.buttonColors( + backgroundColor = Color.Black, + contentColor = Color.White, + ), onClick = { eventStream.notify(LoggedOutEvent.LogInClick) }, - modifier = Modifier.fillMaxWidth() + modifier = Modifier.fillMaxWidth(), ) { Text(text = "LOGIN") } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutViewModel.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutViewModel.kt similarity index 89% rename from android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutViewModel.kt rename to android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutViewModel.kt index 2694b04d..bbfe0a80 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/logged_out/LoggedOutViewModel.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/root/main/loggedOut/LoggedOutViewModel.kt @@ -13,9 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.compose.root.main.logged_out +package com.uber.rib.compose.root.main.loggedOut data class LoggedOutViewModel( val playerOne: String = "", - val playerTwo: String = "" + val playerTwo: String = "", ) diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/AnalyticsClient.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/AnalyticsClient.kt index 1841b118..fa6d47bc 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/AnalyticsClient.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/AnalyticsClient.kt @@ -34,7 +34,10 @@ class AnalyticsClientImpl(private val application: Application) : AnalyticsClien Log.d(this::class.java.simpleName, message) } - enum class EventType { CLICK, IMPRESSION } + enum class EventType { + CLICK, + IMPRESSION, + } } object NoOpAnalyticsClient : AnalyticsClient { diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomButton.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomButton.kt index c8b2ce40..63d78ec5 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomButton.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomButton.kt @@ -28,7 +28,7 @@ fun CustomButton( onClick: () -> Unit, modifier: Modifier = Modifier, analyticsId: String? = null, - content: @Composable RowScope.() -> Unit + content: @Composable RowScope.() -> Unit, ) { val analyticsClient = AnalyticsLocal.current val onClickWrapper: () -> Unit = { @@ -39,9 +39,7 @@ fun CustomButton( onClick = onClickWrapper, modifier = modifier, colors = ButtonDefaults.buttonColors(backgroundColor = Color.Black, contentColor = Color.White), - content = content + content = content, ) - LaunchedEffect(null) { - analyticsId?.let { analyticsClient.trackImpression(it) } - } + LaunchedEffect(null) { analyticsId?.let { analyticsClient.trackImpression(it) } } } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomClientProvider.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomClientProvider.kt index 8618dfd6..2bfc6e7e 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomClientProvider.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/CustomClientProvider.kt @@ -28,12 +28,12 @@ fun CustomClientProvider( analyticsClient: AnalyticsClient, experimentClient: ExperimentClient, loggerClient: LoggerClient, - content: @Composable () -> Unit + content: @Composable () -> Unit, ) { CompositionLocalProvider( AnalyticsLocal provides analyticsClient, ExperimentsLocal provides experimentClient, LoggerLocal provides loggerClient, - content = content + content = content, ) } diff --git a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/StateStream.kt b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/StateStream.kt index 9d4d1589..c3039c1e 100644 --- a/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/StateStream.kt +++ b/android/demos/compose/src/main/kotlin/com/uber/rib/compose/util/StateStream.kt @@ -14,6 +14,7 @@ * limitations under the License. */ package com.uber.rib.compose.util + import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/RootBuilder.java b/android/demos/flipper/src/main/java/com/uber/rib/root/RootBuilder.java index 142a876e..9bd882e0 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/RootBuilder.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/RootBuilder.java @@ -22,9 +22,9 @@ import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; import com.uber.rib.flipper.R; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import dagger.Binds; import dagger.BindsInstance; import dagger.Provides; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/RootInteractor.java b/android/demos/flipper/src/main/java/com/uber/rib/root/RootInteractor.java index 3768f944..9fcae6a4 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/RootInteractor.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/RootInteractor.java @@ -19,7 +19,7 @@ import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import javax.inject.Inject; /** Coordinates Business Logic for {@link RootBuilder.RootScope}. */ diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/RootRouter.java b/android/demos/flipper/src/main/java/com/uber/rib/root/RootRouter.java index eacf36f0..0a504561 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/RootRouter.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/RootRouter.java @@ -17,9 +17,9 @@ package com.uber.rib.root; import androidx.annotation.Nullable; import com.uber.rib.core.ViewRouter; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutRouter; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutRouter; /** Adds and removes children of {@link RootBuilder.RootScope}. */ public class RootRouter extends ViewRouter { diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java similarity index 93% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java index 53e1473f..e3a4f043 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import static java.lang.annotation.RetentionPolicy.CLASS; @@ -21,9 +21,9 @@ import com.uber.rib.core.Builder; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.root.RootView; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; import dagger.BindsInstance; import dagger.Provides; import java.lang.annotation.Retention; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java similarity index 93% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java index 95dcca90..88f66527 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; /** Coordinates Business Logic for {@link LoggedInScope}. */ @RibInteractor diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java similarity index 88% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java index 2cf19db1..bea5b5de 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import android.view.ViewGroup; import com.uber.rib.core.Router; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameRouter; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeRouter; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameRouter; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeRouter; /** Adds and removes children of {@link LoggedInBuilder.LoggedInScope}. */ public class LoggedInRouter extends Router { diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java similarity index 98% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java index 63ec055e..dc0c85e9 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java similarity index 97% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java index f31232f6..5b99d809 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java similarity index 95% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java index d16eab12..d5e29f7f 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.ViewRouter; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java similarity index 97% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java index 4346f417..738d81d7 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import android.content.Context; import android.util.AttributeSet; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java similarity index 97% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java index ecdb8ec5..a3fcd511 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import javax.inject.Inject; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java similarity index 94% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java index fea509d4..75e0760a 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; class BoardCoordinate { diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java similarity index 98% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java index a8afc7a1..2c35e19c 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java similarity index 96% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java index ec59842d..fa0f4564 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.Board.MarkerType; +import com.uber.rib.root.loggedIn.ticTacToe.Board.MarkerType; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java similarity index 95% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java index 51095cac..78cf3327 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.ViewRouter; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java similarity index 98% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java index 2914496b..4338aa6c 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import android.content.Context; import android.util.AttributeSet; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java similarity index 98% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java index 26f32f93..e67e3356 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java similarity index 94% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java index fe89272d..79ca79d3 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import androidx.annotation.Nullable; import androidx.core.util.Pair; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutBuilder.LoggedOutScope; +import com.uber.rib.root.loggedOut.LoggedOutBuilder.LoggedOutScope; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java similarity index 96% rename from android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java index 7ae9a757..72828922 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.ViewRouter; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java similarity index 98% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java rename to android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java index a299186a..e3d4a263 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java +++ b/android/demos/flipper/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.content.Context; import android.util.AttributeSet; diff --git a/android/demos/flipper/src/main/res/layout/logged_out_rib.xml b/android/demos/flipper/src/main/res/layout/logged_out_rib.xml index 9b6a5d2f..e4f69466 100644 --- a/android/demos/flipper/src/main/res/layout/logged_out_rib.xml +++ b/android/demos/flipper/src/main/res/layout/logged_out_rib.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android/demos/flipper/src/main/res/layout/off_game_rib.xml b/android/demos/flipper/src/main/res/layout/off_game_rib.xml index d38d2c05..35a00b05 100644 --- a/android/demos/flipper/src/main/res/layout/off_game_rib.xml +++ b/android/demos/flipper/src/main/res/layout/off_game_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/demos/flipper/src/main/res/layout/tic_tac_toe_rib.xml b/android/demos/flipper/src/main/res/layout/tic_tac_toe_rib.xml index 372ce541..30fd6581 100644 --- a/android/demos/flipper/src/main/res/layout/tic_tac_toe_rib.xml +++ b/android/demos/flipper/src/main/res/layout/tic_tac_toe_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/RootBuilder.java b/android/demos/intellij/src/main/java/com/uber/rib/root/RootBuilder.java index 9ab37b97..566f5b12 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/RootBuilder.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/RootBuilder.java @@ -22,9 +22,9 @@ import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; import com.uber.rib.intellij.R; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import dagger.Binds; import dagger.BindsInstance; import dagger.Provides; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/RootInteractor.java b/android/demos/intellij/src/main/java/com/uber/rib/root/RootInteractor.java index 3768f944..9fcae6a4 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/RootInteractor.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/RootInteractor.java @@ -19,7 +19,7 @@ import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import javax.inject.Inject; /** Coordinates Business Logic for {@link RootBuilder.RootScope}. */ diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/RootRouter.java b/android/demos/intellij/src/main/java/com/uber/rib/root/RootRouter.java index eacf36f0..0a504561 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/RootRouter.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/RootRouter.java @@ -17,9 +17,9 @@ package com.uber.rib.root; import androidx.annotation.Nullable; import com.uber.rib.core.ViewRouter; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutRouter; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutRouter; /** Adds and removes children of {@link RootBuilder.RootScope}. */ public class RootRouter extends ViewRouter { diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java similarity index 93% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java index 53e1473f..e3a4f043 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import static java.lang.annotation.RetentionPolicy.CLASS; @@ -21,9 +21,9 @@ import com.uber.rib.core.Builder; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.root.RootView; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; import dagger.BindsInstance; import dagger.Provides; import java.lang.annotation.Retention; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java similarity index 93% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java index 95dcca90..88f66527 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; /** Coordinates Business Logic for {@link LoggedInScope}. */ @RibInteractor diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java similarity index 88% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java index 2cf19db1..bea5b5de 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import android.view.ViewGroup; import com.uber.rib.core.Router; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameRouter; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeRouter; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameRouter; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeRouter; /** Adds and removes children of {@link LoggedInBuilder.LoggedInScope}. */ public class LoggedInRouter extends Router { diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java similarity index 98% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java index aa4bed84..fd218373 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java similarity index 97% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java index f31232f6..5b99d809 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java similarity index 95% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java index d16eab12..d5e29f7f 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.ViewRouter; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java similarity index 97% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java index 4b814c27..901a333d 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java similarity index 97% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java index ecdb8ec5..a3fcd511 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import javax.inject.Inject; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java similarity index 94% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java index fea509d4..75e0760a 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; class BoardCoordinate { diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java similarity index 98% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java index 5307add4..e4433664 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java similarity index 96% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java index ec59842d..fa0f4564 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.Board.MarkerType; +import com.uber.rib.root.loggedIn.ticTacToe.Board.MarkerType; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java similarity index 95% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java index 51095cac..78cf3327 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.ViewRouter; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java similarity index 98% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java index 5d093fe3..b39e3eeb 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import android.content.Context; import android.util.AttributeSet; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java similarity index 98% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java index 73b7edeb..896c2413 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java similarity index 94% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java index fe89272d..79ca79d3 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import androidx.annotation.Nullable; import androidx.core.util.Pair; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutBuilder.LoggedOutScope; +import com.uber.rib.root.loggedOut.LoggedOutBuilder.LoggedOutScope; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java similarity index 96% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java index 7ae9a757..72828922 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.ViewRouter; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java similarity index 98% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java rename to android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java index 52b175b2..2a2f2e0f 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java +++ b/android/demos/intellij/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.content.Context; import android.util.AttributeSet; diff --git a/android/demos/intellij/src/main/res/layout/logged_out_rib.xml b/android/demos/intellij/src/main/res/layout/logged_out_rib.xml index 9b6a5d2f..e4f69466 100644 --- a/android/demos/intellij/src/main/res/layout/logged_out_rib.xml +++ b/android/demos/intellij/src/main/res/layout/logged_out_rib.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android/demos/intellij/src/main/res/layout/off_game_rib.xml b/android/demos/intellij/src/main/res/layout/off_game_rib.xml index d38d2c05..35a00b05 100644 --- a/android/demos/intellij/src/main/res/layout/off_game_rib.xml +++ b/android/demos/intellij/src/main/res/layout/off_game_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/demos/intellij/src/main/res/layout/tic_tac_toe_rib.xml b/android/demos/intellij/src/main/res/layout/tic_tac_toe_rib.xml index 372ce541..30fd6581 100644 --- a/android/demos/intellij/src/main/res/layout/tic_tac_toe_rib.xml +++ b/android/demos/intellij/src/main/res/layout/tic_tac_toe_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootBuilder.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootBuilder.java index 2d942337..16674ff4 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootBuilder.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootBuilder.java @@ -22,9 +22,9 @@ import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; import com.uber.rib.memory_leak.R; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import dagger.Binds; import dagger.BindsInstance; import dagger.Provides; diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootInteractor.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootInteractor.java index 7a1fb254..be05d822 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootInteractor.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootInteractor.java @@ -19,7 +19,7 @@ import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import javax.inject.Inject; /** Coordinates Business Logic for {@link RootBuilder.RootScope}. */ diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootRouter.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootRouter.java index eacf36f0..0a504561 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootRouter.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/RootRouter.java @@ -17,9 +17,9 @@ package com.uber.rib.root; import androidx.annotation.Nullable; import com.uber.rib.core.ViewRouter; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutRouter; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutRouter; /** Adds and removes children of {@link RootBuilder.RootScope}. */ public class RootRouter extends ViewRouter { diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java similarity index 98% rename from android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java rename to android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java index 5e00917f..5da9b818 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java similarity index 89% rename from android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java rename to android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java index 02e58e42..2a2940e4 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.LoggedInBuilder.LoggedInScope; +import com.uber.rib.root.loggedIn.LoggedInBuilder.LoggedInScope; /** Coordinates Business Logic for {@link LoggedInScope}. */ @RibInteractor diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java similarity index 96% rename from android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java rename to android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java index 6fb535a2..b3c5888c 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.uber.rib.core.Router; diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java similarity index 98% rename from android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java rename to android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java index 3097fed4..c24492eb 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java similarity index 95% rename from android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java rename to android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java index 41fb46c9..c5fe9e27 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutBuilder.LoggedOutScope; +import com.uber.rib.root.loggedOut.LoggedOutBuilder.LoggedOutScope; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java similarity index 96% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java rename to android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java index 7ae9a757..72828922 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.ViewRouter; diff --git a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java similarity index 97% rename from android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java rename to android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java index 5d614289..401e61fa 100644 --- a/android/demos/memory-leaks/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java +++ b/android/demos/memory-leaks/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.content.Context; import android.util.AttributeSet; diff --git a/android/demos/memory-leaks/src/main/res/layout/logged_out_rib.xml b/android/demos/memory-leaks/src/main/res/layout/logged_out_rib.xml index e58b1972..1e0b5b9c 100644 --- a/android/demos/memory-leaks/src/main/res/layout/logged_out_rib.xml +++ b/android/demos/memory-leaks/src/main/res/layout/logged_out_rib.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android/gradle/dependencies.gradle b/android/gradle/dependencies.gradle index 0a030b8c..c393983e 100755 --- a/android/gradle/dependencies.gradle +++ b/android/gradle/dependencies.gradle @@ -29,14 +29,14 @@ def versions = [ coroutines: '1.6.4', dagger: "2.43.2", errorProne: '2.3.3', - gjf: '1.7', + gjf: '1.16.0', intellij: "2022.2.4", kotlin: "1.7.10", - ktfmt: '0.23', - ktlint: '0.41.0', + ktfmt: '0.43', + ktlint: '0.48.2', motif: '0.3.4', robolectric: "4.4", - spotless: '5.11.0' + spotless: '6.18.0' ] def apt = [ diff --git a/android/libraries/rib-android-compose/src/main/kotlin/com/uber/rib/core/BasicComposeRouter.kt b/android/libraries/rib-android-compose/src/main/kotlin/com/uber/rib/core/BasicComposeRouter.kt index e8de165f..2574963e 100644 --- a/android/libraries/rib-android-compose/src/main/kotlin/com/uber/rib/core/BasicComposeRouter.kt +++ b/android/libraries/rib-android-compose/src/main/kotlin/com/uber/rib/core/BasicComposeRouter.kt @@ -21,7 +21,7 @@ import androidx.compose.runtime.MutableState open class BasicComposeRouter>( val presenter: ComposePresenter, interactor: I, - val slot: MutableState<(@Composable () -> Unit)> + val slot: MutableState<(@Composable () -> Unit)>, ) : BasicRouter(interactor) { override fun willAttach() { slot.value = presenter.composable diff --git a/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/ActivityDelegate.kt b/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/ActivityDelegate.kt index c91ce8eb..193826e9 100644 --- a/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/ActivityDelegate.kt +++ b/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/ActivityDelegate.kt @@ -27,28 +27,22 @@ import androidx.annotation.IntRange */ interface ActivityDelegate { /** @see [Activity.onCreate] */ - @JvmDefault - fun onCreate(savedInstanceState: Bundle?) {} + @JvmDefault fun onCreate(savedInstanceState: Bundle?) {} /** @see [Activity.onStart] */ - @JvmDefault - fun onStart() {} + @JvmDefault fun onStart() {} /** @see [Activity.onResume] */ - @JvmDefault - fun onResume() {} + @JvmDefault fun onResume() {} /** @see [Activity.onPause] */ - @JvmDefault - fun onPause() {} + @JvmDefault fun onPause() {} /** @see [Activity.onStop] */ - @JvmDefault - fun onStop() {} + @JvmDefault fun onStop() {} /** @see [Activity.onDestroy] */ - @JvmDefault - fun onDestroy() {} + @JvmDefault fun onDestroy() {} /** @see [Activity.onActivityResult] */ @JvmDefault @@ -56,7 +50,7 @@ interface ActivityDelegate { activity: Activity, requestCode: Int, resultCode: Int, - data: Intent? + data: Intent?, ) {} /** @see [Activity.onRequestPermissionsResult] */ @@ -65,6 +59,6 @@ interface ActivityDelegate { activity: Activity, @IntRange(from = 0, to = 255) requestCode: Int, permissions: Array, - grantResults: IntArray + grantResults: IntArray, ) {} } diff --git a/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/CoreAppCompatActivity.kt b/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/CoreAppCompatActivity.kt index 48d255f4..67e54052 100644 --- a/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/CoreAppCompatActivity.kt +++ b/android/libraries/rib-android-core/src/main/kotlin/com/uber/rib/core/CoreAppCompatActivity.kt @@ -21,7 +21,7 @@ import androidx.annotation.CallSuper import androidx.annotation.IntRange import androidx.appcompat.app.AppCompatActivity -/** Core Support v7 AppCompat Activity. */ +/** Core Support v7 AppCompat Activity. */ abstract class CoreAppCompatActivity : AppCompatActivity() { private var activityDelegate: ActivityDelegate? = null @@ -70,7 +70,7 @@ abstract class CoreAppCompatActivity : AppCompatActivity() { override fun onRequestPermissionsResult( @IntRange(from = 0, to = 255) requestCode: Int, permissions: Array, - grantResults: IntArray + grantResults: IntArray, ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) activityDelegate?.onRequestPermissionsResult(this, requestCode, permissions, grantResults) diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityContext.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityContext.kt index 193cd3cf..8da53a9d 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityContext.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityContext.kt @@ -19,7 +19,5 @@ import java.lang.annotation.Retention import java.lang.annotation.RetentionPolicy.RUNTIME import javax.inject.Qualifier -/** Injection qualifier for an Activity Context. */ -@Qualifier -@Retention(RUNTIME) -annotation class ActivityContext +/** Injection qualifier for an Activity Context. */ +@Qualifier @Retention(RUNTIME) annotation class ActivityContext diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityStarter.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityStarter.kt index c66d0724..9d0caf01 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityStarter.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ActivityStarter.kt @@ -34,7 +34,7 @@ interface ActivityStarter { * * @param intent The intent to open a new activity. * @param requestCode The code unique to your current activity to know which activity result is - * from this request. + * from this request. */ @Deprecated("""use plain Activity instead""") fun startActivityForResult(intent: Intent, requestCode: Int) diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/BasicViewRouter.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/BasicViewRouter.kt index 9d1b7935..bfd1ec88 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/BasicViewRouter.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/BasicViewRouter.kt @@ -24,5 +24,5 @@ import android.view.View */ abstract class BasicViewRouter>( view: V, - interactor: I + interactor: I, ) : ViewRouter(view, interactor) diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentCreator.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentCreator.kt index 8054a4a2..045747a6 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentCreator.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentCreator.kt @@ -17,7 +17,7 @@ package com.uber.rib.core import android.content.Intent -/** Creates intent objects. */ +/** Creates intent objects. */ interface IntentCreator { /** * Create an explicit intent targeted at a particular class, which is guaranteed to be limited to diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentFactory.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentFactory.kt index a6778d1a..4d94dc33 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentFactory.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/IntentFactory.kt @@ -17,7 +17,7 @@ package com.uber.rib.core import android.content.Intent -/** Factory for an [Intent] that opens an activity. */ +/** Factory for an [Intent] that opens an activity. */ interface IntentFactory { /** * Create a view router to be displayed for an [Intent]. diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/RibActivity.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/RibActivity.kt index 4842978a..fae4d0bc 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/RibActivity.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/RibActivity.kt @@ -43,10 +43,16 @@ import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.rx2.asObservable /** Base implementation for all VIP [android.app.Activity]s. */ -abstract class RibActivity : CoreAppCompatActivity(), ActivityStarter, LifecycleScopeProvider, RxActivityEvents { +abstract class RibActivity : + CoreAppCompatActivity(), + ActivityStarter, + LifecycleScopeProvider, + RxActivityEvents { private var router: ViewRouter<*, *>? = null - private val lifecycleFlow = MutableSharedFlow(1, 0, BufferOverflow.DROP_OLDEST) - private val callbacksFlow = MutableSharedFlow(0, 1, BufferOverflow.DROP_OLDEST) + private val lifecycleFlow = + MutableSharedFlow(1, 0, BufferOverflow.DROP_OLDEST) + private val callbacksFlow = + MutableSharedFlow(0, 1, BufferOverflow.DROP_OLDEST) private val lifecycleObservable = lifecycleFlow.asObservable() private val callbacksObservable = callbacksFlow.asObservable() @@ -74,7 +80,8 @@ abstract class RibActivity : CoreAppCompatActivity(), ActivityStarter, Lifecycle super.onCreate(savedInstanceState) val rootViewGroup = findViewById(R.id.content) lifecycleFlow.tryEmit(createOnCreateEvent(savedInstanceState)) - val wrappedBundle: Bundle? = if (savedInstanceState != null) Bundle(savedInstanceState) else null + val wrappedBundle: Bundle? = + if (savedInstanceState != null) Bundle(savedInstanceState) else null router = createRouter(rootViewGroup) router?.let { it.dispatchAttach(wrappedBundle) @@ -87,7 +94,8 @@ abstract class RibActivity : CoreAppCompatActivity(), ActivityStarter, Lifecycle override fun onSaveInstanceState(outState: android.os.Bundle) { super.onSaveInstanceState(outState) callbacksFlow.tryEmit(createOnSaveInstanceStateEvent(outState)) - router?.saveInstanceStateInternal(Bundle(outState)) ?: throw NullPointerException("Router should not be null") + router?.saveInstanceStateInternal(Bundle(outState)) + ?: throw NullPointerException("Router should not be null") } @CallSuper @@ -151,10 +159,10 @@ abstract class RibActivity : CoreAppCompatActivity(), ActivityStarter, Lifecycle override fun onPictureInPictureModeChanged( isInPictureInPictureMode: Boolean, - newConfig: Configuration + newConfig: Configuration, ) { callbacksFlow.tryEmit( - createPictureInPictureMode(isInPictureInPictureMode) + createPictureInPictureMode(isInPictureInPictureMode), ) } @@ -163,8 +171,10 @@ abstract class RibActivity : CoreAppCompatActivity(), ActivityStarter, Lifecycle onUnhandledBackPressed() // https://issuetracker.google.com/issues/139738913 - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && isTaskRoot && - supportFragmentManager.backStackEntryCount == 0 + if ( + Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && + isTaskRoot && + supportFragmentManager.backStackEntryCount == 0 ) { super.finishAfterTransition() } else { @@ -194,13 +204,14 @@ abstract class RibActivity : CoreAppCompatActivity(), ActivityStarter, Lifecycle * @throws IllegalStateException if the activity has not been created or has been destroyed. */ open val interactor: Interactor<*, *> - get() = if (router != null) { - router?.interactor as Interactor<*, *> - } else { - throw IllegalStateException( - "Attempting to get a router when activity is not created or has been destroyed." - ) - } + get() = + if (router != null) { + router?.interactor as Interactor<*, *> + } else { + throw IllegalStateException( + "Attempting to get a router when activity is not created or has been destroyed.", + ) + } /** * Creates the [Interactor]. @@ -213,18 +224,20 @@ abstract class RibActivity : CoreAppCompatActivity(), ActivityStarter, Lifecycle /** * Figures out which corresponding next lifecycle event in which to unsubscribe, for Activities. */ - private val ACTIVITY_LIFECYCLE = CorrespondingEventsFunction { lastEvent: ActivityLifecycleEvent -> - return@CorrespondingEventsFunction when (lastEvent.type) { - ActivityLifecycleEvent.Type.CREATE -> create(ActivityLifecycleEvent.Type.DESTROY) - ActivityLifecycleEvent.Type.START -> create(ActivityLifecycleEvent.Type.STOP) - ActivityLifecycleEvent.Type.RESUME -> create(ActivityLifecycleEvent.Type.PAUSE) - ActivityLifecycleEvent.Type.USER_LEAVING -> create(ActivityLifecycleEvent.Type.DESTROY) - ActivityLifecycleEvent.Type.PAUSE -> create(ActivityLifecycleEvent.Type.STOP) - ActivityLifecycleEvent.Type.STOP -> create(ActivityLifecycleEvent.Type.DESTROY) - ActivityLifecycleEvent.Type.DESTROY -> throw LifecycleEndedException( - "Cannot bind to Activity lifecycle when outside of it." - ) + private val ACTIVITY_LIFECYCLE = + CorrespondingEventsFunction { lastEvent: ActivityLifecycleEvent -> + return@CorrespondingEventsFunction when (lastEvent.type) { + ActivityLifecycleEvent.Type.CREATE -> create(ActivityLifecycleEvent.Type.DESTROY) + ActivityLifecycleEvent.Type.START -> create(ActivityLifecycleEvent.Type.STOP) + ActivityLifecycleEvent.Type.RESUME -> create(ActivityLifecycleEvent.Type.PAUSE) + ActivityLifecycleEvent.Type.USER_LEAVING -> create(ActivityLifecycleEvent.Type.DESTROY) + ActivityLifecycleEvent.Type.PAUSE -> create(ActivityLifecycleEvent.Type.STOP) + ActivityLifecycleEvent.Type.STOP -> create(ActivityLifecycleEvent.Type.DESTROY) + ActivityLifecycleEvent.Type.DESTROY -> + throw LifecycleEndedException( + "Cannot bind to Activity lifecycle when outside of it.", + ) + } } - } } } diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewBuilder.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewBuilder.kt index 17855f9f..6c236599 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewBuilder.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewBuilder.kt @@ -28,7 +28,7 @@ import android.view.ViewGroup * @param dependency required to create this router. */ abstract class ViewBuilder, DependencyT>( - dependency: DependencyT + dependency: DependencyT, ) : Builder(dependency) { /** * Utility method to create the view for this router. @@ -43,8 +43,7 @@ abstract class ViewBuilder, DependencyT>( /** * Inflates the router's view with knowledge of its parent. This should never be called directly, - * instead use [ViewBuilder.createView] which will automatically pass the correct - * context. + * instead use [ViewBuilder.createView] which will automatically pass the correct context. * * @param inflater to inflate view with. * @param parentViewGroup to use for layout parameters. @@ -57,7 +56,7 @@ abstract class ViewBuilder, DependencyT>( * potentially different one before view creation, such as with [ ]. * * @param parentContext the original parent context, and default used if this method isn't - * overridden. + * overridden. * @return the possibly themed context. */ protected open fun onThemeContext(parentContext: Context): Context { diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewPresenter.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewPresenter.kt index 2edd7a81..8fd9d4f9 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewPresenter.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewPresenter.kt @@ -24,5 +24,5 @@ import android.view.View */ abstract class ViewPresenter( /** @return the view fronted by the page. */ - val view: V + val view: V, ) : Presenter() diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewRouter.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewRouter.kt index 96e54114..b73659c3 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewRouter.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/ViewRouter.kt @@ -27,14 +27,21 @@ abstract class ViewRouter> : Router { /** @return the router's view. */ open val view: V - constructor(view: V, interactor: I, component: InteractorBaseComponent<*>) : super(interactor, component) { + constructor( + view: V, + interactor: I, + component: InteractorBaseComponent<*>, + ) : super(interactor, component) { this.view = view if (XRay.isEnabled()) { XRay.apply(this, view) } } - protected constructor(view: V, interactor: I) : super(null, interactor, RibRefWatcher.getInstance(), getMainThread()) { + protected constructor( + view: V, + interactor: I, + ) : super(null, interactor, RibRefWatcher.getInstance(), getMainThread()) { this.view = view if (XRay.isEnabled()) { XRay.apply(this, view) diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/XRay.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/XRay.kt index 3f635950..3e545702 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/XRay.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/XRay.kt @@ -24,7 +24,7 @@ import android.graphics.drawable.Drawable import android.view.Gravity import android.view.View -/** Utility class that shows riblets name in its background. */ +/** Utility class that shows riblets name in its background. */ class XRay private constructor() { private var isEnabled = false private var textPaint: Paint? = null @@ -38,10 +38,11 @@ class XRay private constructor() { private fun getTextPaint(): Paint { if (textPaint == null) { - textPaint = Paint().apply { - textSize = TEXT_SIZE.toFloat() - color = TEXT_COLOR - } + textPaint = + Paint().apply { + textSize = TEXT_SIZE.toFloat() + color = TEXT_COLOR + } } return textPaint!! } @@ -54,7 +55,7 @@ class XRay private constructor() { private const val TEXT_SIZE = 30 private const val TEXT_COLOR = Color.RED - /** Toggles state of XRay. */ + /** Toggles state of XRay. */ @JvmStatic fun toggle() { INSTANCE.isEnabled = !INSTANCE.isEnabled @@ -75,11 +76,12 @@ class XRay private constructor() { @JvmStatic fun apply(viewRouter: ViewRouter<*, *>, view: View) { val oldBackground = view.background - val bitmap: Bitmap = if (oldBackground != null) { - drawableToBitmap(oldBackground) - } else { - Bitmap.createBitmap(FRAME_WIDTH, FRAME_HEIGHT, Bitmap.Config.ARGB_8888) - } + val bitmap: Bitmap = + if (oldBackground != null) { + drawableToBitmap(oldBackground) + } else { + Bitmap.createBitmap(FRAME_WIDTH, FRAME_HEIGHT, Bitmap.Config.ARGB_8888) + } INSTANCE.writeOnBitmap(bitmap, getRibletName(viewRouter)) val newBackground = BitmapDrawable(view.context.resources, bitmap) newBackground.gravity = Gravity.CENTER @@ -93,13 +95,16 @@ class XRay private constructor() { return drawable.bitmap } } - val bitmap: Bitmap = if (drawable.intrinsicWidth <= 0 || drawable.intrinsicHeight <= 0) { - Bitmap.createBitmap(FRAME_WIDTH, FRAME_HEIGHT, Bitmap.Config.ARGB_8888) - } else { - Bitmap.createBitmap( - drawable.intrinsicWidth, drawable.intrinsicHeight, Bitmap.Config.ARGB_8888 - ) - } + val bitmap: Bitmap = + if (drawable.intrinsicWidth <= 0 || drawable.intrinsicHeight <= 0) { + Bitmap.createBitmap(FRAME_WIDTH, FRAME_HEIGHT, Bitmap.Config.ARGB_8888) + } else { + Bitmap.createBitmap( + drawable.intrinsicWidth, + drawable.intrinsicHeight, + Bitmap.Config.ARGB_8888, + ) + } val canvas = Canvas(bitmap) drawable.draw(canvas) return bitmap diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityCallbackEvent.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityCallbackEvent.kt index 72eae794..f854bc31 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityCallbackEvent.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityCallbackEvent.kt @@ -18,26 +18,35 @@ package com.uber.rib.core.lifecycle import android.content.Intent import android.os.Bundle -/** Callback events that can be emitted by Activities. */ -open class ActivityCallbackEvent private constructor( +/** Callback events that can be emitted by Activities. */ +open class ActivityCallbackEvent +private constructor( /** @return this event's type. */ - override val type: Type + override val type: Type, ) : ActivityEvent { - /** Types of activity events that can occur. */ + /** Types of activity events that can occur. */ enum class Type : ActivityEvent.BaseType { - LOW_MEMORY, ACTIVITY_RESULT, SAVE_INSTANCE_STATE, TRIM_MEMORY, PICTURE_IN_PICTURE_MODE, NEW_INTENT, WINDOW_FOCUS + LOW_MEMORY, + ACTIVITY_RESULT, + SAVE_INSTANCE_STATE, + TRIM_MEMORY, + PICTURE_IN_PICTURE_MODE, + NEW_INTENT, + WINDOW_FOCUS, } - /** An [ActivityCallbackEvent] that represents [Activity.onNewIntent] event */ + /** An [ActivityCallbackEvent] that represents [Activity.onNewIntent] event */ open class NewIntent(open val intent: Intent) : ActivityCallbackEvent(Type.NEW_INTENT) - open class PictureInPictureMode(open val isInPictureInPictureMode: Boolean) : ActivityCallbackEvent(Type.PICTURE_IN_PICTURE_MODE) + open class PictureInPictureMode(open val isInPictureInPictureMode: Boolean) : + ActivityCallbackEvent(Type.PICTURE_IN_PICTURE_MODE) /** An [ActivityCallbackEvent] that represents [Activity.onWindowFocusChanged] event */ open class WindowFocus(open val hasFocus: Boolean) : ActivityCallbackEvent(Type.WINDOW_FOCUS) - /** An [ActivityCallbackEvent] that represents [Activity.onTrimMemory] event */ - open class TrimMemory internal constructor(open val trimMemoryType: Int) : ActivityCallbackEvent(Type.TRIM_MEMORY) + /** An [ActivityCallbackEvent] that represents [Activity.onTrimMemory] event */ + open class TrimMemory internal constructor(open val trimMemoryType: Int) : + ActivityCallbackEvent(Type.TRIM_MEMORY) /** An [ActivityCallbackEvent] that encapsulates information from [Activity.onActivityResult]. */ open class ActivityResult( @@ -46,13 +55,15 @@ open class ActivityCallbackEvent private constructor( /** @return this event's request code. */ open val requestCode: Int, /** @return this event's result code. */ - open val resultCode: Int + open val resultCode: Int, ) : ActivityCallbackEvent(Type.ACTIVITY_RESULT) - /** An [ActivityCallbackEvent] that encapsulates information from [Activity.onSaveInstanceState]. */ + /** + * An [ActivityCallbackEvent] that encapsulates information from [Activity.onSaveInstanceState]. + */ open class SaveInstanceState( /** @return this event's outState data. */ - open val outState: Bundle? + open val outState: Bundle?, ) : ActivityCallbackEvent(Type.SAVE_INSTANCE_STATE) companion object { @@ -70,7 +81,7 @@ open class ActivityCallbackEvent private constructor( fun createOnActivityResultEvent( requestCode: Int, resultCode: Int, - resultData: Intent? + resultData: Intent?, ): ActivityResult { return ActivityResult(resultData, requestCode, resultCode) } @@ -85,9 +96,10 @@ open class ActivityCallbackEvent private constructor( fun create(type: Type): ActivityCallbackEvent { return when (type) { Type.LOW_MEMORY -> LOW_MEMORY_EVENT - else -> throw IllegalArgumentException( - "Use the createOn${type.name.toLowerCase().capitalize()}Event() method for this type!" - ) + else -> + throw IllegalArgumentException( + "Use the createOn${type.name.toLowerCase().capitalize()}Event() method for this type!", + ) } } diff --git a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityLifecycleEvent.kt b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityLifecycleEvent.kt index 1f921095..c2033a90 100644 --- a/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityLifecycleEvent.kt +++ b/android/libraries/rib-android/src/main/kotlin/com/uber/rib/core/lifecycle/ActivityLifecycleEvent.kt @@ -17,21 +17,28 @@ package com.uber.rib.core.lifecycle import android.os.Bundle -/** Lifecycle events that can be emitted by Activities. */ -open class ActivityLifecycleEvent private constructor( +/** Lifecycle events that can be emitted by Activities. */ +open class ActivityLifecycleEvent +private constructor( /** @return this event's type. */ - override val type: Type + override val type: Type, ) : ActivityEvent { - /** Types of activity events that can occur. */ + /** Types of activity events that can occur. */ enum class Type : ActivityEvent.BaseType { - CREATE, START, RESUME, USER_LEAVING, PAUSE, STOP, DESTROY + CREATE, + START, + RESUME, + USER_LEAVING, + PAUSE, + STOP, + DESTROY, } /** An [ActivityLifecycleEvent] that encapsulates information from [Activity.onCreate]. */ open class Create( /** @return this event's savedInstanceState data. */ - open val savedInstanceState: Bundle? + open val savedInstanceState: Bundle?, ) : ActivityLifecycleEvent(Type.CREATE) companion object { @@ -68,9 +75,10 @@ open class ActivityLifecycleEvent private constructor( Type.PAUSE -> PAUSE_EVENT Type.STOP -> STOP_EVENT Type.DESTROY -> DESTROY_EVENT - else -> throw IllegalArgumentException( - "Use the createOn${type.name.toLowerCase().capitalize()}Event() method for this type!" - ) + else -> + throw IllegalArgumentException( + "Use the createOn${type.name.toLowerCase().capitalize()}Event() method for this type!", + ) } } } diff --git a/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/RibActivityTest.kt b/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/RibActivityTest.kt index fe220abf..55523e2d 100644 --- a/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/RibActivityTest.kt +++ b/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/RibActivityTest.kt @@ -49,15 +49,12 @@ class RibActivityTest { interactorBundle.putString(TEST_BUNDLE_KEY, TEST_BUNDLE_VALUE) val testBundle = android.os.Bundle() testBundle.putBundle(Router.KEY_INTERACTOR, interactorBundle) - val activityController: ActivityController = Robolectric.buildActivity(EmptyActivity::class.java) + val activityController: ActivityController = + Robolectric.buildActivity(EmptyActivity::class.java) activityController.create(testBundle) assertThat( - activityController - .get() - .testInteractor - .savedInstanceState - ?.getString(TEST_BUNDLE_KEY) - ) + activityController.get().testInteractor.savedInstanceState?.getString(TEST_BUNDLE_KEY), + ) .isEqualTo(TEST_BUNDLE_VALUE) } @@ -129,9 +126,9 @@ class RibActivityTest { subject .hide() .delaySubscription( - activity - .lifecycle() - .filter { activityEvent -> activityEvent.type === ActivityLifecycleEvent.Type.RESUME } + activity.lifecycle().filter { activityEvent -> + activityEvent.type === ActivityLifecycleEvent.Type.RESUME + }, ) .subscribe(o) subject.onNext(Any()) @@ -207,7 +204,7 @@ class RibActivityTest { val view = FrameLayout(RuntimeEnvironment.application) val presenter = object : ViewPresenter(view) {} val component: InteractorComponent, *> = mock { - on { presenter() } doReturn(presenter) + on { presenter() } doReturn (presenter) } return EmptyRouter(view, TestInteractor(presenter), component) } @@ -223,11 +220,11 @@ class RibActivityTest { private class EmptyRouter( view: FrameLayout, interactor: Interactor, *>, - component: InteractorComponent, *> + component: InteractorComponent, *>, ) : ViewRouter, *>>(view, interactor, component) private class TestInteractor( - presenter: ViewPresenter<*> + presenter: ViewPresenter<*>, ) : Interactor, FakeRouter<*>>(presenter) { var savedInstanceState: Bundle? = null private set diff --git a/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/ViewBuilderTest.kt b/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/ViewBuilderTest.kt index 806eef0b..ce576d05 100644 --- a/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/ViewBuilderTest.kt +++ b/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/ViewBuilderTest.kt @@ -35,13 +35,14 @@ class ViewBuilderTest { fun createView_shouldUseInflateViewToCreateView() { val parentViewGroup: ViewGroup = FrameLayout(RuntimeEnvironment.application) val holder = Holder() - val viewBuilder: ViewBuilder<*, *, *> = object : ViewBuilder, Any>(Any()) { - override fun inflateView(inflater: LayoutInflater, parentViewGroup: ViewGroup): View { - holder.inflaterContext = inflater.context - holder.inflaterViewGroup = parentViewGroup - return mock() + val viewBuilder: ViewBuilder<*, *, *> = + object : ViewBuilder, Any>(Any()) { + override fun inflateView(inflater: LayoutInflater, parentViewGroup: ViewGroup): View { + holder.inflaterContext = inflater.context + holder.inflaterViewGroup = parentViewGroup + return mock() + } } - } viewBuilder.createView(parentViewGroup) Truth.assertThat(holder.inflaterContext).isEqualTo(parentViewGroup.context) Truth.assertThat(holder.inflaterViewGroup).isEqualTo(parentViewGroup) @@ -52,17 +53,18 @@ class ViewBuilderTest { val parentViewGroup: ViewGroup = FrameLayout(RuntimeEnvironment.application) val customContext = ContextThemeWrapper(RuntimeEnvironment.application, R.style.Theme_AppCompat) val holder = Holder() - val viewBuilder: ViewBuilder<*, *, *> = object : ViewBuilder, Any>(Any()) { - override fun inflateView(inflater: LayoutInflater, parentViewGroup: ViewGroup): View { - holder.inflaterContext = inflater.context - holder.inflaterViewGroup = parentViewGroup - return mock() - } + val viewBuilder: ViewBuilder<*, *, *> = + object : ViewBuilder, Any>(Any()) { + override fun inflateView(inflater: LayoutInflater, parentViewGroup: ViewGroup): View { + holder.inflaterContext = inflater.context + holder.inflaterViewGroup = parentViewGroup + return mock() + } - override fun onThemeContext(parentContext: Context): Context { - return customContext + override fun onThemeContext(parentContext: Context): Context { + return customContext + } } - } viewBuilder.createView(parentViewGroup) Truth.assertThat(holder.inflaterContext).isEqualTo(customContext) Truth.assertThat(holder.inflaterViewGroup).isEqualTo(parentViewGroup) diff --git a/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/XRayTest.kt b/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/XRayTest.kt index 54b724e6..b54bfcc2 100644 --- a/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/XRayTest.kt +++ b/android/libraries/rib-android/src/test/kotlin/com/uber/rib/core/XRayTest.kt @@ -34,9 +34,7 @@ class XRayTest { fun apply_changesViewBackground() { XRay.toggle() val viewRouter: ViewRouter<*, *> = mock() - val view: View = mock { - on { context } doReturn(RuntimeEnvironment.application.baseContext) - } + val view: View = mock { on { context } doReturn (RuntimeEnvironment.application.baseContext) } apply(viewRouter, view) verify(view).background = any() verifyNoMoreInteractions(viewRouter) diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/BasicInteractor.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/BasicInteractor.kt index 25703829..3c082c69 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/BasicInteractor.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/BasicInteractor.kt @@ -21,6 +21,7 @@ package com.uber.rib.core * @param

the type of [Presenter]. * @param the type of [Router]. */ -public abstract class BasicInteractor

> protected constructor( - @JvmField protected var presenter: P +public abstract class BasicInteractor

> +protected constructor( + @JvmField protected var presenter: P, ) : Interactor(presenter) diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Bundle.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Bundle.kt index 37602e60..c79b4ef7 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Bundle.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Bundle.kt @@ -17,9 +17,11 @@ package com.uber.rib.core import android.os.Parcelable -/** Uber wrapper around Android Bundle to avoid Android and Robolectric dependencies. */ -public open class Bundle @JvmOverloads constructor( - private val androidBundle: android.os.Bundle = android.os.Bundle() +/** Uber wrapper around Android Bundle to avoid Android and Robolectric dependencies. */ +public open class Bundle +@JvmOverloads +constructor( + private val androidBundle: android.os.Bundle = android.os.Bundle(), ) { /** @@ -29,7 +31,7 @@ public open class Bundle @JvmOverloads constructor( * @param key to fetch. * @param defaultValue if no value is present. * @return the boolean value associated with the given key or null if there is no string value in - * the bundle. + * the bundle. */ public open fun getBoolean(key: String, defaultValue: Boolean): Boolean { return androidBundle.getBoolean(key, defaultValue) @@ -104,7 +106,7 @@ public open class Bundle @JvmOverloads constructor( * * @param key to fetch. * @return the String value associated with the given key or null if there is no string value in - * the bundle. + * the bundle. */ public open fun getString(key: String): String? { return androidBundle.getString(key) @@ -138,7 +140,7 @@ public open class Bundle @JvmOverloads constructor( * * @param key to fetch. * @return the int value associated with the given key or defaultValue if there is no int value in - * the bundle. + * the bundle. */ public open fun getInt(key: String, defaultValue: Int): Int { return androidBundle.getInt(key, defaultValue) diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/EmptyPresenter.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/EmptyPresenter.kt index 662dc873..96f67c3f 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/EmptyPresenter.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/EmptyPresenter.kt @@ -15,5 +15,5 @@ */ package com.uber.rib.core -/** No-op [Presenter] */ +/** No-op [Presenter] */ public open class EmptyPresenter : Presenter() diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/FlowAsScope.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/FlowAsScope.kt index 2e87aefc..45b0b259 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/FlowAsScope.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/FlowAsScope.kt @@ -21,34 +21,36 @@ import com.uber.autodispose.ScopeProvider import com.uber.autodispose.lifecycle.LifecycleEndedException import com.uber.autodispose.lifecycle.LifecycleNotStartedException import io.reactivex.CompletableSource +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.rx2.rxCompletable -import kotlin.coroutines.CoroutineContext -import kotlin.coroutines.EmptyCoroutineContext -/** Converts a [SharedFlow] of lifecycle events into a [ScopeProvider]. See [asScopeCompletable] for constraints. */ +/** + * Converts a [SharedFlow] of lifecycle events into a [ScopeProvider]. See [asScopeCompletable] for + * constraints. + */ internal fun > SharedFlow.asScopeProvider( range: ClosedRange, context: CoroutineContext = EmptyCoroutineContext, ): ScopeProvider = asScopeCompletable(range, context).asScopeProvider() /** - * Converts a [SharedFlow] of lifecycle events into a [CompletableSource] that completes once the flow emits the ending - * event. + * Converts a [SharedFlow] of lifecycle events into a [CompletableSource] that completes once the + * flow emits the ending event. * * The lifecycle start and end events are defined by [range], and this function will throw either: * 1. [LifecycleNotStartedException], if the last emitted event is not in range, or - * 2. [LifecycleEndedException], if the last emitted event is in the end (inclusive) or beyond [range]. + * 2. [LifecycleEndedException], if the last emitted event is in the end (inclusive) or beyond + * [range]. */ internal fun > SharedFlow.asScopeCompletable( range: ClosedRange, context: CoroutineContext = EmptyCoroutineContext, ): CompletableSource { ensureAlive(range) - return rxCompletable(RibDispatchers.Unconfined + context) { - first { it == range.endInclusive } - } + return rxCompletable(RibDispatchers.Unconfined + context) { first { it == range.endInclusive } } } private fun > SharedFlow.ensureAlive(range: ClosedRange) { diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Initializer.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Initializer.kt index a5486826..e02ee5fa 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Initializer.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Initializer.kt @@ -18,11 +18,18 @@ package com.uber.rib.core /** * Drop-in replacement for com.facebook.infer.annotation.Initializer. * - * * Method, annotated as @Initializer, should be call before object is used externally. It can be * used as a marker for different late-init methods of Android lifecycle, methods called indirectly * by the constructor or builder methods necessary to complete before build. */ @Retention(AnnotationRetention.BINARY) -@Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS, AnnotationTarget.FIELD, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER) +@Target( + AnnotationTarget.ANNOTATION_CLASS, + AnnotationTarget.CLASS, + AnnotationTarget.FIELD, + AnnotationTarget.CONSTRUCTOR, + AnnotationTarget.FUNCTION, + AnnotationTarget.PROPERTY_GETTER, + AnnotationTarget.PROPERTY_SETTER, +) public annotation class Initializer diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Interactor.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Interactor.kt index 07d0669d..20f9b788 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Interactor.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Interactor.kt @@ -23,13 +23,13 @@ import com.uber.autodispose.lifecycle.LifecycleScopeProvider import com.uber.rib.core.lifecycle.InteractorEvent import io.reactivex.CompletableSource import io.reactivex.Observable +import javax.inject.Inject +import kotlin.properties.ReadWriteProperty +import kotlin.reflect.KProperty import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.rx2.asObservable -import javax.inject.Inject -import kotlin.properties.ReadWriteProperty -import kotlin.reflect.KProperty /** * The base implementation for all [Interactor]s. @@ -37,17 +37,21 @@ import kotlin.reflect.KProperty * @param

the type of [Presenter]. * @param the type of [Router]. */ -public abstract class Interactor

> : LifecycleScopeProvider, InteractorType { - @Inject - public lateinit var injectedPresenter: P +public abstract class Interactor

> : + LifecycleScopeProvider, InteractorType { + @Inject public lateinit var injectedPresenter: P internal var actualPresenter: P? = null private val _lifecycleFlow = MutableSharedFlow(1, 0, BufferOverflow.DROP_OLDEST) - // We expose lifecycleFlow internally to avoid some unnecessary Rx-Coroutine interop. Use it instead of `lifecycle()`. + + // We expose lifecycleFlow internally to avoid some unnecessary Rx-Coroutine interop. Use it + // instead of `lifecycle()`. @get:JvmSynthetic - internal val lifecycleFlow: SharedFlow get() = _lifecycleFlow + internal val lifecycleFlow: SharedFlow + get() = _lifecycleFlow private val lifecycleObservable = _lifecycleFlow.asObservable() private val routerDelegate = InitOnceProperty() + /** @return the router for this interactor. */ public open var router: R by routerDelegate protected set @@ -62,16 +66,15 @@ public abstract class Interactor

> : LifecycleScopeProvide override fun lifecycle(): Observable = lifecycleObservable /** @return true if the controller is attached, false if not. */ - override fun isAttached(): Boolean = _lifecycleFlow.replayCache.lastOrNull() == InteractorEvent.ACTIVE + override fun isAttached(): Boolean = + _lifecycleFlow.replayCache.lastOrNull() == InteractorEvent.ACTIVE /** * Called when attached. The presenter will automatically be added when this happens. * * @param savedInstanceState the saved [Bundle]. */ - @CallSuper - protected open fun didBecomeActive(savedInstanceState: Bundle?) { - } + @CallSuper protected open fun didBecomeActive(savedInstanceState: Bundle?) {} /** * Handle an activity back press. @@ -81,8 +84,8 @@ public abstract class Interactor

> : LifecycleScopeProvide override fun handleBackPress(): Boolean = false /** - * Called when detached. The [Interactor] should do its cleanup here. Note: View will be - * removed automatically so [Interactor] doesn't have to remove its view here. + * Called when detached. The [Interactor] should do its cleanup here. Note: View will be removed + * automatically so [Interactor] doesn't have to remove its view here. */ protected open fun willResignActive() {} @@ -119,14 +122,16 @@ public abstract class Interactor

> : LifecycleScopeProvide /** @return the currently attached presenter if there is one */ @VisibleForTesting private fun getPresenter(): P { - val presenter: P? = try { - if (actualPresenter != null) + val presenter: P? = + try { + if (actualPresenter != null) { + actualPresenter + } else { + injectedPresenter + } + } catch (e: UninitializedPropertyAccessException) { actualPresenter - else - injectedPresenter - } catch (e: UninitializedPropertyAccessException) { - actualPresenter - } + } checkNotNull(presenter) { "Attempting to get interactor's presenter before being set." } return presenter } @@ -142,7 +147,8 @@ public abstract class Interactor

> : LifecycleScopeProvide override fun peekLifecycle(): InteractorEvent? = _lifecycleFlow.replayCache.lastOrNull() - final override fun requestScope(): CompletableSource = _lifecycleFlow.asScopeCompletable(lifecycleRange) + final override fun requestScope(): CompletableSource = + _lifecycleFlow.asScopeCompletable(lifecycleRange) private inner class InitOnceProperty : ReadWriteProperty { private var backingField: T? = null @@ -164,14 +170,14 @@ public abstract class Interactor

> : LifecycleScopeProvide } public companion object { - @get:JvmSynthetic - internal val lifecycleRange = InteractorEvent.ACTIVE..InteractorEvent.INACTIVE + @get:JvmSynthetic internal val lifecycleRange = InteractorEvent.ACTIVE..InteractorEvent.INACTIVE - private val LIFECYCLE_MAP_FUNCTION = CorrespondingEventsFunction { interactorEvent: InteractorEvent -> - when (interactorEvent) { - InteractorEvent.ACTIVE -> return@CorrespondingEventsFunction InteractorEvent.INACTIVE - else -> throw LifecycleEndedException() + private val LIFECYCLE_MAP_FUNCTION = + CorrespondingEventsFunction { interactorEvent: InteractorEvent -> + when (interactorEvent) { + InteractorEvent.ACTIVE -> return@CorrespondingEventsFunction InteractorEvent.INACTIVE + else -> throw LifecycleEndedException() + } } - } } } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorAndViewModule.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorAndViewModule.kt index 50cbd0de..cfa91d84 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorAndViewModule.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorAndViewModule.kt @@ -25,5 +25,5 @@ import android.view.View */ public abstract class InteractorAndViewModule, V : View>( interactor: I, - protected val view: V + protected val view: V, ) : InteractorModule(interactor) diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorComponent.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorComponent.kt index d55458b3..136bd871 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorComponent.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorComponent.kt @@ -22,7 +22,8 @@ package com.uber.rib.core * @param type of interactor that is injected. * @param

type of presenter. */ -public interface InteractorComponent

> : InteractorBaseComponent { +public interface InteractorComponent

> : + InteractorBaseComponent { /** * Inject the interactor. * diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorType.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorType.kt index 20ac1f59..9b71060a 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorType.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/InteractorType.kt @@ -18,7 +18,10 @@ package com.uber.rib.core import com.uber.autodispose.lifecycle.LifecycleScopeProvider import com.uber.rib.core.lifecycle.InteractorEvent -/** An interface used as the upper bound of the generic used by [Router]s to avoid cyclic generic types */ +/** + * An interface used as the upper bound of the generic used by [Router]s to avoid cyclic generic + * types + */ public interface InteractorType : LifecycleScopeProvider { public fun isAttached(): Boolean public fun handleBackPress(): Boolean diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Presenter.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Presenter.kt index 01497fba..78a74a5b 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Presenter.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Presenter.kt @@ -35,9 +35,12 @@ import org.checkerframework.checker.guieffect.qual.UIEffect */ public abstract class Presenter : ScopeProvider { private val _lifecycleFlow = MutableSharedFlow(1, 0, BufferOverflow.DROP_OLDEST) - // We expose lifecycleFlow internally to avoid some unnecessary Rx-Coroutine interop. Use it instead of `lifecycle()`. + + // We expose lifecycleFlow internally to avoid some unnecessary Rx-Coroutine interop. Use it + // instead of `lifecycle()`. @get:JvmSynthetic - internal val lifecycleFlow: SharedFlow get() = _lifecycleFlow + internal val lifecycleFlow: SharedFlow + get() = _lifecycleFlow private val lifecycleObservable = lifecycleFlow.asObservable() /** @return `true` if the presenter is loaded, `false` if not. */ @@ -56,19 +59,14 @@ public abstract class Presenter : ScopeProvider { _lifecycleFlow.tryEmit(PresenterEvent.UNLOADED) } - /** Tells the presenter that it has finished loading. */ - @CallSuper - protected open fun didLoad() { - } + /** Tells the presenter that it has finished loading. */ + @CallSuper protected open fun didLoad() {} /** * Tells the presenter that it will be destroyed. Presenter subclasses should perform any required * cleanup here. */ - @UIEffect - @CallSuper - protected open fun willUnload() { - } + @UIEffect @CallSuper protected open fun willUnload() {} /** @return an observable of this controller's lifecycle events. */ public open fun lifecycle(): Observable = lifecycleObservable @@ -76,7 +74,6 @@ public abstract class Presenter : ScopeProvider { override fun requestScope(): CompletableSource = _lifecycleFlow.asScopeCompletable(lifecycleRange) internal companion object { - @get:JvmSynthetic - internal val lifecycleRange = PresenterEvent.LOADED..PresenterEvent.UNLOADED + @get:JvmSynthetic internal val lifecycleRange = PresenterEvent.LOADED..PresenterEvent.UNLOADED } } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Rib.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Rib.kt index 9cc68f1b..d59e0314 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Rib.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Rib.kt @@ -15,18 +15,17 @@ */ package com.uber.rib.core -/** Holds configuration and settings for riblets. */ +/** Holds configuration and settings for riblets. */ public open class Rib { - /** Responsible for app-specific riblet configuration. */ + /** Responsible for app-specific riblet configuration. */ public interface Configuration { /** * Called when there is a non-fatal error in the RIB framework. Consumers should route this data * to a place where it can be monitored (crash reporting, monitoring, etc.). * - * - * If no configuration is set, the default implementation of this will crash the app when - * there is a non-fatal error. + * If no configuration is set, the default implementation of this will crash the app when there + * is a non-fatal error. * * @param errorMessage an error message that describes the error. * @param throwable an optional throwable. @@ -37,9 +36,9 @@ public open class Rib { * Called when there is a non-fatal warning in the RIB framework. Consumers should route this * data to a place where it can be monitored (crash reporting, monitoring, etc.). * - * - * NOTE: This API is used in a slightly different way than the [ ][Configuration.handleNonFatalError] error method. Non-fatal errors should - * never happen, warnings however can happen in certain conditions. + * NOTE: This API is used in a slightly different way than the + * [ ][Configuration.handleNonFatalError] error method. Non-fatal errors should never happen, + * warnings however can happen in certain conditions. * * @param warningMessage an error message that describes the error. * @param throwable an optional throwable. @@ -50,7 +49,6 @@ public open class Rib { * Called when there is a message that should be logged for debugging. Consumers should route * this data to a debug logging location. * - * * If no configuration is set, the default implementation of this will drop the messages. * * @param format Message format - See [String.format] @@ -59,7 +57,7 @@ public open class Rib { public fun handleDebugMessage(format: String, vararg args: Any?) } - /** Default, internal implementation that is used when host app does not set a configuration. */ + /** Default, internal implementation that is used when host app does not set a configuration. */ private class DefaultConfiguration : Configuration { override fun handleNonFatalError(errorMessage: String, throwable: Throwable?) { throw RuntimeException(errorMessage, throwable) @@ -87,7 +85,7 @@ public open class Rib { throw IllegalStateException("Attempting to set a configuration after using RIB code.") } else { throw IllegalStateException( - "Attempting to set a configuration after one has previously been set." + "Attempting to set a configuration after one has previously been set.", ) } } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibBuilder.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibBuilder.kt index 73dd20c1..cc859c32 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibBuilder.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibBuilder.kt @@ -15,7 +15,7 @@ */ package com.uber.rib.core -/** The annotation to mark that some object is an Builder. */ +/** The annotation to mark that some object is an Builder. */ @Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS) @Retention(AnnotationRetention.BINARY) public annotation class RibBuilder diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvent.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvent.kt index 1a6ee53a..bc31dfac 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvent.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvent.kt @@ -19,10 +19,10 @@ package com.uber.rib.core * @param eventType [RibEventType] * @param router [Router] * @param parentRouter [Router] and null for the root ribs that are directly attached to - * RibActivity/Fragment + * RibActivity/Fragment */ public open class RibEvent( public open val eventType: RibEventType, public open val router: Router<*>, - public open val parentRouter: Router<*>? + public open val parentRouter: Router<*>?, ) diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEventType.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEventType.kt index 5bc1bfd7..e00480d4 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEventType.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEventType.kt @@ -16,5 +16,6 @@ package com.uber.rib.core public enum class RibEventType { - ATTACHED, DETACHED + ATTACHED, + DETACHED, } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvents.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvents.kt index 8b7e9f0c..772b44d8 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvents.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibEvents.kt @@ -29,7 +29,7 @@ public class RibEvents private constructor() { * @param eventType [RibEventType] * @param child [Router] * @param parent [Router] and null for the root ribs that are directly attached to - * RibActivity/Fragment + * RibActivity/Fragment */ public fun emitEvent(eventType: RibEventType, child: Router<*>, parent: Router<*>?) { _events.tryEmit(RibEvent(eventType, child, parent)) @@ -38,7 +38,6 @@ public class RibEvents private constructor() { public companion object { private val instance: RibEvents = RibEvents() - @JvmStatic - public fun getInstance(): RibEvents = instance + @JvmStatic public fun getInstance(): RibEvents = instance } } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibInteractor.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibInteractor.kt index 8e770930..9e4e17dc 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibInteractor.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibInteractor.kt @@ -15,7 +15,7 @@ */ package com.uber.rib.core -/** The annotation to mark that some object is an Interactor. */ +/** The annotation to mark that some object is an Interactor. */ @Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS) @Retention(AnnotationRetention.SOURCE) public annotation class RibInteractor diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibRefWatcher.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibRefWatcher.kt index 2fa2c365..8ed91004 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibRefWatcher.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/RibRefWatcher.kt @@ -65,32 +65,32 @@ public open class RibRefWatcher { } } - /** Enables Breadcrumb logging. */ + /** Enables Breadcrumb logging. */ public open fun enableBreadcrumbLogging() { breadcrumbsEnabled = true } - /** Enables LeakCanary. */ + /** Enables LeakCanary. */ public open fun enableLeakCanary() { isLeakCanaryEnabled = true } - /** Disables LeakCanary. */ + /** Disables LeakCanary. */ public open fun disableLeakCanary() { isLeakCanaryEnabled = false } - /** Enables ULeak's Lifecycle tracking functionality. ULeak itself is behind a plugin. */ + /** Enables ULeak's Lifecycle tracking functionality. ULeak itself is behind a plugin. */ public open fun enableULeakLifecycleTracking() { uLeakEnabled = true } - /** Disables ULeak's Lifecycle Tracking. */ + /** Disables ULeak's Lifecycle Tracking. */ public open fun disableULeakLifecycleTracking() { uLeakEnabled = false } - /** Interface for classes that watch objects. */ + /** Interface for classes that watch objects. */ public interface ReferenceWatcher { /** * Watch this object to verify it has no inbound references. diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Router.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Router.kt index d5058720..37041ffc 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Router.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Router.kt @@ -27,11 +27,12 @@ import java.util.concurrent.CopyOnWriteArrayList * * @param type of interactor this router routes. */ -public abstract class Router protected constructor( +public abstract class Router +protected constructor( component: InteractorBaseComponent<*>?, public open val interactor: I, private val ribRefWatcher: RibRefWatcher, - private val mainThread: Thread + private val mainThread: Thread, ) { private val children: MutableList> = CopyOnWriteArrayList() private val interactorGeneric: Interactor<*, *> @@ -43,8 +44,13 @@ public abstract class Router protected constructor( private var savedInstanceState: Bundle? = null private var isLoaded = false - protected constructor(interactor: I, component: InteractorBaseComponent<*>?) : this(component, interactor, RibRefWatcher.getInstance(), getMainThread()) - protected constructor(interactor: I) : this(null, interactor, RibRefWatcher.getInstance(), getMainThread()) + protected constructor( + interactor: I, + component: InteractorBaseComponent<*>?, + ) : this(component, interactor, RibRefWatcher.getInstance(), getMainThread()) + protected constructor( + interactor: I, + ) : this(null, interactor, RibRefWatcher.getInstance(), getMainThread()) @Suppress("UNCHECKED_CAST") protected fun inject(component: InteractorBaseComponent<*>?) { @@ -65,10 +71,8 @@ public abstract class Router protected constructor( return interactorGeneric.handleBackPress() } - /** Called after the router has been loaded and initialized. */ - @Initializer - protected open fun didLoad() { - } + /** Called after the router has been loaded and initialized. */ + @Initializer protected open fun didLoad() {} /** * Called when a router is being attached. Router subclasses can perform setup here for anything @@ -98,17 +102,22 @@ public abstract class Router protected constructor( public open fun attachChild(childRouter: Router<*>, tag: String) { for (child in children) { if (tag == child.tag) { - Rib.getConfiguration().handleNonFatalWarning( - String.format( - Locale.getDefault(), "There is already a child router with tag: %s", tag - ), - null - ) + Rib.getConfiguration() + .handleNonFatalWarning( + String.format( + Locale.getDefault(), + "There is already a child router with tag: %s", + tag, + ), + null, + ) } } children.add(childRouter) ribRefWatcher.logBreadcrumb( - "ATTACHED", childRouter.javaClass.simpleName, this.javaClass.simpleName + "ATTACHED", + childRouter.javaClass.simpleName, + this.javaClass.simpleName, ) RibEvents.getInstance().emitEvent(RibEventType.ATTACHED, childRouter, this) var childBundle: Bundle? = null @@ -120,10 +129,9 @@ public abstract class Router protected constructor( } /** - * Detaches the {@param childFactory} from the current [Interactor]. NOTE: No consumers of - * this API should ever keep a reference to the detached child router, leak canary will enforce - * that it gets garbage collected. - * + * Detaches the {@param childFactory} from the current [Interactor]. NOTE: No consumers of this + * API should ever keep a reference to the detached child router, leak canary will enforce that it + * gets garbage collected. * * If you need to keep references to previous routers, use RouterNavigator. * @@ -135,7 +143,9 @@ public abstract class Router protected constructor( val interactor = childRouter.interactor ribRefWatcher.watchDeletedObject(interactor) ribRefWatcher.logBreadcrumb( - "DETACHED", childRouter.javaClass.simpleName, this.javaClass.simpleName + "DETACHED", + childRouter.javaClass.simpleName, + this.javaClass.simpleName, ) if (savedInstanceState != null) { val childrenBundles = savedInstanceState?.getBundleExtra(KEY_CHILD_ROUTERS) @@ -221,12 +231,10 @@ public abstract class Router protected constructor( } public companion object { - @VisibleForTesting - public val KEY_CHILD_ROUTERS: String = "Router.childRouters" + @VisibleForTesting public val KEY_CHILD_ROUTERS: String = "Router.childRouters" + + @JvmField @VisibleForTesting public val KEY_INTERACTOR: String = "Router.interactor" - @JvmField - @VisibleForTesting - public val KEY_INTERACTOR: String = "Router.interactor" @JvmStatic public fun getMainThread(): Thread { return try { diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Worker.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Worker.kt index 7ff3d816..63a3785d 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Worker.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/Worker.kt @@ -19,9 +19,9 @@ import kotlinx.coroutines.CoroutineDispatcher /** * Interface used when creating a manager or helper class that should be bound to an interactor's - * lifecycle using a binder like [WorkerBinder]. The worker event is decoupled from the - * interactor's actual lifecycle so that we're not stuck moving these classes around if there are - * other lifecycles we're interested in. + * lifecycle using a binder like [WorkerBinder]. The worker event is decoupled from the interactor's + * actual lifecycle so that we're not stuck moving these classes around if there are other + * lifecycles we're interested in. */ public interface Worker { @@ -39,10 +39,8 @@ public interface Worker { * * @param lifecycle The lifecycle of the worker to use for subscriptions. */ - @JvmDefault - public fun onStart(lifecycle: WorkerScopeProvider) {} + @JvmDefault public fun onStart(lifecycle: WorkerScopeProvider) {} - /** Called when the worker is stopped. */ - @JvmDefault - public fun onStop() {} + /** Called when the worker is stopped. */ + @JvmDefault public fun onStop() {} } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerScopeProvider.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerScopeProvider.kt index bfa7ba67..6da9a07f 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerScopeProvider.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerScopeProvider.kt @@ -20,8 +20,9 @@ import com.uber.rib.core.lifecycle.WorkerEvent import io.reactivex.CompletableSource import io.reactivex.Observable -/** [ScopeProvider] for [Worker] instances. */ -public open class WorkerScopeProvider internal constructor(delegate: ScopeProvider) : ScopeProvider by delegate { +/** [ScopeProvider] for [Worker] instances. */ +public open class WorkerScopeProvider internal constructor(delegate: ScopeProvider) : + ScopeProvider by delegate { internal constructor(lifecycle: Observable) : this(lifecycle.asScopeProvider()) } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerUnbinder.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerUnbinder.kt index c5d3d160..331ea7fd 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerUnbinder.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/WorkerUnbinder.kt @@ -16,10 +16,10 @@ package com.uber.rib.core /** - * API for unbinding a [Worker] before currently bound lifecycle has ended. Use this if you - * need to stop your [Worker] before the [Interactor] becomes inactive for example. + * API for unbinding a [Worker] before currently bound lifecycle has ended. Use this if you need to + * stop your [Worker] before the [Interactor] becomes inactive for example. */ public fun interface WorkerUnbinder { - /** Unbind from bound lifecycle and end worker's lifecycle. */ + /** Unbind from bound lifecycle and end worker's lifecycle. */ public fun unbind() } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/InteractorEvent.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/InteractorEvent.kt index af07f69a..f28453c9 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/InteractorEvent.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/InteractorEvent.kt @@ -15,7 +15,8 @@ */ package com.uber.rib.core.lifecycle -/** Controller lifecycle events. */ +/** Controller lifecycle events. */ public enum class InteractorEvent { - ACTIVE, INACTIVE + ACTIVE, + INACTIVE, } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/PresenterEvent.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/PresenterEvent.kt index 8eb79067..1b80ab19 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/PresenterEvent.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/PresenterEvent.kt @@ -15,7 +15,8 @@ */ package com.uber.rib.core.lifecycle -/** Presenter lifecycle events. */ +/** Presenter lifecycle events. */ public enum class PresenterEvent { - LOADED, UNLOADED + LOADED, + UNLOADED, } diff --git a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/WorkerEvent.kt b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/WorkerEvent.kt index e8a9dc96..30d1a335 100644 --- a/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/WorkerEvent.kt +++ b/android/libraries/rib-base/src/main/kotlin/com/uber/rib/core/lifecycle/WorkerEvent.kt @@ -16,9 +16,10 @@ package com.uber.rib.core.lifecycle /** - * Enum used represent when a [Worker][com.uber.rib.core.Worker] should stop and start in response to interactor - * lifecycle events. + * Enum used represent when a [Worker][com.uber.rib.core.Worker] should stop and start in response + * to interactor lifecycle events. */ public enum class WorkerEvent { - START, STOP + START, + STOP, } diff --git a/android/libraries/rib-base/src/test/kotlin/android/os/Bundle.kt b/android/libraries/rib-base/src/test/kotlin/android/os/Bundle.kt index c8c3d63e..c6e32bcd 100644 --- a/android/libraries/rib-base/src/test/kotlin/android/os/Bundle.kt +++ b/android/libraries/rib-base/src/test/kotlin/android/os/Bundle.kt @@ -15,7 +15,7 @@ */ package android.os -/** Stub class to have pure Java unit tests. */ +/** Stub class to have pure Java unit tests. */ class Bundle : Parcelable { private val testData: MutableMap = mutableMapOf() diff --git a/android/libraries/rib-base/src/test/kotlin/android/os/Parcelable.kt b/android/libraries/rib-base/src/test/kotlin/android/os/Parcelable.kt index ad68e923..13f7f0e2 100644 --- a/android/libraries/rib-base/src/test/kotlin/android/os/Parcelable.kt +++ b/android/libraries/rib-base/src/test/kotlin/android/os/Parcelable.kt @@ -15,5 +15,5 @@ */ package android.os -/** Stub class to have pure Java unit tests. */ +/** Stub class to have pure Java unit tests. */ interface Parcelable diff --git a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/InteractorAndRouterTest.kt b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/InteractorAndRouterTest.kt index 9addb691..4421fa43 100644 --- a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/InteractorAndRouterTest.kt +++ b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/InteractorAndRouterTest.kt @@ -41,7 +41,7 @@ class InteractorAndRouterTest { fun setup() { val presenter: TestPresenter = mock() val component: InteractorComponent = mock { - on { presenter() } doReturn(presenter) + on { presenter() } doReturn (presenter) } interactor = TestInteractor(childInteractor) router = TestRouter(interactor, component) @@ -94,24 +94,26 @@ class InteractorAndRouterTest { @Test fun childControllers_shouldHaveRightLifecycle() { val parentInteractor = TestInteractorA() - val component: InteractorComponent = object : InteractorComponent { - override fun inject(interactor: TestInteractorA) {} - override fun presenter(): TestPresenter { - return TestPresenter() + val component: InteractorComponent = + object : InteractorComponent { + override fun inject(interactor: TestInteractorA) {} + override fun presenter(): TestPresenter { + return TestPresenter() + } } - } val router = TestRouterA(parentInteractor, component) val parentObserver = RecordingObserver() parentInteractor.lifecycle().subscribe(parentObserver) router.dispatchAttach(null) Truth.assertThat(parentObserver.takeNext()).isEqualTo(InteractorEvent.ACTIVE) val childA = TestChildInteractor() - val childComponent: InteractorComponent = object : InteractorComponent { - override fun inject(interactor: TestChildInteractor) {} - override fun presenter(): TestPresenter { - return TestPresenter() + val childComponent: InteractorComponent = + object : InteractorComponent { + override fun inject(interactor: TestChildInteractor) {} + override fun presenter(): TestPresenter { + return TestPresenter() + } } - } val childRouter = TestChildRouter(childA, childComponent) val childObserverA = RecordingObserver() childA.lifecycle().subscribe(childObserverA) @@ -132,12 +134,13 @@ class InteractorAndRouterTest { @Test fun detachChild_whenOneChild_shouldWatchOneDeletedInteractor() { val rootInteractor = TestInteractorB() - val component: InteractorComponent = object : InteractorComponent { - override fun inject(interactor: TestInteractorB) {} - override fun presenter(): TestPresenter { - return TestPresenter() + val component: InteractorComponent = + object : InteractorComponent { + override fun inject(interactor: TestInteractorB) {} + override fun presenter(): TestPresenter { + return TestPresenter() + } } - } val router = TestRouterB(component, rootInteractor, ribRefWatcher) router.dispatchAttach(null) val childInteractor = TestInteractorB() @@ -154,12 +157,13 @@ class InteractorAndRouterTest { @Test fun detachChild_whenTwoNestedChildren_shouldWatchTwoNestedDeletions() { - val component: InteractorComponent = object : InteractorComponent { - override fun inject(interactor: TestInteractorB) {} - override fun presenter(): TestPresenter { - return TestPresenter() + val component: InteractorComponent = + object : InteractorComponent { + override fun inject(interactor: TestInteractorB) {} + override fun presenter(): TestPresenter { + return TestPresenter() + } } - } val rootRouter = TestRouterB(component, TestInteractorB(), ribRefWatcher) val child = addTwoNestedChildInteractors() verify(ribRefWatcher, never()).watchDeletedObject(any()) @@ -172,12 +176,13 @@ class InteractorAndRouterTest { } private fun addTwoNestedChildInteractors(): Router { - val component: InteractorComponent = object : InteractorComponent { - override fun inject(interactor: TestInteractorB) {} - override fun presenter(): TestPresenter { - return TestPresenter() + val component: InteractorComponent = + object : InteractorComponent { + override fun inject(interactor: TestInteractorB) {} + override fun presenter(): TestPresenter { + return TestPresenter() + } } - } router.dispatchAttach(null) val childRouter1 = TestRouterB(component, TestInteractorB(), ribRefWatcher) val childRouter2 = TestRouterB(component, TestInteractorB(), ribRefWatcher) @@ -186,7 +191,8 @@ class InteractorAndRouterTest { return childRouter1 } - private class TestInteractor(private val mChildInteractor: Interactor<*, *>) : Interactor>() { + private class TestInteractor(private val mChildInteractor: Interactor<*, *>) : + Interactor>() { override fun didBecomeActive(savedInstanceState: Bundle?) { super.didBecomeActive(savedInstanceState) val router: Router<*> = FakeRouter(mChildInteractor, getInstance(), Thread.currentThread()) @@ -201,7 +207,7 @@ class InteractorAndRouterTest { private class TestRouter( interactor: TestInteractor, - component: InteractorComponent + component: InteractorComponent, ) : Router(component, interactor, getInstance(), Thread.currentThread()) { init { interactor.setPresenter(component.presenter()) @@ -212,7 +218,7 @@ class InteractorAndRouterTest { private class TestRouterA( interactor: TestInteractorA, - component: InteractorComponent + component: InteractorComponent, ) : Router(component, interactor, getInstance(), Thread.currentThread()) { private var savedInstanceState: Bundle? = null override fun dispatchAttach(savedInstanceState: Bundle?, tag: String) { @@ -230,7 +236,7 @@ class InteractorAndRouterTest { private class TestRouterB : Router { constructor( interactor: TestInteractorB, - component: InteractorComponent + component: InteractorComponent, ) : super(component, interactor, getInstance(), Thread.currentThread()) { interactor.setPresenter(component.presenter()) } @@ -238,7 +244,7 @@ class InteractorAndRouterTest { constructor( component: InteractorComponent, interactor: TestInteractorB, - ribRefWatcher: RibRefWatcher + ribRefWatcher: RibRefWatcher, ) : super(component, interactor, ribRefWatcher, Thread.currentThread()) { interactor.setPresenter(component.presenter()) } @@ -247,7 +253,7 @@ class InteractorAndRouterTest { private class TestChildInteractor : Interactor>() private class TestChildRouter( interactor: TestChildInteractor, - component: InteractorComponent + component: InteractorComponent, ) : Router(component, interactor, getInstance(), Thread.currentThread()) { init { interactor.setPresenter(component.presenter()) diff --git a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RecordingObserver.kt b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RecordingObserver.kt index 616b3688..4f3b2132 100644 --- a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RecordingObserver.kt +++ b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RecordingObserver.kt @@ -51,11 +51,12 @@ internal class RecordingObserver : Observer { } private fun takeEvent(wanted: Class): E { - val event: Any? = try { - events.pollFirst(1, TimeUnit.SECONDS) - } catch (e: InterruptedException) { - throw RuntimeException(e) - } + val event: Any? = + try { + events.pollFirst(1, TimeUnit.SECONDS) + } catch (e: InterruptedException) { + throw RuntimeException(e) + } if (event == null) { throw NoSuchElementException("No event found while waiting for " + wanted.simpleName) } diff --git a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RouterTest.kt b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RouterTest.kt index d5839a89..4a7e650a 100644 --- a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RouterTest.kt +++ b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/RouterTest.kt @@ -16,9 +16,9 @@ package com.uber.rib.core import com.google.common.truth.Truth.assertThat +import java.util.concurrent.atomic.AtomicBoolean import org.junit.Test import org.mockito.kotlin.mock -import java.util.concurrent.atomic.AtomicBoolean class RouterTest { @@ -29,21 +29,23 @@ class RouterTest { @Test fun didLoad_shouldBeCalledAfterInstantiation() { val didLoad = AtomicBoolean(false) - val router: Router<*> = object : Router>( - component, - interactor, - ribRefWatcher, - Thread.currentThread() - ) { - override fun attachToInteractor() { - // ignore the Interactor since we're only testing the Router - } + val router: Router<*> = + object : + Router>( + component, + interactor, + ribRefWatcher, + Thread.currentThread(), + ) { + override fun attachToInteractor() { + // ignore the Interactor since we're only testing the Router + } - override fun didLoad() { - super.didLoad() - didLoad.set(true) + override fun didLoad() { + super.didLoad() + didLoad.set(true) + } } - } router.dispatchAttach(null) assertThat(didLoad.get()).isTrue() } diff --git a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/WorkerBinderTest.kt b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/WorkerBinderTest.kt index f4cff4c9..0522f665 100644 --- a/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/WorkerBinderTest.kt +++ b/android/libraries/rib-base/src/test/kotlin/com/uber/rib/core/WorkerBinderTest.kt @@ -139,9 +139,7 @@ class WorkerBinderTest { val interactor = object : Interactor>() {} var enteredUnconfined = false val worker = Worker { - val subscription = interactor.lifecycle().subscribe { - enteredUnconfined = true - } + val subscription = interactor.lifecycle().subscribe { enteredUnconfined = true } assertThat(enteredUnconfined).isTrue() subscription.dispose() } @@ -205,8 +203,9 @@ class WorkerBinderTest { } } -private fun Worker(onStartBlock: (WorkerScopeProvider) -> Unit) = object : Worker { - override fun onStart(lifecycle: WorkerScopeProvider) { - onStartBlock(lifecycle) +private fun Worker(onStartBlock: (WorkerScopeProvider) -> Unit) = + object : Worker { + override fun onStart(lifecycle: WorkerScopeProvider) { + onStartBlock(lifecycle) + } } -} diff --git a/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/AnnotationVerifier.kt b/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/AnnotationVerifier.kt index fe787010..21084f36 100644 --- a/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/AnnotationVerifier.kt +++ b/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/AnnotationVerifier.kt @@ -27,7 +27,7 @@ import javax.lang.model.util.Types internal abstract class AnnotationVerifier( protected val errorReporter: ErrorReporter, protected val elementUtils: Elements, - protected val typesUtils: Types + protected val typesUtils: Types, ) { /** @@ -37,6 +37,5 @@ internal abstract class AnnotationVerifier( * @return an [AnnotatedClass] object for the type. * @throws VerificationFailedException when verification fails. */ - @Throws(VerificationFailedException::class) - abstract fun verify(type: TypeElement): T + @Throws(VerificationFailedException::class) abstract fun verify(type: TypeElement): T } diff --git a/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifier.kt b/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifier.kt index 6036b567..78ef3d96 100644 --- a/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifier.kt +++ b/android/libraries/rib-compiler-app/src/main/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifier.kt @@ -26,11 +26,11 @@ import javax.lang.model.util.ElementFilter import javax.lang.model.util.Elements import javax.lang.model.util.Types -/** Verify that an [RibInteractor] annotation is applied correctly. */ +/** Verify that an [RibInteractor] annotation is applied correctly. */ internal open class InteractorAnnotationVerifier( errorReporter: ErrorReporter, elementUtils: Elements, - typesUtils: Types + typesUtils: Types, ) : AnnotationVerifier(errorReporter, elementUtils, typesUtils) { /** @@ -49,11 +49,12 @@ internal open class InteractorAnnotationVerifier( throw VerificationFailedException() } else { val fields: List - fields = if (hasConstructor) { - getConstructorParameters(type) - } else { - getInjectFields(type) - } + fields = + if (hasConstructor) { + getConstructorParameters(type) + } else { + getInjectFields(type) + } InteractorAnnotatedClass(type, fields, hasConstructor) } } @@ -91,15 +92,16 @@ internal open class InteractorAnnotationVerifier( */ private fun validateInteractorSubclass(type: TypeElement): Boolean { val interactorElement = elementUtils.getTypeElement(Interactor::class.java.name) - val rawElement = typesUtils.getDeclaredType( - interactorElement, - typesUtils.getWildcardType(null, null), - typesUtils.getWildcardType(null, null) - ) + val rawElement = + typesUtils.getDeclaredType( + interactorElement, + typesUtils.getWildcardType(null, null), + typesUtils.getWildcardType(null, null), + ) return if (!typesUtils.isSubtype(type.asType(), rawElement)) { errorReporter.reportError( "$type is annotated with @RibInteractor but is not an Interactor subclass.", - type + type, ) false } else { diff --git a/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifierTest.kt b/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifierTest.kt index 94f42694..e82d6a0d 100644 --- a/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifierTest.kt +++ b/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorAnnotationVerifierTest.kt @@ -43,7 +43,7 @@ class InteractorAnnotationVerifierTest : InteractorProcessorTestBase() { fun verify_whenTypeElementIsNotInteractor_shouldWriteErrorMessage() { addResourceToSources("fixtures/AnnotatedNonInteractor.java") assertFailsWithError( - "test.AnnotatedNonInteractor is annotated with @RibInteractor but is not an Interactor subclass" + "test.AnnotatedNonInteractor is annotated with @RibInteractor but is not an Interactor subclass", ) } diff --git a/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorProcessorTestBase.kt b/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorProcessorTestBase.kt index eb72496c..d3a9967b 100644 --- a/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorProcessorTestBase.kt +++ b/android/libraries/rib-compiler-app/src/test/kotlin/com/uber/rib/compiler/InteractorProcessorTestBase.kt @@ -17,9 +17,9 @@ package com.uber.rib.compiler import com.google.common.collect.ImmutableSet import com.google.testing.compile.JavaFileObjects -import org.junit.Before import java.util.ArrayList import javax.tools.JavaFileObject +import org.junit.Before abstract class InteractorProcessorTestBase { protected lateinit var ribProcessor: RibProcessor @@ -27,19 +27,22 @@ abstract class InteractorProcessorTestBase { @Before fun setup() { - ribProcessor = object : RibProcessor() { - override fun getProcessorPipelines(processContext: ProcessContext): List { - return listOf( - RibInteractorProcessorPipeline(processContext, null) - ) - } + ribProcessor = + object : RibProcessor() { + override fun getProcessorPipelines( + processContext: ProcessContext, + ): List { + return listOf( + RibInteractorProcessorPipeline(processContext, null), + ) + } - override fun getSupportedAnnotationTypes(): Set { - return ImmutableSet.of( - RibInteractorProcessorPipeline.SUPPORT_ANNOTATION_TYPE.canonicalName - ) + override fun getSupportedAnnotationTypes(): Set { + return ImmutableSet.of( + RibInteractorProcessorPipeline.SUPPORT_ANNOTATION_TYPE.canonicalName, + ) + } } - } sources = ArrayList() } diff --git a/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/Constants.kt b/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/Constants.kt index 96c0e8cd..fcc4c446 100644 --- a/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/Constants.kt +++ b/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/Constants.kt @@ -15,7 +15,7 @@ */ package com.uber.rib.compiler -/** Constant values used by the annotation processor. */ +/** Constant values used by the annotation processor. */ open class Constants { companion object { const val INTERACTOR_TEST_CREATOR_PREFIX = "Test" diff --git a/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/InteractorTestGenerator.kt b/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/InteractorTestGenerator.kt index 1796bb28..9cba1c24 100644 --- a/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/InteractorTestGenerator.kt +++ b/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/InteractorTestGenerator.kt @@ -31,48 +31,47 @@ import javax.lang.model.element.Modifier * Generates a dagger scope for a RibBuilder. Example: * * @Scope - * @Retention(SOURCE) public @interface LoggedInScope { } - * + * @Retention(SOURCE) public @interface LoggedInScope { } */ open class InteractorTestGenerator( processingEnvironment: ProcessingEnvironment, - errorReporter: ErrorReporter + errorReporter: ErrorReporter, ) : Generator(processingEnvironment, errorReporter) { @Throws(IOException::class) override fun generate(annotatedInteractor: InteractorAnnotatedClass) { if (annotatedInteractor.isCodeGenerated) { return } - val interactorTestBaseClassName = ( - Constants.INTERACTOR_TEST_CREATOR_PREFIX + + val interactorTestBaseClassName = + (Constants.INTERACTOR_TEST_CREATOR_PREFIX + annotatedInteractor.rootName + - Constants.INTERACTOR_TEST_CREATOR_SUFFIX - ) + Constants.INTERACTOR_TEST_CREATOR_SUFFIX) val constructor = MethodSpec.constructorBuilder().addModifiers(Modifier.PRIVATE).build() val createInteractor = createMethodSpec(annotatedInteractor) - val testBaseClass = TypeSpec.classBuilder(interactorTestBaseClassName) - .addMethod(constructor) - .addMethod(createInteractor) - .addModifiers(Modifier.PUBLIC) - .build() + val testBaseClass = + TypeSpec.classBuilder(interactorTestBaseClassName) + .addMethod(constructor) + .addMethod(createInteractor) + .addModifiers(Modifier.PUBLIC) + .build() val packageName = packageNameOf(annotatedInteractor.typeElement) - JavaFile.builder(packageName, testBaseClass) - .build() - .writeTo(processingEnvironment.filer) + JavaFile.builder(packageName, testBaseClass).build().writeTo(processingEnvironment.filer) annotatedInteractor.isCodeGenerated = true } private fun createMethodSpec(interactor: InteractorAnnotatedClass): MethodSpec { - val builder = MethodSpec.methodBuilder(Constants.INTERACTOR_TEST_CREATOR_METHOD_NAME) - .returns(TypeName.get(interactor.typeElement.asType())) - .addModifiers(ImmutableList.of(Modifier.PUBLIC, Modifier.STATIC)) + val builder = + MethodSpec.methodBuilder(Constants.INTERACTOR_TEST_CREATOR_METHOD_NAME) + .returns(TypeName.get(interactor.typeElement.asType())) + .addModifiers(ImmutableList.of(Modifier.PUBLIC, Modifier.STATIC)) for (dependency in interactor.dependencies) { - val paramSpect = ParameterSpec.builder( - TypeName.get(dependency.asType()), - dependency.simpleName.toString(), - Modifier.FINAL - ) - .build() + val paramSpect = + ParameterSpec.builder( + TypeName.get(dependency.asType()), + dependency.simpleName.toString(), + Modifier.FINAL, + ) + .build() builder.addParameter(paramSpect) } val interactorName = interactor.typeElement.simpleName.toString() @@ -85,7 +84,7 @@ open class InteractorTestGenerator( builder.addStatement( "interactor.\$L = \$L", dependencies.simpleName.toString(), - dependencies.simpleName.toString() + dependencies.simpleName.toString(), ) } builder.addStatement("return interactor").build() diff --git a/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/RibTestProcessor.kt b/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/RibTestProcessor.kt index d963ffe8..0f3013c1 100644 --- a/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/RibTestProcessor.kt +++ b/android/libraries/rib-compiler-test/src/main/kotlin/com/uber/rib/compiler/RibTestProcessor.kt @@ -21,14 +21,15 @@ import com.google.common.collect.ImmutableSet import javax.annotation.processing.ProcessingEnvironment import javax.annotation.processing.Processor -/** Process the annotations for all added annotation processor pipelines. */ +/** Process the annotations for all added annotation processor pipelines. */ @AutoService(Processor::class) open class RibTestProcessor : RibProcessor() { private var interactorTestGenerator: InteractorTestGenerator? = null @Synchronized override fun init(processingEnv: ProcessingEnvironment) { - interactorTestGenerator = InteractorTestGenerator(processingEnv, ErrorReporter(processingEnv.messager)) + interactorTestGenerator = + InteractorTestGenerator(processingEnv, ErrorReporter(processingEnv.messager)) super.init(processingEnv) } @@ -38,7 +39,7 @@ open class RibTestProcessor : RibProcessor() { override fun getProcessorPipelines(processContext: ProcessContext): List { return ImmutableList.of( - RibInteractorProcessorPipeline(processContext, interactorTestGenerator) + RibInteractorProcessorPipeline(processContext, interactorTestGenerator), ) } } diff --git a/android/libraries/rib-compiler-test/src/test/kotlin/com/uber/rib/compiler/InteractorTestGeneratorProcessorTestBase.kt b/android/libraries/rib-compiler-test/src/test/kotlin/com/uber/rib/compiler/InteractorTestGeneratorProcessorTestBase.kt index bb309eae..78ca5f81 100644 --- a/android/libraries/rib-compiler-test/src/test/kotlin/com/uber/rib/compiler/InteractorTestGeneratorProcessorTestBase.kt +++ b/android/libraries/rib-compiler-test/src/test/kotlin/com/uber/rib/compiler/InteractorTestGeneratorProcessorTestBase.kt @@ -17,10 +17,10 @@ package com.uber.rib.compiler import com.google.common.collect.ImmutableSet import com.google.testing.compile.JavaFileObjects -import org.junit.Before import java.util.ArrayList import javax.annotation.processing.ProcessingEnvironment import javax.tools.JavaFileObject +import org.junit.Before abstract class InteractorTestGeneratorProcessorTestBase { protected lateinit var ribInteractorProcessor: RibProcessor @@ -28,27 +28,31 @@ abstract class InteractorTestGeneratorProcessorTestBase { @Before fun setup() { - ribInteractorProcessor = object : RibProcessor() { - var interactorTestGenerator: InteractorTestGenerator? = null + ribInteractorProcessor = + object : RibProcessor() { + var interactorTestGenerator: InteractorTestGenerator? = null - @Synchronized - override fun init(processingEnv: ProcessingEnvironment) { - interactorTestGenerator = InteractorTestGenerator(processingEnv, ErrorReporter(processingEnv.messager)) - super.init(processingEnv) - } + @Synchronized + override fun init(processingEnv: ProcessingEnvironment) { + interactorTestGenerator = + InteractorTestGenerator(processingEnv, ErrorReporter(processingEnv.messager)) + super.init(processingEnv) + } - override fun getProcessorPipelines(processContext: ProcessContext): List { - return listOf( - RibInteractorProcessorPipeline(processContext, interactorTestGenerator) - ) - } + override fun getProcessorPipelines( + processContext: ProcessContext, + ): List { + return listOf( + RibInteractorProcessorPipeline(processContext, interactorTestGenerator), + ) + } - override fun getSupportedAnnotationTypes(): Set { - return ImmutableSet.of( - RibInteractorProcessorPipeline.SUPPORT_ANNOTATION_TYPE.canonicalName - ) + override fun getSupportedAnnotationTypes(): Set { + return ImmutableSet.of( + RibInteractorProcessorPipeline.SUPPORT_ANNOTATION_TYPE.canonicalName, + ) + } } - } sources = ArrayList() } diff --git a/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/RibCoroutinesRule.kt b/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/RibCoroutinesRule.kt index 596da434..aa9b6a2e 100644 --- a/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/RibCoroutinesRule.kt +++ b/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/RibCoroutinesRule.kt @@ -20,10 +20,13 @@ import org.junit.rules.TestWatcher import org.junit.runner.Description /** - * RibCoroutinesRule is a Junit TestRule to act as a managed TestCoroutineScope in test and to facilitate install and cleanup of Test Dispatchers + * RibCoroutinesRule is a Junit TestRule to act as a managed TestCoroutineScope in test and to + * facilitate install and cleanup of Test Dispatchers */ @ExperimentalCoroutinesApi -public class RibCoroutinesRule(public val ribDispatchers: TestRibDispatchers = TestRibDispatchers()) : TestWatcher() { +public class RibCoroutinesRule( + public val ribDispatchers: TestRibDispatchers = TestRibDispatchers(), +) : TestWatcher() { override fun starting(description: Description) { ribDispatchers.installTestDispatchers() diff --git a/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibCoroutineScopes.kt b/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibCoroutineScopes.kt index 8709e18e..fa301830 100644 --- a/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibCoroutineScopes.kt +++ b/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibCoroutineScopes.kt @@ -20,83 +20,70 @@ import com.uber.autodispose.ScopeProvider import com.uber.autodispose.coroutinesinterop.autoDispose import io.reactivex.Completable import io.reactivex.CompletableSource +import kotlin.coroutines.CoroutineContext import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.cancel import kotlinx.coroutines.test.TestScope -import kotlin.coroutines.CoroutineContext @ExperimentalCoroutinesApi -/** - * returns the [TestScope] override currently installed for testing. - */ +/** returns the [TestScope] override currently installed for testing. */ public val ScopeProvider.testScopeOverride: TestScope? // Due to custom friend path usage, reference to LazyCoroutineScope will stay red in IDE - get() = synchronized(LazyCoroutineScope) { - val testScope = LazyCoroutineScope[this] - return if (testScope != null && testScope is TestScope) testScope else null - } + get() = + synchronized(LazyCoroutineScope) { + val testScope = LazyCoroutineScope[this] + return if (testScope != null && testScope is TestScope) testScope else null + } /** - * Overrides [ScopeProvider.coroutineScope] with a [TestScope] with lifecycle integration for testing. - * Accessible directly as [TestScope] via [ScopeProvider.TestScopeOverride]. + * Overrides [ScopeProvider.coroutineScope] with a [TestScope] with lifecycle integration for + * testing. Accessible directly as [TestScope] via [ScopeProvider.TestScopeOverride]. */ @ExperimentalCoroutinesApi -public fun ScopeProvider.enableTestScopeOverride(context: CoroutineContext = SupervisorJob()): Unit = synchronized(LazyCoroutineScope) { - LazyCoroutineScope[this] = asTestScope(context) -} +public fun ScopeProvider.enableTestScopeOverride( + context: CoroutineContext = SupervisorJob(), +): Unit = synchronized(LazyCoroutineScope) { LazyCoroutineScope[this] = asTestScope(context) } -/** - * Disables the [ScopeProvider.coroutineScope] override with [TestScope] - */ -public fun ScopeProvider.disableTestScopeOverride(): Unit = synchronized(LazyCoroutineScope) { - LazyCoroutineScope[this] = null -} +/** Disables the [ScopeProvider.coroutineScope] override with [TestScope] */ +public fun ScopeProvider.disableTestScopeOverride(): Unit = + synchronized(LazyCoroutineScope) { LazyCoroutineScope[this] = null } -/** - * returns the [TestScope] override currently installed for testing. - */ +/** returns the [TestScope] override currently installed for testing. */ @ExperimentalCoroutinesApi public val Application.testScopeOverride: TestScope? // Due to custom friend path usage, reference to LazyCoroutineScope will stay red in IDE - get() = synchronized(LazyCoroutineScope) { - val testScope = LazyCoroutineScope[this] - return if (testScope != null && testScope is TestScope) testScope else null - } + get() = + synchronized(LazyCoroutineScope) { + val testScope = LazyCoroutineScope[this] + return if (testScope != null && testScope is TestScope) testScope else null + } /** - * Overrides [ScopeProvider.coroutineScope] with a [TestScope] with lifecycle integration for testing. - * Accessible directly as [TestScope] via [ScopeProvider.TestScopeOverride]. + * Overrides [ScopeProvider.coroutineScope] with a [TestScope] with lifecycle integration for + * testing. Accessible directly as [TestScope] via [ScopeProvider.TestScopeOverride]. */ @ExperimentalCoroutinesApi -public fun Application.enableTestScopeOverride(context: CoroutineContext = SupervisorJob()): Unit = synchronized(LazyCoroutineScope) { - LazyCoroutineScope[this] = TestScope(context) -} +public fun Application.enableTestScopeOverride(context: CoroutineContext = SupervisorJob()): Unit = + synchronized(LazyCoroutineScope) { LazyCoroutineScope[this] = TestScope(context) } -/** - * Disables the [ScopeProvider.coroutineScope] override with [TestScope] - */ -public fun Application.disableTestScopeOverride(): Unit = synchronized(LazyCoroutineScope) { - LazyCoroutineScope[this] = null -} +/** Disables the [ScopeProvider.coroutineScope] override with [TestScope] */ +public fun Application.disableTestScopeOverride(): Unit = + synchronized(LazyCoroutineScope) { LazyCoroutineScope[this] = null } -/** - * Returns a new [TestScope] from the [ScopeProvider] - */ +/** Returns a new [TestScope] from the [ScopeProvider] */ @ExperimentalCoroutinesApi public fun ScopeProvider.asTestScope(context: CoroutineContext = SupervisorJob()): TestScope { return requestScope().asTestScope(context) } -/** - * Returns a new [TestScope] from the [CompletableSource] - */ +/** Returns a new [TestScope] from the [CompletableSource] */ @ExperimentalCoroutinesApi public fun CompletableSource.asTestScope(context: CoroutineContext = SupervisorJob()): TestScope { val scope = TestScope(context) - Completable.wrap(this) - .autoDispose(scope) - .subscribe({ scope.cancel() }) { e -> scope.cancel("OnError", e) } + Completable.wrap(this).autoDispose(scope).subscribe({ scope.cancel() }) { e -> + scope.cancel("OnError", e) + } return scope } diff --git a/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibDispatchers.kt b/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibDispatchers.kt index 52db6861..9a4eef45 100644 --- a/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibDispatchers.kt +++ b/android/libraries/rib-coroutines-test/src/main/kotlin/com/uber/rib/core/TestRibDispatchers.kt @@ -28,7 +28,8 @@ import kotlinx.coroutines.test.setMain @ExperimentalCoroutinesApi public data class TestRibDispatchers( /** - * [TestCoroutineScheduler] to be used by all other [TestDispatcher] when using the default constructor. + * [TestCoroutineScheduler] to be used by all other [TestDispatcher] when using the default + * constructor. * * Note that when passing in custom dispatchers, this test scheduler will not be used. */ @@ -36,7 +37,7 @@ public data class TestRibDispatchers( override val Default: TestDispatcher = StandardTestDispatcher(testScheduler), override val IO: TestDispatcher = StandardTestDispatcher(testScheduler), override val Unconfined: TestDispatcher = UnconfinedTestDispatcher(testScheduler), - val MainTestDelegate: TestDispatcher = StandardTestDispatcher(testScheduler) + val MainTestDelegate: TestDispatcher = StandardTestDispatcher(testScheduler), ) : RibDispatchersProvider { public fun installTestDispatchers() { diff --git a/android/libraries/rib-coroutines-test/src/test/kotlin/com/uber/rib/core/RibScopesTest.kt b/android/libraries/rib-coroutines-test/src/test/kotlin/com/uber/rib/core/RibScopesTest.kt index df461951..7d79ab35 100644 --- a/android/libraries/rib-coroutines-test/src/test/kotlin/com/uber/rib/core/RibScopesTest.kt +++ b/android/libraries/rib-coroutines-test/src/test/kotlin/com/uber/rib/core/RibScopesTest.kt @@ -17,6 +17,7 @@ package com.uber.rib.core import android.app.Application import com.google.common.truth.Truth.assertThat +import kotlin.coroutines.CoroutineContext import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.delay @@ -27,7 +28,6 @@ import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test import org.mockito.kotlin.mock -import kotlin.coroutines.CoroutineContext @OptIn(ExperimentalCoroutinesApi::class) internal class RibScopesTest { @@ -38,11 +38,12 @@ internal class RibScopesTest { internal fun testScopeLifecycle() = runTest { val interactor = FakeInteractor>() interactor.attach() - val job = interactor.coroutineScope.launch { - while (isActive) { - delay(5L) + val job = + interactor.coroutineScope.launch { + while (isActive) { + delay(5L) + } } - } assertThat(job.isActive).isTrue() interactor.detach() assertThat(job.isActive).isFalse() @@ -54,11 +55,12 @@ internal class RibScopesTest { interactor.attach() interactor.enableTestScopeOverride() - val job = interactor.coroutineScope.launch { - while (isActive) { - delay(5L) + val job = + interactor.coroutineScope.launch { + while (isActive) { + delay(5L) + } } - } assertThat(job.isActive).isTrue() interactor.detach() assertThat(job.isActive).isFalse() @@ -66,7 +68,6 @@ internal class RibScopesTest { @Test() internal fun testScopeCaching() { - val interactor1 = FakeInteractor>() val interactor2 = FakeInteractor>() interactor1.attach() @@ -80,7 +81,8 @@ internal class RibScopesTest { assertThat(interactor1mainScope1).isNotEqualTo(interactor2mainScope1) } - // Bad test: The RuntimeException thrown is actually NoSuchElementException (handler exceptions is empty). + // Bad test: The RuntimeException thrown is actually NoSuchElementException (handler exceptions is + // empty). @Test(expected = RuntimeException::class) internal fun testUncaughtHandler() = runTest { val handler = TestUncaughtExceptionCaptor() @@ -88,28 +90,23 @@ internal class RibScopesTest { val interactor = FakeInteractor>() interactor.attach() - interactor.coroutineScope.launch { - throw RuntimeException("mainScope failed") - } - throw(handler.exceptions.first()) + interactor.coroutineScope.launch { throw RuntimeException("mainScope failed") } + throw (handler.exceptions.first()) } - // Bad test: The RuntimeException is actually thrown by Interactor.requestScope(), because it is called before + // Bad test: The RuntimeException is actually thrown by Interactor.requestScope(), because it is + // called before // attaching the interactor. @Test(expected = RuntimeException::class) internal fun testException() = runTest { - val interactor = FakeInteractor>() interactor.enableTestScopeOverride() interactor.attach() - interactor.coroutineScope.launch { - throw RuntimeException("mainScope failed") - } + interactor.coroutineScope.launch { throw RuntimeException("mainScope failed") } } @Test() internal fun testSetTestScopeOverride() { - val interactor = FakeInteractor>() interactor.attach() @@ -130,7 +127,6 @@ internal class RibScopesTest { @Test() internal fun testSetTestScopeOnApplicationOverride() { - // Can use mock since all logic is in extension function. val application: Application = mock() diff --git a/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutineScopes.kt b/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutineScopes.kt index e236cfd6..e01a4fc7 100755 --- a/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutineScopes.kt +++ b/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutineScopes.kt @@ -18,46 +18,50 @@ package com.uber.rib.core import android.app.Application import com.uber.autodispose.ScopeProvider import com.uber.autodispose.coroutinesinterop.asCoroutineScope -import kotlinx.coroutines.CoroutineName -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.job import java.util.WeakHashMap import kotlin.coroutines.CoroutineContext import kotlin.coroutines.EmptyCoroutineContext import kotlin.reflect.KProperty +import kotlinx.coroutines.CoroutineName +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.job /** - * [CoroutineScope] tied to this [ScopeProvider]. - * This scope will be canceled when ScopeProvider is completed + * [CoroutineScope] tied to this [ScopeProvider]. This scope will be canceled when ScopeProvider is + * completed * * This scope is bound to * [RibDispatchers.Main.immediate][kotlinx.coroutines.MainCoroutineDispatcher.immediate] */ -public val ScopeProvider.coroutineScope: CoroutineScope by LazyCoroutineScope { - val context: CoroutineContext = SupervisorJob() + - RibDispatchers.Main.immediate + - CoroutineName("${this::class.simpleName}:coroutineScope") + - (RibCoroutinesConfig.exceptionHandler ?: EmptyCoroutineContext) +public val ScopeProvider.coroutineScope: CoroutineScope by + LazyCoroutineScope { + val context: CoroutineContext = + SupervisorJob() + + RibDispatchers.Main.immediate + + CoroutineName("${this::class.simpleName}:coroutineScope") + + (RibCoroutinesConfig.exceptionHandler ?: EmptyCoroutineContext) - asCoroutineScope(context) -} + asCoroutineScope(context) + } /** - * [CoroutineScope] tied to this [Application]. - * This scope will not be cancelled, it lives for the full application process. + * [CoroutineScope] tied to this [Application]. This scope will not be cancelled, it lives for the + * full application process. * * This scope is bound to * [RibDispatchers.Main.immediate][kotlinx.coroutines.MainCoroutineDispatcher.immediate] */ -public val Application.coroutineScope: CoroutineScope by LazyCoroutineScope { - val context: CoroutineContext = SupervisorJob() + - RibDispatchers.Main.immediate + - CoroutineName("${this::class.simpleName}:coroutineScope") + - (RibCoroutinesConfig.exceptionHandler ?: EmptyCoroutineContext) +public val Application.coroutineScope: CoroutineScope by + LazyCoroutineScope { + val context: CoroutineContext = + SupervisorJob() + + RibDispatchers.Main.immediate + + CoroutineName("${this::class.simpleName}:coroutineScope") + + (RibCoroutinesConfig.exceptionHandler ?: EmptyCoroutineContext) - CoroutineScope(context) -} + CoroutineScope(context) + } internal class LazyCoroutineScope(val initializer: This.() -> CoroutineScope) { companion object { @@ -69,15 +73,14 @@ internal class LazyCoroutineScope(val initializer: This.() -> Corout values[provider] = scope } } - operator fun getValue(thisRef: This, property: KProperty<*>): CoroutineScope = synchronized(LazyCoroutineScope) { - return values.getOrPut(thisRef) { - thisRef.initializer().apply { - coroutineContext.job.invokeOnCompletion { - synchronized(LazyCoroutineScope) { - values.remove(thisRef) + operator fun getValue(thisRef: This, property: KProperty<*>): CoroutineScope = + synchronized(LazyCoroutineScope) { + return values.getOrPut(thisRef) { + thisRef.initializer().apply { + coroutineContext.job.invokeOnCompletion { + synchronized(LazyCoroutineScope) { values.remove(thisRef) } } } } } - } } diff --git a/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutinesConfig.kt b/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutinesConfig.kt index c9ce22aa..e083ce4e 100644 --- a/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutinesConfig.kt +++ b/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibCoroutinesConfig.kt @@ -20,22 +20,21 @@ import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.Dispatchers /** - * Config object to specify global overrides for Rib Coroutine behavior including Dispatchers and exception handling + * Config object to specify global overrides for Rib Coroutine behavior including Dispatchers and + * exception handling */ public object RibCoroutinesConfig { /** - * Specify [RibDispatchersProvider] that provide default [CoroutineDispatcher]'s for Rib based scopes. - * Defaults to standard [Dispatchers]. - * Useful in areas where injecting Dispatchers is not ideal, such as Test. + * Specify [RibDispatchersProvider] that provide default [CoroutineDispatcher]'s for Rib based + * scopes. Defaults to standard [Dispatchers]. Useful in areas where injecting Dispatchers is not + * ideal, such as Test. */ - @JvmStatic - public var dispatchers: RibDispatchersProvider = DefaultRibDispatchers() + @JvmStatic public var dispatchers: RibDispatchersProvider = DefaultRibDispatchers() /** - * Specify [CoroutineExceptionHandler] to be used with Rib based scopes. - * Defaults to throwing exception. - * Useful for specifying additional information before passed to [Thread.UncaughtExceptionHandler]. + * Specify [CoroutineExceptionHandler] to be used with Rib based scopes. Defaults to throwing + * exception. Useful for specifying additional information before passed to + * [Thread.UncaughtExceptionHandler]. */ - @JvmStatic - public var exceptionHandler: CoroutineExceptionHandler? = null + @JvmStatic public var exceptionHandler: CoroutineExceptionHandler? = null } diff --git a/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibDispatchers.kt b/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibDispatchers.kt index e420993c..02ebf1b9 100644 --- a/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibDispatchers.kt +++ b/android/libraries/rib-coroutines/src/main/kotlin/com/uber/rib/core/RibDispatchers.kt @@ -15,6 +15,7 @@ */ package com.uber.rib.core +import kotlin.coroutines.ContinuationInterceptor import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineStart @@ -22,79 +23,85 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.IO_PARALLELISM_PROPERTY_NAME import kotlinx.coroutines.MainCoroutineDispatcher import kotlinx.coroutines.MainScope -import kotlin.coroutines.ContinuationInterceptor public object RibDispatchers : RibDispatchersProvider { - override val Default: CoroutineDispatcher get() = RibCoroutinesConfig.dispatchers.Default - override val Main: MainCoroutineDispatcher get() = RibCoroutinesConfig.dispatchers.Main - override val IO: CoroutineDispatcher get() = RibCoroutinesConfig.dispatchers.IO - override val Unconfined: CoroutineDispatcher get() = RibCoroutinesConfig.dispatchers.Unconfined + override val Default: CoroutineDispatcher + get() = RibCoroutinesConfig.dispatchers.Default + override val Main: MainCoroutineDispatcher + get() = RibCoroutinesConfig.dispatchers.Main + override val IO: CoroutineDispatcher + get() = RibCoroutinesConfig.dispatchers.IO + override val Unconfined: CoroutineDispatcher + get() = RibCoroutinesConfig.dispatchers.Unconfined } public data class DefaultRibDispatchers( override val Default: CoroutineDispatcher = Dispatchers.Default, override val Main: MainCoroutineDispatcher = Dispatchers.Main, override val IO: CoroutineDispatcher = Dispatchers.IO, - override val Unconfined: CoroutineDispatcher = Dispatchers.Unconfined + override val Unconfined: CoroutineDispatcher = Dispatchers.Unconfined, ) : RibDispatchersProvider -/** - * Allows providing default Dispatchers used for Rib CoroutineScopes - */ +/** Allows providing default Dispatchers used for Rib CoroutineScopes */ public interface RibDispatchersProvider { /** * The Default [CoroutineDispatcher] that behaves as [Dispatchers.Default]. * * The default [CoroutineDispatcher] that is used by all standard builders like - * [launch][CoroutineScope.launch], [async][CoroutineScope.async], etc - * if no dispatcher nor any other [ContinuationInterceptor] is specified in their context. + * [launch][CoroutineScope.launch], [async][CoroutineScope.async], etc if no dispatcher nor any + * other [ContinuationInterceptor] is specified in their context. * - * It is backed by a shared pool of threads on JVM. By default, the maximal level of parallelism used - * by this dispatcher is equal to the number of CPU cores, but is at least two. - * Level of parallelism X guarantees that no more than X tasks can be executed in this dispatcher in parallel. + * It is backed by a shared pool of threads on JVM. By default, the maximal level of parallelism + * used by this dispatcher is equal to the number of CPU cores, but is at least two. Level of + * parallelism X guarantees that no more than X tasks can be executed in this dispatcher in + * parallel. */ public val Default: CoroutineDispatcher /** * The Main [CoroutineDispatcher] that behaves as [Dispatchers.Main]. * - * A coroutine dispatcher that is confined to the Main thread operating with UI objects. - * This dispatcher can be used either directly or via [MainScope] factory. - * Usually such dispatcher is single-threaded. + * A coroutine dispatcher that is confined to the Main thread operating with UI objects. This + * dispatcher can be used either directly or via [MainScope] factory. Usually such dispatcher is + * single-threaded. * - * Access to this property may throw [IllegalStateException] if no main thread dispatchers are present in the classpath. + * Access to this property may throw [IllegalStateException] if no main thread dispatchers are + * present in the classpath. * * Depending on platform and classpath it can be mapped to different dispatchers: * - On JS and Native it is equivalent of [Default] dispatcher. - * - On JVM it is either Android main thread dispatcher, JavaFx or Swing EDT dispatcher. It is chosen by + * - On JVM it is either Android main thread dispatcher, JavaFx or Swing EDT dispatcher. It is + * chosen by * [`ServiceLoader`](https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html). * - * In order to work with `Main` dispatcher, the following artifacts should be added to project runtime dependencies: - * - `kotlinx-coroutines-android` for Android Main thread dispatcher - * - `kotlinx-coroutines-javafx` for JavaFx Application thread dispatcher - * - `kotlinx-coroutines-swing` for Swing EDT dispatcher + * In order to work with `Main` dispatcher, the following artifacts should be added to project + * runtime dependencies: + * - `kotlinx-coroutines-android` for Android Main thread dispatcher + * - `kotlinx-coroutines-javafx` for JavaFx Application thread dispatcher + * - `kotlinx-coroutines-swing` for Swing EDT dispatcher * - * In order to set a custom `Main` dispatcher for testing purposes, add the `kotlinx-coroutines-test` artifact to - * project test dependencies. + * In order to set a custom `Main` dispatcher for testing purposes, add the + * `kotlinx-coroutines-test` artifact to project test dependencies. * - * Implementation note: [MainCoroutineDispatcher.immediate] is not supported on Native and JS platforms. + * Implementation note: [MainCoroutineDispatcher.immediate] is not supported on Native and JS + * platforms. */ public val Main: MainCoroutineDispatcher /** * The IO [CoroutineDispatcher] that behaves as [Dispatchers.IO] * - * A coroutine dispatcher that is not confined to any specific thread. - * It executes initial continuation of the coroutine in the current call-frame - * and lets the coroutine resume in whatever thread that is used by the corresponding suspending function, without - * mandating any specific threading policy. Nested coroutines launched in this dispatcher form an event-loop to avoid - * stack overflows. + * A coroutine dispatcher that is not confined to any specific thread. It executes initial + * continuation of the coroutine in the current call-frame and lets the coroutine resume in + * whatever thread that is used by the corresponding suspending function, without mandating any + * specific threading policy. Nested coroutines launched in this dispatcher form an event-loop to + * avoid stack overflows. * * ### Event loop - * Event loop semantics is a purely internal concept and have no guarantees on the order of execution - * except that all queued coroutines will be executed on the current thread in the lexical scope of the outermost - * unconfined coroutine. + * Event loop semantics is a purely internal concept and have no guarantees on the order of + * execution except that all queued coroutines will be executed on the current thread in the + * lexical scope of the outermost unconfined coroutine. * * For example, the following code: * ``` @@ -107,41 +114,41 @@ public interface RibDispatchersProvider { * } * println("Done") * ``` - * Can print both "1 2 3" and "1 3 2", this is an implementation detail that can be changed. - * But it is guaranteed that "Done" will be printed only when both `withContext` are completed. * + * Can print both "1 2 3" and "1 3 2", this is an implementation detail that can be changed. But + * it is guaranteed that "Done" will be printed only when both `withContext` are completed. * - * Note that if you need your coroutine to be confined to a particular thread or a thread-pool after resumption, - * but still want to execute it in the current call-frame until its first suspension, then you can use - * an optional [CoroutineStart] parameter in coroutine builders like - * [launch][kotlinx.coroutines.launch] and [async][kotlinx.coroutines.async] setting it to - * the value of [CoroutineStart.UNDISPATCHED]. + * Note that if you need your coroutine to be confined to a particular thread or a thread-pool + * after resumption, but still want to execute it in the current call-frame until its first + * suspension, then you can use an optional [CoroutineStart] parameter in coroutine builders like + * [launch][kotlinx.coroutines.launch] and [async][kotlinx.coroutines.async] setting it to the + * value of [CoroutineStart.UNDISPATCHED]. */ public val IO: CoroutineDispatcher /** * The Unconfined [CoroutineDispatcher] that behaves as [Dispatchers.Unconfined] * - * The [CoroutineDispatcher] that is designed for offloading blocking IO tasks to a shared pool of threads. + * The [CoroutineDispatcher] that is designed for offloading blocking IO tasks to a shared pool of + * threads. * - * Additional threads in this pool are created and are shutdown on demand. - * The number of threads used by tasks in this dispatcher is limited by the value of - * "`kotlinx.coroutines.io.parallelism`" ([IO_PARALLELISM_PROPERTY_NAME]) system property. - * It defaults to the limit of 64 threads or the number of cores (whichever is larger). + * Additional threads in this pool are created and are shutdown on demand. The number of threads + * used by tasks in this dispatcher is limited by the value of + * "`kotlinx.coroutines.io.parallelism`" ([IO_PARALLELISM_PROPERTY_NAME]) system property. It + * defaults to the limit of 64 threads or the number of cores (whichever is larger). * * Moreover, the maximum configurable number of threads is capped by the - * `kotlinx.coroutines.scheduler.max.pool.size` system property. - * If you need a higher number of parallel threads, - * you should use a custom dispatcher backed by your own thread pool. + * `kotlinx.coroutines.scheduler.max.pool.size` system property. If you need a higher number of + * parallel threads, you should use a custom dispatcher backed by your own thread pool. * * ### Implementation note * * This dispatcher shares threads with the [Default][Dispatchers.Default] dispatcher, so using - * `withContext(Dispatchers.IO) { ... }` when already running on the [Default][Dispatchers.Default] - * dispatcher does not lead to an actual switching to another thread — typically execution - * continues in the same thread. - * As a result of thread sharing, more than 64 (default parallelism) threads can be created (but not used) - * during operations over IO dispatcher. + * `withContext(Dispatchers.IO) { ... }` when already running on the + * [Default][Dispatchers.Default] dispatcher does not lead to an actual switching to another + * thread — typically execution continues in the same thread. As a result of thread sharing, + * more than 64 (default parallelism) threads can be created (but not used) during operations over + * IO dispatcher. */ public val Unconfined: CoroutineDispatcher } diff --git a/android/libraries/rib-router-navigator/src/main/kotlin/com/uber/rib/core/RouterAndState.kt b/android/libraries/rib-router-navigator/src/main/kotlin/com/uber/rib/core/RouterAndState.kt index 2f918227..2a009994 100644 --- a/android/libraries/rib-router-navigator/src/main/kotlin/com/uber/rib/core/RouterAndState.kt +++ b/android/libraries/rib-router-navigator/src/main/kotlin/com/uber/rib/core/RouterAndState.kt @@ -31,7 +31,7 @@ internal class RouterAndState, StateT : RouterNavigatorState>( val state: StateT, private val attachTransition: RouterNavigator.AttachTransition, detachTransition: RouterNavigator.DetachTransition?, - @get:VisibleForTesting val forceRouterCaching: Boolean = false + @get:VisibleForTesting val forceRouterCaching: Boolean = false, ) { private val routerAccessor = SafeRouterAccessor(attachTransition::buildRouter) @@ -60,15 +60,13 @@ internal class RouterAndState, StateT : RouterNavigatorState>( RouterDestroyerCallbackWrapper( baseCallback = wrapDetachTransitionIfNeed(detachTransition), onDestroy = { - routerAccessor.safeConditionalDestroy(state) { - !forceRouterCaching && !state.isCacheable() - } - } + routerAccessor.safeConditionalDestroy(state) { !forceRouterCaching && !state.isCacheable() } + }, ) } private fun wrapDetachTransitionIfNeed( - detachTransition: RouterNavigator.DetachTransition? + detachTransition: RouterNavigator.DetachTransition?, ): RouterNavigator.DetachCallback? { return (detachTransition as? RouterNavigator.DetachCallback) ?: detachTransition?.let { DetachCallbackWrapper(it) } @@ -79,14 +77,14 @@ internal class RouterAndState, StateT : RouterNavigatorState>( * format. */ private inner class DetachCallbackWrapper( - private val transitionCallback: RouterNavigator.DetachTransition + private val transitionCallback: RouterNavigator.DetachTransition, ) : RouterNavigator.DetachCallback() { override fun willDetachFromHost( router: R, previousState: StateT, newState: StateT?, - isPush: Boolean + isPush: Boolean, ) = transitionCallback.willDetachFromHost(router, previousState, newState, isPush) } @@ -96,14 +94,14 @@ internal class RouterAndState, StateT : RouterNavigatorState>( */ private inner class RouterDestroyerCallbackWrapper( private val baseCallback: RouterNavigator.DetachCallback?, - private val onDestroy: () -> Unit + private val onDestroy: () -> Unit, ) : RouterNavigator.DetachCallback() { override fun willDetachFromHost( router: R, previousState: StateT, newState: StateT?, - isPush: Boolean + isPush: Boolean, ) { baseCallback?.willDetachFromHost(router, previousState, newState, isPush) } @@ -115,34 +113,34 @@ internal class RouterAndState, StateT : RouterNavigatorState>( } private class SafeRouterAccessor>( - private val routerBuilder: () -> R + private val routerBuilder: () -> R, ) { private val lock = ReentrantLock() private var _router: R? = null val router: R - get() = lock.withLock { - _router ?: routerBuilder().let { newRouter -> - log("Router ${newRouter.javaClass.simpleName} was created") - _router = newRouter - newRouter + get() = + lock.withLock { + _router + ?: routerBuilder().let { newRouter -> + log("Router ${newRouter.javaClass.simpleName} was created") + _router = newRouter + newRouter + } + } + + fun safeOperation(operation: (R) -> Unit) = lock.withLock { operation(router) } + + fun safeConditionalDestroy(state: RouterNavigatorState, condition: () -> Boolean) = + lock.withLock { + if (condition.invoke()) { + _router?.javaClass?.simpleName?.let { routerName -> + log("Destroying router $routerName was destroyed") + _router = null + } + ?: run { log("Router of ${state.stateName()} state already destroyed") } } } - - fun safeOperation(operation: (R) -> Unit) = lock.withLock { - operation(router) - } - - fun safeConditionalDestroy(state: RouterNavigatorState, condition: () -> Boolean) = lock.withLock { - if (condition.invoke()) { - _router?.javaClass?.simpleName?.let { routerName -> - log("Destroying router $routerName was destroyed") - _router = null - } ?: run { - log("Router of ${state.stateName()} state already destroyed") - } - } - } } companion object { diff --git a/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/RouterAndStateTest.kt b/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/RouterAndStateTest.kt index 5404c7c1..e538f0f9 100644 --- a/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/RouterAndStateTest.kt +++ b/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/RouterAndStateTest.kt @@ -16,6 +16,8 @@ package com.uber.rib.core import com.google.common.truth.Truth.assertThat +import java.util.concurrent.CountDownLatch +import kotlin.concurrent.thread import org.junit.Test import org.mockito.kotlin.any import org.mockito.kotlin.anyOrNull @@ -26,8 +28,6 @@ import org.mockito.kotlin.mock import org.mockito.kotlin.same import org.mockito.kotlin.verify import org.mockito.kotlin.whenever -import java.util.concurrent.CountDownLatch -import kotlin.concurrent.thread class RouterAndStateTest { @@ -99,7 +99,6 @@ class RouterAndStateTest { @Test fun willAttachToHost_shouldCallProvidedAttachCallback() { - val routerAndState = RouterAndState(state, attachTransition, detachTransition) routerAndState.willAttachToHost(null, false) diff --git a/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/StackRouterNavigatorTest.kt b/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/StackRouterNavigatorTest.kt index 7a6cf231..b6b77e92 100644 --- a/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/StackRouterNavigatorTest.kt +++ b/android/libraries/rib-router-navigator/src/test/kotlin/com/uber/rib/core/StackRouterNavigatorTest.kt @@ -30,7 +30,7 @@ class StackRouterNavigatorTest { private enum class TestState : RouterNavigatorState { STATE_1, STATE_2, - STATE_3 + STATE_3, } private val hostRouter: Router<*> = mock() @@ -105,7 +105,10 @@ class StackRouterNavigatorTest { @Test fun pushRetained_whenChildRouterSwitchesStateImmediately_shouldSwitchToCorrectState() { val hostRouter: Router<*> = mock { - on { attachChild(router2) } doAnswer { routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) } + on { attachChild(router2) } doAnswer + { + routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) + } } routerNavigator = StackRouterNavigator(hostRouter) routerNavigator.pushRetainedState(TestState.STATE_1, attachTransition1, detachTransition1) @@ -126,7 +129,10 @@ class StackRouterNavigatorTest { @Test fun pushTransientDeprecated_whenChildRouterSwitchesStateImmediately_shouldSwitchToCorrectState() { val hostRouter: Router<*> = mock { - on { attachChild(router2) } doAnswer { routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) } + on { attachChild(router2) } doAnswer + { + routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) + } } routerNavigator = StackRouterNavigator(hostRouter) routerNavigator.pushRetainedState(TestState.STATE_1, attachTransition1, detachTransition1) @@ -157,8 +163,7 @@ class StackRouterNavigatorTest { routerNavigator.popState() verify(detachTransition3) .willDetachFromHost(router3, TestState.STATE_3, TestState.STATE_1, false) - verify(attachTransition1) - .willAttachToHost(router1, TestState.STATE_3, TestState.STATE_1, false) + verify(attachTransition1).willAttachToHost(router1, TestState.STATE_3, TestState.STATE_1, false) } @Test @@ -200,7 +205,7 @@ class StackRouterNavigatorTest { TestState.STATE_2, RouterNavigator.Flag.TRANSIENT, attachTransition2, - detachTransition2 + detachTransition2, ) verify(detachTransition1) .willDetachFromHost(router1, TestState.STATE_1, TestState.STATE_2, true) @@ -212,7 +217,10 @@ class StackRouterNavigatorTest { @Test fun pushDefault_whenChildRouterSwitchesStateImmediately_shouldSwitchToCorrectState() { val hostRouter: Router<*> = mock { - on { attachChild(router2) } doAnswer { routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) } + on { attachChild(router2) } doAnswer + { + routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) + } } routerNavigator = StackRouterNavigator(hostRouter) routerNavigator.pushState(TestState.STATE_1, attachTransition1, detachTransition1) @@ -233,7 +241,10 @@ class StackRouterNavigatorTest { @Test fun pushTransient_whenChildRouterSwitchesStateImmediately_shouldSwitchToCorrectState() { val hostRouter: Router<*> = mock { - on { attachChild(router2) } doAnswer { routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) } + on { attachChild(router2) } doAnswer + { + routerNavigator.pushState(TestState.STATE_3, attachTransition3, detachTransition3) + } } routerNavigator = StackRouterNavigator(hostRouter) routerNavigator.pushState(TestState.STATE_1, attachTransition1, detachTransition1) @@ -244,7 +255,7 @@ class StackRouterNavigatorTest { TestState.STATE_2, RouterNavigator.Flag.TRANSIENT, attachTransition2, - detachTransition2 + detachTransition2, ) verify(detachTransition1) .willDetachFromHost(router1, TestState.STATE_1, TestState.STATE_2, true) @@ -264,7 +275,7 @@ class StackRouterNavigatorTest { TestState.STATE_2, RouterNavigator.Flag.TRANSIENT, attachTransition2, - detachTransition2 + detachTransition2, ) verify(detachTransition1) .willDetachFromHost(router1, TestState.STATE_1, TestState.STATE_2, true) @@ -274,8 +285,7 @@ class StackRouterNavigatorTest { routerNavigator.popState() verify(detachTransition3) .willDetachFromHost(router3, TestState.STATE_3, TestState.STATE_1, false) - verify(attachTransition1) - .willAttachToHost(router1, TestState.STATE_3, TestState.STATE_1, false) + verify(attachTransition1).willAttachToHost(router1, TestState.STATE_3, TestState.STATE_1, false) } @Test @@ -286,7 +296,7 @@ class StackRouterNavigatorTest { TestState.STATE_3, RouterNavigator.Flag.CLEAR_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_3) routerNavigator.popState() @@ -305,7 +315,7 @@ class StackRouterNavigatorTest { TestState.STATE_1, RouterNavigator.Flag.CLEAR_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_1) routerNavigator.popState() @@ -323,7 +333,7 @@ class StackRouterNavigatorTest { TestState.STATE_1, RouterNavigator.Flag.CLEAR_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_1) routerNavigator.popState() @@ -343,7 +353,7 @@ class StackRouterNavigatorTest { TestState.STATE_3, RouterNavigator.Flag.SINGLE_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_3) routerNavigator.popState() @@ -362,7 +372,7 @@ class StackRouterNavigatorTest { TestState.STATE_1, RouterNavigator.Flag.SINGLE_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) verify(attachTransition3).willAttachToHost(router3, TestState.STATE_2, TestState.STATE_1, true) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_1) @@ -380,7 +390,7 @@ class StackRouterNavigatorTest { TestState.STATE_1, RouterNavigator.Flag.SINGLE_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) verify(attachTransition3, never()) .willAttachToHost(router3, TestState.STATE_2, TestState.STATE_1, true) @@ -399,7 +409,7 @@ class StackRouterNavigatorTest { TestState.STATE_3, RouterNavigator.Flag.REORDER_TO_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_3) routerNavigator.popState() @@ -418,7 +428,7 @@ class StackRouterNavigatorTest { TestState.STATE_1, RouterNavigator.Flag.REORDER_TO_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_1) routerNavigator.popState() @@ -438,7 +448,7 @@ class StackRouterNavigatorTest { TestState.STATE_1, RouterNavigator.Flag.REORDER_TO_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_1) routerNavigator.popState() @@ -458,7 +468,7 @@ class StackRouterNavigatorTest { TestState.STATE_3, RouterNavigator.Flag.NEW_TASK, attachTransition3, - detachTransition3 + detachTransition3, ) verify(detachTransition2).willDetachFromHost(router2, TestState.STATE_2, null, false) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_3) @@ -473,7 +483,7 @@ class StackRouterNavigatorTest { TestState.STATE_2, RouterNavigator.Flag.NEW_TASK, attachTransition3, - detachTransition3 + detachTransition3, ) verifyNoInteractions(detachTransition2) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_2) @@ -488,7 +498,7 @@ class StackRouterNavigatorTest { TestState.STATE_3, RouterNavigator.Flag.NEW_TASK_REPLACE, attachTransition3, - detachTransition3 + detachTransition3, ) verify(detachTransition2).willDetachFromHost(router2, TestState.STATE_2, null, false) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_3) @@ -503,7 +513,7 @@ class StackRouterNavigatorTest { TestState.STATE_2, RouterNavigator.Flag.NEW_TASK_REPLACE, attachTransition3, - detachTransition3 + detachTransition3, ) verify(detachTransition2).willDetachFromHost(router2, TestState.STATE_2, null, false) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_2) @@ -518,7 +528,7 @@ class StackRouterNavigatorTest { TestState.STATE_3, RouterNavigator.Flag.REPLACE_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_3) Truth.assertThat(routerNavigator.size()).isEqualTo(2) @@ -533,7 +543,7 @@ class StackRouterNavigatorTest { TestState.STATE_1, RouterNavigator.Flag.REPLACE_TOP, attachTransition3, - detachTransition3 + detachTransition3, ) Truth.assertThat(routerNavigator.peekState()).isEqualTo(TestState.STATE_1) Truth.assertThat(routerNavigator.size()).isEqualTo(1) @@ -547,8 +557,7 @@ class StackRouterNavigatorTest { verify(detachTransition2) .willDetachFromHost(router2, TestState.STATE_2, TestState.STATE_1, false) verify(hostRouter).detachChild(router2) - verify(attachTransition1) - .willAttachToHost(router1, TestState.STATE_2, TestState.STATE_1, false) + verify(attachTransition1).willAttachToHost(router1, TestState.STATE_2, TestState.STATE_1, false) } @Test @@ -559,7 +568,7 @@ class StackRouterNavigatorTest { TestState.STATE_3, RouterNavigator.Flag.TRANSIENT, attachTransition3, - detachTransition3 + detachTransition3, ) routerNavigator.popState() verify(detachTransition3) diff --git a/android/libraries/rib-router-navigator/src/test/kotlin/os/Bundle.kt b/android/libraries/rib-router-navigator/src/test/kotlin/os/Bundle.kt index 6f69997d..269efc70 100644 --- a/android/libraries/rib-router-navigator/src/test/kotlin/os/Bundle.kt +++ b/android/libraries/rib-router-navigator/src/test/kotlin/os/Bundle.kt @@ -15,7 +15,7 @@ */ package os -/** Stub class to have pure Java unit tests. */ +/** Stub class to have pure Java unit tests. */ class Bundle : Parcelable { private val testData: MutableMap = HashMap() diff --git a/android/libraries/rib-router-navigator/src/test/kotlin/os/Parcelable.kt b/android/libraries/rib-router-navigator/src/test/kotlin/os/Parcelable.kt index 50497b6b..4e5e149d 100644 --- a/android/libraries/rib-router-navigator/src/test/kotlin/os/Parcelable.kt +++ b/android/libraries/rib-router-navigator/src/test/kotlin/os/Parcelable.kt @@ -15,5 +15,5 @@ */ package os -/** Stub class to have pure Java unit tests. */ +/** Stub class to have pure Java unit tests. */ interface Parcelable diff --git a/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ScreenStackBase.kt b/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ScreenStackBase.kt index cfd077da..7bb11f8d 100644 --- a/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ScreenStackBase.kt +++ b/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ScreenStackBase.kt @@ -17,13 +17,12 @@ package com.uber.rib.core.screenstack import androidx.annotation.IntRange -/** Implementation of a view based screen stack. */ +/** Implementation of a view based screen stack. */ interface ScreenStackBase { /** * Pushes a new screen into the stack. The new screen view will have its type inspected in order * to manipulate the status bar background and icon colors. * - * * This will use the default animation. * * @param viewProvider to create a new view to be displayed. @@ -36,11 +35,11 @@ interface ScreenStackBase { * * @param viewProvider to create a new view to be displayed. * @param shouldAnimate whether the addition of the screen should be animated using the default - * transition. + * transition. */ fun pushScreen(viewProvider: ViewProvider, shouldAnimate: Boolean) - /** Removes the current screen from the stack. This will use animations. */ + /** Removes the current screen from the stack. This will use animations. */ fun popScreen() /** @@ -54,12 +53,11 @@ interface ScreenStackBase { /** * Pops back to the specified index. (Starting at 0). * - * * -1 will clear the entire stack, and restore any original content (if supported). * * @param index Index to pop back to. * @param shouldAnimate If true, we should animate to the final entry that we are popping to. If - * false, no animations will be used. + * false, no animations will be used. */ fun popBackTo(@IntRange(from = -1) index: Int, shouldAnimate: Boolean) @@ -85,6 +83,5 @@ interface ScreenStackBase { * * @return Size. */ - @IntRange(from = 0) - fun size(): Int + @IntRange(from = 0) fun size(): Int } diff --git a/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ViewProvider.kt b/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ViewProvider.kt index fb8eda21..3127dc22 100644 --- a/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ViewProvider.kt +++ b/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/ViewProvider.kt @@ -24,7 +24,7 @@ import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.rx2.asObservable -/** Interface to provide [View] instances to [ScreenStackBase]. */ +/** Interface to provide [View] instances to [ScreenStackBase]. */ abstract class ViewProvider { private val lifecycleFlow = MutableSharedFlow(1, 0, BufferOverflow.DROP_OLDEST) @@ -41,18 +41,18 @@ abstract class ViewProvider { */ abstract fun buildView(parentView: ViewGroup): View - /** @return an observable that emits events for this view provider's lifecycle. - */ + /** @return an observable that emits events for this view provider's lifecycle. */ open fun lifecycle(): Observable { return lifecycleFlow.asObservable() } /** - * Callers can implement this in order to complete additional work when a call to [ ][.onViewRemoved] is performed. + * Callers can implement this in order to complete additional work when a call to + * [ ][.onViewRemoved] is performed. */ protected open fun doOnViewRemoved() {} - /** Notifies the view provider that the view has been popped from the stack. */ + /** Notifies the view provider that the view has been popped from the stack. */ fun onViewRemoved() { lifecycleFlow.tryEmit(ScreenStackEvent.REMOVED) doOnViewRemoved() @@ -67,13 +67,13 @@ abstract class ViewProvider { return false } - /** Notifies the view provider that view is at the top of the stack and visible. */ + /** Notifies the view provider that view is at the top of the stack and visible. */ @CallSuper open fun onViewAppeared() { lifecycleFlow.tryEmit(ScreenStackEvent.APPEARED) } - /** Notifies the view provider that the view is no longer at the top of the stack. */ + /** Notifies the view provider that the view is no longer at the top of the stack. */ @CallSuper open fun onViewHidden() { lifecycleFlow.tryEmit(ScreenStackEvent.HIDDEN) diff --git a/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/lifecycle/ScreenStackEvent.kt b/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/lifecycle/ScreenStackEvent.kt index e9a7168d..d49dc6a3 100644 --- a/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/lifecycle/ScreenStackEvent.kt +++ b/android/libraries/rib-screen-stack-base/src/main/kotlin/com/uber/rib/core/screenstack/lifecycle/ScreenStackEvent.kt @@ -17,7 +17,10 @@ package com.uber.rib.core.screenstack.lifecycle import com.uber.rib.core.screenstack.ScreenStackBase -/** Lifecycle events that can be emitted by [ScreenStackBase] view providers. */ +/** Lifecycle events that can be emitted by [ScreenStackBase] view providers. */ enum class ScreenStackEvent { - BUILT, APPEARED, HIDDEN, REMOVED + BUILT, + APPEARED, + HIDDEN, + REMOVED, } diff --git a/android/libraries/rib-test/src/main/kotlin/com/uber/rib/core/AndroidRecordingRx2Observer.kt b/android/libraries/rib-test/src/main/kotlin/com/uber/rib/core/AndroidRecordingRx2Observer.kt index e71811a0..d5c2700d 100644 --- a/android/libraries/rib-test/src/main/kotlin/com/uber/rib/core/AndroidRecordingRx2Observer.kt +++ b/android/libraries/rib-test/src/main/kotlin/com/uber/rib/core/AndroidRecordingRx2Observer.kt @@ -56,11 +56,12 @@ public open class AndroidRecordingRx2Observer : Observer { } private inline fun takeEvent(wanted: Class): E { - val event: Any = try { - events.pollFirst(1, TimeUnit.SECONDS) - } catch (e: InterruptedException) { - throw RuntimeException(e) - } ?: throw NoSuchElementException("No event found while waiting for " + wanted.simpleName) + val event: Any = + try { + events.pollFirst(1, TimeUnit.SECONDS) + } catch (e: InterruptedException) { + throw RuntimeException(e) + } ?: throw NoSuchElementException("No event found while waiting for " + wanted.simpleName) assertThat(event).isInstanceOf(wanted) return event as E } diff --git a/android/libraries/rib-workflow-test/src/main/kotlin/com/uber/rib/workflow/core/StepTester.kt b/android/libraries/rib-workflow-test/src/main/kotlin/com/uber/rib/workflow/core/StepTester.kt index 6276ea7a..7752ff53 100644 --- a/android/libraries/rib-workflow-test/src/main/kotlin/com/uber/rib/workflow/core/StepTester.kt +++ b/android/libraries/rib-workflow-test/src/main/kotlin/com/uber/rib/workflow/core/StepTester.kt @@ -20,7 +20,7 @@ import com.google.common.truth.Truth.assertThat import io.reactivex.Observable import io.reactivex.observers.TestObserver -/** Utility to expose [Observable] instances on a [Step] for unit testing purposes. */ +/** Utility to expose [Observable] instances on a [Step] for unit testing purposes. */ object StepTester { /** * Exposes a [Step] instances observable for testing purposes. @@ -28,10 +28,12 @@ object StepTester { * @param step to expose observable for. * @param type of return value for a step. * @param type of next actionable item for a step. - * @return a [Observable] that runs the steps action. - */ + * @return a [Observable] that runs the steps action. + */ @JvmStatic - fun exposeObservable(step: Step): Observable>> { + fun exposeObservable( + step: Step, + ): Observable>> { return step.asObservable() } @@ -41,8 +43,8 @@ object StepTester { * @param step to expose data for. * @param type of return value for a step. * @param type of next actionable item for a step. - * @return the data of the step - */ + * @return the data of the step + */ @JvmStatic fun exposeStepData(step: Step.Data): T? { return step.getValue() @@ -53,11 +55,11 @@ object StepTester { * * @param testSubscriber the step subscriber to assert on. * @param type of return value for a step. - * @param type of next actionable item for a step. - */ + * @param type of next actionable item for a step. + */ @JvmStatic fun assertStepNotYetEmitted( - testSubscriber: TestObserver>> + testSubscriber: TestObserver>>, ) { testSubscriber.run { assertNoValues() @@ -71,11 +73,11 @@ object StepTester { * * @param testSubscriber the step subscriber to assert on. * @param type of return value for a step. - * @param type of next actionable item for a step. - */ + * @param type of next actionable item for a step. + */ @JvmStatic fun assertStepEmitted( - testSubscriber: TestObserver>> + testSubscriber: TestObserver>>, ) { testSubscriber.assertValueCount(1) val stepData: Optional> = testSubscriber.values()[0] diff --git a/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/ActionableItem.kt b/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/ActionableItem.kt index 889d1e4e..f7c2634d 100644 --- a/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/ActionableItem.kt +++ b/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/ActionableItem.kt @@ -18,11 +18,11 @@ package com.uber.rib.workflow.core import com.uber.rib.core.lifecycle.InteractorEvent import io.reactivex.Observable -/** Represents an item that [Step] operations can be performed on. */ +/** Represents an item that [Step] operations can be performed on. */ fun interface ActionableItem { /** * @return a lifecycle observable that can be observed so a workflow knows when to start a step - * for this actionable item. + * for this actionable item. */ fun lifecycle(): Observable } diff --git a/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Step.kt b/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Step.kt index 13feef75..912bad8b 100644 --- a/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Step.kt +++ b/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Step.kt @@ -28,8 +28,9 @@ import io.reactivex.functions.BiFunction * @param type of return value (if any) for this step. * @param type of [ActionableItem] this step returns when finished. */ -open class Step private constructor( - private val stepDataSingle: Single>> +open class Step +private constructor( + private val stepDataSingle: Single>>, ) { /** @@ -38,7 +39,7 @@ open class Step private constructor( * called. * * @param func to return the next step when this current step completes. This function will - * receive the result of the previous step and the next actionable item to take an action on. + * receive the result of the previous step and the next actionable item to take an action on. * @param the value type returned by the next step. * @param the actionable item type returned by the next step. * @return a [Step] to chain more calls to. @@ -54,7 +55,7 @@ open class Step private constructor( Observable.just(Optional.absent()) } } - .singleOrError() + .singleOrError(), ) } @@ -63,12 +64,12 @@ open class Step private constructor( } internal open fun asObservable(): Observable>> { - val cachedObservable: Observable>> = stepDataSingle.toObservable() - .observeOn(AndroidSchedulers.mainThread()) - .cache() + val cachedObservable: Observable>> = + stepDataSingle.toObservable().observeOn(AndroidSchedulers.mainThread()).cache() return cachedObservable.flatMap { dataOptional: Optional> -> if (dataOptional.isPresent) { - dataOptional.get() + dataOptional + .get() .actionableItem .lifecycle() .filter { interactorEvent -> interactorEvent === InteractorEvent.ACTIVE } @@ -98,8 +99,8 @@ open class Step private constructor( * * @param actionableItem to advance to. * @param type of actionable item. - * @return a new [Step.Data] instance. - */ + * @return a new [Step.Data] instance. + */ @JvmStatic fun toActionableItem(actionableItem: A): Data { return Data(NoValueHolder.INSTANCE, actionableItem) @@ -107,10 +108,10 @@ open class Step private constructor( } } - /** Used to indicate that a step has no return value. */ + /** Used to indicate that a step has no return value. */ open class NoValue - /** Initialization On Demand Singleton for [NoValue]. */ + /** Initialization On Demand Singleton for [NoValue]. */ private object NoValueHolder { val INSTANCE = NoValue() } @@ -142,7 +143,7 @@ open class Step private constructor( */ @JvmStatic fun fromOptional( - stepDataSingle: Single>> + stepDataSingle: Single>>, ): Step = Step(stepDataSingle) } } diff --git a/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Workflow.kt b/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Workflow.kt index 1d95bad4..862fdc12 100644 --- a/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Workflow.kt +++ b/android/libraries/rib-workflow/src/main/kotlin/com/uber/rib/workflow/core/Workflow.kt @@ -23,7 +23,8 @@ import io.reactivex.Single * * @param expected return value for the entire workflow. * @param initial [ActionableItem] type for this workflow. - */ + * + */ abstract class Workflow { /** * Creates a single to execute a workflow. @@ -41,6 +42,6 @@ abstract class Workflow { * @return steps to be performed for this workflow. */ protected abstract fun getSteps( - rootActionableItem: TRootActionableItem + rootActionableItem: TRootActionableItem, ): Step } diff --git a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/AndroidSchedulersRule.kt b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/AndroidSchedulersRule.kt index 8835b272..4244d3c7 100644 --- a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/AndroidSchedulersRule.kt +++ b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/AndroidSchedulersRule.kt @@ -18,21 +18,24 @@ package com.uber.rib.workflow.core import io.reactivex.Scheduler import io.reactivex.android.plugins.RxAndroidPlugins import io.reactivex.functions.Function +import java.util.concurrent.Callable import org.junit.rules.TestWatcher import org.junit.runner.Description -import java.util.concurrent.Callable /** * JUnit rule to set AndroidSchedulers for tests. Inlined into this module to facilitate testing. * * @param restoreHandlers if true, the rule will save off the original schedulers and restore them - * after. Almost always want this to be false and is so by default. + * after. Almost always want this to be false and is so by default. */ -class AndroidSchedulersRule @JvmOverloads constructor( - private val restoreHandlers: Boolean = false +class AndroidSchedulersRule +@JvmOverloads +constructor( + private val restoreHandlers: Boolean = false, ) : TestWatcher() { - private val delegatingMainThreadScheduler = DelegatingScheduler.forType(DelegatingScheduler.SchedulerType.MAIN_THREAD) + private val delegatingMainThreadScheduler = + DelegatingScheduler.forType(DelegatingScheduler.SchedulerType.MAIN_THREAD) private val originalInitMainThreadInitHandler: Function, Scheduler>? = null private val originalMainThreadHandler: Function? = null diff --git a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/DelegatingScheduler.kt b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/DelegatingScheduler.kt index 942f327a..f8ec4031 100644 --- a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/DelegatingScheduler.kt +++ b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/DelegatingScheduler.kt @@ -21,15 +21,16 @@ import io.reactivex.schedulers.Schedulers import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicReference -class DelegatingScheduler private constructor( - @get:VisibleForTesting val schedulerType: SchedulerType +class DelegatingScheduler +private constructor( + @get:VisibleForTesting val schedulerType: SchedulerType, ) : Scheduler() { private val activeScheduler = AtomicReference(Schedulers.trampoline()) @VisibleForTesting enum class SchedulerType { - MAIN_THREAD + MAIN_THREAD, } override fun createWorker(): Worker { diff --git a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/StepTest.kt b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/StepTest.kt index bff8b6e2..781871a0 100644 --- a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/StepTest.kt +++ b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/StepTest.kt @@ -32,7 +32,8 @@ class StepTest { @get:Rule var androidSchedulersRuleRx2 = AndroidSchedulersRule() private val interactorLifecycleSubject = BehaviorSubject.create() - private val returnValueSubject: PublishSubject>> = PublishSubject.create() + private val returnValueSubject: PublishSubject>> = + PublishSubject.create() private lateinit var step: Step @Before @@ -43,12 +44,15 @@ class StepTest { @Test fun asObservable_withInactiveLifecycle_shouldWaitForActiveLifecycleBeforeEmitting() { val returnValue = Any() - val testSubscriber: TestObserver>> = TestObserver>>() + val testSubscriber: TestObserver>> = + TestObserver>>() step.asObservable().subscribe(testSubscriber) testSubscriber.assertNoValues() testSubscriber.assertNoErrors() testSubscriber.assertNotComplete() - returnValueSubject.onNext(Optional.of(Data(returnValue, ActionableItem { interactorLifecycleSubject.hide() }))) + returnValueSubject.onNext( + Optional.of(Data(returnValue, ActionableItem { interactorLifecycleSubject.hide() })), + ) returnValueSubject.onComplete() testSubscriber.assertNoValues() testSubscriber.assertNoErrors() @@ -63,13 +67,16 @@ class StepTest { @Test fun asObservable_withActiveLifecycle_shouldEmitWithoutWaiting() { val returnValue = Any() - val testSubscriber: TestObserver>> = TestObserver>>() + val testSubscriber: TestObserver>> = + TestObserver>>() interactorLifecycleSubject.onNext(InteractorEvent.ACTIVE) step.asObservable().subscribe(testSubscriber) testSubscriber.assertNoValues() testSubscriber.assertNoErrors() testSubscriber.assertNotComplete() - returnValueSubject.onNext(Optional.of(Data(returnValue, ActionableItem { interactorLifecycleSubject.hide() }))) + returnValueSubject.onNext( + Optional.of(Data(returnValue, ActionableItem { interactorLifecycleSubject.hide() })), + ) returnValueSubject.onComplete() testSubscriber.assertValueCount(1) assertThat(testSubscriber.values()[0].get().getValue()).isEqualTo(returnValue) @@ -81,17 +88,20 @@ class StepTest { fun onStep_withASuccessFullFirstAction_shouldProperlyChainTheNextStep() { val returnValue = Any() val secondReturnValue = Any() - val testSubscriber: TestObserver>> = TestObserver>>() + val testSubscriber: TestObserver>> = + TestObserver>>() interactorLifecycleSubject.onNext(InteractorEvent.ACTIVE) - step.onStep { o, actionableItem -> - Step.from( - Observable.just(Data(secondReturnValue, actionableItem)) - .singleOrError() - ) - } + step + .onStep { o, actionableItem -> + Step.from( + Observable.just(Data(secondReturnValue, actionableItem)).singleOrError(), + ) + } .asObservable() .subscribe(testSubscriber) - returnValueSubject.onNext(Optional.of(Data(returnValue, ActionableItem { interactorLifecycleSubject.hide() }))) + returnValueSubject.onNext( + Optional.of(Data(returnValue, ActionableItem { interactorLifecycleSubject.hide() })), + ) returnValueSubject.onComplete() testSubscriber.assertValueCount(1) assertThat(testSubscriber.values()[0].get().getValue()).isEqualTo(secondReturnValue) @@ -101,14 +111,16 @@ class StepTest { @Test fun onStep_withAnUnsuccessfulFirstAction_shouldTerminateTheWholeChain() { - val testSubscriber: TestObserver>> = TestObserver>>() + val testSubscriber: TestObserver>> = + TestObserver>>() val secondReturnValue = Any() interactorLifecycleSubject.onNext(InteractorEvent.ACTIVE) - step.onStep { _, actionableItem -> - Step.from( - Observable.just(Data(secondReturnValue, actionableItem)).singleOrError() - ) - } + step + .onStep { _, actionableItem -> + Step.from( + Observable.just(Data(secondReturnValue, actionableItem)).singleOrError(), + ) + } .asObservable() .subscribe(testSubscriber) returnValueSubject.onNext(Optional.absent()) diff --git a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/WorkflowTest.kt b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/WorkflowTest.kt index b4ee351c..0942296b 100644 --- a/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/WorkflowTest.kt +++ b/android/libraries/rib-workflow/src/test/kotlin/com/uber/rib/workflow/core/WorkflowTest.kt @@ -34,7 +34,8 @@ class WorkflowTest { @get:Rule var androidSchedulersRuleRx2 = AndroidSchedulersRule() private val interactorLifecycleSubject = BehaviorSubject.create() - private val returnValueSubject: PublishSubject> = PublishSubject.create() + private val returnValueSubject: PublishSubject> = + PublishSubject.create() @Before fun setup() { @@ -50,11 +51,12 @@ class WorkflowTest { fun createSingle_shouldReturnASingleThatRunsTheWorkflow() { val actionableItem = ActionableItem { interactorLifecycleSubject } - val workflow: Workflow = object : Workflow() { - override fun getSteps(rootActionableItem: ActionableItem): Step { - return from(returnValueSubject.singleOrError()) + val workflow: Workflow = + object : Workflow() { + override fun getSteps(rootActionableItem: ActionableItem): Step { + return from(returnValueSubject.singleOrError()) + } } - } val testSubscriber = TestObserver>() workflow.createSingle(actionableItem).subscribe(testSubscriber) diff --git a/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibEventPayload.kt b/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibEventPayload.kt index 56dd8421..bada9ca2 100644 --- a/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibEventPayload.kt +++ b/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibEventPayload.kt @@ -31,7 +31,7 @@ internal class RibEventPayload( private val routerId: String, private val router: Router<*>, private val parentRouterId: String, - private val parentRouter: Router<*>? + private val parentRouter: Router<*>?, ) { companion object { @@ -50,17 +50,27 @@ internal class RibEventPayload( get() = eventType.toString() val flipperPayload: FlipperObject - get() = FlipperObject.Builder() - .put(EVENT_PARAMETER_SESSION_ID, sessionId) - .put(EVENT_PARAMETER_ROUTER, RibEventRouterPayload(routerId, router).flipperPayload) - .put(EVENT_PARAMETER_PARENT, RibEventRouterPayload(parentRouterId, parentRouter).flipperPayload) - .build() + get() = + FlipperObject.Builder() + .put(EVENT_PARAMETER_SESSION_ID, sessionId) + .put(EVENT_PARAMETER_ROUTER, RibEventRouterPayload(routerId, router).flipperPayload) + .put( + EVENT_PARAMETER_PARENT, + RibEventRouterPayload(parentRouterId, parentRouter).flipperPayload, + ) + .build() - internal class RibEventRouterPayload constructor(private val id: String, private val router: Router<*>?) { + internal class RibEventRouterPayload + constructor(private val id: String, private val router: Router<*>?) { val flipperPayload: FlipperObject get() { - val name = if (router is Router<*>) router.javaClass.simpleName.replace(ROUTER_NAME_PREFIX, "") else "" + val name = + if (router is Router<*>) { + router.javaClass.simpleName.replace(ROUTER_NAME_PREFIX, "") + } else { + "" + } val routerClassName = if (router is Router<*>) router.javaClass.simpleName else "" val hasView = router is ViewRouter<*, *> val activityClassName = if (router is ViewRouter<*, *>) getActivityClassName(router) else "" diff --git a/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreeMessageType.kt b/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreeMessageType.kt index 491b9f29..2947b298 100644 --- a/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreeMessageType.kt +++ b/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreeMessageType.kt @@ -17,5 +17,6 @@ package com.uber.rib.flipper /** Types of messages used by Rib Flipper Plugin. */ enum class RibTreeMessageType { - SHOW_HIGHLIGHT, HIDE_HIGHLIGHT + SHOW_HIGHLIGHT, + HIDE_HIGHLIGHT, } diff --git a/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreePlugin.kt b/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreePlugin.kt index 1d45dccb..c5819847 100644 --- a/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreePlugin.kt +++ b/android/tooling/rib-flipper-plugin/src/main/kotlin/com/uber/rib/flipper/RibTreePlugin.kt @@ -43,7 +43,8 @@ class RibTreePlugin : FlipperPlugin { private var disposable: Disposable? = null private val events: ReplaySubject = ReplaySubject.create(EVENTS_CAPACITY) private val sessionId: String = UUID.randomUUID().toString() - private val idsToOverlay: MutableMap> = HashMap>() + private val idsToOverlay: MutableMap> = + HashMap>() private val routersToId: WeakHashMap, String> = WeakHashMap, String>() companion object { @@ -73,9 +74,10 @@ class RibTreePlugin : FlipperPlugin { override fun onConnect(connection: FlipperConnection) { android.util.Log.d("RibTreeFlipperPlugin", "onConnect()") this.connection = connection - disposable = events.subscribe { e: RibEventPayload -> - this.connection?.send(e.eventName, e.flipperPayload) - } + disposable = + events.subscribe { e: RibEventPayload -> + this.connection?.send(e.eventName, e.flipperPayload) + } connection.receive(SHOW_HIGHLIGHT.toString()) { params: FlipperObject, _: FlipperResponder? -> val id: String = params.getString(EVENT_PARAMETER_ID) val router: Router<*>? = getRouterById(id) diff --git a/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/action/rib/GenerateAction.java b/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/action/rib/GenerateAction.java index 79ca9184..72e410da 100755 --- a/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/action/rib/GenerateAction.java +++ b/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/action/rib/GenerateAction.java @@ -150,7 +150,9 @@ public abstract class GenerateAction extends AnAction { }); } - /** @return gets the current package name for an executing action. */ + /** + * @return gets the current package name for an executing action. + */ protected final String getPackageName() { /** Preconditions have been validated by {@link GenerateAction#isAvailable(DataContext)}. */ final Project project = Preconditions.checkNotNull(CommonDataKeys.PROJECT.getData(dataContext)); diff --git a/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/generator/Generator.java b/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/generator/Generator.java index 1f8dd026..005f0625 100755 --- a/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/generator/Generator.java +++ b/android/tooling/rib-intellij-plugin/src/main/java/com/uber/presidio/intellij_plugin/generator/Generator.java @@ -107,15 +107,21 @@ public abstract class Generator { } } - /** @return the class name for the generated file. */ + /** + * @return the class name for the generated file. + */ public abstract String getClassName(); - /** @return the package name for the generated file. */ + /** + * @return the package name for the generated file. + */ public final String getPackageName() { return packageName; } - /** @return the rib name for the generator. */ + /** + * @return the rib name for the generator. + */ public final String getRibName() { return ribName; } @@ -129,12 +135,16 @@ public abstract class Generator { return ".java"; } - /** @return the template values map, to add more template paramters. */ + /** + * @return the template values map, to add more template paramters. + */ protected final Map getTemplateValuesMap() { return templateValuesMap; } - /** @return the source for the generated file. */ + /** + * @return the source for the generated file. + */ public final String generate() { StrSubstitutor substitutor = new StrSubstitutor(templateValuesMap); String newFile = substitutor.replace(templateString); diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/AndroidDeviceRepository.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/AndroidDeviceRepository.kt index 6621a81c..1d4080c8 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/AndroidDeviceRepository.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/AndroidDeviceRepository.kt @@ -26,7 +26,8 @@ import org.jetbrains.android.sdk.AndroidSdkUtils /** IntelliJ Project component responsible for exposing connected Android devices. */ @Service(PROJECT) -class AndroidDeviceRepository(val project: Project) : AndroidDebugBridge.IDeviceChangeListener, Disposable { +class AndroidDeviceRepository(val project: Project) : + AndroidDebugBridge.IDeviceChangeListener, Disposable { private val devices: ArrayList = arrayListOf() private val listeners: ArrayList = arrayListOf() diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/CommandLineUtils.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/CommandLineUtils.kt index e73e9b7d..3e297ff9 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/CommandLineUtils.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/CommandLineUtils.kt @@ -56,9 +56,8 @@ object CommandLineUtils { fun executeWithLineOutput( project: Project, command: String, - vararg params: String + vararg params: String, ): ProcessOutput { - val commandLine = GeneralCommandLine(command) for (p in params) { commandLine.addParameter(p) @@ -69,7 +68,8 @@ object CommandLineUtils { process.waitFor() return ProcessOutput( - consumeInputStream(process.inputStream), consumeInputStream(process.errorStream) + consumeInputStream(process.inputStream), + consumeInputStream(process.errorStream), ) } diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyBrowser.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyBrowser.kt index 23948a76..0c47e380 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyBrowser.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyBrowser.kt @@ -58,7 +58,7 @@ class RibHierarchyBrowser( project: Project, initialModel: Model, private val rootElement: PsiElement, - private val selectionListener: Listener? + private val selectionListener: Listener?, ) : HierarchyBrowserBase(project, rootElement) { companion object { @@ -95,7 +95,7 @@ class RibHierarchyBrowser( data class Model( val host: RibHost, val selectedRibId: String = "", - val selectedViewId: String = "" + val selectedViewId: String = "", ) private val ribProjectService: RibProjectService = project.service() @@ -169,12 +169,15 @@ class RibHierarchyBrowser( override fun createHierarchyTreeStructure( typeName: String, - psiElement: PsiElement + psiElement: PsiElement, ): HierarchyTreeStructure? { if (psiElement == rootElement) { val rootDescriptor = RibHierarchyRootNodeDescriptor( - project, getPsiClass(project, model.host.name), model.host, status + project, + getPsiClass(project, model.host.name), + model.host, + status, ) return RibHierarchyTreeStructure(project, rootDescriptor) } @@ -207,9 +210,7 @@ class RibHierarchyBrowser( } else -> {} } - ApplicationManager.getApplication().invokeLater { - ribProjectService.refreshRibHierarchy() - } + ApplicationManager.getApplication().invokeLater { ribProjectService.refreshRibHierarchy() } } /** Request to update hierarchy with provided model */ @@ -239,7 +240,7 @@ class RibHierarchyBrowser( com.intellij.ide.actions.RefreshAction( IdeBundle.message("action.refresh"), IdeBundle.message("action.refresh"), - AllIcons.Actions.Refresh + AllIcons.Actions.Refresh, ) { override fun actionPerformed(e: AnActionEvent) { @@ -262,7 +263,11 @@ class RibHierarchyBrowser( ribProjectService.enableLocateMode() if (!popupDisplayed) { - displayPopup(LOCATE_VIEW, RelativePoint.getSouthOf(this@RibHierarchyBrowser), MessageType.INFO) + displayPopup( + LOCATE_VIEW, + RelativePoint.getSouthOf(this@RibHierarchyBrowser), + MessageType.INFO, + ) popupDisplayed = true } } @@ -276,11 +281,13 @@ class RibHierarchyBrowser( AnAction( IdeBundle.message("action.help"), IdeBundle.message("action.help"), - AllIcons.General.TodoQuestion + AllIcons.General.TodoQuestion, ) { override fun actionPerformed(e: AnActionEvent) { - BrowserUtil.open("https://github.com/uber/RIBs/wiki/Android-Tooling#ribs-intellij-plugin-for-android") + BrowserUtil.open( + "https://github.com/uber/RIBs/wiki/Android-Tooling#ribs-intellij-plugin-for-android", + ) } override fun update(event: AnActionEvent) { diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyPanel.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyPanel.kt index 639c922e..8163fb38 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyPanel.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyPanel.kt @@ -24,6 +24,7 @@ import com.intellij.uiDesigner.core.GridLayoutManager import com.uber.intellij.plugin.android.rib.RibHierarchyBrowser.Model import com.uber.intellij.plugin.android.rib.RibHierarchyUtils.Companion.findRibNodeRecursive import com.uber.intellij.plugin.android.rib.RibHierarchyUtils.Companion.findRibViewRecursive +import com.uber.intellij.plugin.android.rib.RibViewBrowser.Model as ViewModel import com.uber.intellij.plugin.android.rib.io.RibNode import com.uber.intellij.plugin.android.rib.io.RibView import java.awt.Insets @@ -35,7 +36,6 @@ import javax.swing.JComboBox import javax.swing.JPanel import javax.swing.JSplitPane import javax.swing.JSplitPane.RIGHT -import com.uber.intellij.plugin.android.rib.RibViewBrowser.Model as ViewModel /** UI Component representing the panel including rib hierarchy. */ class RibHierarchyPanel(val project: Project, private val initialModel: Model) : @@ -85,8 +85,8 @@ class RibHierarchyPanel(val project: Project, private val initialModel: Model) : null, null, 0, - false - ) + false, + ), ) ribBrowser = RibHierarchyBrowser(project, model, rootElement, this) @@ -107,8 +107,8 @@ class RibHierarchyPanel(val project: Project, private val initialModel: Model) : null, null, 0, - false - ) + false, + ), ) } @@ -148,15 +148,23 @@ class RibHierarchyPanel(val project: Project, private val initialModel: Model) : val rootRibNode: RibNode = this.model.host.application?.activities?.first()?.rootRib ?: return val ribNode: RibNode? = findRibNodeRecursive(rootRibNode, id) val ribView: RibView? = - if (ribNode?.view?.id?.isNotEmpty() == true) + if (ribNode?.view?.id?.isNotEmpty() == true) { findRibViewRecursive(rootRibNode.view, UUID.fromString(ribNode?.view?.id)) - else null + } else { + null + } val model = - if (ribNode != null && ribView != null) + if (ribNode != null && ribView != null) { ViewModel( - ribNode, ribView, rootRibNode, this.model.selectedRibId, this.model.selectedViewId + ribNode, + ribView, + rootRibNode, + this.model.selectedRibId, + this.model.selectedViewId, ) - else EMPTY_VIEW_MODEL + } else { + EMPTY_VIEW_MODEL + } val previousDividerLocation = splitPane.dividerLocation viewBrowser = RibViewBrowser(project, model, rootElement, this) diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyUtils.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyUtils.kt index 25df1a2c..77c177da 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyUtils.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibHierarchyUtils.kt @@ -168,7 +168,7 @@ class RibHierarchyUtils { fun displayPopup( message: String, location: RelativePoint, - type: MessageType = MessageType.WARNING + type: MessageType = MessageType.WARNING, ) { JBPopupFactory.getInstance() .createHtmlTextBalloonBuilder(message, type, null) diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibProjectService.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibProjectService.kt index da35badf..edd0e288 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibProjectService.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibProjectService.kt @@ -110,11 +110,12 @@ class RibProjectService(val project: Project) : AndroidDeviceRepository.Listener isRefreshing = false } }, - executor + executor, ) } } - }) + }, + ) } } @@ -157,7 +158,7 @@ class RibProjectService(val project: Project) : AndroidDeviceRepository.Listener RibHierarchyBrowser.Model( RibHost(payload.name, payload.application), payload.selectedRibId, - payload.selectedViewId + payload.selectedViewId, ) onModelUpdated(model) } @@ -167,11 +168,12 @@ class RibProjectService(val project: Project) : AndroidDeviceRepository.Listener LogcatRequestProcessor().execute(EnableLocateModeRequest(device, false)) } }, - executor + executor, ) } } - }) + }, + ) } fun selectDevice(device: IDevice?) { diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibViewBrowser.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibViewBrowser.kt index 3eb9b32c..84a25d9f 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibViewBrowser.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/RibViewBrowser.kt @@ -49,7 +49,7 @@ class RibViewBrowser( project: Project, private val model: Model, private val rootElement: PsiElement, - private val selectionListener: Listener? + private val selectionListener: Listener?, ) : HierarchyBrowserBase(project, rootElement) { companion object { @@ -77,7 +77,7 @@ class RibViewBrowser( val ribView: RibView, val rootRib: RibNode, val selectedRibId: String = "", - val selectedViewId: String = "" + val selectedViewId: String = "", ) private var hasFocus: Boolean = false @@ -130,7 +130,7 @@ class RibViewBrowser( override fun createHierarchyTreeStructure( typeName: String, - psiElement: PsiElement + psiElement: PsiElement, ): HierarchyTreeStructure? { val rootDescriptor = RibViewRootNodeDescriptor(project, psiElement, model.ribNode, model.ribView) @@ -150,7 +150,8 @@ class RibViewBrowser( hasFocus = true notifySelectedViewChanged() } - }) + }, + ) tree.addTreeSelectionListener { notifySelectedViewChanged() } @@ -160,7 +161,8 @@ class RibViewBrowser( if (model.selectedViewId.isNotEmpty() && this.model.ribNode.id == this.model.selectedRibId) { val ribView: RibView = RibHierarchyUtils.findRibViewRecursive( - this.model.rootRib.view, UUID.fromString(model.selectedViewId) + this.model.rootRib.view, + UUID.fromString(model.selectedViewId), ) ?: return@invokeLater selectionListener?.onSelectedViewChanged(ribView) @@ -175,9 +177,10 @@ class RibViewBrowser( val node: Any? = currentTree.lastSelectedPathComponent if (node is DefaultMutableTreeNode && hasFocus) { val descriptor = node.userObject - if (descriptor is RibViewNodeDescriptor && - descriptor.ribView != null && - descriptor.ribView.id.isNotEmpty() + if ( + descriptor is RibViewNodeDescriptor && + descriptor.ribView != null && + descriptor.ribView.id.isNotEmpty() ) { selectionListener?.onSelectedViewChanged(descriptor.ribView) } diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/LogcatRequestProcessor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/LogcatRequestProcessor.kt index a8f71002..4a820a1f 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/LogcatRequestProcessor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/LogcatRequestProcessor.kt @@ -57,8 +57,7 @@ class LogcatRequestProcessor : RequestProcessor { val sequence: Int = counter.getAndIncrement() % MAX_SEQUENCE // Send command to Android device via intent broadcast - var shellCommand: String = - String.format(SHELL_COMMAND_TEMPLATE, sequence, request.command) + var shellCommand: String = String.format(SHELL_COMMAND_TEMPLATE, sequence, request.command) request.params.forEach { shellCommand += String.format(PARAM_TEMPLATE, it.first, it.second) } @@ -98,14 +97,14 @@ class LogcatRequestProcessor : RequestProcessor { error("Command failed: ${response.errorDescription}") } result as T - } + }, ) } private inner class LogCatOutputReceiver( private val device: IDevice, private val clazz: Class, - private val parser: LogCatMessageParser + private val parser: LogCatMessageParser, ) : MultiLineReceiver() { private val decoder: LogcatMessageDecoder = LogcatMessageDecoder() diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/Request.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/Request.kt index ae184bf8..1f0eab1c 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/Request.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/Request.kt @@ -33,5 +33,5 @@ open class Request( val clazz: Class, val params: List> = emptyList(), val timeoutMs: Int = 2000, - val numRetries: Int = 1 + val numRetries: Int = 1, ) diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHierarchyRequest.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHierarchyRequest.kt index 556de567..fe34af37 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHierarchyRequest.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHierarchyRequest.kt @@ -38,7 +38,7 @@ data class RibNode( val id: String, val name: String, val children: List, - val view: RibView + val view: RibView, ) /** @@ -55,7 +55,7 @@ data class RibView( val name: String, val viewId: String, val layoutId: String, - val children: List + val children: List, ) /** Data class representing the response of the Rib hierarchy request. */ diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHighlightRequest.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHighlightRequest.kt index ee651e99..16373aab 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHighlightRequest.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibHighlightRequest.kt @@ -27,5 +27,5 @@ class RibHighlightRequest(device: IDevice, id: UUID) : device, "RIB_HIGHLIGHT", RibHighlightResponse::class.java, - listOf(Pair("ID", id), Pair("VISIBLE", true)) + listOf(Pair("ID", id), Pair("VISIBLE", true)), ) diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibLocateRequest.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibLocateRequest.kt index 869f4271..f9427204 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibLocateRequest.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/io/RibLocateRequest.kt @@ -29,7 +29,7 @@ data class RibHostWithSelection( val name: String, val application: RibApplication?, val selectedRibId: String, - val selectedViewId: String + val selectedViewId: String, ) /** @@ -48,7 +48,7 @@ class EnableLocateModeRequest(device: IDevice, enabled: Boolean) : RibHierarchyWithSelectionResponse::class.java, listOf(Pair("VISIBLE", enabled)), TIMEOUT_MS, - NUM_RETRIES + NUM_RETRIES, ) { companion object { private const val TIMEOUT_MS = 1000 diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/HierarchyBrowserBase.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/HierarchyBrowserBase.kt index 18169d78..36fa3f8a 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/HierarchyBrowserBase.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/HierarchyBrowserBase.kt @@ -57,14 +57,14 @@ abstract class HierarchyBrowserBase(val project: Project, private val rootElemen TreeSpeedSearch(tree, { path -> path.lastPathComponent.toString() }, true) TreeUtil.installActions(tree) object : AutoScrollToSourceHandler() { - override fun isAutoScrollMode(): Boolean { - return HierarchyBrowserManager.getSettings(myProject).IS_AUTOSCROLL_TO_SOURCE - } + override fun isAutoScrollMode(): Boolean { + return HierarchyBrowserManager.getSettings(myProject).IS_AUTOSCROLL_TO_SOURCE + } - override fun setAutoScrollMode(state: Boolean) { - HierarchyBrowserManager.getSettings(myProject).IS_AUTOSCROLL_TO_SOURCE = state + override fun setAutoScrollMode(state: Boolean) { + HierarchyBrowserManager.getSettings(myProject).IS_AUTOSCROLL_TO_SOURCE = state + } } - } .install(tree) } @@ -93,7 +93,7 @@ abstract class HierarchyBrowserBase(val project: Project, private val rootElemen } return TreeVisitor.Action.CONTINUE } - } + }, ) } } diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyActivityDescriptor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyActivityDescriptor.kt index 6a046150..410014e5 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyActivityDescriptor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyActivityDescriptor.kt @@ -31,7 +31,7 @@ class RibHierarchyActivityDescriptor( project: Project, parentDescriptor: HierarchyNodeDescriptor?, private val clazz: PsiClass, - val ribActivity: RibActivity + val ribActivity: RibActivity, ) : RibHierarchyDescriptor(project, parentDescriptor, clazz, false) { override fun updateText(text: CompositeAppearance) { diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyApplicationDescriptor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyApplicationDescriptor.kt index ef37c854..9e7bb4de 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyApplicationDescriptor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyApplicationDescriptor.kt @@ -29,7 +29,7 @@ class RibHierarchyApplicationDescriptor( project: Project, parentDescriptor: HierarchyNodeDescriptor?, private val clazz: PsiClass, - val ribApplication: RibApplication + val ribApplication: RibApplication, ) : RibHierarchyDescriptor(project, parentDescriptor, clazz, false) { override fun updateText(text: CompositeAppearance) { diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyDescriptor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyDescriptor.kt index 95fcd0c0..46d372d3 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyDescriptor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyDescriptor.kt @@ -31,7 +31,7 @@ open class RibHierarchyDescriptor( project: Project, val parentDescriptor: HierarchyNodeDescriptor?, val element: PsiElement, - isBase: Boolean + isBase: Boolean, ) : HierarchyNodeDescriptor(project, parentDescriptor, element, isBase) { /** Method to set text of the node entry. */ @@ -59,8 +59,11 @@ open class RibHierarchyDescriptor( /** Return default text attributes. */ fun getDefaultTextAttributes(isError: Boolean = false): TextAttributes { val font: Int = if (myIsBase) Font.BOLD else Font.PLAIN - return if (isError) TextAttributes(myColor, null, Color.red, EffectType.WAVE_UNDERSCORE, font) - else TextAttributes(myColor, null, null, null, font) + return if (isError) { + TextAttributes(myColor, null, Color.red, EffectType.WAVE_UNDERSCORE, font) + } else { + TextAttributes(myColor, null, null, null, font) + } } /** Return icon to display. */ diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyNodeDescriptor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyNodeDescriptor.kt index 65a83845..84a2c542 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyNodeDescriptor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyNodeDescriptor.kt @@ -28,7 +28,7 @@ class RibHierarchyNodeDescriptor( project: Project, parentDescriptor: HierarchyNodeDescriptor?, private val clazz: PsiClass, - val ribNode: RibNode + val ribNode: RibNode, ) : RibHierarchyDescriptor(project, parentDescriptor, clazz, false) { override fun updateText(text: CompositeAppearance) { diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyRootNodeDescriptor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyRootNodeDescriptor.kt index 789941bb..d71dadf6 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyRootNodeDescriptor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyRootNodeDescriptor.kt @@ -31,7 +31,7 @@ class RibHierarchyRootNodeDescriptor( project: Project, element: PsiElement, val ribHost: RibHost, - private val status: RibHierarchyBrowser.Status + private val status: RibHierarchyBrowser.Status, ) : RibHierarchyDescriptor(project, null, element, true) { private val deviceRepository: AndroidDeviceRepository = project.service() diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyTreeStructure.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyTreeStructure.kt index 7194ba43..fbb58d0d 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyTreeStructure.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyTreeStructure.kt @@ -38,8 +38,8 @@ class RibHierarchyTreeStructure(private val project: Project, descriptor: Hierar myProject, descriptor, RibHierarchyUtils.getPsiClass(project, descriptor.ribHost.name), - it - ) + it, + ), ) } } @@ -50,8 +50,8 @@ class RibHierarchyTreeStructure(private val project: Project, descriptor: Hierar myProject, descriptor, RibHierarchyUtils.getPsiClass(project, activity.name), - activity - ) + activity, + ), ) } } @@ -61,8 +61,8 @@ class RibHierarchyTreeStructure(private val project: Project, descriptor: Hierar myProject, descriptor, RibHierarchyUtils.getPsiClass(project, descriptor.ribActivity.name), - descriptor.ribActivity.rootRib - ) + descriptor.ribActivity.rootRib, + ), ) } is RibHierarchyNodeDescriptor -> { @@ -72,8 +72,8 @@ class RibHierarchyTreeStructure(private val project: Project, descriptor: Hierar myProject, descriptor, RibHierarchyUtils.getPsiClass(project, childRibNode.name), - childRibNode - ) + childRibNode, + ), ) } } @@ -84,8 +84,8 @@ class RibHierarchyTreeStructure(private val project: Project, descriptor: Hierar myProject, RibHierarchyUtils.getPsiClass(project, view.id), descriptor.ribNode, - view - ) + view, + ), ) } } @@ -96,8 +96,8 @@ class RibHierarchyTreeStructure(private val project: Project, descriptor: Hierar myProject, RibHierarchyUtils.getPsiClass(project, view.id), descriptor.ribNode, - view - ) + view, + ), ) } } diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewNodeDescriptor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewNodeDescriptor.kt index 8061cf77..756eafae 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewNodeDescriptor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewNodeDescriptor.kt @@ -38,7 +38,7 @@ open class RibViewNodeDescriptor( project: Project, element: PsiElement, val ribNode: RibNode, - val ribView: RibView? + val ribView: RibView?, ) : RibHierarchyDescriptor(project, null, element, false) { override fun updateText(text: CompositeAppearance) { @@ -56,7 +56,8 @@ open class RibViewNodeDescriptor( if (ribView.name.isNotEmpty()) { text.ending.addText( - " (${RibHierarchyUtils.formatQualifiedName(ribView.name)})", getPackageNameAttributes() + " (${RibHierarchyUtils.formatQualifiedName(ribView.name)})", + getPackageNameAttributes(), ) } } diff --git a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewRootNodeDescriptor.kt b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewRootNodeDescriptor.kt index cee9df05..2843ecf4 100644 --- a/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewRootNodeDescriptor.kt +++ b/android/tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibViewRootNodeDescriptor.kt @@ -36,7 +36,7 @@ class RibViewRootNodeDescriptor( private val nonNullProject: Project, element: PsiElement, ribNode: RibNode, - ribView: RibView? + ribView: RibView?, ) : RibViewNodeDescriptor(nonNullProject, element, ribNode, ribView) { override fun updateText(text: CompositeAppearance) { @@ -46,7 +46,7 @@ class RibViewRootNodeDescriptor( } text.ending.addText( RibHierarchyUtils.formatSimpleName(ribNode.name).replace("Router", "View"), - getDefaultTextAttributes() + getDefaultTextAttributes(), ) if (ribView != null && ribView.layoutId.isNotEmpty()) { val boldFont = TextAttributes(myColor, null, null, null, Font.BOLD) diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootBuilder.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootBuilder.java index d6d7d6e6..1ed8172a 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootBuilder.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootBuilder.java @@ -21,7 +21,7 @@ import android.view.LayoutInflater; import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; import com.uber.rib.tutorial1.R; import dagger.Binds; import dagger.BindsInstance; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootRouter.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootRouter.java index fc1a4992..983e09f4 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootRouter.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/RootRouter.java @@ -17,8 +17,8 @@ package com.uber.rib.root; import androidx.annotation.Nullable; import com.uber.rib.core.ViewRouter; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutRouter; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutRouter; /** Adds and removes children of {@link RootBuilder.RootScope}. */ public class RootRouter extends ViewRouter { diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java similarity index 98% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java index a7dc157c..1ae46f43 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java similarity index 97% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java index f31232f6..5b99d809 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java similarity index 95% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java index d16eab12..d5e29f7f 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.ViewRouter; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java similarity index 97% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java index 104cdb26..886d0666 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import android.content.Context; import android.util.AttributeSet; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java similarity index 97% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java index ecdb8ec5..a3fcd511 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import javax.inject.Inject; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java similarity index 94% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java index fea509d4..75e0760a 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; class BoardCoordinate { diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java similarity index 98% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java index 3867d895..e9e462f7 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java similarity index 96% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java index ec59842d..fa0f4564 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.Board.MarkerType; +import com.uber.rib.root.loggedIn.ticTacToe.Board.MarkerType; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java similarity index 95% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java index 51095cac..78cf3327 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.ViewRouter; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java similarity index 98% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java index 91ca7347..6050f2a1 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java similarity index 98% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java index 215fd51e..0fb72385 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java similarity index 93% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java index 6df79102..cc5cd480 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.util.Log; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutBuilder.LoggedOutScope; +import com.uber.rib.root.loggedOut.LoggedOutBuilder.LoggedOutScope; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java similarity index 96% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java index 7ae9a757..72828922 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.ViewRouter; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java similarity index 97% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java rename to android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java index c949816e..134b4a98 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java +++ b/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial2/src/main/res/layout/logged_out_rib.xml b/android/tutorials/tutorial2/src/main/res/layout/logged_out_rib.xml index e58b1972..1e0b5b9c 100644 --- a/android/tutorials/tutorial2/src/main/res/layout/logged_out_rib.xml +++ b/android/tutorials/tutorial2/src/main/res/layout/logged_out_rib.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android/tutorials/tutorial2/src/main/res/layout/off_game_rib.xml b/android/tutorials/tutorial2/src/main/res/layout/off_game_rib.xml index 324e5921..f3f46f96 100644 --- a/android/tutorials/tutorial2/src/main/res/layout/off_game_rib.xml +++ b/android/tutorials/tutorial2/src/main/res/layout/off_game_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/tutorials/tutorial2/src/main/res/layout/tic_tac_toe_rib.xml b/android/tutorials/tutorial2/src/main/res/layout/tic_tac_toe_rib.xml index 372ce541..30fd6581 100644 --- a/android/tutorials/tutorial2/src/main/res/layout/tic_tac_toe_rib.xml +++ b/android/tutorials/tutorial2/src/main/res/layout/tic_tac_toe_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/RootRouterTest.java b/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/RootRouterTest.java index e9b7f6a4..2594a43b 100644 --- a/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/RootRouterTest.java +++ b/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/RootRouterTest.java @@ -15,7 +15,7 @@ */ package com.uber.rib.root; -import com.uber.rib.root.logged_out.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java b/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java similarity index 97% rename from android/tutorials/tutorial2/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java rename to android/tutorials/tutorial2/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java index 98a29756..676de9e0 100644 --- a/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java +++ b/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java b/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java similarity index 96% rename from android/tutorials/tutorial2/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java rename to android/tutorials/tutorial2/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java index 223453fb..bdc3d414 100644 --- a/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java +++ b/android/tutorials/tutorial2/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootBuilder.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootBuilder.java index d3791825..b54801c1 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootBuilder.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootBuilder.java @@ -21,9 +21,9 @@ import android.view.LayoutInflater; import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import com.uber.rib.tutorial1.R; import dagger.Binds; import dagger.BindsInstance; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootInteractor.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootInteractor.java index e379c0b6..9b3a28ed 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootInteractor.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootInteractor.java @@ -19,7 +19,7 @@ import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import javax.inject.Inject; /** Coordinates Business Logic for {@link RootBuilder.RootScope}. */ diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootRouter.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootRouter.java index 65fddf16..a72dd1a4 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootRouter.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/RootRouter.java @@ -17,9 +17,9 @@ package com.uber.rib.root; import androidx.annotation.Nullable; import com.uber.rib.core.ViewRouter; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutRouter; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutRouter; /** Adds and removes children of {@link RootBuilder.RootScope}. */ public class RootRouter extends ViewRouter { diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java similarity index 93% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java index 3adb9989..ec3fe4cf 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import static java.lang.annotation.RetentionPolicy.CLASS; @@ -21,10 +21,10 @@ import com.uber.rib.core.Builder; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.root.RootView; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeInteractor; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeInteractor; import dagger.Binds; import dagger.BindsInstance; import dagger.Provides; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java similarity index 92% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java index 89027500..d5901671 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeInteractor; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeInteractor; import javax.inject.Inject; /** Coordinates Business Logic for {@link LoggedInScope}. */ diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java similarity index 88% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java index 2cf19db1..bea5b5de 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import android.view.ViewGroup; import com.uber.rib.core.Router; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameRouter; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeRouter; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameRouter; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeRouter; /** Adds and removes children of {@link LoggedInBuilder.LoggedInScope}. */ public class LoggedInRouter extends Router { diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/MutableScoreStream.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/MutableScoreStream.java similarity index 97% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/MutableScoreStream.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/MutableScoreStream.java index db8d9421..942eeb78 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/MutableScoreStream.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/MutableScoreStream.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.google.common.collect.ImmutableMap; import com.jakewharton.rxrelay2.BehaviorRelay; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/ScoreStream.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ScoreStream.java similarity index 95% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/ScoreStream.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ScoreStream.java index 256d86ec..fed87050 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/ScoreStream.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ScoreStream.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.google.common.collect.ImmutableMap; import io.reactivex.Observable; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java similarity index 97% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java index c031c6db..76c20431 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import static java.lang.annotation.RetentionPolicy.CLASS; @@ -21,7 +21,7 @@ import android.view.LayoutInflater; import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; -import com.uber.rib.root.logged_in.ScoreStream; +import com.uber.rib.root.loggedIn.ScoreStream; import com.uber.rib.tutorial1.R; import dagger.Binds; import dagger.BindsInstance; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java similarity index 96% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java index 29a97404..d6aaf528 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import androidx.annotation.Nullable; import com.google.common.collect.ImmutableMap; @@ -21,7 +21,7 @@ import com.uber.autodispose.AutoDispose; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.ScoreStream; +import com.uber.rib.root.loggedIn.ScoreStream; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java similarity index 95% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java index d16eab12..d5e29f7f 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.ViewRouter; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java similarity index 98% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java index 02bcdc3a..d16cdac1 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java similarity index 97% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java index ecdb8ec5..a3fcd511 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import javax.inject.Inject; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java similarity index 94% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java index fea509d4..75e0760a 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; class BoardCoordinate { diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java similarity index 98% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java index 1309c2bd..65364d56 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java similarity index 97% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java index fb1dcc32..ef752452 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.Board.MarkerType; +import com.uber.rib.root.loggedIn.ticTacToe.Board.MarkerType; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java similarity index 95% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java index 51095cac..78cf3327 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.ViewRouter; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java similarity index 98% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java index 91ca7347..6050f2a1 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java similarity index 98% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java index 2923e674..9d73c540 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java similarity index 95% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java index 49fb75b4..807cffa3 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import androidx.annotation.Nullable; import androidx.core.util.Pair; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutBuilder.LoggedOutScope; +import com.uber.rib.root.loggedOut.LoggedOutBuilder.LoggedOutScope; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java new file mode 100644 index 00000000..72828922 --- /dev/null +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedOut; + +import com.uber.rib.core.ViewRouter; + +/** Adds and removes children of {@link LoggedOutBuilder.LoggedOutScope}. */ +public class LoggedOutRouter extends ViewRouter { + + public LoggedOutRouter( + LoggedOutView view, LoggedOutInteractor interactor, LoggedOutBuilder.Component component) { + super(view, interactor, component); + } +} diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java similarity index 98% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java rename to android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java index d221d853..5202d0d3 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java +++ b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java b/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java deleted file mode 100644 index 7ae9a757..00000000 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_out; - -import com.uber.rib.core.ViewRouter; - -/** Adds and removes children of {@link LoggedOutBuilder.LoggedOutScope}. */ -public class LoggedOutRouter extends ViewRouter { - - public LoggedOutRouter( - LoggedOutView view, LoggedOutInteractor interactor, LoggedOutBuilder.Component component) { - super(view, interactor, component); - } -} diff --git a/android/tutorials/tutorial3-completed/src/main/res/layout/logged_out_rib.xml b/android/tutorials/tutorial3-completed/src/main/res/layout/logged_out_rib.xml index 383ebc29..d3557b9e 100644 --- a/android/tutorials/tutorial3-completed/src/main/res/layout/logged_out_rib.xml +++ b/android/tutorials/tutorial3-completed/src/main/res/layout/logged_out_rib.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android/tutorials/tutorial3-completed/src/main/res/layout/off_game_rib.xml b/android/tutorials/tutorial3-completed/src/main/res/layout/off_game_rib.xml index 324e5921..f3f46f96 100644 --- a/android/tutorials/tutorial3-completed/src/main/res/layout/off_game_rib.xml +++ b/android/tutorials/tutorial3-completed/src/main/res/layout/off_game_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/tutorials/tutorial3-completed/src/main/res/layout/tic_tac_toe_rib.xml b/android/tutorials/tutorial3-completed/src/main/res/layout/tic_tac_toe_rib.xml index 372ce541..30fd6581 100644 --- a/android/tutorials/tutorial3-completed/src/main/res/layout/tic_tac_toe_rib.xml +++ b/android/tutorials/tutorial3-completed/src/main/res/layout/tic_tac_toe_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/RootRouterTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/RootRouterTest.java index 7b823e92..a3526b3c 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/RootRouterTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/RootRouterTest.java @@ -15,8 +15,8 @@ */ package com.uber.rib.root; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/LoggedInInteractorTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/LoggedInInteractorTest.java similarity index 96% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/LoggedInInteractorTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/LoggedInInteractorTest.java index 6d90e276..08131c8e 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/LoggedInInteractorTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/LoggedInInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.RibTestBasePlaceholder; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/LoggedInRouterTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/LoggedInRouterTest.java similarity index 88% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/LoggedInRouterTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/LoggedInRouterTest.java index 5bc83055..3c602b61 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/LoggedInRouterTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/LoggedInRouterTest.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import android.view.ViewGroup; import com.uber.rib.core.RibTestBasePlaceholder; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameInteractorTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractorTest.java similarity index 93% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameInteractorTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractorTest.java index 231790e0..baf1f0d2 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameInteractorTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractorTest.java @@ -13,10 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.RibTestBasePlaceholder; -import com.uber.rib.root.logged_in.ScoreStream; +import com.uber.rib.root.loggedIn.ScoreStream; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameRouterTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameRouterTest.java similarity index 95% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameRouterTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameRouterTest.java index 6961e538..78f82a8d 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameRouterTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameRouterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractorTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractorTest.java similarity index 96% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractorTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractorTest.java index 81c390c4..dc037703 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractorTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouterTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouterTest.java similarity index 95% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouterTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouterTest.java index 5d7768c3..ea99e2b6 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouterTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java similarity index 98% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java index ed669682..8d6d609b 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.never; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java similarity index 96% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java rename to android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java index e6b8ebb8..4847b773 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java +++ b/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootBuilder.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootBuilder.java index d3791825..b54801c1 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootBuilder.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootBuilder.java @@ -21,9 +21,9 @@ import android.view.LayoutInflater; import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import com.uber.rib.tutorial1.R; import dagger.Binds; import dagger.BindsInstance; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootInteractor.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootInteractor.java index 3768f944..9fcae6a4 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootInteractor.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootInteractor.java @@ -19,7 +19,7 @@ import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import javax.inject.Inject; /** Coordinates Business Logic for {@link RootBuilder.RootScope}. */ diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootRouter.java index eacf36f0..0a504561 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootRouter.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/RootRouter.java @@ -17,9 +17,9 @@ package com.uber.rib.root; import androidx.annotation.Nullable; import com.uber.rib.core.ViewRouter; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutRouter; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutRouter; /** Adds and removes children of {@link RootBuilder.RootScope}. */ public class RootRouter extends ViewRouter { diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java similarity index 93% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java index 53e1473f..e3a4f043 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/LoggedInBuilder.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import static java.lang.annotation.RetentionPolicy.CLASS; @@ -21,9 +21,9 @@ import com.uber.rib.core.Builder; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.root.RootView; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; import dagger.BindsInstance; import dagger.Provides; import java.lang.annotation.Retention; diff --git a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java similarity index 93% rename from android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java index 95dcca90..88f66527 100644 --- a/android/demos/flipper/src/main/java/com/uber/rib/root/logged_in/LoggedInInteractor.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.off_game.OffGameInteractor; +import com.uber.rib.root.loggedIn.offGame.OffGameInteractor; /** Coordinates Business Logic for {@link LoggedInScope}. */ @RibInteractor diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java similarity index 88% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java index 2cf19db1..bea5b5de 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/LoggedInRouter.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/LoggedInRouter.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import android.view.ViewGroup; import com.uber.rib.core.Router; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.off_game.OffGameRouter; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeRouter; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameRouter; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeRouter; /** Adds and removes children of {@link LoggedInBuilder.LoggedInScope}. */ public class LoggedInRouter extends Router { diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java similarity index 98% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java index a7dc157c..1ae46f43 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java similarity index 97% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java index f31232f6..5b99d809 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java new file mode 100644 index 00000000..d5e29f7f --- /dev/null +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.offGame; + +import com.uber.rib.core.ViewRouter; + +/** Adds and removes children of {@link OffGameBuilder.OffGameScope}. */ +public class OffGameRouter extends ViewRouter { + + public OffGameRouter( + OffGameView view, OffGameInteractor interactor, OffGameBuilder.Component component) { + super(view, interactor, component); + } +} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java similarity index 97% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java index 0559e65b..d087f173 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java new file mode 100644 index 00000000..a3fcd511 --- /dev/null +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.ticTacToe; + +import javax.inject.Inject; + +class Board { + + static final int ROWS = 3; + static final int COLS = 3; + + MarkerType[][] cells; + int currentRow; + int currentCol; + + @Inject + Board() { + cells = new MarkerType[ROWS][COLS]; + for (int row = 0; row < ROWS; ++row) { + for (int col = 0; col < COLS; ++col) { + cells[row][col] = null; + } + } + } + + /** Return true if it is a draw (i.e., no more EMPTY cell) */ + boolean isDraw() { + for (int row = 0; row < ROWS; ++row) { + for (int col = 0; col < COLS; ++col) { + if (cells[row][col] == null) { + return false; + } + } + } + return !hasWon(MarkerType.CROSS) && !hasWon(MarkerType.NOUGHT); + } + + /** Return true if the player with "theSeed" has won after placing at (currentRow, currentCol) */ + boolean hasWon(MarkerType theSeed) { + return ((cells[currentRow][0] == theSeed + && cells[currentRow][1] == theSeed + && cells[currentRow][2] == theSeed) + || (cells[0][currentCol] == theSeed + && cells[1][currentCol] == theSeed + && cells[2][currentCol] == theSeed) + || (currentRow == currentCol + && cells[0][0] == theSeed + && cells[1][1] == theSeed + && cells[2][2] == theSeed) + || (currentRow + currentCol == 2 + && cells[0][2] == theSeed + && cells[1][1] == theSeed + && cells[2][0] == theSeed)); + } + + enum MarkerType { + CROSS, + NOUGHT + } +} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java new file mode 100644 index 00000000..75e0760a --- /dev/null +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.ticTacToe; + +class BoardCoordinate { + + private final int x; + private final int y; + + BoardCoordinate(int x, int y) { + this.x = x; + this.y = y; + } + + int getX() { + return x; + } + + int getY() { + return y; + } +} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java similarity index 98% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java index 3867d895..e9e462f7 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java similarity index 96% rename from android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java index ec59842d..fa0f4564 100644 --- a/android/tutorials/tutorial2/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_in.tic_tac_toe.Board.MarkerType; +import com.uber.rib.root.loggedIn.ticTacToe.Board.MarkerType; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java new file mode 100644 index 00000000..78cf3327 --- /dev/null +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.ticTacToe; + +import com.uber.rib.core.ViewRouter; + +/** Adds and removes children of {@link TicTacToeBuilder.TicTacToeScope}. */ +public class TicTacToeRouter extends ViewRouter { + + public TicTacToeRouter( + TicTacToeView view, TicTacToeInteractor interactor, TicTacToeBuilder.Component component) { + super(view, interactor, component); + } +} diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java similarity index 98% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java index 91ca7347..6050f2a1 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java similarity index 98% rename from android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java index 2923e674..9d73c540 100644 --- a/android/tutorials/tutorial3-completed/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java similarity index 94% rename from android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java index fe89272d..79ca79d3 100644 --- a/android/demos/intellij/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import androidx.annotation.Nullable; import androidx.core.util.Pair; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutBuilder.LoggedOutScope; +import com.uber.rib.root.loggedOut.LoggedOutBuilder.LoggedOutScope; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java new file mode 100644 index 00000000..72828922 --- /dev/null +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedOut; + +import com.uber.rib.core.ViewRouter; + +/** Adds and removes children of {@link LoggedOutBuilder.LoggedOutScope}. */ +public class LoggedOutRouter extends ViewRouter { + + public LoggedOutRouter( + LoggedOutView view, LoggedOutInteractor interactor, LoggedOutBuilder.Component component) { + super(view, interactor, component); + } +} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java similarity index 98% rename from android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java rename to android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java index ea1cecda..4672cd00 100644 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java +++ b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java deleted file mode 100644 index d16eab12..00000000 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.off_game; - -import com.uber.rib.core.ViewRouter; - -/** Adds and removes children of {@link OffGameBuilder.OffGameScope}. */ -public class OffGameRouter extends ViewRouter { - - public OffGameRouter( - OffGameView view, OffGameInteractor interactor, OffGameBuilder.Component component) { - super(view, interactor, component); - } -} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java deleted file mode 100644 index ecdb8ec5..00000000 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.tic_tac_toe; - -import javax.inject.Inject; - -class Board { - - static final int ROWS = 3; - static final int COLS = 3; - - MarkerType[][] cells; - int currentRow; - int currentCol; - - @Inject - Board() { - cells = new MarkerType[ROWS][COLS]; - for (int row = 0; row < ROWS; ++row) { - for (int col = 0; col < COLS; ++col) { - cells[row][col] = null; - } - } - } - - /** Return true if it is a draw (i.e., no more EMPTY cell) */ - boolean isDraw() { - for (int row = 0; row < ROWS; ++row) { - for (int col = 0; col < COLS; ++col) { - if (cells[row][col] == null) { - return false; - } - } - } - return !hasWon(MarkerType.CROSS) && !hasWon(MarkerType.NOUGHT); - } - - /** Return true if the player with "theSeed" has won after placing at (currentRow, currentCol) */ - boolean hasWon(MarkerType theSeed) { - return ((cells[currentRow][0] == theSeed - && cells[currentRow][1] == theSeed - && cells[currentRow][2] == theSeed) - || (cells[0][currentCol] == theSeed - && cells[1][currentCol] == theSeed - && cells[2][currentCol] == theSeed) - || (currentRow == currentCol - && cells[0][0] == theSeed - && cells[1][1] == theSeed - && cells[2][2] == theSeed) - || (currentRow + currentCol == 2 - && cells[0][2] == theSeed - && cells[1][1] == theSeed - && cells[2][0] == theSeed)); - } - - enum MarkerType { - CROSS, - NOUGHT - } -} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java deleted file mode 100644 index fea509d4..00000000 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.tic_tac_toe; - -class BoardCoordinate { - - private final int x; - private final int y; - - BoardCoordinate(int x, int y) { - this.x = x; - this.y = y; - } - - int getX() { - return x; - } - - int getY() { - return y; - } -} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java deleted file mode 100644 index 51095cac..00000000 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.tic_tac_toe; - -import com.uber.rib.core.ViewRouter; - -/** Adds and removes children of {@link TicTacToeBuilder.TicTacToeScope}. */ -public class TicTacToeRouter extends ViewRouter { - - public TicTacToeRouter( - TicTacToeView view, TicTacToeInteractor interactor, TicTacToeBuilder.Component component) { - super(view, interactor, component); - } -} diff --git a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java b/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java deleted file mode 100644 index 7ae9a757..00000000 --- a/android/tutorials/tutorial3/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_out; - -import com.uber.rib.core.ViewRouter; - -/** Adds and removes children of {@link LoggedOutBuilder.LoggedOutScope}. */ -public class LoggedOutRouter extends ViewRouter { - - public LoggedOutRouter( - LoggedOutView view, LoggedOutInteractor interactor, LoggedOutBuilder.Component component) { - super(view, interactor, component); - } -} diff --git a/android/tutorials/tutorial3/src/main/res/layout/logged_out_rib.xml b/android/tutorials/tutorial3/src/main/res/layout/logged_out_rib.xml index 9b6a5d2f..e4f69466 100644 --- a/android/tutorials/tutorial3/src/main/res/layout/logged_out_rib.xml +++ b/android/tutorials/tutorial3/src/main/res/layout/logged_out_rib.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android/tutorials/tutorial3/src/main/res/layout/off_game_rib.xml b/android/tutorials/tutorial3/src/main/res/layout/off_game_rib.xml index d38d2c05..35a00b05 100644 --- a/android/tutorials/tutorial3/src/main/res/layout/off_game_rib.xml +++ b/android/tutorials/tutorial3/src/main/res/layout/off_game_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/tutorials/tutorial3/src/main/res/layout/tic_tac_toe_rib.xml b/android/tutorials/tutorial3/src/main/res/layout/tic_tac_toe_rib.xml index 372ce541..30fd6581 100644 --- a/android/tutorials/tutorial3/src/main/res/layout/tic_tac_toe_rib.xml +++ b/android/tutorials/tutorial3/src/main/res/layout/tic_tac_toe_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/RootRouterTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/RootRouterTest.java index 7b823e92..a3526b3c 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/RootRouterTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/RootRouterTest.java @@ -15,8 +15,8 @@ */ package com.uber.rib.root; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/LoggedInInteractorTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/LoggedInInteractorTest.java similarity index 96% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/LoggedInInteractorTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/LoggedInInteractorTest.java index f0eba659..90cd121f 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/LoggedInInteractorTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/LoggedInInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.uber.rib.core.EmptyPresenter; import com.uber.rib.core.RibTestBasePlaceholder; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/LoggedInRouterTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/LoggedInRouterTest.java similarity index 88% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/LoggedInRouterTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/LoggedInRouterTest.java index 5bc83055..3c602b61 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/LoggedInRouterTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/LoggedInRouterTest.java @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import android.view.ViewGroup; import com.uber.rib.core.RibTestBasePlaceholder; -import com.uber.rib.root.logged_in.off_game.OffGameBuilder; -import com.uber.rib.root.logged_in.tic_tac_toe.TicTacToeBuilder; +import com.uber.rib.root.loggedIn.offGame.OffGameBuilder; +import com.uber.rib.root.loggedIn.ticTacToe.TicTacToeBuilder; import org.junit.Before; import org.mockito.Mock; import org.mockito.MockitoAnnotations; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameInteractorTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractorTest.java similarity index 96% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameInteractorTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractorTest.java index 1210fd84..f83ffd68 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameInteractorTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameRouterTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameRouterTest.java similarity index 95% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameRouterTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameRouterTest.java index 6961e538..78f82a8d 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/off_game/OffGameRouterTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/offGame/OffGameRouterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractorTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractorTest.java similarity index 95% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractorTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractorTest.java index daeb37cc..46c303bf 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractorTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouterTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouterTest.java similarity index 95% rename from android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouterTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouterTest.java index 5d7768c3..ea99e2b6 100644 --- a/android/tutorials/tutorial3-completed/src/test/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouterTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java similarity index 98% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java index 07b71c21..ec76aadd 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_out/LoggedOutInteractorTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedOut/LoggedOutInteractorTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.never; diff --git a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java similarity index 96% rename from android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java rename to android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java index e6b8ebb8..4847b773 100644 --- a/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/logged_out/LoggedOutRouterTest.java +++ b/android/tutorials/tutorial3/src/test/java/com/uber/rib/root/loggedOut/LoggedOutRouterTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import com.uber.rib.core.RibTestBasePlaceholder; import org.junit.Before; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootBuilder.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootBuilder.java index 49b7e0ff..6e66c21b 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootBuilder.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootBuilder.java @@ -21,9 +21,9 @@ import android.view.LayoutInflater; import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import com.uber.rib.tutorial4.R; import dagger.Binds; import dagger.BindsInstance; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootInteractor.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootInteractor.java index f4842145..5da17ddf 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootInteractor.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootInteractor.java @@ -19,7 +19,7 @@ import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; -import com.uber.rib.root.logged_out.LoggedOutInteractor; +import com.uber.rib.root.loggedOut.LoggedOutInteractor; import javax.inject.Inject; /** Coordinates Business Logic for {@link RootBuilder.RootScope}. */ diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootRouter.java index a698a250..d640e968 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootRouter.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootRouter.java @@ -19,11 +19,11 @@ import androidx.annotation.Nullable; import com.google.common.base.Optional; import com.jakewharton.rxrelay2.BehaviorRelay; import com.uber.rib.core.ViewRouter; -import com.uber.rib.root.logged_in.LoggedInActionableItem; -import com.uber.rib.root.logged_in.LoggedInBuilder; -import com.uber.rib.root.logged_in.LoggedInRouter; -import com.uber.rib.root.logged_out.LoggedOutBuilder; -import com.uber.rib.root.logged_out.LoggedOutRouter; +import com.uber.rib.root.loggedIn.LoggedInActionableItem; +import com.uber.rib.root.loggedIn.LoggedInBuilder; +import com.uber.rib.root.loggedIn.LoggedInRouter; +import com.uber.rib.root.loggedOut.LoggedOutBuilder; +import com.uber.rib.root.loggedOut.LoggedOutRouter; /** Adds and removes children of {@link RootBuilder.RootScope}. */ public class RootRouter extends ViewRouter { diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootWorkflow.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootWorkflow.java index d5bd632d..1955c331 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootWorkflow.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/RootWorkflow.java @@ -54,7 +54,9 @@ public abstract class RootWorkflow { diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/MutableScoreStream.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/MutableScoreStream.java similarity index 97% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/MutableScoreStream.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/MutableScoreStream.java index b61d5ed5..dd2cd54c 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/MutableScoreStream.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/MutableScoreStream.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.google.common.collect.ImmutableMap; import com.jakewharton.rxrelay2.BehaviorRelay; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/ScoreStream.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ScoreStream.java similarity index 95% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/ScoreStream.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ScoreStream.java index dac62979..33366514 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/ScoreStream.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ScoreStream.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in; +package com.uber.rib.root.loggedIn; import com.google.common.collect.ImmutableMap; import com.uber.rib.root.UserName; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java similarity index 96% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java index 4ac59c97..b2ffe99e 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameBuilder.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import static java.lang.annotation.RetentionPolicy.CLASS; @@ -22,8 +22,8 @@ import android.view.ViewGroup; import com.uber.rib.core.InteractorBaseComponent; import com.uber.rib.core.ViewBuilder; import com.uber.rib.root.UserName; -import com.uber.rib.root.logged_in.GameKey; -import com.uber.rib.root.logged_in.ScoreStream; +import com.uber.rib.root.loggedIn.GameKey; +import com.uber.rib.root.loggedIn.ScoreStream; import com.uber.rib.tutorial4.R; import dagger.Binds; import dagger.BindsInstance; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java similarity index 95% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java index 3f9944d6..6843ff8d 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameInteractor.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import androidx.annotation.Nullable; import com.google.common.collect.ImmutableMap; @@ -22,8 +22,8 @@ import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; import com.uber.rib.root.UserName; -import com.uber.rib.root.logged_in.GameKey; -import com.uber.rib.root.logged_in.ScoreStream; +import com.uber.rib.root.loggedIn.GameKey; +import com.uber.rib.root.loggedIn.ScoreStream; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import java.util.List; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java new file mode 100644 index 00000000..d5e29f7f --- /dev/null +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameRouter.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.offGame; + +import com.uber.rib.core.ViewRouter; + +/** Adds and removes children of {@link OffGameBuilder.OffGameScope}. */ +public class OffGameRouter extends ViewRouter { + + public OffGameRouter( + OffGameView view, OffGameInteractor interactor, OffGameBuilder.Component component) { + super(view, interactor, component); + } +} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java similarity index 97% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java index 159f7a10..5c4c244f 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameView.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/offGame/OffGameView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.off_game; +package com.uber.rib.root.loggedIn.offGame; import android.content.Context; import android.util.AttributeSet; @@ -24,7 +24,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import com.jakewharton.rxbinding2.view.RxView; import com.uber.rib.core.Initializer; -import com.uber.rib.root.logged_in.GameKey; +import com.uber.rib.root.loggedIn.GameKey; import com.uber.rib.tutorial4.R; import io.reactivex.Observable; import io.reactivex.functions.Function; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerBuilder.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerBuilder.java similarity index 98% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerBuilder.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerBuilder.java index 775ee77f..1decb2c9 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerBuilder.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.random_winner; +package com.uber.rib.root.loggedIn.randomWinner; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerInteractor.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerInteractor.java similarity index 97% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerInteractor.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerInteractor.java index fe76a5de..72f38776 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerInteractor.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.random_winner; +package com.uber.rib.root.loggedIn.randomWinner; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerRouter.java similarity index 95% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerRouter.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerRouter.java index 2a65e643..255c1a02 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerRouter.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerRouter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.random_winner; +package com.uber.rib.root.loggedIn.randomWinner; import com.uber.rib.core.ViewRouter; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerView.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerView.java similarity index 96% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerView.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerView.java index d6d28f08..7ce6e101 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/random_winner/RandomWinnerView.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/randomWinner/RandomWinnerView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.random_winner; +package com.uber.rib.root.loggedIn.randomWinner; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java new file mode 100644 index 00000000..a3fcd511 --- /dev/null +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/Board.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.ticTacToe; + +import javax.inject.Inject; + +class Board { + + static final int ROWS = 3; + static final int COLS = 3; + + MarkerType[][] cells; + int currentRow; + int currentCol; + + @Inject + Board() { + cells = new MarkerType[ROWS][COLS]; + for (int row = 0; row < ROWS; ++row) { + for (int col = 0; col < COLS; ++col) { + cells[row][col] = null; + } + } + } + + /** Return true if it is a draw (i.e., no more EMPTY cell) */ + boolean isDraw() { + for (int row = 0; row < ROWS; ++row) { + for (int col = 0; col < COLS; ++col) { + if (cells[row][col] == null) { + return false; + } + } + } + return !hasWon(MarkerType.CROSS) && !hasWon(MarkerType.NOUGHT); + } + + /** Return true if the player with "theSeed" has won after placing at (currentRow, currentCol) */ + boolean hasWon(MarkerType theSeed) { + return ((cells[currentRow][0] == theSeed + && cells[currentRow][1] == theSeed + && cells[currentRow][2] == theSeed) + || (cells[0][currentCol] == theSeed + && cells[1][currentCol] == theSeed + && cells[2][currentCol] == theSeed) + || (currentRow == currentCol + && cells[0][0] == theSeed + && cells[1][1] == theSeed + && cells[2][2] == theSeed) + || (currentRow + currentCol == 2 + && cells[0][2] == theSeed + && cells[1][1] == theSeed + && cells[2][0] == theSeed)); + } + + enum MarkerType { + CROSS, + NOUGHT + } +} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java new file mode 100644 index 00000000..75e0760a --- /dev/null +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/BoardCoordinate.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.ticTacToe; + +class BoardCoordinate { + + private final int x; + private final int y; + + BoardCoordinate(int x, int y) { + this.x = x; + this.y = y; + } + + int getX() { + return x; + } + + int getY() { + return y; + } +} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java similarity index 98% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java index 61c186bd..02278f56 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeBuilder.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java similarity index 97% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java index 2672975a..de4b1157 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeInteractor.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeInteractor.java @@ -13,14 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import androidx.annotation.Nullable; import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; import com.uber.rib.root.UserName; -import com.uber.rib.root.logged_in.tic_tac_toe.Board.MarkerType; +import com.uber.rib.root.loggedIn.ticTacToe.Board.MarkerType; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java new file mode 100644 index 00000000..78cf3327 --- /dev/null +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeRouter.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedIn.ticTacToe; + +import com.uber.rib.core.ViewRouter; + +/** Adds and removes children of {@link TicTacToeBuilder.TicTacToeScope}. */ +public class TicTacToeRouter extends ViewRouter { + + public TicTacToeRouter( + TicTacToeView view, TicTacToeInteractor interactor, TicTacToeBuilder.Component component) { + super(view, interactor, component); + } +} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java similarity index 98% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java index 0328f737..4cc7bbef 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeView.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedIn/ticTacToe/TicTacToeView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_in.tic_tac_toe; +package com.uber.rib.root.loggedIn.ticTacToe; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java similarity index 98% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java index 52c9a4dc..9f3c3419 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutBuilder.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutBuilder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import static java.lang.annotation.RetentionPolicy.CLASS; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java similarity index 95% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java index d8fda0dc..000facf1 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutInteractor.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutInteractor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.util.Pair; import androidx.annotation.Nullable; @@ -21,7 +21,7 @@ import com.uber.rib.core.Bundle; import com.uber.rib.core.Interactor; import com.uber.rib.core.RibInteractor; import com.uber.rib.root.UserName; -import com.uber.rib.root.logged_out.LoggedOutBuilder.LoggedOutScope; +import com.uber.rib.root.loggedOut.LoggedOutBuilder.LoggedOutScope; import io.reactivex.Observable; import io.reactivex.functions.Consumer; import javax.inject.Inject; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java new file mode 100644 index 00000000..72828922 --- /dev/null +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutRouter.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2017. Uber Technologies + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.uber.rib.root.loggedOut; + +import com.uber.rib.core.ViewRouter; + +/** Adds and removes children of {@link LoggedOutBuilder.LoggedOutScope}. */ +public class LoggedOutRouter extends ViewRouter { + + public LoggedOutRouter( + LoggedOutView view, LoggedOutInteractor interactor, LoggedOutBuilder.Component component) { + super(view, interactor, component); + } +} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java similarity index 98% rename from android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java rename to android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java index 6c5cebbd..57e7376e 100644 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutView.java +++ b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/loggedOut/LoggedOutView.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.uber.rib.root.logged_out; +package com.uber.rib.root.loggedOut; import android.content.Context; import android.util.AttributeSet; diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java deleted file mode 100644 index d16eab12..00000000 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/off_game/OffGameRouter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.off_game; - -import com.uber.rib.core.ViewRouter; - -/** Adds and removes children of {@link OffGameBuilder.OffGameScope}. */ -public class OffGameRouter extends ViewRouter { - - public OffGameRouter( - OffGameView view, OffGameInteractor interactor, OffGameBuilder.Component component) { - super(view, interactor, component); - } -} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java deleted file mode 100644 index ecdb8ec5..00000000 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/Board.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.tic_tac_toe; - -import javax.inject.Inject; - -class Board { - - static final int ROWS = 3; - static final int COLS = 3; - - MarkerType[][] cells; - int currentRow; - int currentCol; - - @Inject - Board() { - cells = new MarkerType[ROWS][COLS]; - for (int row = 0; row < ROWS; ++row) { - for (int col = 0; col < COLS; ++col) { - cells[row][col] = null; - } - } - } - - /** Return true if it is a draw (i.e., no more EMPTY cell) */ - boolean isDraw() { - for (int row = 0; row < ROWS; ++row) { - for (int col = 0; col < COLS; ++col) { - if (cells[row][col] == null) { - return false; - } - } - } - return !hasWon(MarkerType.CROSS) && !hasWon(MarkerType.NOUGHT); - } - - /** Return true if the player with "theSeed" has won after placing at (currentRow, currentCol) */ - boolean hasWon(MarkerType theSeed) { - return ((cells[currentRow][0] == theSeed - && cells[currentRow][1] == theSeed - && cells[currentRow][2] == theSeed) - || (cells[0][currentCol] == theSeed - && cells[1][currentCol] == theSeed - && cells[2][currentCol] == theSeed) - || (currentRow == currentCol - && cells[0][0] == theSeed - && cells[1][1] == theSeed - && cells[2][2] == theSeed) - || (currentRow + currentCol == 2 - && cells[0][2] == theSeed - && cells[1][1] == theSeed - && cells[2][0] == theSeed)); - } - - enum MarkerType { - CROSS, - NOUGHT - } -} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java deleted file mode 100644 index fea509d4..00000000 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/BoardCoordinate.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.tic_tac_toe; - -class BoardCoordinate { - - private final int x; - private final int y; - - BoardCoordinate(int x, int y) { - this.x = x; - this.y = y; - } - - int getX() { - return x; - } - - int getY() { - return y; - } -} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java deleted file mode 100644 index 51095cac..00000000 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_in/tic_tac_toe/TicTacToeRouter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_in.tic_tac_toe; - -import com.uber.rib.core.ViewRouter; - -/** Adds and removes children of {@link TicTacToeBuilder.TicTacToeScope}. */ -public class TicTacToeRouter extends ViewRouter { - - public TicTacToeRouter( - TicTacToeView view, TicTacToeInteractor interactor, TicTacToeBuilder.Component component) { - super(view, interactor, component); - } -} diff --git a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java b/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java deleted file mode 100644 index 7ae9a757..00000000 --- a/android/tutorials/tutorial4/src/main/java/com/uber/rib/root/logged_out/LoggedOutRouter.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2017. Uber Technologies - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.uber.rib.root.logged_out; - -import com.uber.rib.core.ViewRouter; - -/** Adds and removes children of {@link LoggedOutBuilder.LoggedOutScope}. */ -public class LoggedOutRouter extends ViewRouter { - - public LoggedOutRouter( - LoggedOutView view, LoggedOutInteractor interactor, LoggedOutBuilder.Component component) { - super(view, interactor, component); - } -} diff --git a/android/tutorials/tutorial4/src/main/res/layout/logged_out_rib.xml b/android/tutorials/tutorial4/src/main/res/layout/logged_out_rib.xml index 383ebc29..d3557b9e 100644 --- a/android/tutorials/tutorial4/src/main/res/layout/logged_out_rib.xml +++ b/android/tutorials/tutorial4/src/main/res/layout/logged_out_rib.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/android/tutorials/tutorial4/src/main/res/layout/off_game_rib.xml b/android/tutorials/tutorial4/src/main/res/layout/off_game_rib.xml index 4aafe6d1..46c2441e 100644 --- a/android/tutorials/tutorial4/src/main/res/layout/off_game_rib.xml +++ b/android/tutorials/tutorial4/src/main/res/layout/off_game_rib.xml @@ -1,5 +1,5 @@ - - + diff --git a/android/tutorials/tutorial4/src/main/res/layout/tic_tac_toe_rib.xml b/android/tutorials/tutorial4/src/main/res/layout/tic_tac_toe_rib.xml index 372ce541..30fd6581 100644 --- a/android/tutorials/tutorial4/src/main/res/layout/tic_tac_toe_rib.xml +++ b/android/tutorials/tutorial4/src/main/res/layout/tic_tac_toe_rib.xml @@ -1,5 +1,5 @@ - - +