├── flowr ├── src │ ├── proguard-rules.pro │ ├── main │ │ ├── res │ │ │ └── values │ │ │ │ └── strings.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── fueled │ │ │ │ └── flowr │ │ │ │ ├── NavigationIconType.java │ │ │ │ ├── FragmentsResultPublisher.java │ │ │ │ ├── DrawerHandler.java │ │ │ │ ├── ResultResponse.java │ │ │ │ ├── ToolbarHandler.java │ │ │ │ ├── internal │ │ │ │ ├── FlowrDeepLinkHandler.java │ │ │ │ ├── FlowrDeepLinkInfo.java │ │ │ │ ├── TransactionData.java │ │ │ │ └── AbstractFlowrDeepLinkHandler.java │ │ │ │ ├── FlowrScreen.java │ │ │ │ ├── AbstractFlowrActivity.java │ │ │ │ ├── FlowrFragment.java │ │ │ │ ├── AbstractFlowrFragment.java │ │ │ │ └── Flowr.java │ │ └── AndroidManifest.xml │ └── test │ │ └── java │ │ └── com │ │ └── fueled │ │ └── flowr │ │ └── internal │ │ └── AbstractFlowrDeepLinkHandlerTest.java └── build.gradle ├── flowr-compiler ├── .gitignore ├── build.gradle └── src │ ├── test │ └── java │ │ └── com │ │ └── fueled │ │ └── flowr │ │ └── compilers │ │ └── DeepLinkAnnotationCompilerTest.java │ └── main │ └── java │ └── com │ └── fueled │ └── flowr │ └── compilers │ └── DeepLinkAnnotationCompiler.java ├── sample-library ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ └── strings.xml │ │ └── layout │ │ │ └── fragment_link.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── fueled │ │ └── flowr │ │ └── sample │ │ └── library │ │ ├── LibraryDeepLinkHandler.java │ │ └── LinkFragment.java └── build.gradle ├── flowr-annotations ├── .gitignore ├── src │ └── main │ │ ├── res │ │ └── values │ │ │ └── strings.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── fueled │ │ └── flowr │ │ └── annotations │ │ ├── DeepLink.java │ │ └── DeepLinkHandler.java ├── build.gradle └── proguard-rules.pro ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── sample ├── src │ └── main │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── drawable │ │ │ ├── blue_background.xml │ │ │ ├── red_background.xml │ │ │ ├── teal_background.xml │ │ │ ├── deep_purple_background.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_menu.xml │ │ │ ├── ic_arrow_back.xml │ │ │ └── ic_toc.xml │ │ ├── layout │ │ │ ├── fragment_nav_bar_color_picker.xml │ │ │ ├── fragment_first.xml │ │ │ ├── fragment_stack2.xml │ │ │ ├── layout_drawer_header.xml │ │ │ ├── fragment_home.xml │ │ │ ├── activity_main.xml │ │ │ └── fragment_view.xml │ │ ├── menu │ │ │ └── navigation_items.xml │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── styles.xml │ │ │ ├── dimens.xml │ │ │ └── strings.xml │ │ ├── java │ │ └── com │ │ │ └── fueled │ │ │ └── flowr │ │ │ └── sample │ │ │ ├── core │ │ │ ├── AbstractActivity.java │ │ │ ├── FragmentResultPublisherImpl.java │ │ │ └── AbstractFragment.java │ │ │ ├── FirstFragment.java │ │ │ ├── SecondFragment.java │ │ │ ├── HomeFragment.java │ │ │ ├── ViewFragment.java │ │ │ └── MainActivity.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── extra ├── checkstyle │ ├── checkstyle_java_library.gradle │ ├── checkstyle_android_library.gradle │ ├── checkstyle.gradle │ └── checkstyle.xml └── gradle │ ├── libraries.gradle │ └── jacoco.gradle ├── flowr-mock-classes ├── src │ └── main │ │ └── java │ │ └── com │ │ └── fueled │ │ └── flowr │ │ ├── AbstractFlowrFragment.java │ │ └── internal │ │ └── AbstractFlowrDeepLinkHandler.java └── build.gradle ├── CONTRIBUTING.md ├── .gitignore ├── gradle.properties ├── gradlew.bat ├── CODE_OF_CONDUCT.md ├── gradlew ├── .idea └── codeStyleSettings.xml ├── LICENSE └── README.md /flowr/src/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flowr-compiler/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /sample-library/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flowr-annotations/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /flowr/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | FlowR 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':flowr', ':sample', ':flowr-annotations', ':flowr-compiler', ':flowr-mock-classes', ':sample-library' 2 | -------------------------------------------------------------------------------- /flowr-annotations/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | annotations 3 | 4 | -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Fueled/flowr/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample-library/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | sample-library 3 | Hello, World! 4 | 5 | -------------------------------------------------------------------------------- /extra/checkstyle/checkstyle_java_library.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'checkstyle' 2 | 3 | checkstyle { 4 | configFile rootProject.file('extra/checkstyle/checkstyle.xml') 5 | showViolations true 6 | } 7 | -------------------------------------------------------------------------------- /sample-library/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /flowr-mock-classes/src/main/java/com/fueled/flowr/AbstractFlowrFragment.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr; 2 | 3 | /** 4 | * Mock AbstractFlowrFragment class used for compiler tests. 5 | */ 6 | public class AbstractFlowrFragment { 7 | } 8 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/blue_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/red_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/teal_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/deep_purple_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | The following guideline will be observed when contributing to the project: 2 | 3 | - Git commit and Pull Request Guideline: http://fueled.github.io/android-guideline/code/git-flow/ 4 | - Code Style: http://fueled.github.io/android-guideline/code/code_style/ 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Feb 13 13:50:49 GMT 2017 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-3.3-all.zip 7 | -------------------------------------------------------------------------------- /flowr/src/main/java/com/fueled/flowr/NavigationIconType.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr; 2 | 3 | /** 4 | * Created by hussein@fueled.com on 31/05/2016. 5 | * Copyright (c) 2016 Fueled. All rights reserved. 6 | */ 7 | public enum NavigationIconType { 8 | HIDDEN, 9 | HAMBURGER, 10 | BACK, 11 | CUSTOM 12 | } 13 | -------------------------------------------------------------------------------- /flowr/src/main/java/com/fueled/flowr/FragmentsResultPublisher.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr; 2 | 3 | 4 | /** 5 | * Created by hussein@fueled.com on 27/01/2017. 6 | * Copyright (c) 2017 Fueled. All rights reserved. 7 | */ 8 | public interface FragmentsResultPublisher { 9 | 10 | void publishResult(ResultResponse resultResponse); 11 | } 12 | -------------------------------------------------------------------------------- /sample/src/main/res/layout/fragment_nav_bar_color_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /flowr-mock-classes/src/main/java/com/fueled/flowr/internal/AbstractFlowrDeepLinkHandler.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr.internal; 2 | 3 | /** 4 | * Mock AbstractFlowrDeepLinkHandler class used for compiler tests. 5 | */ 6 | public class AbstractFlowrDeepLinkHandler { 7 | 8 | protected void addFragment(String url, Class clazz) { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /flowr/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /flowr/src/main/java/com/fueled/flowr/DrawerHandler.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr; 2 | 3 | /** 4 | * Created by hussein@fueled.com on 31/05/2016. 5 | * Copyright (c) 2016 Fueled. All rights reserved. 6 | */ 7 | public interface DrawerHandler { 8 | 9 | void openDrawer(); 10 | 11 | void closeDrawer(); 12 | 13 | void setDrawerEnabled(boolean enabled); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /sample-library/src/main/java/com/fueled/flowr/sample/library/LibraryDeepLinkHandler.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr.sample.library; 2 | 3 | import com.fueled.flowr.annotations.DeepLinkHandler; 4 | 5 | /** 6 | * Created by hussein@fueled.com on 05/06/2017. 7 | * Copyright (c) 2017 Fueled. All rights reserved. 8 | */ 9 | @DeepLinkHandler 10 | public class LibraryDeepLinkHandler { 11 | } 12 | -------------------------------------------------------------------------------- /flowr-annotations/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/ic_home.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/ic_menu.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /flowr/src/main/java/com/fueled/flowr/ResultResponse.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr; 2 | 3 | import android.os.Bundle; 4 | 5 | /** 6 | * Created by hussein@fueled.com on 27/01/2017. 7 | * Copyright (c) 2017 Fueled. All rights reserved. 8 | */ 9 | public class ResultResponse { 10 | 11 | public String fragmentId; 12 | public int requestCode; 13 | public int resultCode; 14 | public Bundle data; 15 | } 16 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/ic_arrow_back.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /sample-library/src/main/res/layout/fragment_link.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /sample/src/main/res/drawable/ic_toc.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /flowr-annotations/src/main/java/com/fueled/flowr/annotations/DeepLink.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr.annotations; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Created by julienFueled on 5/10/17. 10 | */ 11 | @Retention(RetentionPolicy.SOURCE) 12 | @Target(ElementType.TYPE) 13 | public @interface DeepLink { 14 | String[] value(); 15 | } 16 | -------------------------------------------------------------------------------- /sample/src/main/res/menu/navigation_items.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /sample/src/main/java/com/fueled/flowr/sample/core/AbstractActivity.java: -------------------------------------------------------------------------------- 1 | package com.fueled.flowr.sample.core; 2 | 3 | import android.support.v4.content.ContextCompat; 4 | 5 | import com.fueled.flowr.AbstractFlowrActivity; 6 | import com.fueled.flowr.Flowr; 7 | import com.fueled.flowr.sample.R; 8 | 9 | public abstract class AbstractActivity extends AbstractFlowrActivity { 10 | 11 | @Override 12 | protected int getDefaultNavigationBarColor() { 13 | return ContextCompat.getColor(this, R.color.navigationBarColor); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /flowr-mock-classes/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java' 2 | 3 | dependencies { 4 | compile fileTree(dir: 'libs', include: ['*.jar']) 5 | } 6 | 7 | task sourcesJar(type: Jar, dependsOn: classes) { 8 | classifier = 'sources' 9 | from sourceSets.main.allSource 10 | } 11 | 12 | task javadocJar(type: Jar, dependsOn: javadoc) { 13 | classifier = 'javadoc' 14 | from javadoc.destinationDir 15 | } 16 | 17 | artifacts { 18 | archives sourcesJar 19 | archives javadocJar 20 | } 21 | sourceCompatibility = "1.7" 22 | targetCompatibility = "1.7" 23 | -------------------------------------------------------------------------------- /sample/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | #000000 7 | 8 | #FFFFFF 9 | 10 | #673AB7 11 | #2196F3 12 | #009688 13 | #F44336 14 | 15 | 16 | -------------------------------------------------------------------------------- /sample/src/main/res/layout/fragment_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 |