aboutsummaryrefslogtreecommitdiff
path: root/about
AgeCommit message (Collapse)Author
2018-12-24Enhancement/ktlint (#179)Allan Wang
* Add spotless dependency * Apply ktlint * Add license headers
2018-12-24Migrate to androidx (#178)Allan Wang
* Initial refactor * Remove alpha version usages * Update test code * Add tests for checkbox * Fix invalid card import * Remove more old support content * Update kotlin version * Add back kotterknife with new imports * Update docs * Use bold notice * Add changelog * Remove deprecation for kotterknife * Remove unused dependencies * Update changelog
2018-10-08Enhancement/public xml (#171)3.8.0Allan Wang
* Test gitignore with public xml * Fix spacing
2018-10-08Update translations (#169)Allan Wang
* New translations strings_about.xml (Polish) * New translations strings_commons.xml (Hebrew) * New translations strings_commons.xml (Tagalog) * New translations strings_commons.xml (Swedish) * New translations strings_commons.xml (Serbian (Cyrillic)) * New translations strings_commons.xml (Russian) * New translations strings_commons.xml (Romanian) * New translations strings_commons.xml (Portuguese, Brazilian) * New translations strings_commons.xml (Portuguese) * New translations strings_commons.xml (Norwegian) * New translations strings_commons.xml (Korean) * New translations strings_commons.xml (Japanese) * New translations strings_commons.xml (Italian) * New translations strings_commons.xml (Hungarian) * New translations strings_commons.xml (Greek) * New translations strings_commons.xml (German) * New translations strings_commons.xml (Galician) * New translations strings_commons.xml (French) * New translations strings_commons.xml (Finnish) * New translations strings_commons.xml (English) * New translations strings_commons.xml (Dutch) * New translations strings_commons.xml (Czech) * New translations strings_commons.xml (Chinese Traditional) * New translations strings_commons.xml (Chinese Simplified) * New translations strings_commons.xml (Catalan) * New translations strings_commons.xml (Arabic) * New translations strings_commons.xml (Afrikaans) * New translations strings_colorpicker.xml (Ukrainian) * New translations strings_commons.xml (Ukrainian) * New translations strings_mediapicker.xml (Ukrainian) * New translations strings_mediapicker.xml (Tagalog) * New translations strings_mediapicker.xml (Swedish) * New translations strings_mediapicker.xml (Serbian (Cyrillic)) * New translations strings_mediapicker.xml (Russian) * New translations strings_mediapicker.xml (Romanian) * New translations strings_mediapicker.xml (Portuguese, Brazilian) * New translations strings_mediapicker.xml (Portuguese) * New translations strings_mediapicker.xml (Norwegian) * New translations strings_mediapicker.xml (Korean) * New translations strings_mediapicker.xml (Japanese) * New translations strings_mediapicker.xml (Italian) * New translations strings_mediapicker.xml (Hungarian) * New translations strings_commons.xml (Vietnamese) * New translations strings_mediapicker.xml (Hebrew) * New translations strings_mediapicker.xml (Greek) * New translations strings_mediapicker.xml (German) * New translations strings_mediapicker.xml (Galician) * New translations strings_mediapicker.xml (French) * New translations strings_mediapicker.xml (Finnish) * New translations strings_mediapicker.xml (English) * New translations strings_mediapicker.xml (Dutch) * New translations strings_mediapicker.xml (Czech) * New translations strings_mediapicker.xml (Chinese Traditional) * New translations strings_mediapicker.xml (Chinese Simplified) * New translations strings_mediapicker.xml (Catalan) * New translations strings_mediapicker.xml (Arabic) * New translations strings_mediapicker.xml (Afrikaans) * New translations strings_colorpicker.xml (Tagalog) * New translations strings_mediapicker.xml (Polish) * New translations strings_about.xml (English) * New translations strings_about.xml (Portuguese, Brazilian) * New translations strings_about.xml (Portuguese) * New translations strings_about.xml (Norwegian) * New translations strings_about.xml (Korean) * New translations strings_about.xml (Japanese) * New translations strings_about.xml (Italian) * New translations strings_about.xml (Hungarian) * New translations strings_about.xml (Hebrew) * New translations strings_about.xml (Greek) * New translations strings_about.xml (German) * New translations strings_about.xml (Galician) * New translations strings_about.xml (French) * New translations strings_about.xml (Finnish) * New translations strings_about.xml (Dutch) * New translations strings_about.xml (Russian) * New translations strings_about.xml (Czech) * New translations strings_about.xml (Chinese Simplified) * New translations strings_about.xml (Catalan) * New translations strings_about.xml (Arabic) * New translations strings_about.xml (Afrikaans) * New translations strings_mediapicker.xml (Danish) * New translations strings_commons.xml (Danish) * New translations strings_colorpicker.xml (Danish) * New translations strings_about.xml (Danish) * New translations strings_mediapicker.xml (Spanish) * New translations strings_commons.xml (Spanish) * New translations strings_about.xml (Spanish) * New translations strings_about.xml (Chinese Traditional) * New translations strings_about.xml (Romanian) * New translations strings_about.xml (Serbian (Cyrillic)) * New translations strings_colorpicker.xml (Swedish) * New translations strings_colorpicker.xml (Serbian (Cyrillic)) * New translations strings_colorpicker.xml (Russian) * New translations strings_colorpicker.xml (Romanian) * New translations strings_colorpicker.xml (Portuguese) * New translations strings_colorpicker.xml (Japanese) * New translations strings_colorpicker.xml (Hebrew) * New translations strings_colorpicker.xml (Greek) * New translations strings_about.xml (Swedish) * New translations strings_colorpicker.xml (Arabic) * New translations strings_about.xml (Tagalog) * New translations strings_about.xml (Ukrainian) * New translations strings_about.xml (Vietnamese) * New translations strings_colorpicker.xml (Afrikaans) * New translations strings_colorpicker.xml (Catalan) * New translations strings_colorpicker.xml (Chinese Traditional) * New translations strings_colorpicker.xml (Czech) * New translations strings_colorpicker.xml (Dutch) * New translations strings_colorpicker.xml (English) * New translations strings_colorpicker.xml (Finnish) * New translations strings_mediapicker.xml (Vietnamese) * New translations strings_commons.xml (Danish) * New translations strings_about.xml (Swedish) * New translations strings_about.xml (Ukrainian) * New translations strings_colorpicker.xml (Swedish) * New translations strings_colorpicker.xml (Ukrainian) * New translations strings_commons.xml (Swedish) * New translations strings_commons.xml (Ukrainian) * New translations strings_mediapicker.xml (Swedish) * New translations strings_mediapicker.xml (Ukrainian) * Delete empty files * Optimize all source files
2018-09-09Clean up kotterknife (#161)Allan Wang
* Remove bindview implementations internally * Remove more bindView calls * Make config private in ElasticRecyclerActivity * Fix recyclerview * Update adapter * Improve swipe destroy and add direction to swipe finish
2018-04-07Update/android studio 3.1 (#146)Allan Wang
* Update dependencies * Add default invalid id value * Extend appcompat views only * Update migration * Remove setTextIfValid * Remove nosibling warning * Add deprecation warnings to fragment view binding * Bring back glide 4.6.1 * Use proper distribution type setter
2018-02-23Update/fast adapter (#138)Allan Wang
* Update version and add debug key * Update fast adapter * Add debug separation * Inline functions and remove unused
2018-02-13Reorder final override (#136)Allan Wang
2018-02-13Update docs (#135)Allan Wang
* Update docs * Update format * Update dependencies
2018-01-24Create buildSrcAllan Wang
2018-01-20Add back git tag versioning (#129)Allan Wang
2018-01-20Translations (#127)Allan Wang
* New translations strings_about.xml (Turkish) * New translations strings_colorpicker.xml (Turkish) * New translations strings_commons.xml (Turkish) * New translations strings_mediapicker.xml (Turkish) * New translations strings_about.xml (Indonesian) * New translations strings_colorpicker.xml (Indonesian) * New translations strings_commons.xml (Indonesian) * New translations strings_mediapicker.xml (Indonesian) * New translations strings_about.xml (Portuguese) * New translations strings_colorpicker.xml (Portuguese) * New translations strings_commons.xml (Portuguese) * New translations strings_mediapicker.xml (Portuguese) * New translations strings_about.xml (Afrikaans) * New translations strings_mediapicker.xml (Polish) * New translations strings_commons.xml (Polish) * New translations strings_colorpicker.xml (Polish) * New translations strings_about.xml (Polish) * New translations strings_about.xml (Romanian) * New translations strings_mediapicker.xml (Japanese) * New translations strings_commons.xml (Japanese) * New translations strings_colorpicker.xml (Japanese) * New translations strings_about.xml (Japanese) * New translations strings_colorpicker.xml (Romanian) * New translations strings_colorpicker.xml (Swedish) * New translations strings_mediapicker.xml (Ukrainian) * New translations strings_commons.xml (Ukrainian) * New translations strings_colorpicker.xml (Ukrainian) * New translations strings_about.xml (Ukrainian) * New translations strings_mediapicker.xml (Swedish) * New translations strings_commons.xml (Swedish) * New translations strings_about.xml (Swedish) * New translations strings_commons.xml (Romanian) * New translations strings_mediapicker.xml (Serbian (Cyrillic)) * New translations strings_commons.xml (Serbian (Cyrillic)) * New translations strings_colorpicker.xml (Serbian (Cyrillic)) * New translations strings_about.xml (Serbian (Cyrillic)) * New translations strings_mediapicker.xml (Russian) * New translations strings_commons.xml (Russian) * New translations strings_colorpicker.xml (Russian) * New translations strings_about.xml (Russian) * New translations strings_mediapicker.xml (Romanian) * New translations strings_colorpicker.xml (Afrikaans) * New translations strings_about.xml (Chinese Traditional) * New translations strings_colorpicker.xml (Dutch) * New translations strings_about.xml (Dutch) * New translations strings_mediapicker.xml (Danish) * New translations strings_commons.xml (Danish) * New translations strings_colorpicker.xml (Danish) * New translations strings_about.xml (Danish) * New translations strings_mediapicker.xml (Czech) * New translations strings_commons.xml (Czech) * New translations strings_colorpicker.xml (Czech) * New translations strings_about.xml (Czech) * New translations strings_mediapicker.xml (Chinese Traditional) * New translations strings_commons.xml (Chinese Traditional) * New translations strings_colorpicker.xml (Chinese Traditional) * New translations strings_mediapicker.xml (Dutch) * New translations strings_mediapicker.xml (Catalan) * New translations strings_commons.xml (Catalan) * New translations strings_colorpicker.xml (Catalan) * New translations strings_about.xml (Catalan) * New translations strings_mediapicker.xml (Arabic) * New translations strings_commons.xml (Arabic) * New translations strings_colorpicker.xml (Arabic) * New translations strings_about.xml (Arabic) * New translations strings_mediapicker.xml (Afrikaans) * New translations strings_commons.xml (Afrikaans) * New translations strings_commons.xml (Dutch) * New translations strings_about.xml (English) * New translations strings_mediapicker.xml (Hebrew) * New translations strings_commons.xml (Hebrew) * New translations strings_colorpicker.xml (Hebrew) * New translations strings_about.xml (Hebrew) * New translations strings_mediapicker.xml (Greek) * New translations strings_commons.xml (Greek) * New translations strings_colorpicker.xml (Greek) * New translations strings_about.xml (Greek) * New translations strings_colorpicker.xml (English) * New translations strings_mediapicker.xml (Finnish) * New translations strings_commons.xml (Finnish) * New translations strings_colorpicker.xml (Finnish) * New translations strings_about.xml (Finnish) * New translations strings_mediapicker.xml (English) * New translations strings_commons.xml (English) * New translations strings_about.xml (Thai) * New translations strings_colorpicker.xml (Thai) * New translations strings_commons.xml (Thai) * New translations strings_mediapicker.xml (Thai) * New translations strings_colorpicker.xml (Thai) * New translations strings_mediapicker.xml (Thai) * New translations strings_about.xml (Thai) * New translations strings_commons.xml (Thai) * Clean * New translations strings_commons.xml (Turkish) * New translations strings_commons.xml (Polish) * New translations strings_commons.xml (Indonesian) * New translations strings_mediapicker.xml (Turkish) * New translations strings_colorpicker.xml (Turkish) * Update script * New translations strings_colorpicker.xml (Polish) * New translations strings_about.xml (Indonesian) * New translations strings_colorpicker.xml (Indonesian) * New translations strings_about.xml (Turkish) * New translations strings_commons.xml (Polish) * New translations strings_mediapicker.xml (Indonesian) * New translations strings_about.xml (Polish) * New translations strings_commons.xml (Thai) * Update readme * Update readme * Add missing parenthesis * Update changelog
2018-01-02Fix/searchview (#123)Allan Wang
* Use workaround for kclick * Add text cleared callback * Add bundle scene transition functions * Add applier * Remove need for explicit context * Revert
2018-01-01Format everything and use reified genericsAllan Wang
2017-12-31Fix up constraint layouts for about (#121)Allan Wang
2017-12-10Unify start activity design (#112)Allan Wang
2017-12-10fix/lint (#110)Allan Wang
* Remove nullability to match fastadapter * Remove redundant override
2017-12-02Remove base stringsAllan Wang
2017-12-02Translations (#109)Allan Wang
* New translations strings_about.xml (Afrikaans) * New translations strings_mediapicker.xml (Norwegian) * New translations strings_mediapicker.xml (Portuguese, Brazilian) * New translations strings_commons.xml (Portuguese, Brazilian) * New translations strings_colorpicker.xml (Portuguese, Brazilian) * New translations strings_about.xml (Portuguese, Brazilian) * New translations strings_mediapicker.xml (Portuguese) * New translations strings_commons.xml (Portuguese) * New translations strings_colorpicker.xml (Portuguese) * New translations strings_about.xml (Portuguese) * New translations strings_mediapicker.xml (Polish) * New translations strings_commons.xml (Polish) * New translations strings_colorpicker.xml (Polish) * New translations strings_about.xml (Polish) * New translations strings_commons.xml (Norwegian) * New translations strings_colorpicker.xml (Romanian) * New translations strings_colorpicker.xml (Norwegian) * New translations strings_about.xml (Norwegian) * New translations strings_mediapicker.xml (Korean) * New translations strings_commons.xml (Korean) * New translations strings_colorpicker.xml (Korean) * New translations strings_about.xml (Korean) * New translations strings_mediapicker.xml (Japanese) * New translations strings_commons.xml (Japanese) * New translations strings_colorpicker.xml (Japanese) * New translations strings_about.xml (Japanese) * New translations strings_mediapicker.xml (Italian) * New translations strings_commons.xml (Italian) * New translations strings_colorpicker.xml (Italian) * New translations strings_about.xml (Romanian) * New translations strings_commons.xml (Romanian) * New translations strings_mediapicker.xml (Hungarian) * New translations strings_commons.xml (Swedish) * New translations strings_commons.xml (Vietnamese) * New translations strings_colorpicker.xml (Vietnamese) * New translations strings_about.xml (Vietnamese) * New translations strings_mediapicker.xml (Ukrainian) * New translations strings_commons.xml (Ukrainian) * New translations strings_colorpicker.xml (Ukrainian) * New translations strings_about.xml (Ukrainian) * New translations strings_mediapicker.xml (Turkish) * New translations strings_commons.xml (Turkish) * New translations strings_colorpicker.xml (Turkish) * New translations strings_about.xml (Turkish) * New translations strings_mediapicker.xml (Swedish) * New translations strings_colorpicker.xml (Swedish) * New translations strings_mediapicker.xml (Romanian) * New translations strings_about.xml (Swedish) * New translations strings_mediapicker.xml (Spanish) * New translations strings_commons.xml (Spanish) * New translations strings_colorpicker.xml (Spanish) * New translations strings_about.xml (Spanish) * New translations strings_mediapicker.xml (Serbian (Cyrillic)) * New translations strings_commons.xml (Serbian (Cyrillic)) * New translations strings_colorpicker.xml (Serbian (Cyrillic)) * New translations strings_about.xml (Serbian (Cyrillic)) * New translations strings_mediapicker.xml (Russian) * New translations strings_commons.xml (Russian) * New translations strings_colorpicker.xml (Russian) * New translations strings_about.xml (Russian) * New translations strings_about.xml (Italian) * New translations strings_commons.xml (Hungarian) * New translations strings_colorpicker.xml (Afrikaans) * New translations strings_about.xml (Chinese Traditional) * New translations strings_about.xml (Dutch) * New translations strings_mediapicker.xml (Danish) * New translations strings_commons.xml (Danish) * New translations strings_colorpicker.xml (Danish) * New translations strings_about.xml (Danish) * New translations strings_mediapicker.xml (Czech) * New translations strings_commons.xml (Czech) * New translations strings_colorpicker.xml (Czech) * New translations strings_about.xml (Czech) * New translations strings_mediapicker.xml (Chinese Traditional) * New translations strings_commons.xml (Chinese Traditional) * New translations strings_colorpicker.xml (Chinese Traditional) * New translations strings_mediapicker.xml (Chinese Simplified) * New translations strings_commons.xml (Dutch) * New translations strings_commons.xml (Chinese Simplified) * New translations strings_colorpicker.xml (Chinese Simplified) * New translations strings_about.xml (Chinese Simplified) * New translations strings_mediapicker.xml (Catalan) * New translations strings_commons.xml (Catalan) * New translations strings_colorpicker.xml (Catalan) * New translations strings_about.xml (Catalan) * New translations strings_mediapicker.xml (Arabic) * New translations strings_commons.xml (Arabic) * New translations strings_colorpicker.xml (Arabic) * New translations strings_about.xml (Arabic) * New translations strings_mediapicker.xml (Afrikaans) * New translations strings_commons.xml (Afrikaans) * New translations strings_colorpicker.xml (Dutch) * New translations strings_mediapicker.xml (Dutch) * New translations strings_colorpicker.xml (Hungarian) * New translations strings_mediapicker.xml (Galician) * New translations strings_about.xml (Hungarian) * New translations strings_mediapicker.xml (Hebrew) * New translations strings_commons.xml (Hebrew) * New translations strings_colorpicker.xml (Hebrew) * New translations strings_about.xml (Hebrew) * New translations strings_mediapicker.xml (Greek) * New translations strings_commons.xml (Greek) * New translations strings_colorpicker.xml (Greek) * New translations strings_about.xml (Greek) * New translations strings_mediapicker.xml (German) * New translations strings_commons.xml (German) * New translations strings_colorpicker.xml (German) * New translations strings_about.xml (German) * New translations strings_commons.xml (Galician) * New translations strings_about.xml (English) * New translations strings_colorpicker.xml (Galician) * New translations strings_about.xml (Galician) * New translations strings_mediapicker.xml (French) * New translations strings_commons.xml (French) * New translations strings_colorpicker.xml (French) * New translations strings_about.xml (French) * New translations strings_mediapicker.xml (Finnish) * New translations strings_commons.xml (Finnish) * New translations strings_colorpicker.xml (Finnish) * New translations strings_about.xml (Finnish) * New translations strings_mediapicker.xml (English) * New translations strings_commons.xml (English) * New translations strings_colorpicker.xml (English) * New translations strings_mediapicker.xml (Vietnamese) * New translations strings_mediapicker.xml (Chinese Simplified) * New translations strings_commons.xml (Dutch) * New translations strings_commons.xml (Chinese Simplified) * New translations strings_commons.xml (Portuguese, Brazilian) * New translations strings_colorpicker.xml (Portuguese, Brazilian) * New translations strings_about.xml (Portuguese, Brazilian) * New translations strings_mediapicker.xml (Chinese Simplified) * New translations strings_commons.xml (Dutch) * New translations strings_commons.xml (Chinese Simplified) * New translations strings_commons.xml (Portuguese, Brazilian) * New translations strings_mediapicker.xml (Portuguese, Brazilian) * Update gradle * New translations strings_commons.xml (Polish) * New translations strings_commons.xml (Japanese) * New translations strings_commons.xml (English) * New translations strings_commons.xml (Dutch) * New translations strings_commons.xml (Chinese Traditional) * New translations strings_mediapicker.xml (Japanese) * New translations strings_about.xml (Polish) * New translations strings_about.xml (Japanese) * New translations strings_about.xml (English) * New translations strings_about.xml (Dutch) * New translations strings_about.xml (Chinese Traditional) * New translations strings_colorpicker.xml (Polish) * New translations strings_colorpicker.xml (Japanese) * New translations strings_colorpicker.xml (English) * New translations strings_colorpicker.xml (Dutch) * New translations strings_colorpicker.xml (Chinese Traditional) * Remove unnecessary builds * Update readme, changelog, and travis * Update appcompat * Update readme
2017-11-12Add translations (#103)Allan Wang
2017-11-08Translations Vietnamese (#99)Allan Wang
* Add translations * Lint * Inline * Optimize imports * Replace ellipsis
2017-11-08Translations Italian (#98)Allan Wang
* Add translations * Update dependencies * Show lint output * Fix type inference * Add annotation
2017-10-24Add german translations (#96)Allan Wang
2017-10-24Add spanish translations (#95)Allan Wang
* Add spanish translations * Update README.md * Update readme
2017-10-24Add french translations (#94)Allan Wang
* Add french translations * Add translatable tags to about
2017-10-12Translations (#84)Allan Wang
* Rename string files * Add translations to readme * Check job scheduler null check against travis lint * Remove bad spacing * Update badges * Use vector zenhub badge
2017-10-11fix/misc (#81)Allan Wang
* Remove jvmstatic, fixes #68 * Create HO logging * Remove double null boolean notation * Replace multi if else with when * Ignore case in setSpan, closes #82
2017-08-30Feature/gradle 4.x (#47)Allan Wang
* Update to api and implementation * Update gradle * Add missing dependency * Update readme * Update external dependencies
2017-08-30Remove default selectable background rippleAllan Wang
2017-08-05Swipe (#24)Allan Wang
* Test emulator * Update readme * Update fastadapter and about listing * Make faq parser asynchronous * Modularize about panels * Add basis for faq * Test and finalize the faq panel * Update readme * Update changelog * Remove emulator for now * Update sample * Change back to manual versioning to avoid suggestion errors * Add awesome-kt banner * Fix faq background color * Fix merge conflicts 2 * Add waffle badge * Update readme * Fix lint * Create FileUtils and NotificationUtils * Remove frost hardcode * Fix simple date * Update swipe to use weak references * Initializing test dependencies * Update to gradle 4.1 * Fix lint warnings * Drop back down and fix errors * Finalize swipe with example * Finalize weak reference and ordering * Update test code * Make loggers inline
2017-08-033.2.2 - Create faq parser and update sample (#19)3.2.3Allan Wang
* Test emulator * Update readme * Update fastadapter and about listing * Make faq parser asynchronous * Modularize about panels * Add basis for faq * Test and finalize the faq panel * Update readme * Update changelog * Remove emulator for now * Update sample
2017-08-02Improve video prefetching (#17)Allan Wang
* Create base activity and add thumbnails to media picker * Add checker to see if requested permission is inside the manifest * Add faq parser with tests * Add kpref testers and expose sp * Test jitpack sample exclusion * Test caching * Improve glide caching
2017-07-23Update kpref-activity's min-sdk and other minor changes (#11)3.1.0Allan Wang
* Move some resources to public * Lower kpref minsdk * Remove excess kauUtils annotations * Allow nullable throwable * Do not throw null throwable * Make image picker base abstract again * Migrate about strings to private * Update readme * Update readme * Update sample tagging * Update adapter readme
2017-07-22Support sdk 19 where possible and add image picker (#10)3.0Allan Wang
* Fix plural * Switch to long * Test plural again * Comment * Major update to image picker and view utils * Make image activity full screen * Update min sdk and prefix * Lower sdk requirement and make string private * Bring kpref activity to sdk 19
2017-07-18Dev 2.1 (#8)Allan Wang
* Rewrite animation interfaces * Update changelog * Add scale factor for slide * Remove margins in iitems and replace with decorators * Remove mutable list * Switch cardiitem to use lambdas for click * status * Utils update and imagepicker fixes * Remove stringholder * Add fade in fade out * Increment about version * Rename fromedge to direction in javadocs * More logging * Add logging and docs * Make card icons visible * Update email builder and icon padding * Create elastic recycler activity * Fix card iitem * Add lint check and plurals * Inline all the things * Format and sort xml * Update dependencies and increment version
2017-07-09Update gifsAllan Wang
2017-07-09Use raw image linksAllan Wang
2017-07-09KAU 2.0 (#1) - Update docs and finish up refractoringAllan Wang
* Update readme * Add docs for remaining submodules * Update searchview * Update links 1/3 * Update links 2/3 * Update links 3/3 * update changelog * Update readme * Test rename to readme * Rename remaining to readme * Link readme to repo
2017-07-09Clean up and optimizeAllan Wang
2017-07-09Clean up gradle and test buildAllan Wang
2017-07-08Optimize importsAllan Wang
2017-07-08Move components to separate modulesAllan Wang