├── PatternsDemo
├── app
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.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
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── layout
│ │ │ │ │ └── activity_main.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── patterns
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── patterns
│ │ │ │ └── ExampleUnitTest.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── patterns
│ │ │ └── ExampleInstrumentedTest.kt
│ └── proguard-rules.pro
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .gitignore
├── build.gradle
└── gradle.properties
├── SimpleCalces
├── app
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.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
│ │ │ │ └── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── simplecalces
│ │ │ │ │ ├── aaa.java
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── simplecalces
│ │ │ │ └── ExampleUnitTest.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── simplecalces
│ │ │ └── ExampleInstrumentedTest.kt
│ └── proguard-rules.pro
├── library1
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.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
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── layout
│ │ │ │ │ └── activity_library1.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── library1
│ │ │ │ │ └── Library1Activity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── library1
│ │ │ │ └── ExampleUnitTest.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── library1
│ │ │ └── ExampleInstrumentedTest.kt
│ └── proguard-rules.pro
├── library2
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.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
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── layout
│ │ │ │ │ └── activity_library2.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── library2
│ │ │ │ │ └── Library2Activity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── library2
│ │ │ │ └── ExampleUnitTest.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── library2
│ │ │ └── ExampleInstrumentedTest.kt
│ └── proguard-rules.pro
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .idea
│ ├── caches
│ │ └── build_file_checksums.ser
│ ├── vcs.xml
│ ├── runConfigurations.xml
│ └── gradle.xml
├── .gitignore
└── gradle.properties
├── Dagger2Simple
├── order
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ └── styles.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
│ │ │ │ ├── layout
│ │ │ │ │ └── fragment_dishes.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── menu
│ │ │ │ │ ├── menu_dishes.xml
│ │ │ │ │ └── menu_dishes_item.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── order
│ │ │ │ │ ├── TestModule.java
│ │ │ │ │ ├── TestComponent.java
│ │ │ │ │ ├── di
│ │ │ │ │ ├── DishesScoped.java
│ │ │ │ │ ├── FragmentScoped.java
│ │ │ │ │ ├── ActivityScoped.java
│ │ │ │ │ ├── OrderAppComponent.java
│ │ │ │ │ ├── LayoutManagerModules.java
│ │ │ │ │ └── ActivityModules.java
│ │ │ │ │ ├── OrderApp.java
│ │ │ │ │ ├── ui
│ │ │ │ │ ├── addedit
│ │ │ │ │ │ ├── AddEditDishContract.java
│ │ │ │ │ │ └── AddEditModules.java
│ │ │ │ │ └── dishes
│ │ │ │ │ │ ├── DishesContract.java
│ │ │ │ │ │ └── DishesModules.java
│ │ │ │ │ ├── BaseView.java
│ │ │ │ │ └── ActivityUtils.java
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── order
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── order
│ │ │ └── ExampleInstrumentedTest.java
│ └── proguard-rules.pro
├── simple
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.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
│ │ │ │ └── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── dagger2simple
│ │ │ │ │ ├── cook
│ │ │ │ │ ├── Cooking.java
│ │ │ │ │ ├── Menu.java
│ │ │ │ │ └── Chef.java
│ │ │ │ │ ├── di
│ │ │ │ │ ├── ActivityModules.java
│ │ │ │ │ ├── CookModules.java
│ │ │ │ │ └── CookAppComponent.java
│ │ │ │ │ ├── MyApplication.java
│ │ │ │ │ └── MainActivity.java
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── dagger2simple
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── dagger2simple
│ │ │ └── ExampleInstrumentedTest.java
│ └── proguard-rules.pro
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .gitignore
├── build.gradle
└── gradle.properties
├── ScreenAdaptation
├── app
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── styles.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── dimens.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
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── values-sw375dp
│ │ │ │ │ └── dimens.xml
│ │ │ │ ├── values-sw900dp
│ │ │ │ │ └── dimens.xml
│ │ │ │ ├── values-sw411dp
│ │ │ │ │ └── dimens.xml
│ │ │ │ └── values-sw320dp
│ │ │ │ │ └── dimens.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── screenadaptation
│ │ │ │ │ └── MainActivity.java
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── screenadaptation
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── screenadaptation
│ │ │ └── ExampleInstrumentedTest.java
│ └── proguard-rules.pro
├── settings.gradle
├── .gitignore
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .idea
│ └── vcs.xml
├── build.gradle
└── gradle.properties
├── TodoCalces
├── app
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── dimens.xml
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.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
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── menu
│ │ │ │ │ └── menu_main.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── todocalces
│ │ │ │ │ └── ada.java
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── todocalces
│ │ │ │ └── ExampleUnitTest.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── todocalces
│ │ │ └── ExampleInstrumentedTest.kt
│ └── proguard-rules.pro
├── lib
│ ├── datalib
│ │ ├── .gitignore
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ └── values
│ │ │ │ │ │ └── strings.xml
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── datalib
│ │ │ │ │ ├── RequestCode.java
│ │ │ │ │ └── ExtraKey.java
│ │ │ ├── test
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── datalib
│ │ │ │ │ └── ExampleUnitTest.java
│ │ │ └── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── datalib
│ │ │ │ └── ExampleInstrumentedTest.java
│ │ └── proguard-rules.pro
│ └── superlib
│ │ ├── .gitignore
│ │ ├── src
│ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── res
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ ├── logo.png
│ │ │ │ │ ├── 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
│ │ │ │ ├── drawable
│ │ │ │ │ ├── touch_feedback.xml
│ │ │ │ │ ├── list_completed_touch_feedback.xml
│ │ │ │ │ ├── ic_add.xml
│ │ │ │ │ ├── ic_done.xml
│ │ │ │ │ ├── ic_menu.xml
│ │ │ │ │ ├── ic_filter_list.xml
│ │ │ │ │ ├── ic_list.xml
│ │ │ │ │ ├── ic_statistics.xml
│ │ │ │ │ ├── ic_statistics_24dp.xml
│ │ │ │ │ ├── ic_check_circle_24dp.xml
│ │ │ │ │ ├── ic_verified_user_24dp.xml
│ │ │ │ │ ├── ic_statistics_100dp.xml
│ │ │ │ │ └── ic_assignment_turned_in_24dp.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── values
│ │ │ │ │ └── colors.xml
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── superlib
│ │ │ │ ├── App1.java
│ │ │ │ ├── App2.java
│ │ │ │ ├── util
│ │ │ │ └── DiskIOThreadExecutor.java
│ │ │ │ ├── BasePresenter.java
│ │ │ │ └── BaseView.java
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── superlib
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── superlib
│ │ │ └── ExampleInstrumentedTest.java
│ │ └── proguard-rules.pro
├── modules
│ ├── tasks
│ │ ├── .gitignore
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ ├── values
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ └── menu
│ │ │ │ │ │ └── filter_tasks.xml
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── tasks
│ │ │ │ │ └── TasksFilterType.java
│ │ │ ├── test
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── tasks
│ │ │ │ │ └── ExampleUnitTest.java
│ │ │ └── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── tasks
│ │ │ │ └── ExampleInstrumentedTest.java
│ │ └── proguard-rules.pro
│ ├── addtask
│ │ ├── .gitignore
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ ├── values
│ │ │ │ │ │ ├── dimens.xml
│ │ │ │ │ │ ├── strings.xml
│ │ │ │ │ │ ├── colors.xml
│ │ │ │ │ │ └── styles.xml
│ │ │ │ │ └── menu
│ │ │ │ │ │ └── menu_main.xml
│ │ │ │ └── AndroidManifest.xml
│ │ │ ├── test
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── addtask
│ │ │ │ │ └── ExampleUnitTest.kt
│ │ │ └── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── addtask
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ └── proguard-rules.pro
│ ├── statistics
│ │ ├── .gitignore
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ └── values
│ │ │ │ │ │ └── strings.xml
│ │ │ │ └── AndroidManifest.xml
│ │ │ ├── test
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── tangpj
│ │ │ │ │ └── statistics
│ │ │ │ │ └── ExampleUnitTest.java
│ │ │ └── androidTest
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── statistics
│ │ │ │ └── ExampleInstrumentedTest.java
│ │ └── proguard-rules.pro
│ └── taskdetail
│ │ ├── .gitignore
│ │ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ └── strings.xml
│ │ │ │ └── menu
│ │ │ │ │ └── taskdetail_fragment_menu.xml
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── taskdetail
│ │ │ │ └── ExampleUnitTest.java
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── taskdetail
│ │ │ └── ExampleInstrumentedTest.java
│ │ └── proguard-rules.pro
├── nostatistic
│ ├── .gitignore
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ ├── strings.xml
│ │ │ │ │ ├── colors.xml
│ │ │ │ │ └── styles.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
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ └── menu
│ │ │ │ │ └── drawer_actions.xml
│ │ │ └── AndroidManifest.xml
│ │ ├── test
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── nostatistic
│ │ │ │ └── ExampleUnitTest.kt
│ │ └── androidTest
│ │ │ └── java
│ │ │ └── com
│ │ │ └── tangpj
│ │ │ └── nostatistic
│ │ │ └── ExampleInstrumentedTest.kt
│ └── proguard-rules.pro
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── .idea
│ ├── caches
│ │ └── build_file_checksums.ser
│ ├── markdown-navigator
│ │ └── profiles_settings.xml
│ ├── vcs.xml
│ └── runConfigurations.xml
├── settings.gradle
├── .gitignore
└── gradle.properties
├── KotlinFp
├── gradle.properties
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── src
│ └── main
│ │ └── kotlin
│ │ ├── Currying.kt
│ │ ├── CreateCard.kt
│ │ ├── Book.kt
│ │ ├── sotre
│ │ ├── Charge.kt
│ │ └── ChargeMonoid.kt
│ │ └── sample
│ │ ├── MonoidSample.kt
│ │ ├── OptionSample.kt
│ │ └── Foo.kt
├── local.properties
└── build.gradle
└── todoDatabinding
├── databindingcompilerv1
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ └── layout
│ │ │ │ └── activity_main.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── tangpj
│ │ │ │ └── databindingcompilerv1
│ │ │ │ ├── utils
│ │ │ │ └── BindingAdapters.java
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── login
│ │ │ │ ├── Account.java
│ │ │ │ └── LoginActivity.java
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── tang
│ │ │ └── com
│ │ │ └── databindingcompilerv1
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── tang
│ │ └── com
│ │ └── databindingcompilerv1
│ │ └── ExampleInstrumentedTest.java
└── proguard-rules.pro
├── databindingcompilerv2
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ └── layout
│ │ │ │ └── activity_main.xml
│ │ ├── java
│ │ │ └── tang
│ │ │ │ └── com
│ │ │ │ └── databindingcompilerv2
│ │ │ │ ├── utils
│ │ │ │ └── BindingAdapters.java
│ │ │ │ ├── login
│ │ │ │ ├── Account.java
│ │ │ │ └── LoginActivity.java
│ │ │ │ └── MainActivity.java
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── tang
│ │ │ └── com
│ │ │ └── databindingcompilerv2
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── tang
│ │ └── com
│ │ └── databindingcompilerv2
│ │ └── ExampleInstrumentedTest.java
└── proguard-rules.pro
├── settings.gradle
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .idea
├── caches
│ └── build_file_checksums.ser
├── vcs.xml
├── runConfigurations.xml
└── gradle.xml
├── .gitignore
├── build.gradle
└── gradle.properties
/PatternsDemo/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/SimpleCalces/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/TodoCalces/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /calces
--------------------------------------------------------------------------------
/PatternsDemo/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/KotlinFp/gradle.properties:
--------------------------------------------------------------------------------
1 | kotlin.code.style=official
--------------------------------------------------------------------------------
/ScreenAdaptation/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /calces
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /calces
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /calces
--------------------------------------------------------------------------------
/TodoCalces/modules/statistics/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /calces
--------------------------------------------------------------------------------
/TodoCalces/modules/taskdetail/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /calces
--------------------------------------------------------------------------------
/Dagger2Simple/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':simple', ':order'
2 |
--------------------------------------------------------------------------------
/KotlinFp/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'KotlinFp'
2 |
3 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/SimpleCalces/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':library1', ':library2'
2 |
--------------------------------------------------------------------------------
/todoDatabinding/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':databindingcompilerv1', ':databindingcompilerv2'
2 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Patterns
3 |
4 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/TestModule.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order;
2 |
3 | public class TestModule {
4 | }
5 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | SimpleCalces
3 |
4 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Library1
3 |
4 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Library2
3 |
4 |
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | DataLib
3 |
4 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | tasks
3 |
4 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/TestComponent.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order;
2 |
3 | public class TestComponent {
4 | }
5 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Dagger2Simple
3 |
4 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ScreenAdaptation
3 |
4 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | nostatistic
3 |
4 |
--------------------------------------------------------------------------------
/ScreenAdaptation/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 |
5 | .DS_Store
6 | /build
7 | /captures
8 | .externalNativeBuild
9 | /.idea
--------------------------------------------------------------------------------
/TodoCalces/modules/statistics/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | statistics
3 |
4 |
--------------------------------------------------------------------------------
/TodoCalces/modules/taskdetail/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | TaskDetail
3 |
4 |
--------------------------------------------------------------------------------
/KotlinFp/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/KotlinFp/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/TodoCalces/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Dagger2Simple/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/PatternsDemo/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/SimpleCalces/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/TodoCalces/.idea/caches/build_file_checksums.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/.idea/caches/build_file_checksums.ser
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/todoDatabinding/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/ScreenAdaptation/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/SimpleCalces/.idea/caches/build_file_checksums.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/.idea/caches/build_file_checksums.ser
--------------------------------------------------------------------------------
/TodoCalces/.idea/markdown-navigator/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/todoDatabinding/.idea/caches/build_file_checksums.ser:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/.idea/caches/build_file_checksums.ser
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-hdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-hdpi/logo.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | TodoCalces
3 | Settings
4 |
5 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/cook/Cooking.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple.cook;
2 |
3 | public interface Cooking{
4 |
5 | String cook();
6 | }
7 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':modules:addtask', ':lib:datalib', ':lib:superlib', ':modules:taskdetail', ':nostatistic',
2 | ':modules:tasks', ':modules:statistics'
3 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/src/main/java/com/tangpj/datalib/RequestCode.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.datalib;
2 |
3 | public class RequestCode {
4 | public static final int EDIT_TASK = 1;
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | AddTask
3 | Settings
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | .DS_Store
5 | /build
6 | /captures
7 | .externalNativeBuild
8 | app/libs/
9 | /.idea
10 | app/build
11 | gradlew.bat
12 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/PatternsDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/order/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/java/com/tangpj/todocalces/ada.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.todocalces;
2 |
3 | import java.text.SimpleDateFormat;
4 |
5 | public class ada {
6 | public void aa(){
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/Dagger2Simple/simple/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/ScreenAdaptation/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/libraries
5 | /.idea/modules.xml
6 | /.idea/workspace.xml
7 | .DS_Store
8 | /build
9 | /captures
10 | .externalNativeBuild
11 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library1/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/SimpleCalces/library2/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/lib/superlib/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/TodoCalces/nostatistic/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/libraries
5 | /.idea/modules.xml
6 | /.idea/workspace.xml
7 | .DS_Store
8 | /build
9 | /captures
10 | .externalNativeBuild
11 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/java/com/tangpj/simplecalces/aaa.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.simplecalces;
2 |
3 | public class aaa {
4 |
5 | public void test(){
6 | String a = "sdfasdf";
7 |
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/TodoCalces/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ScreenAdaptation/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/SimpleCalces/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/todoDatabinding/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tangpj/Android-advanced-blueprint/HEAD/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/Currying.kt:
--------------------------------------------------------------------------------
1 | package com.demo.learnKt
2 |
3 | fun sum(x: Int) : (Int) -> Int{
4 | return { y: Int ->
5 | x + y
6 | }
7 | }
8 |
9 | fun sum1(x: Int, y: Int) : Int{
10 | return x + y
11 | }
12 |
--------------------------------------------------------------------------------
/TodoCalces/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/libraries
5 | /.idea/modules.xml
6 | /.idea/workspace.xml
7 | .DS_Store
8 | /build
9 | /captures
10 | .externalNativeBuild
11 | libs/
12 | src/main/res/layout/
13 |
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/src/main/java/com/tangpj/datalib/ExtraKey.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.datalib;
2 |
3 | public class ExtraKey {
4 | public static final String TASK_ID = "TASK_ID";
5 | public static final String EDIT_TASK_ID = "EDIT_TASK_ID";
6 | }
7 |
--------------------------------------------------------------------------------
/PatternsDemo/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #008577
4 | #00574B
5 | #D81B60
6 |
7 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/touch_feedback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #607D8B
4 | #455A64
5 | #03A9F4
6 |
7 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/PatternsDemo/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches/build_file_checksums.ser
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | .DS_Store
9 | /build
10 | /captures
11 | .externalNativeBuild
12 | .idea/caches/
13 | app/libs/
14 | .idea/
15 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/Dagger2Simple/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Oct 17 16:52:06 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.6-all.zip
7 |
--------------------------------------------------------------------------------
/KotlinFp/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Nov 15 15:38:11 CST 2019
2 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip
3 | distributionBase=GRADLE_USER_HOME
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/SimpleCalces/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Jul 18 17:49:36 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 |
--------------------------------------------------------------------------------
/TodoCalces/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 29 15:43:53 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 |
--------------------------------------------------------------------------------
/ScreenAdaptation/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Dec 09 10:50:18 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.9-all.zip
7 |
--------------------------------------------------------------------------------
/todoDatabinding/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri May 11 13:42:12 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 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Data Binding Compiler V1
3 | 请输入账号
4 | 请输入密码
5 | 登陆
6 |
7 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Data Binding Compiler V2
3 | 请输入账号
4 | 请输入密码
5 | 登陆
6 |
7 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/layout/fragment_dishes.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/CreateCard.kt:
--------------------------------------------------------------------------------
1 | package com.demo.learnKt
2 |
3 | /**
4 | * [amount] 剩余额度,懒,总额度不写了
5 | */
6 | data class CreateCard(val id: Int,val amount: Int = 500){
7 |
8 | fun charge(price: Int) : CreateCard{
9 | println("pay $price yuan")
10 | return copy(amount = amount - price)
11 | }
12 | }
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/list_completed_touch_feedback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/KotlinFp/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 | #Fri Nov 15 15:36:02 CST 2019
8 | sdk.dir=/Users/tangpj/Library/Android/sdk
9 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/di/DishesScoped.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.di;
2 |
3 | import java.lang.annotation.Documented;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 |
7 | import javax.inject.Scope;
8 |
9 | @Documented
10 | @Scope
11 | @Retention(RetentionPolicy.RUNTIME)
12 | public @interface DishesScoped {
13 | }
14 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_add.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/java/com/tangpj/superlib/App1.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.superlib;
2 |
3 | import android.app.Application;
4 | import android.util.Log;
5 |
6 | public class App1 extends Application{
7 | private static final String TAG = "App1";
8 |
9 | @Override
10 | public void onCreate() {
11 | super.onCreate();
12 | Log.d(TAG, "onCreate App1");
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_done.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_menu.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/di/ActivityModules.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple.di;
2 |
3 | import com.tangpj.dagger2simple.MainActivity;
4 |
5 | import dagger.Module;
6 | import dagger.android.ContributesAndroidInjector;
7 |
8 | @Module
9 | abstract class ActivityModules {
10 |
11 | @ContributesAndroidInjector
12 | abstract MainActivity contributeMainActivity();
13 | }
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/java/com/tangpj/patterns/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.patterns
2 |
3 | import android.support.v7.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class MainActivity : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_main)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/java/com/tangpj/superlib/App2.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.superlib;
2 |
3 | import android.app.Application;
4 | import android.util.Log;
5 |
6 | public class App2 extends Application{
7 |
8 | private static final String TAG = "App2";
9 |
10 | @Override
11 | public void onCreate() {
12 | super.onCreate();
13 | Log.d(TAG, "onCreate App2");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_filter_list.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/Book.kt:
--------------------------------------------------------------------------------
1 | package com.demo.learnKt
2 |
3 | data class Book(
4 | val name: String,
5 | val author: String,
6 | //单位元,假设只能标价整数
7 | val price: Int,
8 | val group: Group?)
9 |
10 |
11 | enum class Group{
12 | //科技
13 | Technology,
14 | //人文
15 | Humanities,
16 | //杂志
17 | Magazine,
18 | //政治
19 | Political,
20 | //小说
21 | Fiction
22 | }
23 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/java/com/tangpj/library1/Library1Activity.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.library1
2 |
3 | import android.support.v7.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class Library1Activity : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_library1)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/java/com/tangpj/library2/Library2Activity.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.library2
2 |
3 | import android.support.v7.app.AppCompatActivity
4 | import android.os.Bundle
5 |
6 | class Library2Activity : AppCompatActivity() {
7 |
8 | override fun onCreate(savedInstanceState: Bundle?) {
9 | super.onCreate(savedInstanceState)
10 | setContentView(R.layout.activity_library2)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_list.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/sotre/Charge.kt:
--------------------------------------------------------------------------------
1 | package com.demo.learnKt.sotre
2 |
3 | import com.demo.learnKt.CreateCard
4 | import kotlin.random.Random
5 |
6 | /**
7 | * 费用
8 | * [id] 唯一标识符,太懒了,用随机数表示
9 | */
10 | data class Charge(
11 | val createCard: CreateCard,
12 | val price: Int,
13 | val id: Int = Random.nextInt()){
14 | companion object
15 | }
16 |
17 |
18 | fun Charge.Companion.monoid(createCard: CreateCard) = ChargeMonoid(createCard)
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/java/com/tangpj/databindingcompilerv1/utils/BindingAdapters.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv1.utils;
2 |
3 | import android.databinding.BindingAdapter;
4 | import android.view.View;
5 |
6 | public class BindingAdapters {
7 |
8 | @BindingAdapter("isVisible")
9 | public static void showHide(View view,boolean show) {
10 | view.setVisibility(show ? View.VISIBLE : View.GONE);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/java/tang/com/databindingcompilerv2/utils/BindingAdapters.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv2.utils;
2 |
3 | import android.databinding.BindingAdapter;
4 | import android.view.View;
5 |
6 | public class BindingAdapters {
7 |
8 | @BindingAdapter("isVisible")
9 | public static void showHide(View view,boolean show) {
10 | view.setVisibility(show ? View.VISIBLE : View.GONE);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/di/FragmentScoped.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.di;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | import javax.inject.Scope;
9 |
10 | @Scope
11 | @Retention(RetentionPolicy.RUNTIME)
12 | @Target({ElementType.TYPE, ElementType.METHOD})
13 | public @interface FragmentScoped {}
14 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/test/java/com/tangpj/patterns/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.patterns
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/test/java/com/tangpj/todocalces/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.todocalces
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/menu/menu_dishes.xml:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/test/java/com/tangpj/simplecalces/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.simplecalces
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/test/java/com/tangpj/library1/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.library1
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/test/java/com/tangpj/library2/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.library2
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/test/java/com/tangpj/addtask/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.addtask
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/KotlinFp/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'org.jetbrains.kotlin.jvm' version '1.3.41'
3 | }
4 |
5 | group 'com.demo'
6 | version '1.0-SNAPSHOT'
7 |
8 | repositories {
9 | mavenCentral()
10 | }
11 |
12 | dependencies {
13 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
14 | implementation "io.arrow-kt:arrow-core:0.10.2"
15 | }
16 |
17 | compileKotlin {
18 | kotlinOptions.jvmTarget = "1.8"
19 | }
20 | compileTestKotlin {
21 | kotlinOptions.jvmTarget = "1.8"
22 | }
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/test/java/com/tangpj/nostatistic/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.nostatistic
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_statistics.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/cook/Menu.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple.cook;
2 |
3 | import java.util.Map;
4 |
5 | import javax.inject.Inject;
6 | import javax.inject.Singleton;
7 |
8 |
9 | public class Menu {
10 |
11 | public Map menus;
12 |
13 | @Inject
14 | public Menu( Map menus){
15 | this.menus = menus;
16 | }
17 |
18 | Map getMenus(){
19 | return menus;
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/sample/MonoidSample.kt:
--------------------------------------------------------------------------------
1 | package sample
2 |
3 | import arrow.core.extensions.IntMonoid
4 | import arrow.core.extensions.list.foldable.foldMap
5 | import arrow.core.extensions.monoid
6 | import arrow.core.identity
7 | import arrow.core.k
8 |
9 | fun main() {
10 | val monoid = Int.monoid()
11 | val sum = listOf(1, 2, 3, 4, 5).foldMap(monoid, ::identity)
12 | println("sum = $sum")
13 |
14 | listOf(1, 2, 3, 4, 5).fold(0){acc, i ->
15 | acc + i
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_statistics_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/test/java/com/tangpj/order/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order;
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 | }
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/src/test/java/com/tangpj/datalib/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.datalib;
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 | }
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/src/test/java/com/tangpj/tasks/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.tasks;
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 | }
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_check_circle_24dp.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/test/java/com/tangpj/superlib/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.superlib;
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 | }
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/test/java/com/tangpj/dagger2simple/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple;
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 | }
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/test/java/com/tangpj/screenadaptation/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.screenadaptation;
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 | }
--------------------------------------------------------------------------------
/TodoCalces/modules/statistics/src/test/java/com/tangpj/statistics/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.statistics;
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 | }
--------------------------------------------------------------------------------
/TodoCalces/modules/taskdetail/src/test/java/com/tangpj/taskdetail/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.taskdetail;
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 | }
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/test/java/tang/com/databindingcompilerv1/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv1;
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 | }
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/test/java/tang/com/databindingcompilerv2/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv2;
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 | }
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_verified_user_24dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_statistics_100dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/di/CookModules.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple.di;
2 |
3 | import java.util.LinkedHashMap;
4 | import java.util.Map;
5 |
6 |
7 | import dagger.Module;
8 | import dagger.Provides;
9 |
10 | @Module
11 | public class CookModules {
12 |
13 | @Provides
14 | public Map providerMenus(){
15 | Map menus = new LinkedHashMap<>();
16 | menus.put("酸菜鱼", true);
17 | menus.put("土豆丝", true);
18 | menus.put("铁板牛肉", true);
19 | return menus;
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/sample/OptionSample.kt:
--------------------------------------------------------------------------------
1 | package sample
2 |
3 | import arrow.core.Option
4 | import arrow.core.getOrElse
5 |
6 |
7 | fun main(args: Array) {
8 | fooOption("hello word!!!")
9 | println("——————————————————————")
10 | fooOption(null)
11 | }
12 |
13 | fun fooOption(str: String?){
14 | val optionStr = Option.fromNullable(str)
15 | val printStr = optionStr.getOrElse { "str is null" }
16 | println(printStr)
17 | optionStr.exists {
18 | println("str is not null! str = $it")
19 | true
20 | }
21 |
22 | }
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/TodoCalces/modules/statistics/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/OrderApp.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order;
2 |
3 | import com.tangpj.order.di.DaggerOrderAppComponent;
4 |
5 | import dagger.android.AndroidInjector;
6 | import dagger.android.support.DaggerApplication;
7 |
8 | public class OrderApp extends DaggerApplication {
9 |
10 |
11 | @Override
12 | public void onCreate() {
13 | super.onCreate();
14 |
15 | }
16 |
17 | @Override
18 | protected AndroidInjector extends DaggerApplication> applicationInjector() {
19 | return DaggerOrderAppComponent.builder().create(this);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/TodoCalces/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/SimpleCalces/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/todoDatabinding/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/ui/addedit/AddEditDishContract.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.ui.addedit;
2 |
3 | import com.tangpj.order.BasePresenter;
4 | import com.tangpj.order.BaseView;
5 | import com.tangpj.order.pojo.Dish;
6 |
7 | public interface AddEditDishContract {
8 |
9 | interface View extends BaseView{
10 | void showDish(Dish dish);
11 | void showEmptyDishError();
12 | void saveSucceed(Dish dish);
13 | }
14 |
15 | interface Presenter extends BasePresenter{
16 | void saveDish(String name, String description);
17 | void loadDish();
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Order
3 | Settings
4 |
5 | 保存
6 | 请输入菜式名字,10个字以内
7 | 请输入菜式描述
8 | 找不到指定菜式
9 | 菜单
10 | 添加菜式
11 | 编辑菜式
12 | 新增
13 | 编辑
14 | 删除
15 |
16 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values-sw375dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 0.5dp
4 | 48.8dp
5 | 75.0dp
6 | 100.0dp
7 | 125.0dp
8 | 150.0dp
9 | 200.0dp
10 | 250.0dp
11 | 300.0dp
12 | 375.0dp
13 | 28.0sp
14 | 32.0sp
15 | 40.0sp
16 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values-sw900dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1.2dp
4 | 117.12dp
5 | 180.0dp
6 | 240.0dp
7 | 300.0dp
8 | 360.0dp
9 | 480.0dp
10 | 600.0dp
11 | 720.0dp
12 | 900.0dp
13 | 67.2sp
14 | 76.8sp
15 | 96.0sp
16 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values-sw411dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 0.548dp
4 | 53.485dp
5 | 82.2dp
6 | 109.6dp
7 | 137.0dp
8 | 164.4dp
9 | 219.2dp
10 | 274.0dp
11 | 328.8dp
12 | 411.0dp
13 | 30.688sp
14 | 35.072sp
15 | 43.84sp
16 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 | #000
7 |
8 | #651FFF
9 | #00BCD4
10 | #009688
11 | #607D8B
12 | #E91E63
13 | #2E7D32
14 | #795548
15 | #FFF
16 |
17 |
--------------------------------------------------------------------------------
/Dagger2Simple/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 |
5 | repositories {
6 | google()
7 | jcenter()
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.2.1'
11 |
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 | repositories {
20 | google()
21 | jcenter()
22 | }
23 | }
24 |
25 | task clean(type: Delete) {
26 | delete rootProject.buildDir
27 | }
28 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values-sw320dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 0.427dp
4 | 41.643dp
5 | 64.0dp
6 | 85.333dp
7 | 106.667dp
8 | 128.0dp
9 | 170.667dp
10 | 213.333dp
11 | 256.0dp
12 | 320.0dp
13 | 23.893sp
14 | 27.307sp
15 | 34.133sp
16 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/ui/dishes/DishesContract.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.ui.dishes;
2 |
3 | import com.tangpj.order.BasePresenter;
4 | import com.tangpj.order.BaseView;
5 | import com.tangpj.order.pojo.Dish;
6 |
7 | import java.util.List;
8 | import java.util.Map;
9 |
10 | public interface DishesContract {
11 |
12 | interface View extends BaseView{
13 | void showDishes(List dishes);
14 | }
15 |
16 | interface Presenter extends BasePresenter{
17 |
18 | void loadDishes();
19 |
20 | String order(Map selectMap);
21 |
22 | boolean deleteDish(String id);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/menu/menu_dishes_item.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/todoDatabinding/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 |
5 | repositories {
6 | google()
7 | jcenter()
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.1.2'
11 |
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 | repositories {
20 | google()
21 | jcenter()
22 | }
23 | }
24 |
25 | task clean(type: Delete) {
26 | delete rootProject.buildDir
27 | }
28 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/java/com/tangpj/screenadaptation/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.screenadaptation;
2 |
3 | import android.support.v7.app.AppCompatActivity;
4 | import android.os.Bundle;
5 | import android.widget.TextView;
6 |
7 | public class MainActivity extends AppCompatActivity {
8 |
9 | TextView tvSw;
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.activity_main);
15 | int sw = getResources().getConfiguration().smallestScreenWidthDp;
16 | tvSw = findViewById(R.id.tv_sw);
17 | tvSw.setText("sw = " + sw + "dp");
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/java/com/tangpj/superlib/util/DiskIOThreadExecutor.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.superlib.util;
2 |
3 | import android.support.annotation.NonNull;
4 |
5 | import java.util.concurrent.Executor;
6 | import java.util.concurrent.Executors;
7 |
8 | /**
9 | * Executor that runs a task on a new background thread.
10 | */
11 | public class DiskIOThreadExecutor implements Executor {
12 |
13 | private final Executor mDiskIO;
14 |
15 | public DiskIOThreadExecutor() {
16 | mDiskIO = Executors.newSingleThreadExecutor();
17 | }
18 |
19 | @Override
20 | public void execute(@NonNull Runnable command) {
21 | mDiskIO.execute(command);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/drawable/ic_assignment_turned_in_24dp.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/di/CookAppComponent.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple.di;
2 |
3 | import com.tangpj.dagger2simple.MyApplication;
4 |
5 | import javax.inject.Singleton;
6 |
7 | import dagger.Component;
8 | import dagger.android.AndroidInjector;
9 | import dagger.android.support.AndroidSupportInjectionModule;
10 |
11 | @Singleton
12 | @Component(modules = {
13 | AndroidSupportInjectionModule.class,
14 | ActivityModules.class,
15 | CookModules.class})
16 | public interface CookAppComponent extends AndroidInjector {
17 |
18 | @Component.Builder
19 | abstract class Builder extends AndroidInjector.Builder{}
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/di/ActivityScoped.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.di;
2 |
3 | import java.lang.annotation.Documented;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 |
7 | import javax.inject.Scope;
8 |
9 | /**
10 | * In Dagger, an unscoped component cannot depend on a scoped component. As
11 | * {@link OrderAppComponent} is a scoped component ({@code @Singleton}, we create a custom
12 | * scope to be used by all fragment components. Additionally, a component with a specific scope
13 | * cannot have a sub component with the same scope.
14 | */
15 | @Documented
16 | @Scope
17 | @Retention(RetentionPolicy.RUNTIME)
18 | public @interface ActivityScoped {
19 | }
20 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0.5dp
5 | 48.8dp
6 | 75dp
7 | 100dp
8 | 125dp
9 | 150dp
10 | 200dp
11 | 250dp
12 | 300dp
13 | 375dp
14 |
15 |
16 | 28sp
17 | 32sp
18 | 40sp
19 |
--------------------------------------------------------------------------------
/ScreenAdaptation/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 |
5 | repositories {
6 | google()
7 | jcenter()
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.1.4'
11 | // NOTE: Do not place your application dependencies here; they belong
12 | // in the individual module build.gradle files
13 | }
14 | }
15 |
16 | plugins {
17 | id "calces.screen" version "1.2.52"
18 | }
19 |
20 | allprojects {
21 | repositories {
22 | google()
23 | jcenter()
24 |
25 | }
26 | }
27 |
28 | task clean(type: Delete) {
29 | delete rootProject.buildDir
30 | }
31 |
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/sample/Foo.kt:
--------------------------------------------------------------------------------
1 | package sample
2 |
3 | import com.demo.learnKt.Book
4 |
5 | fun foo(books: List?) : Book?{
6 | val size = books?.size ?: 0
7 | return if (size > 5){
8 | books?.get(5)
9 | }else {
10 | books?.firstOrNull()
11 | }
12 | }
13 |
14 | fun foo1(books: List?) : Book?{
15 | return if (books != null){
16 | if (books.size > 5){
17 | books[5]
18 | }else{
19 | books.firstOrNull()
20 | }
21 | }else{
22 | null
23 | }
24 | }
25 |
26 | fun foo2(books: List?) : Book?{
27 | books ?: return null
28 | return if (books.size > 5){
29 | books[5]
30 | }else{
31 | books.firstOrNull()
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/java/com/tangpj/databindingcompilerv1/MainActivity.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv1;
2 |
3 | import android.databinding.DataBindingUtil;
4 | import android.support.v7.app.AppCompatActivity;
5 | import android.os.Bundle;
6 |
7 | import tang.com.databindingcompilerv1.databinding.ActivityMainBinding;
8 |
9 | public class MainActivity extends AppCompatActivity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
15 | binding.setHello(getIntent().getStringExtra("hello") + "\n hello word !");
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/java/tang/com/databindingcompilerv2/login/Account.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv2.login;
2 |
3 | import android.arch.lifecycle.MutableLiveData;
4 |
5 | public class Account {
6 | private MutableLiveData accountNum = new MutableLiveData<>();
7 | private MutableLiveData password = new MutableLiveData<>();
8 |
9 | Account(String accountNum, String password){
10 | this.accountNum.setValue(accountNum);
11 | this.password.setValue(password);
12 | }
13 |
14 | public MutableLiveData getAccountNum(){
15 | return accountNum;
16 | }
17 |
18 | public MutableLiveData getPassword(){
19 | return password;
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/MyApplication.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple;
2 |
3 |
4 |
5 |
6 | import com.tangpj.dagger2simple.cook.Chef;
7 | import com.tangpj.dagger2simple.di.DaggerCookAppComponent;
8 |
9 | import javax.inject.Inject;
10 |
11 | import dagger.android.AndroidInjector;
12 | import dagger.android.DaggerApplication;
13 |
14 | public class MyApplication extends DaggerApplication{
15 |
16 | @Inject
17 | Chef chef;
18 |
19 | @Override
20 | public void onCreate() {
21 | super.onCreate();
22 | }
23 |
24 | @Override
25 | protected AndroidInjector extends DaggerApplication> applicationInjector() {
26 | return DaggerCookAppComponent.builder().create(this);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/TodoCalces/modules/taskdetail/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/PatternsDemo/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext.kotlin_version = '1.2.71'
5 | repositories {
6 | google()
7 | jcenter()
8 | }
9 | dependencies {
10 | classpath 'com.android.tools.build:gradle:3.2.1'
11 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
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 | repositories {
20 | google()
21 | jcenter()
22 | }
23 | }
24 |
25 | task clean(type: Delete) {
26 | delete rootProject.buildDir
27 | }
28 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/java/com/tangpj/databindingcompilerv1/login/Account.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv1.login;
2 |
3 | import android.databinding.ObservableField;
4 | import android.text.TextWatcher;
5 |
6 | public class Account {
7 | private ObservableField accountNum = new ObservableField<>();
8 | private ObservableField password = new ObservableField<>();
9 |
10 | Account(String accountNum, String password){
11 | this.accountNum.set(accountNum);
12 | this.password.set(password);
13 | }
14 |
15 | public ObservableField getAccountNum(){
16 | return accountNum;
17 | }
18 |
19 | public ObservableField getPassword(){
20 | return password;
21 | }
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/Dagger2Simple/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/di/OrderAppComponent.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.di;
2 |
3 | import com.tangpj.order.OrderApp;
4 | import com.tangpj.order.ui.dishes.DishesModules;
5 |
6 | import javax.inject.Singleton;
7 |
8 | import dagger.Component;
9 | import dagger.android.AndroidInjector;
10 | import dagger.android.support.AndroidSupportInjectionModule;
11 |
12 | @Singleton
13 | @Component(modules = {
14 | AndroidSupportInjectionModule.class,
15 | LayoutManagerModules.class,
16 | CookAppModules.class,
17 | ActivityModules.class})
18 | public interface OrderAppComponent extends AndroidInjector{
19 |
20 | @Component.Builder
21 | abstract class Builder extends AndroidInjector.Builder{
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/SimpleCalces/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 |
--------------------------------------------------------------------------------
/TodoCalces/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 |
--------------------------------------------------------------------------------
/ScreenAdaptation/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 |
--------------------------------------------------------------------------------
/todoDatabinding/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/java/tang/com/databindingcompilerv2/MainActivity.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv2;
2 |
3 | import android.databinding.DataBindingUtil;
4 | import android.os.Bundle;
5 | import android.support.v7.app.AppCompatActivity;
6 |
7 | import tang.com.databindingcompilerv2.databinding.ActivityMainBinding;
8 |
9 | public class MainActivity extends AppCompatActivity {
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
15 | binding.setHello(getIntent().getStringExtra("hello") + "\n hello word !");
16 | binding.setLifecycleOwner(this);
17 |
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/todoDatabinding/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/BaseView.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.tangpj.order;
18 |
19 | public interface BaseView {
20 | }
21 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/cook/Chef.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple.cook;
2 |
3 |
4 | import java.util.Map;
5 |
6 | import javax.inject.Inject;
7 | import javax.inject.Singleton;
8 |
9 | public class Chef implements Cooking{
10 |
11 | Menu menu;
12 |
13 | @Inject
14 | public Chef(Menu menu){
15 | this.menu = menu;
16 | }
17 |
18 | @Override
19 | public String cook(){
20 | Map menuList = menu.getMenus();
21 | StringBuilder sb = new StringBuilder();
22 | for (Map.Entry entry : menuList.entrySet()){
23 | if (entry.getValue()){
24 | sb.append(entry.getKey()).append(",");
25 | }
26 | }
27 |
28 | return sb.toString();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/di/LayoutManagerModules.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.di;
2 |
3 | import android.content.Context;
4 | import android.support.v7.widget.LinearLayoutManager;
5 |
6 | import javax.inject.Named;
7 |
8 | import dagger.Module;
9 | import dagger.Provides;
10 |
11 | @Module
12 | public class LayoutManagerModules {
13 |
14 | @Named("vertical")
15 | @Provides
16 | public LinearLayoutManager providesLinearLayoutManager(Context context){
17 | return new LinearLayoutManager(context);
18 | }
19 |
20 | @Named("horizontal")
21 | @Provides
22 | public LinearLayoutManager providesHorizontalLinearLayoutManager(Context context){
23 | return new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
24 | }
25 |
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/androidTest/java/com/tangpj/patterns/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.patterns
2 |
3 | import android.support.test.InstrumentationRegistry
4 | import android.support.test.runner.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getTargetContext()
22 | assertEquals("com.tangpj.patterns", appContext.packageName)
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/di/ActivityModules.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.di;
2 |
3 | import com.tangpj.order.ui.addedit.AddEditDishActivity;
4 | import com.tangpj.order.ui.addedit.AddEditModules;
5 | import com.tangpj.order.ui.dishes.DishesActivity;
6 | import com.tangpj.order.ui.dishes.DishesModules;
7 |
8 | import dagger.Module;
9 | import dagger.android.ContributesAndroidInjector;
10 |
11 | @Module
12 | public abstract class ActivityModules {
13 |
14 | @DishesScoped
15 | @ContributesAndroidInjector(modules = DishesModules.class)
16 | abstract public DishesActivity contributesDishActivity();
17 |
18 | @ActivityScoped
19 | @ContributesAndroidInjector(modules = AddEditModules.class)
20 | abstract public AddEditDishActivity contributesAddEditDishActivity();
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/androidTest/java/com/tangpj/library1/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.library1
2 |
3 | import android.support.test.InstrumentationRegistry
4 | import android.support.test.runner.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getTargetContext()
22 | assertEquals("com.tangpj.library1", appContext.packageName)
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/androidTest/java/com/tangpj/library2/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.library2
2 |
3 | import android.support.test.InstrumentationRegistry
4 | import android.support.test.runner.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getTargetContext()
22 | assertEquals("com.tangpj.library2", appContext.packageName)
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/androidTest/java/com/tangpj/todocalces/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.todocalces
2 |
3 | import android.support.test.InstrumentationRegistry
4 | import android.support.test.runner.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getTargetContext()
22 | assertEquals("com.tangpj.todocalces", appContext.packageName)
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/androidTest/java/com/tangpj/addtask/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.addtask
2 |
3 | import android.support.test.InstrumentationRegistry
4 | import android.support.test.runner.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getTargetContext()
22 | assertEquals("com.tangpj.addtask", appContext.packageName)
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/androidTest/java/com/tangpj/simplecalces/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.simplecalces
2 |
3 | import android.support.test.InstrumentationRegistry
4 | import android.support.test.runner.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getTargetContext()
22 | assertEquals("com.tangpj.simplecalces", appContext.packageName)
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/SimpleCalces/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/androidTest/java/com/tangpj/nostatistic/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.nostatistic
2 |
3 | import android.support.test.InstrumentationRegistry
4 | import android.support.test.runner.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getTargetContext()
22 | assertEquals("com.tangpj.nostatistic", appContext.packageName)
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/ActivityUtils.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order;
2 |
3 | import android.support.annotation.NonNull;
4 | import android.support.v4.app.Fragment;
5 | import android.support.v4.app.FragmentManager;
6 | import android.support.v4.app.FragmentTransaction;
7 |
8 | import static com.google.common.base.Preconditions.checkNotNull;
9 |
10 | public class ActivityUtils {
11 |
12 | public static void addFragmentToActivity (@NonNull FragmentManager fragmentManager,
13 | @NonNull Fragment fragment, int frameId) {
14 | checkNotNull(fragmentManager);
15 | checkNotNull(fragment);
16 | FragmentTransaction transaction = fragmentManager.beginTransaction();
17 | transaction.add(frameId, fragment);
18 | transaction.commit();
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/PatternsDemo/app/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 |
--------------------------------------------------------------------------------
/SimpleCalces/app/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 |
--------------------------------------------------------------------------------
/TodoCalces/app/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 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/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 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/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 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/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 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/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 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/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 |
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/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 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/java/com/tangpj/superlib/BasePresenter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.tangpj.superlib;
18 |
19 | public interface BasePresenter {
20 |
21 | void start();
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/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 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/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 |
--------------------------------------------------------------------------------
/TodoCalces/modules/addtask/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 |
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/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 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/java/com/tangpj/superlib/BaseView.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.tangpj.superlib;
18 |
19 | public interface BaseView {
20 |
21 | void setPresenter(T presenter);
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/TodoCalces/modules/statistics/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 |
--------------------------------------------------------------------------------
/TodoCalces/modules/taskdetail/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 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/KotlinFp/src/main/kotlin/sotre/ChargeMonoid.kt:
--------------------------------------------------------------------------------
1 | package com.demo.learnKt.sotre
2 |
3 | import arrow.typeclasses.Monoid
4 | import com.demo.learnKt.CreateCard
5 |
6 |
7 | /**
8 | * 避免代码过于凌乱加一个演示用的main方法
9 | */
10 | fun main() {
11 |
12 | }
13 |
14 | /**
15 | * 需要传入[CreateCard] 因为同一张信用卡的费用才能做合并处理
16 | */
17 | class ChargeMonoid(private val cc: CreateCard) : Monoid{
18 |
19 | /**
20 | * 固定的单位元值,id也需要是固定的
21 | * 因为同一个ChargeMonoid(equals 为 true)的单位元([empty])是相等(equals 为 true)的
22 | */
23 | override fun empty(): Charge = Charge(cc, 0, 0)
24 |
25 | /**
26 | * 只会合并createCard等于[cc]的Charge
27 | * 不同信用卡的费用无法合并
28 | */
29 | override fun Charge.combine(b: Charge): Charge =
30 | if (cc == b.createCard){
31 | Charge(cc, b.price + price)
32 | }else{
33 | this
34 | }
35 |
36 | }
37 |
38 |
39 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/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 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/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 |
--------------------------------------------------------------------------------
/PatternsDemo/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # Kotlin code style for this project: "official" or "obsolete":
15 | kotlin.code.style=official
16 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/androidTest/java/com/tangpj/order/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.order", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/src/androidTest/java/com/tangpj/tasks/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.tasks;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.tasks.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/TodoCalces/lib/datalib/src/androidTest/java/com/tangpj/datalib/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.datalib;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.datalib.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/androidTest/java/com/tangpj/superlib/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.superlib;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.superlib.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/androidTest/java/com/tangpj/dagger2simple/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.dagger2simple", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/TodoCalces/modules/statistics/src/androidTest/java/com/tangpj/statistics/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.statistics;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.statistics.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/TodoCalces/modules/taskdetail/src/androidTest/java/com/tangpj/taskdetail/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.taskdetail;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.taskdetail.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/PatternsDemo/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
--------------------------------------------------------------------------------
/ScreenAdaptation/app/src/androidTest/java/com/tangpj/screenadaptation/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.screenadaptation;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("com.tangpj.screenadaptation", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/SimpleCalces/library1/src/main/res/layout/activity_library1.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
--------------------------------------------------------------------------------
/SimpleCalces/library2/src/main/res/layout/activity_library2.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/androidTest/java/tang/com/databindingcompilerv1/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv1;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("tang.com.databindingcompilerv1", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/androidTest/java/tang/com/databindingcompilerv2/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv2;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.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("tang.com.databindingcompilerv2", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/TodoCalces/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/SimpleCalces/app/src/main/java/com/tangpj/simplecalces/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.tangpj.simplecalces
2 |
3 | import android.content.Intent
4 | import android.net.Uri
5 | import android.support.v7.app.AppCompatActivity
6 | import android.os.Bundle
7 | import android.text.TextUtils
8 | import kotlinx.android.synthetic.main.activity_main.*
9 |
10 | class MainActivity : AppCompatActivity() {
11 |
12 | override fun onCreate(savedInstanceState: Bundle?) {
13 | super.onCreate(savedInstanceState)
14 | setContentView(R.layout.activity_main)
15 | btn_library1.setOnClickListener {
16 | val intent = Intent(Intent.ACTION_VIEW,Uri.parse("simple://library1"))
17 | startActivity(intent)
18 | val a = StringBuilder("")
19 | }
20 | btn_library2.setOnClickListener{
21 | val intent = Intent(Intent.ACTION_VIEW,Uri.parse("simple://library2"))
22 | startActivity(intent)
23 | }
24 |
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/java/tang/com/databindingcompilerv2/login/LoginActivity.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv2.login;
2 |
3 | import android.arch.lifecycle.ViewModelProviders;
4 | import android.databinding.DataBindingUtil;
5 | import android.os.Bundle;
6 | import android.support.annotation.Nullable;
7 | import android.support.v7.app.AppCompatActivity;
8 |
9 | import tang.com.databindingcompilerv2.R;
10 | import tang.com.databindingcompilerv2.databinding.ActivityLoginBinding;
11 |
12 | public class LoginActivity extends AppCompatActivity{
13 |
14 | @Override
15 | protected void onCreate(@Nullable Bundle savedInstanceState) {
16 | super.onCreate(savedInstanceState);
17 | ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
18 | LoginViewModel viewModel = ViewModelProviders.of(this).get(LoginViewModel.class);
19 | binding.setViewModel(viewModel);
20 | binding.setLifecycleOwner(this);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/ui/addedit/AddEditModules.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.ui.addedit;
2 |
3 |
4 | import com.tangpj.order.di.ActivityScoped;
5 | import com.tangpj.order.di.FragmentScoped;
6 |
7 |
8 | import dagger.Binds;
9 | import dagger.Module;
10 | import dagger.Provides;
11 | import dagger.android.ContributesAndroidInjector;
12 |
13 | @Module
14 | abstract public class AddEditModules {
15 |
16 | @Provides
17 | @ActivityScoped
18 | public static String providesDishId(AddEditDishActivity activity){
19 | return activity.getIntent().getStringExtra(AddEditDishFragment.EDIT_DISH_ID);
20 | }
21 |
22 | @Binds
23 | abstract AddEditDishContract.Presenter addEditDishesPresenter(AddEditDishPresenter presenter);
24 |
25 | @Binds
26 | abstract AddEditDishContract.View addEditView(AddEditDishFragment addEditDishFragment);
27 |
28 | @FragmentScoped
29 | @ContributesAndroidInjector()
30 | abstract public AddEditDishFragment addEditDishFragment();
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/TodoCalces/nostatistic/src/main/res/menu/drawer_actions.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/TodoCalces/modules/taskdetail/src/main/res/menu/taskdetail_fragment_menu.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/java/com/tangpj/databindingcompilerv1/login/LoginActivity.java:
--------------------------------------------------------------------------------
1 | package tang.com.databindingcompilerv1.login;
2 | import android.arch.lifecycle.ViewModelProviders;
3 | import android.databinding.DataBindingUtil;
4 | import android.os.Bundle;
5 | import android.support.annotation.Nullable;
6 | import android.support.v7.app.AppCompatActivity;
7 |
8 | import tang.com.databindingcompilerv1.R;
9 | import tang.com.databindingcompilerv1.databinding.ActivityLoginBinding;
10 |
11 | public class LoginActivity extends AppCompatActivity{
12 |
13 | @Override
14 | protected void onCreate(@Nullable Bundle savedInstanceState) {
15 | super.onCreate(savedInstanceState);
16 | ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
17 | LoginViewModel viewModel = ViewModelProviders.of(this).get(LoginViewModel.class);
18 | binding.setViewModel(viewModel);
19 | viewModel.getLoginPrompt().observe(this, observe -> {
20 | binding.tvPrompt.setText(observe);
21 | });
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Dagger2Simple/order/src/main/java/com/tangpj/order/ui/dishes/DishesModules.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.order.ui.dishes;
2 |
3 | import android.support.v7.widget.LinearLayoutManager;
4 | import android.support.v7.widget.RecyclerView;
5 |
6 | import com.tangpj.order.di.DishesScoped;
7 |
8 |
9 | import javax.inject.Named;
10 |
11 | import dagger.Binds;
12 | import dagger.Module;
13 | import dagger.Provides;
14 | import dagger.android.ContributesAndroidInjector;
15 |
16 | @Module
17 | public abstract class DishesModules {
18 |
19 | @ContributesAndroidInjector
20 | abstract public DishesFragment dishesFragment();
21 |
22 | @Provides
23 | static DishesAdapter providerDishesAdapter(){
24 | return new DishesAdapter();
25 | }
26 |
27 | @DishesScoped
28 | @Binds
29 | abstract DishesContract.Presenter dishesPresenter(DishesPresenter presenter);
30 |
31 | @Binds
32 | abstract DishesContract.View dishesView(DishesFragment dishesFragment);
33 |
34 | @Binds
35 | abstract RecyclerView.LayoutManager layoutManager(LinearLayoutManager linearLayoutManager);
36 |
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/TodoCalces/lib/superlib/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 | #455A64
19 | #263238
20 | #D50000
21 |
22 | #CCCCCC
23 |
24 | #CFD8DC
25 |
26 |
27 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv1/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
14 |
18 |
19 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/todoDatabinding/databindingcompilerv2/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
14 |
18 |
19 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/Dagger2Simple/simple/src/main/java/com/tangpj/dagger2simple/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.tangpj.dagger2simple;
2 |
3 | import android.annotation.SuppressLint;
4 | import android.support.v7.app.AppCompatActivity;
5 | import android.os.Bundle;
6 | import android.util.Log;
7 | import android.view.View;
8 | import android.widget.TextView;
9 | import android.widget.Toast;
10 |
11 | import com.tangpj.dagger2simple.cook.Chef;
12 | import com.tangpj.dagger2simple.cook.Menu;
13 |
14 | import javax.inject.Inject;
15 |
16 | import dagger.android.DaggerActivity;
17 | import dagger.android.support.AndroidSupportInjection;
18 |
19 | public class MainActivity extends DaggerActivity {
20 |
21 | private static final String TAG = "MainActivity";
22 |
23 | @Inject
24 | Chef chef;
25 |
26 | @SuppressLint("ShowToast")
27 | @Override
28 | protected void onCreate(Bundle savedInstanceState) {
29 | super.onCreate(savedInstanceState);
30 | setContentView(R.layout.activity_main);
31 | }
32 |
33 | public void showCook(View view){
34 | Toast.makeText(this, chef.cook(), Toast.LENGTH_SHORT).show();
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/src/main/res/menu/filter_tasks.xml:
--------------------------------------------------------------------------------
1 |
16 |
--------------------------------------------------------------------------------
/TodoCalces/modules/tasks/src/main/java/com/tangpj/tasks/TasksFilterType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2016, The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.tangpj.tasks;
18 |
19 | /**
20 | * Used with the filter spinner in the tasks list.
21 | */
22 | public enum TasksFilterType {
23 | /**
24 | * Do not filter tasks.
25 | */
26 | ALL_TASKS,
27 |
28 | /**
29 | * Filters only the active (not completed yet) tasks.
30 | */
31 | ACTIVE_TASKS,
32 |
33 | /**
34 | * Filters only the completed tasks.
35 | */
36 | COMPLETED_TASKS
37 | }
38 |
--------------------------------------------------------------------------------