├── .gitignore
├── .gradle
├── 4.10.1
│ ├── fileChanges
│ │ └── last-build.bin
│ ├── fileContent
│ │ └── fileContent.lock
│ ├── fileHashes
│ │ ├── fileHashes.bin
│ │ ├── fileHashes.lock
│ │ └── resourceHashesCache.bin
│ ├── gc.properties
│ ├── javaCompile
│ │ ├── classAnalysis.bin
│ │ ├── jarAnalysis.bin
│ │ ├── javaCompile.lock
│ │ └── taskHistory.bin
│ └── taskHistory
│ │ ├── taskHistory.bin
│ │ └── taskHistory.lock
├── 4.4
│ ├── fileChanges
│ │ └── last-build.bin
│ ├── fileContent
│ │ └── fileContent.lock
│ ├── fileHashes
│ │ ├── fileHashes.bin
│ │ ├── fileHashes.lock
│ │ └── resourceHashesCache.bin
│ ├── javaCompile
│ │ ├── classAnalysis.bin
│ │ ├── jarAnalysis.bin
│ │ ├── javaCompile.lock
│ │ ├── taskHistory.bin
│ │ └── taskJars.bin
│ └── taskHistory
│ │ ├── taskHistory.bin
│ │ └── taskHistory.lock
├── 4.9
│ ├── fileChanges
│ │ └── last-build.bin
│ ├── fileContent
│ │ ├── annotation-processors.bin
│ │ └── fileContent.lock
│ ├── fileHashes
│ │ ├── fileHashes.bin
│ │ ├── fileHashes.lock
│ │ └── resourceHashesCache.bin
│ ├── javaCompile
│ │ ├── classAnalysis.bin
│ │ ├── jarAnalysis.bin
│ │ ├── javaCompile.lock
│ │ ├── processorPath.bin
│ │ ├── taskHistory.bin
│ │ └── taskJars.bin
│ └── taskHistory
│ │ ├── taskHistory.bin
│ │ └── taskHistory.lock
├── buildOutputCleanup
│ ├── buildOutputCleanup.lock
│ ├── cache.properties
│ └── outputFiles.bin
├── vcs-1
│ └── gc.properties
└── vcsWorkingDirs
│ └── gc.properties
├── .idea
├── caches
│ └── build_file_checksums.ser
├── checkstyle-idea.xml
├── codeStyles
│ └── Project.xml
├── gradle.xml
├── libraries
│ ├── Dart_SDK.xml
│ ├── Flutter_Plugins.xml
│ ├── Gradle____local_aars____Users_zhujian_code_MyArchitecture_moduleflutter__android_Flutter_build_intermediates_flutter_flutter_x86_jar_unspecified_jar.xml
│ ├── Gradle____local_aars____Users_zhujian_code_flutter_bin_cache_artifacts_engine_android_arm_flutter_jar_unspecified_jar.xml
│ ├── Gradle__android_arch_core_common_1_1_0_jar.xml
│ ├── Gradle__android_arch_core_common_1_1_1_jar.xml
│ ├── Gradle__android_arch_core_runtime_1_1_0.xml
│ ├── Gradle__android_arch_core_runtime_1_1_1.xml
│ ├── Gradle__android_arch_lifecycle_common_1_1_0_jar.xml
│ ├── Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
│ ├── Gradle__android_arch_lifecycle_extensions_1_1_1.xml
│ ├── Gradle__android_arch_lifecycle_livedata_1_1_1.xml
│ ├── Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml
│ ├── Gradle__android_arch_lifecycle_livedata_core_1_1_1.xml
│ ├── Gradle__android_arch_lifecycle_runtime_1_1_0.xml
│ ├── Gradle__android_arch_lifecycle_runtime_1_1_1.xml
│ ├── Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml
│ ├── Gradle__android_arch_lifecycle_viewmodel_1_1_1.xml
│ ├── Gradle__androidx_annotation_annotation_1_0_0_alpha1_jar.xml
│ ├── Gradle__androidx_test_espresso_espresso_core_3_1_0_alpha4.xml
│ ├── Gradle__androidx_test_espresso_espresso_idling_resource_3_1_0_alpha4.xml
│ ├── Gradle__androidx_test_monitor_1_1_0_alpha4.xml
│ ├── Gradle__androidx_test_runner_1_1_0_alpha4.xml
│ ├── Gradle__com_alibaba_arouter_annotation_1_0_6_jar.xml
│ ├── Gradle__com_alibaba_arouter_api_1_4_0.xml
│ ├── Gradle__com_android_support_animated_vector_drawable_25_0_0.xml
│ ├── Gradle__com_android_support_animated_vector_drawable_28_0_0.xml
│ ├── Gradle__com_android_support_appcompat_v7_25_0_0.xml
│ ├── Gradle__com_android_support_appcompat_v7_28_0_0.xml
│ ├── Gradle__com_android_support_asynclayoutinflater_28_0_0.xml
│ ├── Gradle__com_android_support_cardview_v7_28_0_0.xml
│ ├── Gradle__com_android_support_collections_28_0_0_jar.xml
│ ├── Gradle__com_android_support_constraint_constraint_layout_1_1_0.xml
│ ├── Gradle__com_android_support_constraint_constraint_layout_solver_1_1_0_jar.xml
│ ├── Gradle__com_android_support_coordinatorlayout_28_0_0.xml
│ ├── Gradle__com_android_support_cursoradapter_28_0_0.xml
│ ├── Gradle__com_android_support_customview_28_0_0.xml
│ ├── Gradle__com_android_support_design_28_0_0.xml
│ ├── Gradle__com_android_support_documentfile_28_0_0.xml
│ ├── Gradle__com_android_support_drawerlayout_28_0_0.xml
│ ├── Gradle__com_android_support_interpolator_28_0_0.xml
│ ├── Gradle__com_android_support_loader_28_0_0.xml
│ ├── Gradle__com_android_support_localbroadcastmanager_28_0_0.xml
│ ├── Gradle__com_android_support_multidex_1_0_2.xml
│ ├── Gradle__com_android_support_multidex_instrumentation_1_0_2.xml
│ ├── Gradle__com_android_support_print_28_0_0.xml
│ ├── Gradle__com_android_support_recyclerview_v7_28_0_0.xml
│ ├── Gradle__com_android_support_slidingpanelayout_28_0_0.xml
│ ├── Gradle__com_android_support_support_annotations_25_0_0_jar.xml
│ ├── Gradle__com_android_support_support_annotations_27_1_1_jar.xml
│ ├── Gradle__com_android_support_support_annotations_28_0_0_jar.xml
│ ├── Gradle__com_android_support_support_compat_25_0_0.xml
│ ├── Gradle__com_android_support_support_compat_27_1_1.xml
│ ├── Gradle__com_android_support_support_compat_28_0_0.xml
│ ├── Gradle__com_android_support_support_core_ui_25_0_0.xml
│ ├── Gradle__com_android_support_support_core_ui_27_1_1.xml
│ ├── Gradle__com_android_support_support_core_ui_28_0_0.xml
│ ├── Gradle__com_android_support_support_core_utils_25_0_0.xml
│ ├── Gradle__com_android_support_support_core_utils_27_1_1.xml
│ ├── Gradle__com_android_support_support_core_utils_28_0_0.xml
│ ├── Gradle__com_android_support_support_fragment_25_0_0.xml
│ ├── Gradle__com_android_support_support_fragment_27_1_1.xml
│ ├── Gradle__com_android_support_support_fragment_28_0_0.xml
│ ├── Gradle__com_android_support_support_media_compat_25_0_0.xml
│ ├── Gradle__com_android_support_support_media_compat_27_1_1.xml
│ ├── Gradle__com_android_support_support_media_compat_28_0_0.xml
│ ├── Gradle__com_android_support_support_v13_27_1_1.xml
│ ├── Gradle__com_android_support_support_v4_25_0_0.xml
│ ├── Gradle__com_android_support_support_v4_27_1_1.xml
│ ├── Gradle__com_android_support_support_v4_28_0_0.xml
│ ├── Gradle__com_android_support_support_vector_drawable_25_0_0.xml
│ ├── Gradle__com_android_support_support_vector_drawable_28_0_0.xml
│ ├── Gradle__com_android_support_swiperefreshlayout_28_0_0.xml
│ ├── Gradle__com_android_support_transition_28_0_0.xml
│ ├── Gradle__com_android_support_versionedparcelable_28_0_0.xml
│ ├── Gradle__com_android_support_viewpager_28_0_0.xml
│ ├── Gradle__com_facebook_stetho_stetho_1_5_0.xml
│ ├── Gradle__com_facebook_stetho_stetho_okhttp3_1_5_0.xml
│ ├── Gradle__com_github_VictorAlbertos_Jolyglot_api_0_0_4_jar.xml
│ ├── Gradle__com_github_VictorAlbertos_Jolyglot_common_0_0_4_jar.xml
│ ├── Gradle__com_github_VictorAlbertos_Jolyglot_gson_0_0_4_jar.xml
│ ├── Gradle__com_github_VictorAlbertos_RxCache_core_1_8_3_2_x_jar.xml
│ ├── Gradle__com_github_VictorAlbertos_RxCache_runtime_1_8_3_2_x_jar.xml
│ ├── Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
│ ├── Gradle__com_google_code_gson_gson_2_8_2_jar.xml
│ ├── Gradle__com_google_dagger_dagger_2_17_jar.xml
│ ├── Gradle__com_google_dagger_dagger_android_2_17.xml
│ ├── Gradle__com_google_dagger_dagger_android_support_2_17.xml
│ ├── Gradle__com_jakewharton_butterknife_8_4_0.xml
│ ├── Gradle__com_jakewharton_butterknife_annotations_8_4_0_jar.xml
│ ├── Gradle__com_squareup_javawriter_2_1_1_jar.xml
│ ├── Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml
│ ├── Gradle__com_squareup_okhttp3_okhttp_3_11_0_jar.xml
│ ├── Gradle__com_squareup_okio_okio_1_14_0_jar.xml
│ ├── Gradle__com_squareup_retrofit2_adapter_rxjava2_2_2_0_jar.xml
│ ├── Gradle__com_squareup_retrofit2_converter_gson_2_4_0_jar.xml
│ ├── Gradle__com_squareup_retrofit2_retrofit_2_4_0_jar.xml
│ ├── Gradle__com_trello_rxlifecycle2_rxlifecycle_2_2_2_jar.xml
│ ├── Gradle__com_trello_rxlifecycle2_rxlifecycle_android_2_2_2.xml
│ ├── Gradle__com_trello_rxlifecycle2_rxlifecycle_components_2_2_2.xml
│ ├── Gradle__commons_cli_commons_cli_1_2_jar.xml
│ ├── Gradle__io_reactivex_rxjava2_rxandroid_2_0_2.xml
│ ├── Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml
│ ├── Gradle__javax_inject_javax_inject_1_jar.xml
│ ├── Gradle__junit_junit_4_12_jar.xml
│ ├── Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
│ ├── Gradle__org_glassfish_javax_annotation_10_0_b28_jar.xml
│ ├── Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
│ ├── Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
│ ├── Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
│ └── Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml
├── misc.xml
├── modules.xml
├── runConfigurations.xml
├── vcs.xml
└── workspace.xml
├── MyArchitecture.iml
├── README.md
├── app
├── .gitignore
├── app.iml
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── jzhu
│ │ │ └── com
│ │ │ └── myarchitecture
│ │ │ ├── Activity
│ │ │ ├── FlutterContainerActivity.java
│ │ │ ├── MainActivity.java
│ │ │ └── TestActivity.java
│ │ │ ├── MainApplication.java
│ │ │ ├── adapter
│ │ │ └── ViewPagerAdapter.java
│ │ │ ├── di
│ │ │ ├── component
│ │ │ │ └── AppComponent.java
│ │ │ └── module
│ │ │ │ ├── AllActivitiesModule.java
│ │ │ │ └── AllFragmentsModule.java
│ │ │ └── widget
│ │ │ ├── IndicatorViewPager.java
│ │ │ └── WindowUtil.java
│ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ ├── circle_normal.xml
│ │ ├── circle_selected.xml
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ ├── activity_main.xml
│ │ ├── activity_test.xml
│ │ ├── indicator_layout.xml
│ │ ├── os_banner_layout.xml
│ │ └── test_item.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── 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
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── jzhu
│ └── com
│ └── myarchitecture
│ └── ExampleUnitTest.java
├── build.gradle
├── building_system
└── jz.jks
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── libbase
├── .gitignore
├── build.gradle
├── libbase.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── jzhu
│ │ └── com
│ │ └── libbase
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── jzhu
│ │ │ └── com
│ │ │ └── libbase
│ │ │ ├── base
│ │ │ ├── BaseActivity.java
│ │ │ ├── BaseApplication.java
│ │ │ ├── BaseFlutterActivity.java
│ │ │ ├── BaseFragment.java
│ │ │ ├── BaseInjectActivity.java
│ │ │ ├── BaseInjectFragment.java
│ │ │ ├── BaseMvpActivity.java
│ │ │ ├── BaseMvpFragment.java
│ │ │ ├── BaseObserver.java
│ │ │ ├── BasePresenter.java
│ │ │ ├── BaseView.java
│ │ │ └── CustomFlutterActivity.java
│ │ │ ├── di
│ │ │ ├── PerScoped.java
│ │ │ └── module
│ │ │ │ └── AppModule.java
│ │ │ ├── plugin
│ │ │ └── FlutterPluginJumpToAct.java
│ │ │ ├── util
│ │ │ ├── NetworkUtils.java
│ │ │ ├── RxUtil.java
│ │ │ └── ToastUtils.java
│ │ │ └── widget
│ │ │ └── CommonLoading.java
│ └── res
│ │ ├── layout
│ │ └── common_loading.xml
│ │ └── values
│ │ ├── strings.xml
│ │ └── style.xml
│ └── test
│ └── java
│ └── jzhu
│ └── com
│ └── libbase
│ ├── ExampleUnitTest.java
│ ├── MethodNameRule.java
│ ├── NetworkSimpleTest.java
│ ├── RxJavaRule.java
│ ├── TestApi.java
│ └── TestModel.java
├── libdata
├── .gitignore
├── build.gradle
├── libdata.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── jzhu
│ │ └── com
│ │ └── libdata
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── jzhu
│ │ │ └── com
│ │ │ └── libdata
│ │ │ ├── cache
│ │ │ └── RxCacheFactory.java
│ │ │ ├── network
│ │ │ ├── HttpConfig.java
│ │ │ ├── HttpResponse.java
│ │ │ ├── InterceptorUtil.java
│ │ │ └── RetrofitFactory.java
│ │ │ └── sharepreference
│ │ │ └── SharedPreferencesHelper.java
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── jzhu
│ └── com
│ └── libdata
│ └── ExampleUnitTest.java
├── libprovider
├── .gitignore
├── build.gradle
├── libprovider.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── jzhu
│ │ └── com
│ │ └── libprovider
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── jzhu
│ │ │ └── com
│ │ │ └── libprovider
│ │ │ ├── config
│ │ │ └── RouterPath.java
│ │ │ ├── model
│ │ │ └── UserModel.java
│ │ │ └── providers
│ │ │ ├── ModuleSearchService.java
│ │ │ └── ModuleUserService.java
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── jzhu
│ └── com
│ └── libprovider
│ └── ExampleUnitTest.java
├── libres
├── .gitignore
├── build.gradle
├── libres.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── jzhu
│ │ └── com
│ │ └── libres
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ └── 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
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ ├── styles_base.xml
│ │ └── styles_custom.xml
│ └── test
│ └── java
│ └── jzhu
│ └── com
│ └── libres
│ └── ExampleUnitTest.java
├── local.properties
├── moduleflutter
├── .gitignore
├── .metadata
├── README.md
├── lib
│ ├── home_page.dart
│ ├── main.dart
│ └── test_page.dart
├── local.properties
├── moduleflutter.iml
├── pubspec.lock
└── pubspec.yaml
├── modulesearch
├── .gitignore
├── build.gradle
├── modulesearch.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── jzhu
│ │ └── com
│ │ └── modulesearch
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── debug
│ │ └── AndroidManifest.xml
│ ├── java
│ │ └── jzhu
│ │ │ └── com
│ │ │ └── modulesearch
│ │ │ ├── ModuleSearchApplication.java
│ │ │ ├── Repository
│ │ │ ├── SearchRepository.java
│ │ │ └── SearchRepositoryImpl.java
│ │ │ ├── api
│ │ │ └── SearchApi.java
│ │ │ ├── providers
│ │ │ └── ModuleSearchServiceImpl.java
│ │ │ └── ui
│ │ │ ├── MainActivity.java
│ │ │ └── MainFragment.java
│ └── res
│ │ ├── layout
│ │ ├── module_search_activity_main.xml
│ │ └── module_search_fragment_main.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── jzhu
│ └── com
│ └── modulesearch
│ └── ExampleUnitTest.java
├── moduleusers
├── .gitignore
├── build.gradle
├── moduleusers.iml
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── jzhu
│ │ └── com
│ │ └── moduleusers
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── debug
│ │ └── AndroidManifest.xml
│ ├── java
│ │ └── jzhu
│ │ │ └── com
│ │ │ └── moduleusers
│ │ │ ├── ModuleUserApplication.java
│ │ │ ├── NoScrollLinearLayoutManager.java
│ │ │ ├── Repository
│ │ │ ├── UsersRepository.java
│ │ │ └── UsersRepositoryImpl.java
│ │ │ ├── api
│ │ │ └── UsersApi.java
│ │ │ ├── cache
│ │ │ └── UsersCacheProviders.java
│ │ │ ├── di
│ │ │ ├── componet
│ │ │ │ └── ModuleUserComponet.java
│ │ │ └── module
│ │ │ │ ├── UserAllActivityModule.java
│ │ │ │ ├── UserAllFragmentModule.java
│ │ │ │ └── UsersModule.java
│ │ │ ├── mvp
│ │ │ ├── Presenter
│ │ │ │ └── UsersPresenter.java
│ │ │ └── view
│ │ │ │ └── UsersView.java
│ │ │ ├── providers
│ │ │ └── ModuleUserServiceImpl.java
│ │ │ └── ui
│ │ │ ├── activity
│ │ │ └── MainActivity.java
│ │ │ ├── adapter
│ │ │ └── UserAdapter.java
│ │ │ └── fragment
│ │ │ └── UsersFragment.java
│ └── res
│ │ ├── layout
│ │ ├── module_user_activity_main.xml
│ │ ├── module_user_fragment_users.xml
│ │ └── module_user_item_name.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── jzhu
│ └── com
│ └── moduleusers
│ └── ExampleUnitTest.java
├── pics
└── myapp.png
├── settings.gradle
└── versions.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by .ignore support plugin (hsz.mobi)
2 |
--------------------------------------------------------------------------------
/.gradle/4.10.1/fileChanges/last-build.bin:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gradle/4.10.1/fileContent/fileContent.lock:
--------------------------------------------------------------------------------
1 | d 5@S|7
--------------------------------------------------------------------------------
/.gradle/4.10.1/fileHashes/fileHashes.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/fileHashes/fileHashes.bin
--------------------------------------------------------------------------------
/.gradle/4.10.1/fileHashes/fileHashes.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/fileHashes/fileHashes.lock
--------------------------------------------------------------------------------
/.gradle/4.10.1/fileHashes/resourceHashesCache.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/fileHashes/resourceHashesCache.bin
--------------------------------------------------------------------------------
/.gradle/4.10.1/gc.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/gc.properties
--------------------------------------------------------------------------------
/.gradle/4.10.1/javaCompile/classAnalysis.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/javaCompile/classAnalysis.bin
--------------------------------------------------------------------------------
/.gradle/4.10.1/javaCompile/jarAnalysis.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/javaCompile/jarAnalysis.bin
--------------------------------------------------------------------------------
/.gradle/4.10.1/javaCompile/javaCompile.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/javaCompile/javaCompile.lock
--------------------------------------------------------------------------------
/.gradle/4.10.1/javaCompile/taskHistory.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/javaCompile/taskHistory.bin
--------------------------------------------------------------------------------
/.gradle/4.10.1/taskHistory/taskHistory.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/taskHistory/taskHistory.bin
--------------------------------------------------------------------------------
/.gradle/4.10.1/taskHistory/taskHistory.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.10.1/taskHistory/taskHistory.lock
--------------------------------------------------------------------------------
/.gradle/4.4/fileChanges/last-build.bin:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gradle/4.4/fileContent/fileContent.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/fileContent/fileContent.lock
--------------------------------------------------------------------------------
/.gradle/4.4/fileHashes/fileHashes.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/fileHashes/fileHashes.bin
--------------------------------------------------------------------------------
/.gradle/4.4/fileHashes/fileHashes.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/fileHashes/fileHashes.lock
--------------------------------------------------------------------------------
/.gradle/4.4/fileHashes/resourceHashesCache.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/fileHashes/resourceHashesCache.bin
--------------------------------------------------------------------------------
/.gradle/4.4/javaCompile/classAnalysis.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/javaCompile/classAnalysis.bin
--------------------------------------------------------------------------------
/.gradle/4.4/javaCompile/jarAnalysis.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/javaCompile/jarAnalysis.bin
--------------------------------------------------------------------------------
/.gradle/4.4/javaCompile/javaCompile.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/javaCompile/javaCompile.lock
--------------------------------------------------------------------------------
/.gradle/4.4/javaCompile/taskHistory.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/javaCompile/taskHistory.bin
--------------------------------------------------------------------------------
/.gradle/4.4/javaCompile/taskJars.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/javaCompile/taskJars.bin
--------------------------------------------------------------------------------
/.gradle/4.4/taskHistory/taskHistory.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/taskHistory/taskHistory.bin
--------------------------------------------------------------------------------
/.gradle/4.4/taskHistory/taskHistory.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.4/taskHistory/taskHistory.lock
--------------------------------------------------------------------------------
/.gradle/4.9/fileChanges/last-build.bin:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gradle/4.9/fileContent/annotation-processors.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/fileContent/annotation-processors.bin
--------------------------------------------------------------------------------
/.gradle/4.9/fileContent/fileContent.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/fileContent/fileContent.lock
--------------------------------------------------------------------------------
/.gradle/4.9/fileHashes/fileHashes.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/fileHashes/fileHashes.bin
--------------------------------------------------------------------------------
/.gradle/4.9/fileHashes/fileHashes.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/fileHashes/fileHashes.lock
--------------------------------------------------------------------------------
/.gradle/4.9/fileHashes/resourceHashesCache.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/fileHashes/resourceHashesCache.bin
--------------------------------------------------------------------------------
/.gradle/4.9/javaCompile/classAnalysis.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/javaCompile/classAnalysis.bin
--------------------------------------------------------------------------------
/.gradle/4.9/javaCompile/jarAnalysis.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/javaCompile/jarAnalysis.bin
--------------------------------------------------------------------------------
/.gradle/4.9/javaCompile/javaCompile.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/javaCompile/javaCompile.lock
--------------------------------------------------------------------------------
/.gradle/4.9/javaCompile/processorPath.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/javaCompile/processorPath.bin
--------------------------------------------------------------------------------
/.gradle/4.9/javaCompile/taskHistory.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/javaCompile/taskHistory.bin
--------------------------------------------------------------------------------
/.gradle/4.9/javaCompile/taskJars.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/javaCompile/taskJars.bin
--------------------------------------------------------------------------------
/.gradle/4.9/taskHistory/taskHistory.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/taskHistory/taskHistory.bin
--------------------------------------------------------------------------------
/.gradle/4.9/taskHistory/taskHistory.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/4.9/taskHistory/taskHistory.lock
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/buildOutputCleanup.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/buildOutputCleanup/buildOutputCleanup.lock
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/cache.properties:
--------------------------------------------------------------------------------
1 | #Fri Sep 21 20:19:25 CST 2018
2 | gradle.version=4.4
3 |
--------------------------------------------------------------------------------
/.gradle/buildOutputCleanup/outputFiles.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/buildOutputCleanup/outputFiles.bin
--------------------------------------------------------------------------------
/.gradle/vcs-1/gc.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/vcs-1/gc.properties
--------------------------------------------------------------------------------
/.gradle/vcsWorkingDirs/gc.properties:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.gradle/vcsWorkingDirs/gc.properties
--------------------------------------------------------------------------------
/.idea/caches/build_file_checksums.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/.idea/caches/build_file_checksums.ser
--------------------------------------------------------------------------------
/.idea/checkstyle-idea.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/.idea/codeStyles/Project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
26 |
27 |
--------------------------------------------------------------------------------
/.idea/libraries/Dart_SDK.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/.idea/libraries/Flutter_Plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle____local_aars____Users_zhujian_code_MyArchitecture_moduleflutter__android_Flutter_build_intermediates_flutter_flutter_x86_jar_unspecified_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle____local_aars____Users_zhujian_code_flutter_bin_cache_artifacts_engine_android_arm_flutter_jar_unspecified_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_core_common_1_1_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_extensions_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0_alpha1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_1_0_alpha4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_1_0_alpha4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__androidx_test_monitor_1_1_0_alpha4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__androidx_test_runner_1_1_0_alpha4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_alibaba_arouter_annotation_1_0_6_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_alibaba_arouter_api_1_4_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_appcompat_v7_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_customview_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_design_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_loader_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_multidex_1_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_multidex_instrumentation_1_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_print_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_annotations_25_0_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_compat_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_core_ui_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_core_utils_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_fragment_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_media_compat_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_media_compat_27_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_v13_27_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_v4_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_v4_27_1_1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_vector_drawable_25_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_transition_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_facebook_stetho_stetho_1_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_facebook_stetho_stetho_okhttp3_1_5_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_github_VictorAlbertos_Jolyglot_api_0_0_4_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_github_VictorAlbertos_Jolyglot_common_0_0_4_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_github_VictorAlbertos_Jolyglot_gson_0_0_4_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_github_VictorAlbertos_RxCache_core_1_8_3_2_x_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_github_VictorAlbertos_RxCache_runtime_1_8_3_2_x_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_2_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_google_dagger_dagger_2_17_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_google_dagger_dagger_android_2_17.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_google_dagger_dagger_android_support_2_17.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_jakewharton_butterknife_8_4_0.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_jakewharton_butterknife_annotations_8_4_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_squareup_okhttp3_logging_interceptor_3_11_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_11_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_squareup_retrofit2_adapter_rxjava2_2_2_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_squareup_retrofit2_converter_gson_2_4_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_squareup_retrofit2_retrofit_2_4_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_trello_rxlifecycle2_rxlifecycle_2_2_2_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_trello_rxlifecycle2_rxlifecycle_android_2_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__com_trello_rxlifecycle2_rxlifecycle_components_2_2_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__commons_cli_commons_cli_1_2_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__io_reactivex_rxjava2_rxandroid_2_0_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__io_reactivex_rxjava2_rxjava_2_2_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__junit_junit_4_12_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__org_glassfish_javax_annotation_10_0_b28_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/Gradle__org_reactivestreams_reactive_streams_1_0_2_jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/MyArchitecture.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## 组件化
2 | 1. 代码解耦
3 | 2. 各个组件单独运行
4 | 3. 数据传递
5 | 4. UI跳转
6 | 5. 集成调试
7 | 6. 代码隔离
8 |
9 | ## 分层
10 | 1. 应用层:组合各业务模块,打包成apk
11 | 2. 业务层:各种业务逻辑模块
12 | 3. 内核层:基础功能库
13 | 4. 跨平台层:Android和iOS 未来能公用的逻辑页面
14 |
15 | ## 实现记录(持续集成优化ing)
16 | 1. 模块间通信
17 | 2. 数据层+缓存
18 | 3. 基础类
19 | 4. MVP
20 | 5. DI
21 | 6. 支持Flutter
22 |
23 | ## 核心库
24 | versions.lifecycle = "1.1.1"
25 | versions.support = "27.1.1"
26 | versions.multidex = "1.0.2"
27 | versions.dagger = "2.17"
28 | versions.junit = "4.12"
29 | versions.retrofit = "2.4.0"
30 | versions.okhttp="3.11.0"
31 | versions.okhttp_logging_interceptor = "3.11.0"
32 | versions.constraint_layout = "1.1.0"
33 | versions.glide = "4.7.1"
34 | versions.rxjava2 = "2.2.0"
35 | versions.rx_android = "2.0.2"
36 | versions.rx_cache = "1.8.3-2.x"
37 | versions.rx_permissions = "0.9.5@aar"
38 | versions.rx_lifecycle = "2.2.2"
39 | versions.rx_cache_jolyglot_gson="0.0.4"
40 | versions.butterknife = "8.4.0"
41 | versions.arouter_api = "1.4.0"
42 | versions.arouter_compiler = "1.2.1"
43 | versions.arouter_register = "1.0.2"
44 | ......
45 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/app/src/main/java/jzhu/com/myarchitecture/Activity/TestActivity.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.myarchitecture.Activity;
2 |
3 | import android.os.Bundle;
4 | import android.support.v7.widget.Toolbar;
5 | import butterknife.BindView;
6 | import butterknife.OnClick;
7 | import com.alibaba.android.arouter.facade.annotation.Route;
8 | import com.alibaba.android.arouter.launcher.ARouter;
9 | import jzhu.com.libbase.base.BaseActivity;
10 | import jzhu.com.libprovider.config.RouterPath;
11 | import jzhu.com.myarchitecture.R;
12 |
13 | @Route(path = RouterPath.MainPath.MAIN_TEST, name = "TestActivity")
14 | public class TestActivity extends BaseActivity {
15 |
16 | @BindView(R.id.toolbar)
17 | Toolbar toolbar;
18 |
19 | @Override
20 | protected int getLayoutId() {
21 | return R.layout.activity_test;
22 | }
23 |
24 | @Override
25 | protected void initContentView(Bundle savedInstanceState) {
26 | toolbar.setTitle("TestActivity");
27 | }
28 |
29 |
30 | @OnClick(R.id.btn)
31 | public void onViewClicked() {
32 | ARouter.getInstance()
33 | .build(RouterPath.MainPath.MAIN_FLUTTER_CONTAINER)
34 | .withString("path", RouterPath.ModuleFlutterPath.FLUTTER_TEST)
35 | .navigation();
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/java/jzhu/com/myarchitecture/MainApplication.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.myarchitecture;
2 |
3 | import io.flutter.view.FlutterMain;
4 | import jzhu.com.libbase.base.BaseApplication;
5 | import jzhu.com.myarchitecture.di.component.DaggerAppComponent;
6 |
7 | public class MainApplication extends BaseApplication{
8 |
9 | @Override
10 | public void onCreate() {
11 | super.onCreate();
12 | FlutterMain.startInitialization(this);
13 | }
14 |
15 | @Override
16 | protected void injectApp() {
17 | DaggerAppComponent.builder()
18 | .build()
19 | .inject(this);
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/jzhu/com/myarchitecture/adapter/ViewPagerAdapter.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.myarchitecture.adapter;
2 |
3 | import android.content.Context;
4 | import android.support.annotation.NonNull;
5 | import android.support.v4.view.PagerAdapter;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import android.widget.TextView;
10 | import jzhu.com.myarchitecture.R;
11 |
12 | public class ViewPagerAdapter extends PagerAdapter {
13 |
14 |
15 | private String[] list;
16 |
17 | private LayoutInflater inflater;
18 |
19 | public ViewPagerAdapter(String[] list, Context context){
20 | this.list = list;
21 | inflater = LayoutInflater.from(context);
22 | }
23 |
24 | @Override
25 | public int getCount() {
26 | return list.length;
27 | }
28 |
29 | @NonNull
30 | @Override
31 | public Object instantiateItem(@NonNull ViewGroup container, int position) {
32 |
33 | View view = inflater.inflate(R.layout.test_item,null);
34 |
35 | TextView textView = view.findViewById(R.id.num_text);
36 | textView.setText(String.valueOf(position));
37 | container.addView(view);
38 | return view;
39 | }
40 |
41 |
42 |
43 | @Override
44 | public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
45 | return view == o;
46 | }
47 |
48 | @Override
49 | public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
50 | container.removeView((View)object);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/app/src/main/java/jzhu/com/myarchitecture/di/component/AppComponent.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.myarchitecture.di.component;
2 |
3 | import dagger.Component;
4 | import dagger.android.AndroidInjectionModule;
5 | import dagger.android.support.AndroidSupportInjectionModule;
6 | import jzhu.com.libbase.base.BaseApplication;
7 | import jzhu.com.libbase.di.PerScoped;
8 | import jzhu.com.libbase.di.module.AppModule;
9 | import jzhu.com.myarchitecture.di.module.AllActivitiesModule;
10 | import jzhu.com.myarchitecture.di.module.AllFragmentsModule;
11 |
12 | @PerScoped
13 | @Component(modules = {
14 | AndroidInjectionModule.class,
15 | AndroidSupportInjectionModule.class,
16 | AppModule.class,
17 | AllFragmentsModule.class,
18 | AllActivitiesModule.class})
19 | public interface AppComponent {
20 |
21 | void inject(BaseApplication baseApplication);
22 |
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/jzhu/com/myarchitecture/di/module/AllActivitiesModule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.myarchitecture.di.module;
2 |
3 | import dagger.Module;
4 |
5 | @Module
6 | public class AllActivitiesModule {
7 |
8 |
9 |
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/jzhu/com/myarchitecture/di/module/AllFragmentsModule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.myarchitecture.di.module;
2 |
3 | import dagger.Module;
4 | import jzhu.com.moduleusers.di.module.UserAllFragmentModule;
5 |
6 | @Module(includes = { UserAllFragmentModule.class })
7 | public class AllFragmentsModule {
8 |
9 |
10 |
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circle_normal.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
11 |
13 |
16 |
17 |
18 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/circle_selected.xml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
11 |
13 |
16 |
17 |
18 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
14 |
15 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/indicator_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
15 |
16 |
17 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/os_banner_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/test_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | MyArchitecture
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/test/java/jzhu/com/myarchitecture/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.myarchitecture;
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 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | apply plugin: 'com.alibaba.arouter'
3 |
4 | buildscript {
5 | apply from: 'versions.gradle'
6 | addRepos(repositories)
7 |
8 | dependencies {
9 | classpath deps.android_gradle_plugin
10 | classpath deps.butterknife.butterknife_gradle_plugin
11 | classpath deps.arouter.register
12 |
13 | // NOTE: Do not place your application dependencies here; they belong
14 | // in the individual module build.gradle files
15 | }
16 | }
17 |
18 | allprojects {
19 | addRepos(repositories)
20 | }
21 |
22 | task clean(type: Delete) {
23 | delete rootProject.buildDir
24 | }
25 |
--------------------------------------------------------------------------------
/building_system/jz.jks:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/building_system/jz.jks
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 |
19 | # AndroidX package structure to make it clearer which packages are bundled with the
20 | # Android operating system, and which are packaged with your app's APK
21 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
22 | android.useAndroidX=true
23 | # Automatically convert third-party libraries to use AndroidX
24 | android.enableJetifier=true
25 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Aug 13 23:42:17 CST 2018
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-4.4-all.zip
7 |
--------------------------------------------------------------------------------
/libbase/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/libbase/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/libbase/src/androidTest/java/jzhu/com/libbase/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase;
2 |
3 | import android.content.Context;
4 | import androidx.test.InstrumentationRegistry;
5 | import androidx.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("jzhu.com.libbase.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/libbase/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/base/BaseActivity.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.base;
2 |
3 | import android.os.Bundle;
4 | import android.support.v7.app.AppCompatActivity;
5 | import butterknife.ButterKnife;
6 | import butterknife.Unbinder;
7 | import com.alibaba.android.arouter.launcher.ARouter;
8 |
9 | public abstract class BaseActivity extends AppCompatActivity {
10 |
11 | private Unbinder mUnbinder;
12 |
13 |
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 |
18 | if (injectRouter())
19 | ARouter.getInstance().inject(this);
20 |
21 |
22 | setContentView(getLayoutId());
23 | mUnbinder = ButterKnife.bind(this);
24 | initContentView(savedInstanceState);
25 | }
26 |
27 | /**
28 | * this activity layout res
29 | * 设置layout布局,在子类重写该方法.
30 | *
31 | * @return res layout xml id
32 | */
33 | protected abstract int getLayoutId();
34 |
35 | //处理bundle数据
36 | protected abstract void initContentView(Bundle savedInstanceState);
37 |
38 | protected boolean injectRouter() {
39 | return false;
40 | }
41 | @Override
42 | protected void onDestroy() {
43 | super.onDestroy();
44 | mUnbinder.unbind();
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/base/BaseFragment.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.base;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import android.support.v4.app.Fragment;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import butterknife.ButterKnife;
10 | import butterknife.Unbinder;
11 | import com.alibaba.android.arouter.launcher.ARouter;
12 |
13 | public abstract class BaseFragment extends Fragment {
14 |
15 | protected View rootView;
16 |
17 | private Unbinder mUnbinder;
18 |
19 | @Override
20 | public void onCreate(@Nullable Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | if (injectRouter())
23 | ARouter.getInstance().inject(this);
24 | }
25 |
26 | @Override
27 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
28 | if (rootView == null) {
29 | rootView = inflater.inflate(getLayoutId(), container, false);
30 | mUnbinder = ButterKnife.bind(this, rootView);
31 | }
32 | //缓存的rootView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。
33 | ViewGroup parent = (ViewGroup) rootView.getParent();
34 | if (parent != null) {
35 | parent.removeView(rootView);
36 | }
37 | initContentView(savedInstanceState);
38 | return rootView;
39 | }
40 |
41 | /**
42 | * this activity layout res
43 | * 设置layout布局,在子类重写该方法.
44 | *
45 | * @return res layout xml id
46 | */
47 | protected abstract int getLayoutId();
48 |
49 | //处理bundle数据
50 | protected abstract void initContentView(Bundle savedInstanceState);
51 |
52 | protected boolean injectRouter() {
53 | return false;
54 | }
55 |
56 | @Override
57 | public void onDestroy() {
58 | super.onDestroy();
59 | mUnbinder.unbind();
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/base/BaseMvpActivity.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.base;
2 |
3 | import android.os.Bundle;
4 | import jzhu.com.libbase.util.ToastUtils;
5 |
6 | import javax.inject.Inject;
7 |
8 | public abstract class BaseMvpActivity extends BaseInjectActivity implements BaseView {
9 |
10 | @Inject
11 | protected T mPresenter;
12 |
13 | @Override
14 | protected void onCreate(Bundle savedInstanceState) {
15 | super.onCreate(savedInstanceState);
16 | setContentView(getLayoutId());
17 | initContentView(savedInstanceState);
18 | mPresenter.onAttachView(this);
19 | }
20 |
21 | @Override
22 | protected void onDestroy() {
23 | super.onDestroy();
24 | mPresenter.onDetachView();
25 | mPresenter.unDisposable();
26 | }
27 |
28 | @Override
29 | public void showLoading() {
30 |
31 | }
32 |
33 | @Override
34 | public void hideLoading() {
35 |
36 | }
37 |
38 | @Override
39 | public void onSuccess(String msg) {
40 |
41 | }
42 |
43 | @Override
44 | public void onError(String msg) {
45 |
46 | }
47 |
48 | @Override
49 | public void showToast(String msg) {
50 | ToastUtils.show(msg);
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/base/BaseMvpFragment.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.base;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import jzhu.com.libbase.util.ToastUtils;
6 |
7 | import javax.inject.Inject;
8 |
9 | public abstract class BaseMvpFragment extends BaseInjectFragment implements BaseView {
10 |
11 | @Inject
12 | protected T mPresenter;
13 |
14 | @Override
15 | public void onCreate(@Nullable Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | mPresenter.onAttachView(this);
18 | }
19 |
20 | @Override
21 | public void onDestroy() {
22 | super.onDestroy();
23 | mPresenter.onDetachView();
24 | mPresenter.unDisposable();
25 | }
26 |
27 | @Override
28 | public void showLoading() {
29 | getActivity().runOnUiThread(() -> mCommonLoading.show());
30 | }
31 |
32 | @Override
33 | public void hideLoading() {
34 | getActivity().runOnUiThread(() -> mCommonLoading.dismiss());
35 | }
36 |
37 | @Override
38 | public void onSuccess(String msg) {
39 |
40 | }
41 |
42 | @Override
43 | public void onError(String msg) {
44 |
45 | }
46 |
47 | @Override
48 | public void showToast(String msg) {
49 | ToastUtils.show(msg);
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/base/BasePresenter.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.base;
2 |
3 | import io.reactivex.disposables.CompositeDisposable;
4 | import io.reactivex.disposables.Disposable;
5 |
6 | import java.lang.ref.WeakReference;
7 | import java.lang.reflect.Proxy;
8 |
9 | public abstract class BasePresenter {
10 |
11 | private WeakReference mViewReference;
12 |
13 | private V mProxyView;
14 |
15 | private CompositeDisposable compositeDisposable;
16 |
17 | public void onAttachView(V view) {
18 |
19 | this.mViewReference = new WeakReference(view);
20 |
21 | mProxyView = (V) Proxy.newProxyInstance(view.getClass().getClassLoader(), view.getClass().getInterfaces(), (proxy, method, args) -> {
22 | if (mViewReference == null || mViewReference.get() == null) {
23 | return null;
24 | }
25 | else {
26 | return method.invoke(mViewReference.get(), args);
27 | }
28 | });
29 |
30 | }
31 |
32 | public void onDetachView() {
33 | this.mViewReference.clear();
34 | this.mViewReference = null ;
35 | this.mProxyView = null ;
36 | }
37 |
38 | public V getView() {
39 | return mProxyView;
40 | }
41 |
42 | public void addDisposable(Disposable subscription) {
43 | if (compositeDisposable == null || compositeDisposable.isDisposed()) {
44 | compositeDisposable = new CompositeDisposable();
45 | }
46 | compositeDisposable.add(subscription);
47 | }
48 |
49 | public void unDisposable() {
50 | if (compositeDisposable != null) {
51 | compositeDisposable.dispose();
52 | }
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/base/BaseView.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.base;
2 |
3 | public interface BaseView {
4 |
5 | void showLoading();
6 |
7 | void hideLoading();
8 |
9 | void onError(String msg);
10 |
11 | void onSuccess(String msg);
12 |
13 | void showToast(String msg);
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/di/PerScoped.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.di;
2 |
3 | import javax.inject.Scope;
4 | import java.lang.annotation.Documented;
5 | import java.lang.annotation.Retention;
6 | import java.lang.annotation.RetentionPolicy;
7 |
8 | @Scope
9 | @Documented
10 | @Retention(RetentionPolicy.RUNTIME)
11 | public @interface PerScoped {
12 | }
13 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/di/module/AppModule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.di.module;
2 |
3 | import dagger.Module;
4 |
5 | @Module
6 | public class AppModule {
7 |
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/plugin/FlutterPluginJumpToAct.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.plugin;
2 |
3 | import android.app.Activity;
4 | import com.alibaba.android.arouter.launcher.ARouter;
5 | import io.flutter.plugin.common.MethodCall;
6 | import io.flutter.plugin.common.MethodChannel;
7 | import io.flutter.plugin.common.PluginRegistry;
8 |
9 | public class FlutterPluginJumpToAct implements MethodChannel.MethodCallHandler {
10 |
11 | public static String CHANNEL = "com.jzhu.jump/plugin";
12 |
13 | static MethodChannel channel;
14 |
15 | private Activity activity;
16 |
17 | private FlutterPluginJumpToAct(Activity activity) {
18 | this.activity = activity;
19 | }
20 |
21 | public static void registerWith(PluginRegistry.Registrar registrar) {
22 | channel = new MethodChannel(registrar.messenger(), CHANNEL);
23 | FlutterPluginJumpToAct instance = new FlutterPluginJumpToAct(registrar.activity());
24 | //setMethodCallHandler在此通道上接收方法调用的回调
25 | channel.setMethodCallHandler(instance);
26 | }
27 |
28 | @Override
29 | public void onMethodCall(MethodCall call, MethodChannel.Result result) {
30 |
31 | if (call.method.equals("jump2act")) {
32 |
33 | //来自flutter的数据
34 | String path = call.argument("path");
35 |
36 | //跳转到指定Activity
37 | ARouter.getInstance().build(path).navigation();
38 |
39 | //返回给flutter的参数
40 | result.success("success");
41 | }
42 |
43 | else {
44 | result.notImplemented();
45 | }
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/util/RxUtil.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.util;
2 | import io.reactivex.ObservableTransformer;
3 | import io.reactivex.android.schedulers.AndroidSchedulers;
4 | import io.reactivex.schedulers.Schedulers;
5 |
6 | public class RxUtil {
7 |
8 | public static ObservableTransformer io2main() {
9 | return upstream ->
10 | upstream.subscribeOn(Schedulers.io())
11 | .observeOn(AndroidSchedulers.mainThread());
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/util/ToastUtils.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.util;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 | import jzhu.com.libbase.base.BaseApplication;
6 |
7 | public class ToastUtils {
8 | private static Context context = BaseApplication.getInstance().getApplicationContext();
9 | private static Toast toast;
10 |
11 | public static void show(int resId) {
12 | show(context.getResources().getText(resId), Toast.LENGTH_SHORT);
13 | }
14 |
15 | public static void show(int resId, int duration) {
16 | show(context.getResources().getText(resId), duration);
17 | }
18 |
19 | public static void show(CharSequence text) {
20 | show(text, Toast.LENGTH_SHORT);
21 | }
22 |
23 | /*public static void showDebug(CharSequence text) {
24 | if (BuildConfig.DEBUG) {
25 | show(text, Toast.LENGTH_SHORT);
26 | }
27 | }*/
28 |
29 | public static void show(CharSequence text, int duration) {
30 | if (toast == null) {
31 | toast = Toast.makeText(context, text, duration);
32 | } else {
33 | toast.setText(text);
34 | }
35 | toast.show();
36 | }
37 |
38 | public static void show(int resId, Object... args) {
39 | show(String.format(context.getResources().getString(resId), args),
40 | Toast.LENGTH_SHORT);
41 | }
42 |
43 | public static void show(String format, Object... args) {
44 | show(String.format(format, args), Toast.LENGTH_SHORT);
45 | }
46 |
47 | public static void show(int resId, int duration, Object... args) {
48 | show(String.format(context.getResources().getString(resId), args),
49 | duration);
50 | }
51 |
52 | public static void show(String format, int duration, Object... args) {
53 | show(String.format(format, args), duration);
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/libbase/src/main/java/jzhu/com/libbase/widget/CommonLoading.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase.widget;
2 |
3 | import android.app.Dialog;
4 | import android.content.Context;
5 | import android.view.Gravity;
6 | import android.view.WindowManager;
7 | import jzhu.com.libbase.R;
8 |
9 | public class CommonLoading extends Dialog {
10 |
11 | private static CommonLoading dialog;
12 |
13 | public CommonLoading(Context context) {
14 | super(context);
15 | }
16 |
17 | public CommonLoading(Context context, int theme) {
18 | super(context);
19 | }
20 |
21 | public static CommonLoading createLoading(Context context) {
22 | if (dialog == null) {
23 | dialog = new CommonLoading(context, R.style.loading_style);
24 | }
25 | dialog.setTitle("");
26 | dialog.setContentView(R.layout.common_loading);
27 |
28 | // 按返回键是否取消
29 | dialog.setCancelable(false);
30 | // 设置居中
31 | dialog.getWindow().getAttributes().gravity = Gravity.CENTER;
32 | WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
33 | // 设置背景层透明度
34 | lp.dimAmount = 0.1f;
35 | dialog.getWindow().setAttributes(lp);
36 |
37 | return dialog;
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/libbase/src/main/res/layout/common_loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/libbase/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | libbase
3 |
4 |
--------------------------------------------------------------------------------
/libbase/src/main/res/values/style.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/libbase/src/test/java/jzhu/com/libbase/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase;
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 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/libbase/src/test/java/jzhu/com/libbase/MethodNameRule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase;
2 |
3 | import org.junit.rules.TestRule;
4 | import org.junit.runner.Description;
5 | import org.junit.runners.model.Statement;
6 |
7 | public class MethodNameRule implements TestRule {
8 | @Override
9 | public Statement apply(final Statement base, final Description description) {
10 | return new Statement() {
11 | @Override
12 | public void evaluate() throws Throwable {
13 | //想要在测试方法运行之前做一些事情,就在base.evaluate()之前做
14 | String className = description.getClassName();
15 | String methodName = description.getMethodName();
16 |
17 | base.evaluate(); //这其实就是运行测试方法
18 |
19 | //想要在测试方法运行之后做一些事情,就在base.evaluate()之后做
20 | System.out.println("Class name: "+className +", method name: "+methodName);
21 | }
22 | };
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/libbase/src/test/java/jzhu/com/libbase/NetworkSimpleTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase;
2 |
3 | import org.junit.Rule;
4 | import org.junit.Test;
5 |
6 | public class NetworkSimpleTest {
7 |
8 | public static final String TAG = "NetworkSimpleTest";
9 |
10 | @Rule
11 | public RxJavaRule rxRule = new RxJavaRule();
12 |
13 | @Rule
14 | public MethodNameRule methodNameExample = new MethodNameRule();
15 |
16 | @Test
17 | public void retrofitResp() {
18 |
19 |
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/libbase/src/test/java/jzhu/com/libbase/RxJavaRule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase;
2 |
3 | import io.reactivex.Scheduler;
4 | import io.reactivex.android.plugins.RxAndroidPlugins;
5 | import io.reactivex.functions.Function;
6 | import io.reactivex.plugins.RxJavaPlugins;
7 | import io.reactivex.schedulers.Schedulers;
8 | import org.junit.rules.TestRule;
9 | import org.junit.runner.Description;
10 | import org.junit.runners.model.Statement;
11 |
12 | //强制线程转为同步
13 | public class RxJavaRule implements TestRule {
14 | @Override
15 | public Statement apply(final Statement base, Description description) {
16 | return new Statement() {
17 | @Override
18 | public void evaluate() throws Throwable {
19 | RxJavaPlugins.reset();
20 | RxJavaPlugins.setIoSchedulerHandler(new Function() {
21 | @Override
22 | public Scheduler apply(Scheduler scheduler) throws Exception {
23 | return Schedulers.trampoline();
24 | }
25 | });
26 | RxAndroidPlugins.reset();
27 | RxAndroidPlugins.setMainThreadSchedulerHandler(new Function() {
28 | @Override
29 | public Scheduler apply(Scheduler scheduler) throws Exception {
30 | return Schedulers.trampoline();
31 | }
32 | });
33 |
34 | base.evaluate();
35 | }
36 | };
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/libbase/src/test/java/jzhu/com/libbase/TestApi.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libbase;
2 |
3 | import io.reactivex.Observable;
4 | import jzhu.com.libdata.network.HttpResponse;
5 | import retrofit2.http.GET;
6 |
7 | import java.util.List;
8 |
9 | public interface TestApi {
10 |
11 | @GET("banner/json")
12 | Observable>> getUsers();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/libdata/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/libdata/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/libdata/src/androidTest/java/jzhu/com/libdata/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libdata;
2 |
3 | import android.content.Context;
4 | import androidx.test.InstrumentationRegistry;
5 | import androidx.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("jzhu.com.myarchitecture", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/libdata/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/libdata/src/main/java/jzhu/com/libdata/cache/RxCacheFactory.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libdata.cache;
2 |
3 | import io.rx_cache2.internal.RxCache;
4 | import io.victoralbertos.jolyglot.GsonSpeaker;
5 | import jzhu.com.libdata.network.RetrofitFactory;
6 |
7 | import java.io.File;
8 |
9 | public class RxCacheFactory {
10 |
11 | private static volatile RxCacheFactory sInstance;
12 |
13 | private RxCache.Builder rxCachebuilder;
14 |
15 | public static RxCacheFactory getInstance() {
16 | if (null == sInstance) {
17 | synchronized (RetrofitFactory.class) {
18 | if (null == sInstance) {
19 | sInstance = new RxCacheFactory();
20 | }
21 | }
22 | }
23 | return sInstance;
24 | }
25 |
26 | private RxCacheFactory() {
27 | rxCachebuilder = new RxCache.Builder();
28 | }
29 |
30 | public T create(final File file, final Class service) {
31 | return rxCachebuilder.persistence(file,new GsonSpeaker()).using(service);
32 | }
33 |
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/libdata/src/main/java/jzhu/com/libdata/network/HttpConfig.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libdata.network;
2 |
3 | public class HttpConfig {
4 |
5 |
6 | public static int HTTP_OUT_TIME = 30;
7 |
8 | public static String BASE_URL="https://api.github.com";
9 |
10 |
11 | // public static String BASE_URL="http://www.wanandroid.com/";
12 |
13 |
14 | //返回数据成功
15 | public static int CODE_0 = 0;
16 |
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/libdata/src/main/java/jzhu/com/libdata/network/HttpResponse.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libdata.network;
2 |
3 | import java.io.Serializable;
4 |
5 | public class HttpResponse implements Serializable {
6 |
7 | private T data;
8 |
9 | private int errorCode;
10 |
11 | private String errorMsg;
12 |
13 | public T getData() {
14 | return data;
15 | }
16 |
17 | public void setData(T data) {
18 | this.data = data;
19 | }
20 |
21 | public int getErrorCode() {
22 | return errorCode;
23 | }
24 |
25 | public void setErrorCode(int errorCode) {
26 | this.errorCode = errorCode;
27 | }
28 |
29 | public String getErrorMsg() {
30 | return errorMsg;
31 | }
32 |
33 | public void setErrorMsg(String errorMsg) {
34 | this.errorMsg = errorMsg;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/libdata/src/main/java/jzhu/com/libdata/network/InterceptorUtil.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libdata.network;
2 |
3 | import com.facebook.stetho.okhttp3.StethoInterceptor;
4 | import okhttp3.Interceptor;
5 | import okhttp3.Request;
6 | import okhttp3.logging.HttpLoggingInterceptor;
7 |
8 | public class InterceptorUtil {
9 |
10 | //日志拦截器
11 | public static HttpLoggingInterceptor LogInterceptor() {
12 | HttpLoggingInterceptor
13 | httpLoggingInterceptor =
14 | new HttpLoggingInterceptor();
15 | httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
16 | return httpLoggingInterceptor;
17 | }
18 |
19 | public static Interceptor HeaderInterceptor(){
20 |
21 | Interceptor interceptor = chain -> {
22 | Request request = chain.request()
23 | .newBuilder()
24 | .addHeader("Accept","application/vnd.github.v3+json")
25 | .addHeader("Content-Type",
26 | "application/json")
27 | .addHeader("charset", "UTF-8")
28 | .build();
29 | return chain.proceed(request);
30 | };
31 |
32 | return interceptor;
33 |
34 | }
35 |
36 | public static StethoInterceptor stethoInterceptor() {
37 | return new StethoInterceptor();
38 | }
39 |
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/libdata/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | libdata
3 |
4 |
--------------------------------------------------------------------------------
/libdata/src/test/java/jzhu/com/libdata/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libdata;
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 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/libprovider/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/libprovider/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/libprovider/src/androidTest/java/jzhu/com/libprovider/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libprovider;
2 |
3 | import android.content.Context;
4 | import androidx.test.InstrumentationRegistry;
5 | import androidx.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("jzhu.com.libprovider.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/libprovider/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/libprovider/src/main/java/jzhu/com/libprovider/config/RouterPath.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libprovider.config;
2 |
3 | public interface RouterPath {
4 |
5 | interface MainPath{
6 |
7 | String MAIN_FLUTTER_CONTAINER = "/main/FlutterContainerActivity";
8 |
9 | String MAIN_TEST= "/main/TestActivity";
10 |
11 | }
12 |
13 | interface ModuleSearchPath{
14 |
15 | String MAIN_FRAGMENT_PROVIDER= "/modulesearch/main";
16 |
17 | }
18 |
19 | interface ModuleUserPath{
20 |
21 | String MAIN_FRAGMENT_PROVIDER= "/moduleuser/main";
22 |
23 | }
24 |
25 | interface ModuleFlutterPath{
26 |
27 | String FLUTTER_HOME= "/homepage";
28 |
29 | String FLUTTER_TEST= "/testpage";
30 |
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/libprovider/src/main/java/jzhu/com/libprovider/providers/ModuleSearchService.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libprovider.providers;
2 |
3 | import android.support.v4.app.Fragment;
4 | import com.alibaba.android.arouter.facade.template.IProvider;
5 | import io.reactivex.Observable;
6 | import jzhu.com.libprovider.model.UserModel;
7 |
8 | import java.util.List;
9 |
10 | public interface ModuleSearchService extends IProvider {
11 |
12 | Fragment getModuleSearchFragment();
13 |
14 | Observable> searchFollowersByName(String name);
15 | }
16 |
--------------------------------------------------------------------------------
/libprovider/src/main/java/jzhu/com/libprovider/providers/ModuleUserService.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libprovider.providers;
2 |
3 | import android.support.v4.app.Fragment;
4 | import com.alibaba.android.arouter.facade.template.IProvider;
5 |
6 | public interface ModuleUserService extends IProvider {
7 |
8 | Fragment getModuleUserFragment();
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/libprovider/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | libprovider
3 |
4 |
--------------------------------------------------------------------------------
/libprovider/src/test/java/jzhu/com/libprovider/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libprovider;
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 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/libres/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/libres/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 28
5 | buildToolsVersion "28.0.1"
6 |
7 |
8 | defaultConfig {
9 | minSdkVersion 16
10 | targetSdkVersion 28
11 | versionCode 1
12 | versionName "1.0"
13 |
14 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
15 |
16 | }
17 |
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 |
25 | // 使用Java1.8
26 | compileOptions {
27 | sourceCompatibility JavaVersion.VERSION_1_8
28 | targetCompatibility JavaVersion.VERSION_1_8
29 | }
30 |
31 | dexOptions {
32 | javaMaxHeapSize "4g"
33 | }
34 |
35 | packagingOptions {
36 | exclude 'META-INF/NOTICE' // will not include NOTICE file
37 | exclude 'META-INF/LICENSE' // will not include LICENSE file
38 | // as noted by @Vishnuvathsan you may also need to include
39 | // variations on the file name. It depends on your dependencies.
40 | // Some other common variations on notice and license file names
41 | exclude 'META-INF/notice'
42 | exclude 'META-INF/notice.txt'
43 | exclude 'META-INF/license'
44 | exclude 'META-INF/license.txt'
45 | }
46 |
47 | sourceSets {
48 | main {
49 | jniLibs.srcDirs = ['libs']
50 | }
51 | }
52 |
53 | lintOptions {
54 | abortOnError false
55 | checkReleaseBuilds false
56 | // 防止在发布的时候出现因MissingTranslation导致Build Failed!
57 | disable 'MissingTranslation'
58 | }
59 | }
60 |
61 | dependencies {
62 | implementation fileTree(dir: 'libs', include: ['*.jar'])
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/libres/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/libres/src/androidTest/java/jzhu/com/libres/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libres;
2 |
3 | import android.content.Context;
4 | import androidx.test.InstrumentationRegistry;
5 | import androidx.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("jzhu.com.libres.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/libres/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libres/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/libres/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libres/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 | #FFFFFF
7 | #F11919
8 | #FFFFFF
9 | #906745
10 | #cccccc
11 | #f0f0f0
12 | #8C8C8C
13 | #e5e5e5
14 | #BDBDBD
15 | #d9d9d9
16 | #4d4d4d
17 | @color/common_yellow
18 | #e6e6e6
19 | #4C000000
20 | #00000000
21 | #333333
22 | #666666
23 | #999999
24 | #333333
25 | #f8f8f8
26 |
27 |
28 |
--------------------------------------------------------------------------------
/libres/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | libres
3 |
4 |
--------------------------------------------------------------------------------
/libres/src/main/res/values/styles_custom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
--------------------------------------------------------------------------------
/libres/src/test/java/jzhu/com/libres/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.libres;
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 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/local.properties:
--------------------------------------------------------------------------------
1 | ## This file is automatically generated by Android Studio.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file should *NOT* be checked into Version Control Systems,
5 | # as it contains information specific to your local configuration.
6 | #
7 | # Location of the SDK. This is only used by Gradle.
8 | # For customization when using a Version Control System, please read the
9 | # header note.
10 | sdk.dir=/Users/zhujian/Library/Android/sdk
11 |
--------------------------------------------------------------------------------
/moduleflutter/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .dart_tool/
3 |
4 | .packages
5 | .pub/
6 |
7 | .idea/
8 | .vagrant/
9 | .sconsign.dblite
10 | .svn/
11 |
12 | *.swp
13 | profile
14 |
15 | DerivedData/
16 |
17 | .generated/
18 |
19 | *.pbxuser
20 | *.mode1v3
21 | *.mode2v3
22 | *.perspectivev3
23 |
24 | !default.pbxuser
25 | !default.mode1v3
26 | !default.mode2v3
27 | !default.perspectivev3
28 |
29 | xcuserdata
30 |
31 | *.moved-aside
32 |
33 | *.pyc
34 | *sync/
35 | Icon?
36 | .tags*
37 |
38 | build/
39 | .android/
40 | .ios/
41 | .flutter-plugins
42 |
--------------------------------------------------------------------------------
/moduleflutter/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 5ab9e70727d858def3a586db7fb98ee580352957
8 | channel: beta
9 |
--------------------------------------------------------------------------------
/moduleflutter/README.md:
--------------------------------------------------------------------------------
1 | # moduleflutter
2 |
3 | A new flutter module project.
4 |
5 | ## Getting Started
6 |
7 | For help getting started with Flutter, view our online
8 | [documentation](https://flutter.io/).
9 |
--------------------------------------------------------------------------------
/moduleflutter/lib/home_page.dart:
--------------------------------------------------------------------------------
1 | import 'dart:async';
2 | import 'dart:core';
3 |
4 | import 'package:flutter/foundation.dart';
5 | import 'package:flutter/material.dart';
6 | import 'package:flutter/services.dart';
7 |
8 | class MyHomePage extends StatefulWidget {
9 | MyHomePage({Key key}) : super(key: key);
10 |
11 | @override
12 | _MyHomePageState createState() => new _MyHomePageState();
13 | }
14 |
15 |
16 | class _MyHomePageState extends State {
17 | static const jumpPlugin = const MethodChannel('com.jzhu.jump/plugin');
18 |
19 | Future _jumpToNative() async {
20 | Map map = {"path": "/main/TestActivity"};
21 |
22 | String result = await jumpPlugin.invokeMethod('jump2act', map);
23 | print(result);
24 | }
25 |
26 | Future _requestPop() {
27 | SystemNavigator.pop();
28 | return new Future.value(false);
29 | }
30 |
31 |
32 | @override
33 | Widget build(BuildContext context) {
34 | return new WillPopScope(
35 | child: new Scaffold(
36 | appBar: new AppBar(
37 | title: new Text("Home Page"),
38 | ),
39 | body: new Center(
40 | child: new RaisedButton(
41 | child: new Text("跳到TestActivity"), onPressed: _jumpToNative),
42 | ),
43 | // This trailing comma makes auto-formatting nicer for build methods.
44 | ),
45 | onWillPop: _requestPop);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/moduleflutter/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'dart:ui';
2 |
3 | import 'package:flutter/material.dart';
4 | import 'package:moduleflutter/home_page.dart';
5 | import 'package:moduleflutter/test_page.dart';
6 |
7 | //void main() => runApp(_widgetForRoute(window.defaultRouteName));
8 |
9 | //Widget _widgetForRoute(String route) {
10 | // print("route:"+route);
11 | // switch (route) {
12 | // case 'route2':
13 | // return MyHomePage();
14 | // default:
15 | // return Center(
16 | // child: Text('Unknown route: $route', textDirection: TextDirection.ltr),
17 | // );
18 | // }
19 | void main() {
20 | runApp(new MaterialApp(
21 | routes: {
22 | '/homepage': (BuildContext context) => new MyHomePage(),
23 | '/testpage': (BuildContext context) => new TestPage(),
24 |
25 | }, home: MyHomePage()));
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/moduleflutter/local.properties:
--------------------------------------------------------------------------------
1 | ## This file must *NOT* be checked into Version Control Systems,
2 | # as it contains information specific to your local configuration.
3 | #
4 | # Location of the SDK. This is only used by Gradle.
5 | # For customization when using a Version Control System, please read the
6 | # header note.
7 | #Sat Sep 22 19:50:26 CST 2018
8 | sdk.dir=/Users/zhujian/Library/Android/sdk
9 |
--------------------------------------------------------------------------------
/moduleflutter/moduleflutter.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/moduleflutter/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: moduleflutter
2 | description: A new flutter module project.
3 | version: 1.0.0+1
4 |
5 | environment:
6 | sdk: ">=2.0.0-dev.68.0 <3.0.0"
7 |
8 | dependencies:
9 | flutter:
10 | sdk: flutter
11 |
12 | dev_dependencies:
13 | flutter_test:
14 | sdk: flutter
15 |
16 | flutter:
17 | uses-material-design: true
18 | module:
19 | androidPackage: com.example.moduleflutter
20 | iosBundleIdentifier: com.example.moduleflutter
21 |
--------------------------------------------------------------------------------
/modulesearch/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/modulesearch/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/modulesearch/src/androidTest/java/jzhu/com/modulesearch/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch;
2 |
3 | import android.content.Context;
4 | import androidx.test.InstrumentationRegistry;
5 | import androidx.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("jzhu.com.modulesearch.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/modulesearch/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/modulesearch/src/main/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/modulesearch/src/main/java/jzhu/com/modulesearch/ModuleSearchApplication.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch;
2 |
3 | import jzhu.com.libbase.base.BaseApplication;
4 |
5 | public class ModuleSearchApplication extends BaseApplication {
6 | @Override
7 | protected void injectApp() {
8 |
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/modulesearch/src/main/java/jzhu/com/modulesearch/Repository/SearchRepository.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch.Repository;
2 |
3 | import io.reactivex.Observable;
4 | import jzhu.com.libprovider.model.UserModel;
5 |
6 | import java.util.List;
7 |
8 | public interface SearchRepository {
9 |
10 | Observable> searchFollowersByName(String name);
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/modulesearch/src/main/java/jzhu/com/modulesearch/Repository/SearchRepositoryImpl.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch.Repository;
2 |
3 | import io.reactivex.Observable;
4 | import jzhu.com.libdata.network.RetrofitFactory;
5 | import jzhu.com.libprovider.model.UserModel;
6 | import jzhu.com.modulesearch.api.SearchApi;
7 |
8 | import javax.inject.Inject;
9 | import java.util.List;
10 |
11 | public class SearchRepositoryImpl implements SearchRepository {
12 |
13 | @Inject
14 | public SearchRepositoryImpl() {
15 | }
16 |
17 | @Override
18 | public Observable> searchFollowersByName(String name) {
19 | return RetrofitFactory.getInstance().create(SearchApi.class).searchFollowersByName(name);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/modulesearch/src/main/java/jzhu/com/modulesearch/api/SearchApi.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch.api;
2 |
3 | import io.reactivex.Observable;
4 | import jzhu.com.libprovider.model.UserModel;
5 | import retrofit2.http.GET;
6 | import retrofit2.http.Path;
7 |
8 | import java.util.List;
9 |
10 | public interface SearchApi {
11 |
12 | @GET("/users/{name}/following")
13 | Observable> searchFollowersByName(@Path("name") String name);
14 |
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/modulesearch/src/main/java/jzhu/com/modulesearch/providers/ModuleSearchServiceImpl.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch.providers;
2 |
3 | import android.content.Context;
4 | import android.support.v4.app.Fragment;
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import io.reactivex.Observable;
7 | import jzhu.com.libprovider.config.RouterPath;
8 | import jzhu.com.libprovider.model.UserModel;
9 | import jzhu.com.libprovider.providers.ModuleSearchService;
10 | import jzhu.com.modulesearch.Repository.SearchRepositoryImpl;
11 | import jzhu.com.modulesearch.ui.MainFragment;
12 |
13 | import java.util.List;
14 |
15 | @Route(path = RouterPath.ModuleSearchPath.MAIN_FRAGMENT_PROVIDER,name = "ModuleSearchServiceImpl")
16 | public class ModuleSearchServiceImpl implements ModuleSearchService {
17 |
18 | @Override
19 | public Fragment getModuleSearchFragment() {
20 | return new MainFragment();
21 | }
22 |
23 | @Override
24 | public Observable> searchFollowersByName(String name) {
25 | return new SearchRepositoryImpl().searchFollowersByName(name);
26 | }
27 |
28 | @Override
29 | public void init(Context context) {
30 |
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/modulesearch/src/main/java/jzhu/com/modulesearch/ui/MainActivity.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch.ui;
2 |
3 | import android.os.Bundle;
4 | import jzhu.com.libbase.base.BaseActivity;
5 | import jzhu.com.modulesearch.R;
6 |
7 | public class MainActivity extends BaseActivity {
8 |
9 | @Override
10 | protected int getLayoutId() {
11 | return R.layout.module_search_activity_main;
12 | }
13 |
14 | @Override
15 | protected void initContentView(Bundle savedInstanceState) {
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/modulesearch/src/main/java/jzhu/com/modulesearch/ui/MainFragment.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch.ui;
2 |
3 | import android.os.Bundle;
4 | import jzhu.com.libbase.base.BaseFragment;
5 | import jzhu.com.modulesearch.R;
6 |
7 | public class MainFragment extends BaseFragment {
8 |
9 | @Override
10 | protected int getLayoutId() {
11 | return R.layout.module_search_fragment_main;
12 | }
13 |
14 | @Override
15 | protected void initContentView(Bundle savedInstanceState) {
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/modulesearch/src/main/res/layout/module_search_activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/modulesearch/src/main/res/layout/module_search_fragment_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/modulesearch/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/modulesearch/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | modulesearch
3 |
4 |
--------------------------------------------------------------------------------
/modulesearch/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/modulesearch/src/test/java/jzhu/com/modulesearch/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.modulesearch;
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 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/moduleusers/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/moduleusers/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/moduleusers/src/androidTest/java/jzhu/com/moduleusers/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers;
2 |
3 | import android.content.Context;
4 | import androidx.test.InstrumentationRegistry;
5 | import androidx.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("jzhu.com.moduleusers.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/moduleusers/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/moduleusers/src/main/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/ModuleUserApplication.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers;
2 |
3 | import jzhu.com.libbase.base.BaseApplication;
4 | import jzhu.com.moduleusers.di.componet.DaggerModuleUserComponet;
5 |
6 | public class ModuleUserApplication extends BaseApplication {
7 | @Override
8 | protected void injectApp() {
9 | DaggerModuleUserComponet.builder().build().inject(this);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/NoScrollLinearLayoutManager.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers;
2 |
3 | import android.content.Context;
4 | import android.support.v7.widget.LinearLayoutManager;
5 |
6 | public class NoScrollLinearLayoutManager extends LinearLayoutManager {
7 | private boolean isScrollEnabled = true;
8 |
9 | public NoScrollLinearLayoutManager(Context context) {
10 | super(context);
11 | }
12 |
13 | public void setScrollEnabled(boolean flag) {
14 | this.isScrollEnabled = flag;
15 | }
16 |
17 | @Override
18 | public boolean canScrollVertically() {
19 | //Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll
20 | return isScrollEnabled && super.canScrollVertically();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/Repository/UsersRepository.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.Repository;
2 |
3 | import io.reactivex.Observable;
4 | import jzhu.com.libprovider.model.UserModel;
5 |
6 | import java.util.List;
7 |
8 | public interface UsersRepository{
9 |
10 | Observable> getUsers();
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/Repository/UsersRepositoryImpl.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.Repository;
2 |
3 | import io.reactivex.Observable;
4 | import jzhu.com.libdata.network.RetrofitFactory;
5 | import jzhu.com.libprovider.model.UserModel;
6 | import jzhu.com.moduleusers.api.UsersApi;
7 |
8 | import javax.inject.Inject;
9 | import java.util.List;
10 |
11 | public class UsersRepositoryImpl implements UsersRepository {
12 |
13 |
14 | @Inject
15 | public UsersRepositoryImpl() {
16 | }
17 |
18 | @Override
19 | public Observable> getUsers() {
20 | return RetrofitFactory.getInstance().create(UsersApi.class).getUsers();
21 | }
22 |
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/api/UsersApi.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.api;
2 |
3 | import io.reactivex.Observable;
4 | import jzhu.com.libprovider.model.UserModel;
5 | import retrofit2.http.GET;
6 |
7 | import java.util.List;
8 |
9 | public interface UsersApi {
10 |
11 | @GET("/users")
12 | Observable> getUsers();
13 | }
14 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/cache/UsersCacheProviders.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.cache;
2 |
3 | import io.reactivex.Observable;
4 | import io.rx_cache2.LifeCache;
5 | import io.rx_cache2.ProviderKey;
6 | import jzhu.com.libprovider.model.UserModel;
7 |
8 | import java.util.List;
9 | import java.util.concurrent.TimeUnit;
10 |
11 | public interface UsersCacheProviders {
12 |
13 | @ProviderKey("Users")
14 | @LifeCache(duration = 1,timeUnit = TimeUnit.MINUTES)
15 | Observable> getUsers(Observable> oMocks);
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/di/componet/ModuleUserComponet.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.di.componet;
2 |
3 | import dagger.Component;
4 | import dagger.android.AndroidInjectionModule;
5 | import dagger.android.support.AndroidSupportInjectionModule;
6 | import jzhu.com.libbase.base.BaseApplication;
7 | import jzhu.com.libbase.di.PerScoped;
8 | import jzhu.com.libbase.di.module.AppModule;
9 | import jzhu.com.moduleusers.di.module.UserAllActivityModule;
10 | import jzhu.com.moduleusers.di.module.UserAllFragmentModule;
11 |
12 | @PerScoped
13 | @Component(modules = {
14 | AndroidInjectionModule.class,
15 | AndroidSupportInjectionModule.class,
16 | AppModule.class,
17 | UserAllFragmentModule.class,
18 | UserAllActivityModule.class})
19 | public interface ModuleUserComponet {
20 |
21 | void inject(BaseApplication baseApplication);
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/di/module/UserAllActivityModule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.di.module;
2 |
3 | import dagger.Module;
4 |
5 | @Module
6 | public abstract class UserAllActivityModule {
7 |
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/di/module/UserAllFragmentModule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.di.module;
2 |
3 | import dagger.Module;
4 | import dagger.android.ContributesAndroidInjector;
5 | import jzhu.com.moduleusers.ui.fragment.UsersFragment;
6 |
7 | @Module
8 | public abstract class UserAllFragmentModule {
9 |
10 | @ContributesAndroidInjector(modules = { UsersModule.class})
11 | abstract UsersFragment contributeMainFragmentInjector();
12 | }
13 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/di/module/UsersModule.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.di.module;
2 |
3 | import dagger.Module;
4 | import dagger.Provides;
5 | import jzhu.com.moduleusers.Repository.UsersRepository;
6 | import jzhu.com.moduleusers.Repository.UsersRepositoryImpl;
7 | import jzhu.com.moduleusers.ui.adapter.UserAdapter;
8 |
9 | import javax.inject.Named;
10 |
11 | @Module
12 | public class UsersModule {
13 |
14 | @Provides
15 | UsersRepository provideUsersRepository(){
16 | return new UsersRepositoryImpl();
17 | }
18 |
19 | @Named("users")
20 | @Provides
21 | UserAdapter provideUsersAdapter(){
22 | return new UserAdapter();
23 | }
24 |
25 |
26 | @Named("followers")
27 | @Provides
28 | UserAdapter provideFollowersAdapter(){
29 | return new UserAdapter();
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/mvp/view/UsersView.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.mvp.view;
2 |
3 | import jzhu.com.libbase.base.BaseView;
4 | import jzhu.com.libprovider.model.UserModel;
5 |
6 | import java.util.List;
7 |
8 | public interface UsersView extends BaseView {
9 |
10 | void getUsersSuc(List list);
11 |
12 | void getUsersFail(Throwable throwable);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/providers/ModuleUserServiceImpl.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.providers;
2 |
3 | import android.content.Context;
4 | import android.support.v4.app.Fragment;
5 | import com.alibaba.android.arouter.facade.annotation.Route;
6 | import jzhu.com.libprovider.config.RouterPath;
7 | import jzhu.com.libprovider.providers.ModuleUserService;
8 | import jzhu.com.moduleusers.ui.fragment.UsersFragment;
9 |
10 | @Route(path = RouterPath.ModuleUserPath.MAIN_FRAGMENT_PROVIDER,name = "ModuleUserServiceImpl")
11 | public class ModuleUserServiceImpl implements ModuleUserService {
12 |
13 | @Override
14 | public Fragment getModuleUserFragment() {
15 | return new UsersFragment();
16 | }
17 |
18 | @Override
19 | public void init(Context context) {
20 |
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/moduleusers/src/main/java/jzhu/com/moduleusers/ui/activity/MainActivity.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers.ui.activity;
2 |
3 | import android.os.Bundle;
4 | import jzhu.com.libbase.base.BaseActivity;
5 | import jzhu.com.moduleusers.R;
6 |
7 | public class MainActivity extends BaseActivity {
8 |
9 |
10 | @Override
11 | protected int getLayoutId() {
12 | return R.layout.module_user_activity_main;
13 | }
14 |
15 | @Override
16 | protected void initContentView(Bundle savedInstanceState) {
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/moduleusers/src/main/res/layout/module_user_activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/moduleusers/src/main/res/layout/module_user_fragment_users.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
18 |
19 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/moduleusers/src/main/res/layout/module_user_item_name.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
--------------------------------------------------------------------------------
/moduleusers/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/moduleusers/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | moduleusers
3 |
4 |
--------------------------------------------------------------------------------
/moduleusers/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/moduleusers/src/test/java/jzhu/com/moduleusers/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package jzhu.com.moduleusers;
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 | assertEquals(4, 2 + 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/pics/myapp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zhujian1989/MyArchitecture/01c5b0b5aaf6af2427e086c4a2243700763fa09c/pics/myapp.png
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app',
2 | ':libbase',
3 | ':libres',
4 | ':libdata',
5 | ':moduleusers',
6 | ':modulesearch',
7 | ':libprovider',
8 | ':moduleflutter'
9 | setBinding(new Binding([gradle: this])) // new
10 | evaluate(new File( // new
11 | settingsDir.parentFile, // new
12 | 'MyArchitecture/moduleflutter/.android/include_flutter.groovy' // new
13 | ))
14 |
15 |
--------------------------------------------------------------------------------