├── flowless-library ├── .gitignore ├── src │ ├── main │ │ ├── java │ │ │ └── flowless │ │ │ │ ├── FlowIdlingResource.java │ │ │ │ ├── Bundleable.java │ │ │ │ ├── KeyContextWrapper.java │ │ │ │ ├── preset │ │ │ │ ├── FlowContainerLifecycleListener.java │ │ │ │ ├── BaseDispatcher.java │ │ │ │ └── FlowLifecycles.java │ │ │ │ ├── Direction.java │ │ │ │ ├── ActivityUtils.java │ │ │ │ ├── ClassKey.java │ │ │ │ ├── NotPersistent.java │ │ │ │ ├── KeyParceler.java │ │ │ │ ├── TraversalCallback.java │ │ │ │ ├── Dispatcher.java │ │ │ │ └── Preconditions.java │ │ └── AndroidManifest.xml │ └── test │ │ └── java │ │ └── flowless │ │ └── TestKey.java ├── proguard-rules.pro └── build.gradle ├── flow-sample-basic ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ └── layout │ │ │ ├── basic_activity_frame.xml │ │ │ └── welcome_screen.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── flowless │ │ └── sample │ │ └── basic │ │ └── WelcomeScreen.java ├── proguard-rules.pro └── build.gradle ├── flowless-mvp-example ├── .gitignore └── src │ ├── main │ ├── res │ │ ├── drawable-hdpi │ │ │ ├── icon_about.png │ │ │ ├── icon_logout.png │ │ │ ├── icon_arrow_back.png │ │ │ ├── icon_hamburger.png │ │ │ └── icon_repositories.png │ │ ├── drawable-mdpi │ │ │ ├── icon_about.png │ │ │ ├── icon_logout.png │ │ │ ├── icon_arrow_back.png │ │ │ ├── icon_hamburger.png │ │ │ └── icon_repositories.png │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ │ ├── icon_about.png │ │ │ ├── icon_logout.png │ │ │ ├── icon_hamburger.png │ │ │ ├── icon_arrow_back.png │ │ │ └── icon_repositories.png │ │ ├── drawable-xxhdpi │ │ │ ├── icon_about.png │ │ │ ├── icon_logout.png │ │ │ ├── icon_arrow_back.png │ │ │ ├── icon_hamburger.png │ │ │ └── icon_repositories.png │ │ ├── drawable-xxxhdpi │ │ │ ├── icon_about.png │ │ │ ├── icon_logout.png │ │ │ ├── icon_arrow_back.png │ │ │ ├── icon_hamburger.png │ │ │ └── icon_repositories.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── drawable-ldrtl-hdpi │ │ │ └── icon_arrow_back.png │ │ ├── drawable-ldrtl-mdpi │ │ │ └── icon_arrow_back.png │ │ ├── drawable-ldrtl-xhdpi │ │ │ └── icon_arrow_back.png │ │ ├── drawable-ldrtl-xxhdpi │ │ │ └── icon_arrow_back.png │ │ ├── drawable-ldrtl-xxxhdpi │ │ │ └── icon_arrow_back.png │ │ ├── values │ │ │ ├── attrs.xml │ │ │ ├── dimens.xml │ │ │ ├── styles.xml │ │ │ ├── strings.xml │ │ │ └── colors.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ ├── drawable │ │ │ ├── drawer_button_selector.xml │ │ │ └── normal_button_selector.xml │ │ └── layout │ │ │ ├── path_repositories.xml │ │ │ ├── path_about.xml │ │ │ ├── view_repositories_load_more_row.xml │ │ │ ├── view_repositories_row.xml │ │ │ └── view_left_drawer.xml │ ├── java │ │ ├── javax │ │ │ └── microedition │ │ │ │ └── khronos │ │ │ │ └── opengles │ │ │ │ └── GL.java │ │ └── com │ │ │ ├── zhuinden │ │ │ └── examplegithubclient │ │ │ │ ├── util │ │ │ │ ├── Presenter.java │ │ │ │ ├── IsChildOf.java │ │ │ │ ├── LeftDrawerEnabled.java │ │ │ │ ├── ToolbarButtonVisibility.java │ │ │ │ ├── BundleFactory.java │ │ │ │ ├── Title.java │ │ │ │ ├── Layout.java │ │ │ │ ├── ComponentFactory.java │ │ │ │ ├── idlingresource │ │ │ │ │ └── FlowlessIdlingResource.java │ │ │ │ ├── conditionwatcher │ │ │ │ │ └── Instruction.java │ │ │ │ ├── DaggerService.java │ │ │ │ └── BasePresenter.java │ │ │ │ ├── domain │ │ │ │ ├── interactor │ │ │ │ │ ├── LoginInteractor.java │ │ │ │ │ ├── GetRepositoriesInteractor.java │ │ │ │ │ └── impl │ │ │ │ │ │ ├── LoginInteractorImpl.java │ │ │ │ │ │ └── GetRepositoriesInteractorImpl.java │ │ │ │ ├── service │ │ │ │ │ ├── GithubService.java │ │ │ │ │ ├── retrofit │ │ │ │ │ │ └── RetrofitGithubService.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── GithubServiceImpl.java │ │ │ │ ├── networking │ │ │ │ │ └── HeaderInterceptor.java │ │ │ │ └── data │ │ │ │ │ └── response │ │ │ │ │ ├── error │ │ │ │ │ ├── Error.java │ │ │ │ │ └── ErrorResponse.java │ │ │ │ │ └── organization │ │ │ │ │ └── Permission.java │ │ │ │ ├── application │ │ │ │ ├── injection │ │ │ │ │ ├── ActivityScope.java │ │ │ │ │ ├── KeyScope.java │ │ │ │ │ └── modules │ │ │ │ │ │ ├── ServiceModule.java │ │ │ │ │ │ ├── RepositoryModule.java │ │ │ │ │ │ ├── OkHttpModule.java │ │ │ │ │ │ ├── NavigationModule.java │ │ │ │ │ │ └── InteractorModule.java │ │ │ │ └── CustomApplication.java │ │ │ │ ├── data │ │ │ │ ├── repository │ │ │ │ │ ├── GithubRepoRepository.java │ │ │ │ │ └── Repository.java │ │ │ │ └── model │ │ │ │ │ ├── DataSource.java │ │ │ │ │ └── GithubRepoDataSource.java │ │ │ │ └── presentation │ │ │ │ ├── paths │ │ │ │ ├── login │ │ │ │ │ ├── LoginComponent.java │ │ │ │ │ ├── LoginComponentFactory.java │ │ │ │ │ └── LoginKey.java │ │ │ │ ├── about │ │ │ │ │ ├── AboutKey.java │ │ │ │ │ └── AboutView.java │ │ │ │ ├── repositorydetails │ │ │ │ │ ├── RepositoryDetailsComponent.java │ │ │ │ │ ├── RepositoryDetailsComponentFactory.java │ │ │ │ │ ├── RepositoryDetailsKey.java │ │ │ │ │ └── RepositoryDetailsPresenter.java │ │ │ │ └── repositories │ │ │ │ │ ├── RepositoriesComponent.java │ │ │ │ │ ├── RepositoriesKey.java │ │ │ │ │ └── RepositoriesComponentFactory.java │ │ │ │ └── activity │ │ │ │ └── main │ │ │ │ └── MainKey.java │ │ │ └── google │ │ │ └── auto │ │ │ └── value │ │ │ └── AutoValue.java │ └── AndroidManifest.xml │ ├── test │ └── java │ │ ├── com │ │ └── zhuinden │ │ │ └── examplegithubclient │ │ │ ├── util │ │ │ ├── BundleFactoryConfig.java │ │ │ └── PresenterUtils.java │ │ │ ├── presentation │ │ │ └── paths │ │ │ │ ├── login │ │ │ │ └── LoginTestSuite.java │ │ │ │ └── repositories │ │ │ │ └── RepositoriesTestSuite.java │ │ │ └── UnitTestSuite.java │ │ └── flowless │ │ └── FlowFactory.java │ └── androidTest │ └── java │ └── com │ └── zhuinden │ └── examplegithubclient │ ├── presentation │ └── paths │ │ ├── repositories │ │ └── RepositoriesPage.java │ │ └── login │ │ ├── LoginWaitForDialogInstruction.java │ │ └── LoginPage.java │ └── InstrumentationSuite.java ├── flowless-viewpager-example ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ └── layout │ │ │ │ ├── activity_main.xml │ │ │ │ ├── path_first.xml │ │ │ │ ├── pager_view_one.xml │ │ │ │ ├── pager_view_two.xml │ │ │ │ ├── pager_view_five.xml │ │ │ │ ├── pager_view_four.xml │ │ │ │ └── pager_view_three.xml │ │ ├── java │ │ │ └── com │ │ │ │ ├── zhuinden │ │ │ │ └── flowless_viewpager_example │ │ │ │ │ ├── extracted │ │ │ │ │ └── LayoutKey.java │ │ │ │ │ ├── FirstKey.java │ │ │ │ │ ├── PagerViewOne.java │ │ │ │ │ ├── PagerViewTwo.java │ │ │ │ │ ├── PagerViewFive.java │ │ │ │ │ ├── PagerViewFour.java │ │ │ │ │ └── PagerViewThree.java │ │ │ │ └── google │ │ │ │ └── auto │ │ │ │ └── value │ │ │ │ └── AutoValue.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── zhuinden │ │ │ └── flowless_viewpager_example │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── zhuinden │ │ └── flowless_viewpager_example │ │ └── ApplicationTest.java ├── proguard-rules.pro └── build.gradle ├── flowless-sample-master-detail ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── styles.xml │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ ├── layout │ │ │ │ ├── activity_main.xml │ │ │ │ ├── layout_master_detail_container.xml │ │ │ │ ├── path_second_detail_third.xml │ │ │ │ ├── path_fourth_detail_second.xml │ │ │ │ ├── path_fourth_master.xml │ │ │ │ ├── path_third_fullscreen.xml │ │ │ │ ├── path_second_master.xml │ │ │ │ ├── path_second_detail_second.xml │ │ │ │ ├── path_first.xml │ │ │ │ ├── path_fourth_detail.xml │ │ │ │ └── path_second_detail.xml │ │ │ └── layout-land │ │ │ │ └── layout_master_detail_container.xml │ │ ├── java │ │ │ └── com │ │ │ │ ├── zhuinden │ │ │ │ └── flow_alpha_master_detail │ │ │ │ │ ├── IsMaster.java │ │ │ │ │ ├── IsFullScreen.java │ │ │ │ │ ├── IsDetail.java │ │ │ │ │ ├── extracted │ │ │ │ │ └── LayoutKey.java │ │ │ │ │ └── paths │ │ │ │ │ ├── FirstKey.java │ │ │ │ │ ├── FourthMasterKey.java │ │ │ │ │ ├── SecondMasterKey.java │ │ │ │ │ ├── ThirdFullScreenKey.java │ │ │ │ │ ├── FourthDetailKey.java │ │ │ │ │ ├── SecondDetailKey.java │ │ │ │ │ ├── SecondDetailThirdKey.java │ │ │ │ │ ├── FourthDetailSecondKey.java │ │ │ │ │ ├── SecondDetailSecondKey.java │ │ │ │ │ ├── SecondDetailThirdView.java │ │ │ │ │ ├── FourthDetailSecondView.java │ │ │ │ │ ├── FirstView.java │ │ │ │ │ ├── SecondMasterView.java │ │ │ │ │ ├── FourthMasterView.java │ │ │ │ │ ├── FourthDetailView.java │ │ │ │ │ ├── ThirdFullScreenView.java │ │ │ │ │ └── SecondDetailSecondView.java │ │ │ │ └── google │ │ │ │ └── auto │ │ │ │ └── value │ │ │ │ └── AutoValue.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── zhuinden │ │ │ └── flow_alpha_master_detail │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── zhuinden │ │ └── flow_alpha_master_detail │ │ └── ApplicationTest.java ├── README.md └── proguard-rules.pro ├── flowless-sample-single-root ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── styles.xml │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ └── layout │ │ │ │ ├── activity_main.xml │ │ │ │ ├── path_second.xml │ │ │ │ └── path_first.xml │ │ ├── java │ │ │ └── com │ │ │ │ ├── zhuinden │ │ │ │ └── flowless_dispatcher_sample │ │ │ │ │ ├── extracted │ │ │ │ │ └── LayoutKey.java │ │ │ │ │ ├── FirstKey.java │ │ │ │ │ └── SecondKey.java │ │ │ │ └── google │ │ │ │ └── auto │ │ │ │ └── value │ │ │ │ └── AutoValue.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── zhuinden │ │ │ └── flowless_dispatcher_sample │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── zhuinden │ │ └── flowless_dispatcher_sample │ │ └── ApplicationTest.java └── proguard-rules.pro ├── flowless-sample-transitions ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ └── layout │ │ │ │ ├── activity_main.xml │ │ │ │ ├── scene_main_default.xml │ │ │ │ └── scene_main_second.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── zhuinden │ │ │ │ └── flowtransitions │ │ │ │ ├── Layout.java │ │ │ │ ├── SceneMainSecondKey.java │ │ │ │ └── SceneMainDefaultKey.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── zhuinden │ │ │ └── flowtransitions │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── zhuinden │ │ └── flowtransitions │ │ └── ExampleInstrumentedTest.java └── proguard-rules.pro ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── flow-sample-orientation-lock ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── bools.xml │ │ │ ├── strings.xml │ │ │ ├── colors.xml │ │ │ └── styles.xml │ │ ├── values-land │ │ │ └── bools.xml │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ └── layout │ │ │ ├── orientation_activity_frame.xml │ │ │ ├── landscape_screen.xml │ │ │ └── loose_screen.xml │ │ ├── java │ │ └── flow │ │ │ └── sample │ │ │ └── orientation │ │ │ ├── OrientationSampleScreen.java │ │ │ ├── LooseView.java │ │ │ └── LandscapeView.java │ │ └── AndroidManifest.xml └── build.gradle ├── .gitignore ├── settings.gradle └── gradle.properties /flowless-library/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flow-sample-basic/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flowless-mvp-example/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flowless-viewpager-example/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flowless-sample-single-root/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flowless-sample-transitions/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Flow Alpha Master Detail 3 | 4 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | flowless-dispatcher-sample 3 | 4 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | flowless-viewpager-example 3 | 4 | -------------------------------------------------------------------------------- /flow-sample-basic/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-basic/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-basic/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-basic/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-basic/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-basic/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-basic/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-basic/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-basic/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-basic/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-hdpi/icon_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-hdpi/icon_about.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-mdpi/icon_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-mdpi/icon_about.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-hdpi/icon_logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-hdpi/icon_logout.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-mdpi/icon_logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-mdpi/icon_logout.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xhdpi/icon_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xhdpi/icon_about.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xhdpi/icon_logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xhdpi/icon_logout.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_about.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_logout.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_about.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/res/values-land/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | 5 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-hdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-hdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-hdpi/icon_hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-hdpi/icon_hamburger.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-mdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-mdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-mdpi/icon_hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-mdpi/icon_hamburger.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xhdpi/icon_hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xhdpi/icon_hamburger.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_logout.png -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-viewpager-example/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-viewpager-example/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-orientation-lock/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-orientation-lock/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-orientation-lock/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-hdpi/icon_repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-hdpi/icon_repositories.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-mdpi/icon_repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-mdpi/icon_repositories.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xhdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xhdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xhdpi/icon_repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xhdpi/icon_repositories.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_hamburger.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_hamburger.png -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-master-detail/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-master-detail/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-single-root/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-single-root/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-single-root/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-single-root/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-transitions/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-transitions/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-transitions/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-transitions/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-viewpager-example/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-viewpager-example/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-viewpager-example/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-orientation-lock/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flow-sample-orientation-lock/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxhdpi/icon_repositories.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-xxxhdpi/icon_repositories.png -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-master-detail/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-master-detail/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-single-root/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-transitions/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-ldrtl-hdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-ldrtl-hdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-ldrtl-mdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-ldrtl-mdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-ldrtl-xhdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-ldrtl-xhdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-ldrtl-xxhdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-ldrtl-xxhdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-sample-master-detail/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | FlowTransitions 3 | Press me! 4 | 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # IntelliJ IDEA 2 | .idea 3 | *.iml 4 | gen 5 | 6 | # Maven 7 | target/ 8 | pom.xml.versionsBackup 9 | 10 | # Gradle 11 | .gradle 12 | gradlew.bat 13 | build 14 | local.properties 15 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/javax/microedition/khronos/opengles/GL.java: -------------------------------------------------------------------------------- 1 | package javax.microedition.khronos.opengles; 2 | 3 | /** 4 | * Robolectric support. 5 | */ 6 | public class GL { 7 | } 8 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable-ldrtl-xxxhdpi/icon_arrow_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zhuinden/flowless/HEAD/flowless-mvp-example/src/main/res/drawable-ldrtl-xxxhdpi/icon_arrow_back.png -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/java/com/zhuinden/flow_alpha_master_detail/IsMaster.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flow_alpha_master_detail; 2 | 3 | /** 4 | * Created by Zhuinden on 2016.04.16.. 5 | */ 6 | public interface IsMaster { 7 | } 8 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/java/com/zhuinden/flow_alpha_master_detail/IsFullScreen.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flow_alpha_master_detail; 2 | 3 | /** 4 | * Created by Zhuinden on 2016.04.16.. 5 | */ 6 | public interface IsFullScreen { 7 | } 8 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':flowless-library', ':flowless-sample-master-detail', ':flowless-sample-single-root', ':flowless-sample-transitions', ':flow-sample-basic', ':flow-sample-orientation-lock', ':flowless-viewpager-example', ':flowless-mvp-example' 2 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /flowless-library/src/main/java/flowless/FlowIdlingResource.java: -------------------------------------------------------------------------------- 1 | package flowless; 2 | 3 | /** 4 | * Created by Zhuinden on 2016.07.01.. 5 | */ 6 | public interface FlowIdlingResource { 7 | void increment(); 8 | 9 | void decrement(); 10 | } 11 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/java/com/zhuinden/flow_alpha_master_detail/IsDetail.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flow_alpha_master_detail; 2 | 3 | /** 4 | * Created by Zhuinden on 2016.04.16.. 5 | */ 6 | public interface IsDetail { 7 | IsMaster getMaster(); 8 | } 9 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Sep 20 21:37:30 CEST 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 7 | -------------------------------------------------------------------------------- /flowless-library/src/main/java/flowless/Bundleable.java: -------------------------------------------------------------------------------- 1 | package flowless; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | 6 | /** 7 | * Created by Zhuinden on 2016.07.01.. 8 | */ 9 | public interface Bundleable { 10 | Bundle toBundle(); 11 | 12 | void fromBundle(@Nullable Bundle bundle); 13 | } 14 | -------------------------------------------------------------------------------- /flow-sample-orientation-lock/src/main/java/flow/sample/orientation/OrientationSampleScreen.java: -------------------------------------------------------------------------------- 1 | package flow.sample.orientation; 2 | 3 | import android.support.annotation.LayoutRes; 4 | 5 | abstract class OrientationSampleScreen { 6 | @LayoutRes 7 | abstract int getLayoutId(); 8 | 9 | boolean requiresLandscape() { 10 | return false; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/test/java/com/zhuinden/examplegithubclient/util/BundleFactoryConfig.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | /** 4 | * Created by Zhuinden on 2016.12.20.. 5 | */ 6 | public class BundleFactoryConfig { 7 | public static void setProvider(BundleFactory.Provider provider) { 8 | BundleFactory.provider = provider; 9 | } 10 | } -------------------------------------------------------------------------------- /flowless-mvp-example/src/test/java/flowless/FlowFactory.java: -------------------------------------------------------------------------------- 1 | package flowless; 2 | 3 | /** 4 | * Created by Zhuinden on 2016.12.19.. 5 | */ 6 | 7 | public class FlowFactory { 8 | public static Flow createFlow(KeyManager keyManager, ServiceProvider serviceProvider, History history) { 9 | return new Flow(keyManager, serviceProvider, history); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/Presenter.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | /** 4 | * Created by Owner on 2016.12.10. 5 | */ 6 | 7 | public interface Presenter { 8 | interface ViewContract { 9 | } 10 | 11 | void attachView(V v); 12 | 13 | void detachView(); 14 | } 15 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/domain/interactor/LoginInteractor.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.domain.interactor; 2 | 3 | 4 | import io.reactivex.Single; 5 | 6 | /** 7 | * Created by Zhuinden on 2016.12.18.. 8 | */ 9 | 10 | public interface LoginInteractor { 11 | Single login(String username, String password); 12 | } 13 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/README.md: -------------------------------------------------------------------------------- 1 | # Flow-Alpha-Master-Detail 2 | An initial implementation of Master-Detail layout with Flowless 1.0-alpha. 3 | 4 | ![Image 1](https://dl.dropboxusercontent.com/u/4363931/FlowMasterDetail-01.PNG) 5 | ![Image 2](https://dl.dropboxusercontent.com/u/4363931/FlowMasterDetail-02.PNG) 6 | ![Image 3](https://dl.dropboxusercontent.com/u/4363931/FlowMasterDetail-03.PNG) 7 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/test/java/com/zhuinden/examplegithubclient/util/PresenterUtils.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | /** 4 | * Created by Zhuinden on 2016.12.21.. 5 | */ 6 | 7 | public class PresenterUtils { 8 | public static

, V extends BasePresenter.ViewContract> void setView(P presenter, V viewContract) { 9 | presenter.view = viewContract; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/java/com/zhuinden/flowtransitions/Layout.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowtransitions; 2 | 3 | import android.support.annotation.LayoutRes; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | /** 9 | * Created by Zhuinden on 2016.12.03.. 10 | */ 11 | 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface Layout { 14 | @LayoutRes int value(); 15 | } 16 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/java/com/zhuinden/flowless_viewpager_example/extracted/LayoutKey.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_viewpager_example.extracted; 2 | 3 | import android.os.Parcelable; 4 | import android.support.annotation.LayoutRes; 5 | 6 | /** 7 | * Created by Zhuinden on 2016.06.27.. 8 | */ 9 | public interface LayoutKey 10 | extends Parcelable { 11 | @LayoutRes int layout(); 12 | 13 | FlowAnimation animation(); 14 | } 15 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/application/injection/ActivityScope.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.application.injection; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | import javax.inject.Scope; 7 | 8 | /** 9 | * Created by Owner on 2016.12.10. 10 | */ 11 | @Scope 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface ActivityScope { 14 | } 15 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable/drawer_button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/test/java/com/zhuinden/examplegithubclient/presentation/paths/login/LoginTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.presentation.paths.login; 2 | 3 | import org.junit.runner.RunWith; 4 | import org.junit.runners.Suite; 5 | 6 | /** 7 | * Created by Zhuinden on 2016.12.21.. 8 | */ 9 | 10 | @RunWith(Suite.class) 11 | @Suite.SuiteClasses({LoginPresenterTest.class, LoginKeyTest.class}) 12 | public class LoginTestSuite { 13 | } 14 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/IsChildOf.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | import java.lang.annotation.Inherited; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Created by Zhuinden on 2016.12.18.. 9 | */ 10 | 11 | @Inherited 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface IsChildOf { 14 | Class[] value(); 15 | } 16 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/java/com/zhuinden/flowless_dispatcher_sample/extracted/LayoutKey.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_dispatcher_sample.extracted; 2 | 3 | import android.os.Parcelable; 4 | import android.support.annotation.LayoutRes; 5 | 6 | /** 7 | * Created by Zhuinden on 2016.06.27.. 8 | */ 9 | public interface LayoutKey 10 | extends Parcelable { 11 | @LayoutRes 12 | int layout(); 13 | 14 | FlowAnimation animation(); 15 | } 16 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/data/repository/GithubRepoRepository.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.data.repository; 2 | 3 | import com.zhuinden.examplegithubclient.domain.data.response.repositories.GithubRepo; 4 | 5 | /** 6 | * Created by Zhuinden on 2017.01.02.. 7 | */ 8 | 9 | public interface GithubRepoRepository 10 | extends Repository { 11 | GithubRepo findByUrl(String url); 12 | } 13 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/java/com/zhuinden/flow_alpha_master_detail/extracted/LayoutKey.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flow_alpha_master_detail.extracted; 2 | 3 | import android.os.Parcelable; 4 | import android.support.annotation.LayoutRes; 5 | 6 | /** 7 | * Created by Zhuinden on 2016.12.03.. 8 | */ 9 | 10 | public interface LayoutKey 11 | extends Parcelable { 12 | @LayoutRes 13 | int layout(); 14 | 15 | FlowAnimation animation(); 16 | } 17 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/application/injection/KeyScope.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.application.injection; 2 | 3 | import java.lang.annotation.Retention; 4 | import java.lang.annotation.RetentionPolicy; 5 | 6 | import javax.inject.Scope; 7 | 8 | /** 9 | * Created by Owner on 2016.12.10. 10 | */ 11 | @Scope 12 | @Retention(RetentionPolicy.RUNTIME) 13 | public @interface KeyScope { 14 | Class value(); 15 | } 16 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/test/java/com/zhuinden/examplegithubclient/presentation/paths/repositories/RepositoriesTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.presentation.paths.repositories; 2 | 3 | import org.junit.runner.RunWith; 4 | import org.junit.runners.Suite; 5 | 6 | /** 7 | * Created by Zhuinden on 2016.12.21.. 8 | */ 9 | 10 | @RunWith(Suite.class) 11 | @Suite.SuiteClasses({RepositoriesPresenterTest.class}) 12 | public class RepositoriesTestSuite { 13 | } 14 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/LeftDrawerEnabled.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | import java.lang.annotation.Inherited; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Created by Zhuinden on 2016.12.18.. 9 | */ 10 | @Inherited 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface LeftDrawerEnabled { 13 | boolean value() default true; 14 | } 15 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/drawable/normal_button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/ToolbarButtonVisibility.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | import java.lang.annotation.Inherited; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | 7 | /** 8 | * Created by Zhuinden on 2016.12.18.. 9 | */ 10 | @Inherited 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface ToolbarButtonVisibility { 13 | boolean value() default true; 14 | } 15 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/layout/layout_master_detail_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/test/java/com/zhuinden/flow_alpha_master_detail/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flow_alpha_master_detail; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() 13 | throws Exception { 14 | assertEquals(4, 2 + 2); 15 | } 16 | } -------------------------------------------------------------------------------- /flowless-sample-single-root/src/test/java/com/zhuinden/flowless_dispatcher_sample/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_dispatcher_sample; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() 13 | throws Exception { 14 | assertEquals(4, 2 + 2); 15 | } 16 | } -------------------------------------------------------------------------------- /flowless-viewpager-example/src/test/java/com/zhuinden/flowless_viewpager_example/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_viewpager_example; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() 13 | throws Exception { 14 | assertEquals(4, 2 + 2); 15 | } 16 | } -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/BundleFactory.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | import android.os.Bundle; 4 | 5 | /** 6 | * Created by Zhuinden on 2016.12.20.. 7 | */ 8 | 9 | public class BundleFactory { 10 | public interface Provider { 11 | Bundle create(); 12 | } 13 | 14 | static Provider provider = Bundle::new; 15 | 16 | public static Bundle create() { 17 | return provider.create(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/Title.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | import android.support.annotation.StringRes; 4 | 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | 9 | /** 10 | * Created by Zhuinden on 2016.12.10.. 11 | */ 12 | 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Inherited 15 | public @interface Title { 16 | @StringRes int value(); 17 | } 18 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/Layout.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | 4 | import android.support.annotation.LayoutRes; 5 | 6 | import java.lang.annotation.Inherited; 7 | import java.lang.annotation.Retention; 8 | import java.lang.annotation.RetentionPolicy; 9 | 10 | /** 11 | * Created by Zhuinden on 2016.12.03.. 12 | */ 13 | 14 | @Inherited 15 | @Retention(RetentionPolicy.RUNTIME) 16 | public @interface Layout { 17 | @LayoutRes int value(); 18 | } -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/domain/interactor/GetRepositoriesInteractor.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.domain.interactor; 2 | 3 | import com.zhuinden.examplegithubclient.domain.data.response.repositories.GithubRepo; 4 | 5 | import java.util.List; 6 | 7 | import io.reactivex.Single; 8 | 9 | /** 10 | * Created by Owner on 2016.12.10. 11 | */ 12 | 13 | public interface GetRepositoriesInteractor { 14 | Single> getRepositories(String user, int page); 15 | } 16 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/androidTest/java/com/zhuinden/flow_alpha_master_detail/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flow_alpha_master_detail; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest 10 | extends ApplicationTestCase { 11 | public ApplicationTest() { 12 | super(Application.class); 13 | } 14 | } -------------------------------------------------------------------------------- /flowless-sample-single-root/src/androidTest/java/com/zhuinden/flowless_dispatcher_sample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_dispatcher_sample; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest 10 | extends ApplicationTestCase { 11 | public ApplicationTest() { 12 | super(Application.class); 13 | } 14 | } -------------------------------------------------------------------------------- /flowless-viewpager-example/src/androidTest/java/com/zhuinden/flowless_viewpager_example/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_viewpager_example; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest 10 | extends ApplicationTestCase { 11 | public ApplicationTest() { 12 | super(Application.class); 13 | } 14 | } -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /flowless-sample-transitions/src/test/java/com/zhuinden/flowtransitions/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowtransitions; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() 15 | throws Exception { 16 | assertEquals(4, 2 + 2); 17 | } 18 | } -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/layout/path_second.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 10 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/test/java/com/zhuinden/examplegithubclient/UnitTestSuite.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient; 2 | 3 | import com.zhuinden.examplegithubclient.presentation.paths.login.LoginTestSuite; 4 | import com.zhuinden.examplegithubclient.presentation.paths.repositories.RepositoriesTestSuite; 5 | 6 | import org.junit.runner.RunWith; 7 | import org.junit.runners.Suite; 8 | 9 | /** 10 | * Created by Zhuinden on 2016.12.19.. 11 | */ 12 | 13 | @RunWith(Suite.class) 14 | @Suite.SuiteClasses({LoginTestSuite.class, RepositoriesTestSuite.class}) 15 | public class UnitTestSuite { 16 | } 17 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/res/layout/path_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | -------------------------------------------------------------------------------- /flowless-sample-transitions/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/res/layout/path_repositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/java/com/zhuinden/flowless_dispatcher_sample/FirstKey.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_dispatcher_sample; 2 | 3 | import com.google.auto.value.AutoValue; 4 | import com.zhuinden.flowless_dispatcher_sample.extracted.FlowAnimation; 5 | import com.zhuinden.flowless_dispatcher_sample.extracted.LayoutKey; 6 | 7 | /** 8 | * Created by Zhuinden on 2016.06.28.. 9 | */ 10 | @AutoValue 11 | public abstract class FirstKey 12 | implements LayoutKey { 13 | public static FirstKey create() { 14 | return new AutoValue_FirstKey(R.layout.path_first, FlowAnimation.NONE); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/androidTest/java/com/zhuinden/examplegithubclient/presentation/paths/repositories/RepositoriesPage.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.presentation.paths.repositories; 2 | 3 | import android.support.test.espresso.Espresso; 4 | import android.support.test.espresso.ViewInteraction; 5 | import android.support.test.espresso.matcher.ViewMatchers; 6 | 7 | /** 8 | * Created by Zhuinden on 2016.12.19.. 9 | */ 10 | 11 | public class RepositoriesPage { 12 | public ViewInteraction repositoriesView() { 13 | return Espresso.onView(ViewMatchers.isAssignableFrom(RepositoriesView.class)); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/util/ComponentFactory.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.util; 2 | 3 | import android.content.Context; 4 | 5 | import java.lang.annotation.Inherited; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | 9 | /** 10 | * Created by Owner on 2016.12.10. 11 | */ 12 | @Inherited 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface ComponentFactory { 15 | Class> value(); 16 | 17 | interface FactoryMethod { 18 | T createComponent(Context context); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/java/com/zhuinden/flowless_dispatcher_sample/SecondKey.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_dispatcher_sample; 2 | 3 | import com.google.auto.value.AutoValue; 4 | import com.zhuinden.flowless_dispatcher_sample.extracted.FlowAnimation; 5 | import com.zhuinden.flowless_dispatcher_sample.extracted.LayoutKey; 6 | 7 | /** 8 | * Created by Zhuinden on 2016.06.28.. 9 | */ 10 | @AutoValue 11 | public abstract class SecondKey 12 | implements LayoutKey { 13 | public static SecondKey create() { 14 | return new AutoValue_SecondKey(R.layout.path_second, FlowAnimation.SEGUE); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /flowless-viewpager-example/src/main/java/com/zhuinden/flowless_viewpager_example/FirstKey.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.flowless_viewpager_example; 2 | 3 | import com.google.auto.value.AutoValue; 4 | import com.zhuinden.flowless_viewpager_example.extracted.FlowAnimation; 5 | import com.zhuinden.flowless_viewpager_example.extracted.LayoutKey; 6 | 7 | 8 | /** 9 | * Created by Zhuinden on 2016.07.17.. 10 | */ 11 | @AutoValue 12 | public abstract class FirstKey 13 | implements LayoutKey { 14 | public static FirstKey create() { 15 | return new AutoValue_FirstKey(R.layout.path_first, FlowAnimation.SEGUE); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/presentation/paths/login/LoginComponent.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.presentation.paths.login; 2 | 3 | import com.zhuinden.examplegithubclient.application.injection.KeyScope; 4 | import com.zhuinden.examplegithubclient.presentation.activity.main.MainComponent; 5 | 6 | import dagger.Component; 7 | 8 | /** 9 | * Created by Owner on 2016.12.10. 10 | */ 11 | @KeyScope(LoginKey.class) 12 | @Component(dependencies = MainComponent.class) 13 | public interface LoginComponent { 14 | LoginPresenter loginPresenter(); 15 | 16 | void inject(LoginView loginView); 17 | } 18 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/application/injection/modules/ServiceModule.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.application.injection.modules; 2 | 3 | import com.zhuinden.examplegithubclient.domain.service.GithubService; 4 | import com.zhuinden.examplegithubclient.domain.service.impl.GithubServiceImpl; 5 | 6 | import dagger.Module; 7 | import dagger.Provides; 8 | 9 | /** 10 | * Created by Owner on 2016.12.10. 11 | */ 12 | 13 | @Module 14 | public class ServiceModule { 15 | @Provides 16 | GithubService githubService(GithubServiceImpl githubService) { 17 | return githubService; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /flowless-library/src/main/java/flowless/KeyContextWrapper.java: -------------------------------------------------------------------------------- 1 | package flowless; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * Created by Zhuinden on 2016.12.18.. 7 | */ 8 | 9 | public interface KeyContextWrapper { 10 | public static final String KEY_SERVICE_TAG = "flowless.KEY"; 11 | 12 | public class Methods { 13 | private Methods() { 14 | } 15 | 16 | @SuppressWarnings("unchecked") 17 | public static T getKey(Context context) { 18 | //noinspection ResourceType 19 | return (T) context.getSystemService(KEY_SERVICE_TAG); 20 | } 21 | } 22 | 23 | T getKey(); 24 | } 25 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/layout/path_second_detail_third.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/domain/service/GithubService.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.domain.service; 2 | 3 | import com.zhuinden.examplegithubclient.domain.data.response.organization.Organization; 4 | import com.zhuinden.examplegithubclient.domain.data.response.repositories.GithubRepo; 5 | 6 | import java.util.List; 7 | 8 | import io.reactivex.Single; 9 | 10 | 11 | /** 12 | * Created by Owner on 2016.12.10. 13 | */ 14 | 15 | public interface GithubService { 16 | Single> getOrganizations(String user); 17 | 18 | Single> getRepositories(String user, int page); 19 | } 20 | -------------------------------------------------------------------------------- /flowless-sample-master-detail/src/main/res/layout/path_fourth_detail_second.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /flowless-mvp-example/src/main/java/com/zhuinden/examplegithubclient/data/model/DataSource.java: -------------------------------------------------------------------------------- 1 | package com.zhuinden.examplegithubclient.data.model; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by Zhuinden on 2017.01.02.. 7 | */ 8 | 9 | public interface DataSource { 10 | interface ChangeListener { 11 | void onChange(List repositories); 12 | } 13 | 14 | interface Unbinder { 15 | void unbind(); 16 | } 17 | 18 | public interface Modify { 19 | R modify(List mutableRepositories); 20 | } 21 | 22 | public interface Search { 23 | R search(List immutableRepositories); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /flowless-sample-single-root/src/main/res/layout/path_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 |