├── app ├── .gitignore ├── src │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── lib_clinj ├── .gitignore ├── consumer-rules.pro ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clinj │ │ ├── Inject.kt │ │ └── InjectSrc.kt ├── proguard-rules.pro └── build.gradle ├── lib_common ├── .gitignore ├── consumer-rules.pro ├── README.md ├── libs │ └── luaj-jse-3.0.1.jar ├── src │ ├── main │ │ ├── res │ │ │ ├── anim │ │ │ │ ├── nothing.xml │ │ │ │ ├── rtl_back_enter.xml │ │ │ │ ├── rtl_back_exit.xml │ │ │ │ ├── rtl_exit_anim.xml │ │ │ │ └── rtl_enter_anim.xml │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── ic_play.png │ │ │ │ ├── ic_stop.png │ │ │ │ └── img_load_error.png │ │ │ ├── drawable-anydpi │ │ │ │ ├── ic_play.xml │ │ │ │ ├── ic_stop.xml │ │ │ │ └── img_load_error.xml │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── styles.xml │ │ │ │ └── colors.xml │ │ │ └── layout │ │ │ │ ├── activity_dummy.xml │ │ │ │ └── toolbar.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── common │ │ │ └── utils │ │ │ ├── ScreenshotManager.kt │ │ │ ├── CommonUtils.kt │ │ │ ├── ImageLoader.kt │ │ │ ├── GsonUtil.kt │ │ │ ├── AppContext.kt │ │ │ ├── CommonExt.kt │ │ │ ├── ImageLoaderImpl.kt │ │ │ ├── Resource.kt │ │ │ ├── FileUtil.kt │ │ │ ├── L.kt │ │ │ └── ScreenUtil.kt │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── lib_network ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── network │ │ │ ├── BaseRepository.kt │ │ │ ├── HttpStatusCode.kt │ │ │ ├── RetrofitCreator.kt │ │ │ └── NetResult.kt │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── network │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── network │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── lib_shell ├── .gitignore ├── README.md └── build.gradle ├── module_home ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ └── themes.xml │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── ic_bell.png │ │ │ │ ├── ic_tab_me.png │ │ │ │ ├── ic_tab_home.png │ │ │ │ ├── ic_tab_star.png │ │ │ │ ├── ic_tab_me_dark.png │ │ │ │ ├── ic_tab_message.png │ │ │ │ ├── ic_action_add_dark.png │ │ │ │ ├── ic_tab_home_dark.png │ │ │ │ ├── ic_tab_star_dark.png │ │ │ │ ├── ic_tab_message_dark.png │ │ │ │ └── ic_action_search_dark.png │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── drawable │ │ │ │ ├── round_bg.xml │ │ │ │ ├── search_text_bg.xml │ │ │ │ ├── ic_tab_message_round_bg.xml │ │ │ │ ├── ic_tab_message_round.xml │ │ │ │ └── me_list_divider.xml │ │ │ ├── layout │ │ │ │ ├── me_list_decorator.xml │ │ │ │ └── me_frag.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── drawable-anydpi │ │ │ │ ├── ic_tab_home_dark.xml │ │ │ │ ├── ic_action_add_dark.xml │ │ │ │ ├── ic_tab_home.xml │ │ │ │ ├── ic_tab_star_dark.xml │ │ │ │ ├── ic_tab_me_dark.xml │ │ │ │ ├── ic_tab_message_dark.xml │ │ │ │ ├── ic_tab_star.xml │ │ │ │ ├── ic_tab_me.xml │ │ │ │ ├── ic_tab_message.xml │ │ │ │ ├── ic_action_search_dark.xml │ │ │ │ └── ic_bell.xml │ │ │ └── values-night │ │ │ │ └── themes.xml │ │ ├── java │ │ │ └── top │ │ │ │ └── littlefogcat │ │ │ │ └── clickerx │ │ │ │ └── home │ │ │ │ ├── MainViewModel.kt │ │ │ │ ├── me │ │ │ │ ├── MeListItemDecorator.kt │ │ │ │ ├── MeListItemHeader.kt │ │ │ │ ├── MeListItem.kt │ │ │ │ ├── MeListItemPlain.kt │ │ │ │ └── MeFragment.kt │ │ │ │ ├── model │ │ │ │ ├── datasource │ │ │ │ │ ├── MessageDataSource.kt │ │ │ │ │ └── RecommendDataSource.kt │ │ │ │ ├── services │ │ │ │ │ ├── MessageService.kt │ │ │ │ │ └── RecommendService.kt │ │ │ │ └── repo │ │ │ │ │ ├── MessageRepositoryProd.kt │ │ │ │ │ └── RecommendRepositoryProd.kt │ │ │ │ ├── message │ │ │ │ ├── MessageChatItem.kt │ │ │ │ ├── MessageListAdapter.kt │ │ │ │ ├── MessageFragment.kt │ │ │ │ └── MessageViewModel.kt │ │ │ │ ├── localscripts │ │ │ │ ├── LocalScriptsAdapter.kt │ │ │ │ └── LocalScriptsViewModel.kt │ │ │ │ ├── home │ │ │ │ └── RecommendListAdapter.kt │ │ │ │ └── MainViewPagerAdapter.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── home │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── home │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── component_base ├── .gitignore ├── consumer-rules.pro ├── README.md ├── src │ ├── main │ │ ├── res │ │ │ ├── raw │ │ │ │ └── pdd_sign.json │ │ │ ├── drawable │ │ │ │ ├── niuu.jpeg │ │ │ │ ├── fake_head_bg.xml │ │ │ │ └── fake_head.xml │ │ │ ├── drawable-hdpi │ │ │ │ ├── ic_bell.png │ │ │ │ ├── ic_done.png │ │ │ │ ├── ic_play.png │ │ │ │ ├── ic_stop.png │ │ │ │ ├── ic_pause.png │ │ │ │ ├── ic_start.png │ │ │ │ ├── ic_tab_me.png │ │ │ │ ├── ic_settings.png │ │ │ │ ├── ic_tab_home.png │ │ │ │ ├── ic_tab_star.png │ │ │ │ ├── ic_action_add.png │ │ │ │ ├── ic_action_menu.png │ │ │ │ ├── ic_right_arrow.png │ │ │ │ ├── ic_action_configs.png │ │ │ │ ├── ic_default_head.png │ │ │ │ ├── ic_tab_discover.png │ │ │ │ ├── ic_tab_home_dark.png │ │ │ │ ├── ic_tab_star_dark.png │ │ │ │ ├── ic_action_add_dark.png │ │ │ │ ├── ic_action_settings.png │ │ │ │ ├── ic_action_search_dark.png │ │ │ │ └── ic_tab_favorite_dark.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── ic_bell.png │ │ │ │ ├── ic_done.png │ │ │ │ ├── ic_play.png │ │ │ │ ├── ic_stop.png │ │ │ │ ├── ic_pause.png │ │ │ │ ├── ic_start.png │ │ │ │ ├── ic_tab_me.png │ │ │ │ ├── ic_settings.png │ │ │ │ ├── ic_tab_home.png │ │ │ │ ├── ic_action_add.png │ │ │ │ ├── ic_action_menu.png │ │ │ │ ├── ic_right_arrow.png │ │ │ │ ├── ic_tab_me_dark.png │ │ │ │ ├── ic_tab_message.png │ │ │ │ ├── ic_action_configs.png │ │ │ │ ├── ic_default_head.png │ │ │ │ ├── ic_tab_discover.png │ │ │ │ ├── ic_tab_star_dark.png │ │ │ │ ├── ic_action_add_dark.png │ │ │ │ ├── ic_action_settings.png │ │ │ │ ├── ic_tab_message_dark.png │ │ │ │ ├── ic_action_search_dark.png │ │ │ │ └── ic_tab_favorite_dark.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── ic_bell.png │ │ │ │ ├── ic_done.png │ │ │ │ ├── ic_pause.png │ │ │ │ ├── ic_play.png │ │ │ │ ├── ic_start.png │ │ │ │ ├── ic_stop.png │ │ │ │ ├── ic_settings.png │ │ │ │ ├── ic_tab_me.png │ │ │ │ ├── ic_tab_star.png │ │ │ │ ├── ic_action_add.png │ │ │ │ ├── ic_action_menu.png │ │ │ │ ├── ic_default_head.png │ │ │ │ ├── ic_right_arrow.png │ │ │ │ ├── ic_tab_discover.png │ │ │ │ ├── ic_tab_home_dark.png │ │ │ │ ├── ic_tab_me_dark.png │ │ │ │ ├── ic_tab_message.png │ │ │ │ ├── ic_action_add_dark.png │ │ │ │ ├── ic_action_configs.png │ │ │ │ ├── ic_action_settings.png │ │ │ │ ├── ic_action_search_dark.png │ │ │ │ ├── ic_tab_favorite_dark.png │ │ │ │ └── ic_tab_message_dark.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── ic_done.png │ │ │ │ ├── ic_pause.png │ │ │ │ ├── ic_start.png │ │ │ │ ├── ic_settings.png │ │ │ │ ├── ic_action_add.png │ │ │ │ ├── ic_action_menu.png │ │ │ │ ├── ic_default_head.png │ │ │ │ ├── ic_right_arrow.png │ │ │ │ ├── ic_tab_discover.png │ │ │ │ ├── ic_action_configs.png │ │ │ │ ├── ic_action_settings.png │ │ │ │ └── ic_tab_favorite_dark.png │ │ │ ├── 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 │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── layout │ │ │ │ ├── splash_act.xml │ │ │ │ ├── add_conf_act.xml │ │ │ │ └── toolbar.xml │ │ │ ├── xml │ │ │ │ ├── ims.xml │ │ │ │ └── accessibility.xml │ │ │ ├── drawable-anydpi │ │ │ │ ├── ic_action_add.xml │ │ │ │ ├── ic_done.xml │ │ │ │ ├── ic_action_menu.xml │ │ │ │ ├── ic_right_arrow.xml │ │ │ │ ├── ic_start.xml │ │ │ │ ├── ic_pause.xml │ │ │ │ ├── ic_tab_favorite_dark.xml │ │ │ │ ├── ic_default_head.xml │ │ │ │ ├── ic_action_configs.xml │ │ │ │ ├── ic_back.xml │ │ │ │ ├── ic_tab_discover.xml │ │ │ │ ├── ic_settings.xml │ │ │ │ └── ic_action_settings.xml │ │ │ ├── menu │ │ │ │ ├── configs_nav_menu.xml │ │ │ │ └── configs_toolbar.xml │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── styles.xml │ │ │ │ └── colors.xml │ │ │ └── values-zh │ │ │ │ └── strings.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── base │ │ │ ├── entities │ │ │ ├── RecommendSearchItem.kt │ │ │ ├── Message.kt │ │ │ ├── RecommendItem.kt │ │ │ ├── UserSimple.kt │ │ │ ├── User.kt │ │ │ ├── UserLocal.kt │ │ │ └── Chat.kt │ │ │ ├── events │ │ │ └── CoreInitEvent.kt │ │ │ ├── base │ │ │ ├── TouchEventHandler.kt │ │ │ ├── DefaultToolbarHolder.kt │ │ │ ├── BaseDataBindingListAdapter.kt │ │ │ ├── DataBindingActivity.kt │ │ │ └── DataBindingActivityWithToolbar.kt │ │ │ ├── constants │ │ │ ├── Globals.kt │ │ │ ├── FlavorConstants.kt │ │ │ └── RouteConstants.kt │ │ │ ├── utils │ │ │ └── Mocker.kt │ │ │ ├── db │ │ │ ├── dao │ │ │ │ ├── ScriptDao.kt │ │ │ │ └── UserDao.kt │ │ │ └── ClickerXDatabase.kt │ │ │ └── App.kt │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── base │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── base │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── component_script ├── .gitignore ├── consumer-rules.pro ├── README.md ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── script │ │ │ ├── ScriptService.kt │ │ │ └── ScriptDataSource.kt │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── script │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── script │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── component_user ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── user │ │ │ ├── UserDataSource.kt │ │ │ └── UserService.kt │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── user │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── user │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── lib_compiler ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── java │ │ │ └── top │ │ │ │ └── littlefogcat │ │ │ │ └── clickerx │ │ │ │ └── compiler │ │ │ │ ├── scanning │ │ │ │ ├── readme │ │ │ │ ├── ScannerException.kt │ │ │ │ └── Scanner.kt │ │ │ │ ├── analyze │ │ │ │ ├── ParseTree.kt │ │ │ │ ├── SemanticAnalyzer.kt │ │ │ │ ├── Token.kt │ │ │ │ ├── Parser.kt │ │ │ │ ├── LexicalAnalyzeException.kt │ │ │ │ └── Exts.kt │ │ │ │ ├── actions │ │ │ │ ├── IfAction.kt │ │ │ │ ├── XAction.kt │ │ │ │ └── Actions.kt │ │ │ │ ├── compiling │ │ │ │ ├── Identifier.kt │ │ │ │ └── CompileException.kt │ │ │ │ ├── common │ │ │ │ ├── TokenCreateException.kt │ │ │ │ ├── UnexpectedTokenException.kt │ │ │ │ ├── DFAException.kt │ │ │ │ └── DFA.kt │ │ │ │ └── parsing │ │ │ │ └── ParseTree.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── ExampleInstrumentedTest.kt ├── README.md ├── proguard-rules.pro └── build.gradle ├── module_recorder ├── .gitignore ├── README.md ├── 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 │ │ │ ├── drawable │ │ │ │ ├── gfw_bg_normal.xml │ │ │ │ ├── gfw_bg_pressed.xml │ │ │ │ └── gfw_bg.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ └── layout │ │ │ │ ├── gfw.xml │ │ │ │ └── activity_main.xml │ │ ├── java │ │ │ └── top │ │ │ │ └── littlefogcat │ │ │ │ └── clickerx │ │ │ │ └── recorder │ │ │ │ ├── MyService.kt │ │ │ │ └── L.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── component_clickercore ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── assets │ │ │ ├── http.lua │ │ │ ├── sample.lua │ │ │ ├── search_sample.lua │ │ │ ├── mm_send_msg_sample.lua │ │ │ └── hongbao_sample.lua │ │ ├── java │ │ │ └── top │ │ │ │ └── littlefogcat │ │ │ │ └── clickerx │ │ │ │ └── core │ │ │ │ ├── accessibility │ │ │ │ ├── Alias.kt │ │ │ │ ├── EventHandleService.kt │ │ │ │ └── NotificationInfo.kt │ │ │ │ ├── HttpForLua.kt │ │ │ │ ├── trigger │ │ │ │ ├── Triggerable.kt │ │ │ │ ├── OnAccessibilityEventListener.kt │ │ │ │ └── NotificationTrigger.kt │ │ │ │ ├── Transaction.kt │ │ │ │ └── CoreService.kt │ │ ├── res │ │ │ └── xml │ │ │ │ └── accessibility.xml │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── ExampleUnitTest.kt │ ├── prod │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── core │ │ │ └── CoreRepository.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── ExampleInstrumentedTest.kt ├── libs │ └── luaj-jse-3.0.1.jar └── proguard-rules.pro ├── module_scriptdetail ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── res │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── ic_edit.png │ │ │ │ └── ic_schedule.png │ │ │ ├── drawable-anydpi │ │ │ │ ├── ic_edit.xml │ │ │ │ └── ic_schedule.xml │ │ │ └── layout │ │ │ │ └── script_detail_act.xml │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── top │ │ │ └── littlefogcat │ │ │ └── clickerx │ │ │ └── scriptdetail │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── top │ │ └── littlefogcat │ │ └── clickerx │ │ └── scriptdetail │ │ └── ExampleInstrumentedTest.kt └── proguard-rules.pro ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle └── gradle.properties /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /lib_clinj/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /lib_clinj/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib_common/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /lib_network/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /lib_shell/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /module_home/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /component_base/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /component_base/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /component_script/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /component_user/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /component_user/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib_common/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib_compiler/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /lib_compiler/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib_network/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /module_recorder/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /component_clickercore/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /component_script/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /module_scriptdetail/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /module_scriptdetail/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /component_clickercore/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /component_script/README.md: -------------------------------------------------------------------------------- 1 | 提供与脚本相关功能的模块。 -------------------------------------------------------------------------------- /component_base/README.md: -------------------------------------------------------------------------------- 1 | 这个包提供了基础服务的访问,包括数据库和远端。 -------------------------------------------------------------------------------- /component_clickercore/src/main/assets/http.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /component_base/src/main/res/raw/pdd_sign.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | ] -------------------------------------------------------------------------------- /component_clickercore/src/main/assets/sample.lua: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /lib_common/README.md: -------------------------------------------------------------------------------- 1 | # ClickerX 公共组件 2 | 3 | 提供了一系列的工具类和基类。 -------------------------------------------------------------------------------- /module_recorder/README.md: -------------------------------------------------------------------------------- 1 | # ClickerX Recorder 2 | 3 | 录制用户操作,转换成脚本。待开发。 -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/scanning/readme: -------------------------------------------------------------------------------- 1 | 词法分析 -------------------------------------------------------------------------------- /lib_shell/README.md: -------------------------------------------------------------------------------- 1 | # ClickerX Shell 2 | 3 | Android提权:通过Shell在Android中运行Java程序。App通过Socket发送指令,可以执行shell权限的操作。 -------------------------------------------------------------------------------- /module_home/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Home 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /module_recorder/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Sample 3 | -------------------------------------------------------------------------------- /lib_common/libs/luaj-jse-3.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/lib_common/libs/luaj-jse-3.0.1.jar -------------------------------------------------------------------------------- /lib_compiler/README.md: -------------------------------------------------------------------------------- 1 | # ClickerX Compiler 2 | 3 | ClickerX本来打算采用自定义语言,不过开发编译器的工作量实在有些大,所以就搁浅了,采用Lua作为脚本语言。 4 | 5 | 编译原理没学好,以后有机会再说了。 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | .cxx 10 | -------------------------------------------------------------------------------- /component_clickercore/libs/luaj-jse-3.0.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_clickercore/libs/luaj-jse-3.0.1.jar -------------------------------------------------------------------------------- /component_base/src/main/res/drawable/niuu.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable/niuu.jpeg -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_bell.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_done.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_play.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_stop.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_bell.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_done.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_play.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_stop.png -------------------------------------------------------------------------------- /lib_common/src/main/res/anim/nothing.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /lib_common/src/main/res/drawable-xxhdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/lib_common/src/main/res/drawable-xxhdpi/ic_play.png -------------------------------------------------------------------------------- /lib_common/src/main/res/drawable-xxhdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/lib_common/src/main/res/drawable-xxhdpi/ic_stop.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_bell.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_pause.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_start.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_tab_me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_tab_me.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_pause.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_start.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_me.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_bell.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_done.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_pause.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_play.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_start.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_stop.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_done.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_me.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_settings.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_tab_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_tab_home.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_tab_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_tab_star.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_settings.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_home.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_settings.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_me.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_star.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_pause.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_start.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap/ic_launcher_round.png -------------------------------------------------------------------------------- /lib_common/src/main/res/drawable-xxhdpi/img_load_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/lib_common/src/main/res/drawable-xxhdpi/img_load_error.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_home.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_star.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_action_add.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_action_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_action_menu.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_right_arrow.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_action_add.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_action_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_action_menu.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_right_arrow.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_me_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_me_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_message.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_action_add.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_settings.png -------------------------------------------------------------------------------- /lib_common/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_me_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_me_dark.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_message.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /module_scriptdetail/src/main/res/drawable-xxhdpi/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_scriptdetail/src/main/res/drawable-xxhdpi/ic_edit.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_action_configs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_action_configs.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_default_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_default_head.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_tab_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_tab_discover.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_tab_home_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_tab_home_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_tab_star_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_tab_star_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_action_configs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_action_configs.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_default_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_default_head.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_discover.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_star_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_star_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_action_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_action_menu.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_default_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_default_head.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_right_arrow.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_discover.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_home_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_home_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_me_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_me_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_message.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_action_add.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_action_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_action_menu.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_default_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_default_head.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_right_arrow.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_tab_discover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_tab_discover.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_action_add_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_action_add_dark.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_home_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_home_dark.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_star_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_star_dark.png -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_action_add_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_action_add_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_action_settings.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_action_add_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_action_add_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_action_settings.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_message_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_message_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_action_add_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_action_add_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_action_configs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_action_configs.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_action_settings.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_action_configs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_action_configs.png -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_tab_message_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_tab_message_dark.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_recorder/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /module_scriptdetail/src/main/res/drawable-xxhdpi/ic_schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_scriptdetail/src/main/res/drawable-xxhdpi/ic_schedule.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_action_search_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_action_search_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-hdpi/ic_tab_favorite_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-hdpi/ic_tab_favorite_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_action_search_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_action_search_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-mdpi/ic_tab_favorite_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-mdpi/ic_tab_favorite_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_action_search_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_action_search_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_favorite_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_favorite_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xhdpi/ic_tab_message_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xhdpi/ic_tab_message_dark.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_action_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_action_settings.png -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-xxhdpi/ic_tab_favorite_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/component_base/src/main/res/drawable-xxhdpi/ic_tab_favorite_dark.png -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-xxhdpi/ic_action_search_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LittleFogCat/ClickerX/HEAD/module_home/src/main/res/drawable-xxhdpi/ic_action_search_dark.png -------------------------------------------------------------------------------- /lib_shell/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'java-library' 3 | id 'kotlin' 4 | } 5 | java { 6 | sourceCompatibility = JavaVersion.VERSION_1_8 7 | targetCompatibility = JavaVersion.VERSION_1_8 8 | } -------------------------------------------------------------------------------- /lib_clinj/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /lib_compiler/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /lib_network/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /component_base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /component_user/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /component_script/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/MainViewModel.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home 2 | 3 | import top.littlefogcat.clickerx.base.base.BaseViewModel 4 | 5 | class MainViewModel: BaseViewModel() { 6 | } -------------------------------------------------------------------------------- /module_home/src/main/res/drawable/round_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /component_base/src/main/res/drawable/fake_head_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /module_recorder/src/main/res/drawable/gfw_bg_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /module_recorder/src/main/res/drawable/gfw_bg_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /component_clickercore/src/main/java/top/littlefogcat/clickerx/core/accessibility/Alias.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.core.accessibility 2 | 3 | import android.view.accessibility.AccessibilityNodeInfo 4 | 5 | typealias A11yNode = AccessibilityNodeInfo 6 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable/search_text_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_recorder/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #6200EE 4 | #3700B3 5 | #03DAC5 6 | -------------------------------------------------------------------------------- /lib_network/src/main/java/top/littlefogcat/network/BaseRepository.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.network 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Email:littlefogcat@foxmail.com 6 | */ 7 | abstract class BaseRepository { 8 | fun handleResult() { 9 | 10 | } 11 | } -------------------------------------------------------------------------------- /module_home/src/main/res/drawable/ic_tab_message_round_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /component_clickercore/src/main/java/top/littlefogcat/clickerx/core/HttpForLua.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.core 2 | 3 | /** 4 | * todo 因为lua没有自带http库,所以通过Java层实现。 5 | * 6 | * @Author:littlefogcat 7 | * @Email:littlefogcat@foxmail.com 8 | */ 9 | object HttpForLua { 10 | } -------------------------------------------------------------------------------- /lib_common/src/main/res/anim/rtl_back_enter.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | -------------------------------------------------------------------------------- /lib_common/src/main/res/anim/rtl_back_exit.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | -------------------------------------------------------------------------------- /component_base/src/main/res/drawable/fake_head.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /component_clickercore/src/main/java/top/littlefogcat/clickerx/core/trigger/Triggerable.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.core.trigger 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Email:littlefogcat@foxmail.com 6 | */ 7 | interface Triggerable { 8 | fun onTrigger(payload: Any?) 9 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Nov 14 14:38:52 CST 2020 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-6.7.1-all.zip 7 | -------------------------------------------------------------------------------- /lib_common/src/main/res/anim/rtl_exit_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /lib_common/src/main/java/top/littlefogcat/common/utils/ScreenshotManager.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.common.utils 2 | 3 | /** 4 | * todo 5 | * 6 | * @Author:littlefogcat 7 | * @Date:2020/9/23-5:24 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | object ScreenshotManager { 11 | 12 | } -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/me/MeListItemDecorator.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.me 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Date:2021/3/1-19:49 6 | * @Email:littlefogcat@foxmail.com 7 | */ 8 | object MeListItemDecorator : MeListItem(TYPE_DECORATOR) -------------------------------------------------------------------------------- /component_clickercore/src/main/java/top/littlefogcat/clickerx/core/Transaction.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.core 2 | 3 | /** 4 | * todo Transaction for executing script. 5 | * 6 | * @Author:littlefogcat 7 | * @Email:littlefogcat@foxmail.com 8 | */ 9 | class Transaction { 10 | 11 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/analyze/ParseTree.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.analyze 2 | 3 | /** 4 | * 语法分析树 5 | * 6 | * @Author:littlefogcat 7 | * @Date:2020/12/27-0:12 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | class ParseTree { 11 | } -------------------------------------------------------------------------------- /module_home/src/main/res/layout/me_list_decorator.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable/ic_tab_message_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/analyze/SemanticAnalyzer.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.analyze 2 | 3 | /** 4 | * 语义分析器 5 | * 6 | * @Author:littlefogcat 7 | * @Date:2020/12/26-23:59 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | class SemanticAnalyzer { 11 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/actions/IfAction.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.actions 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Date:2020/12/26-18:01 6 | * @Email:littlefogcat@foxmail.com 7 | */ 8 | class IfAction: XAction(ACTION_TYPE_IF, arrayListOf(), arrayListOf()) { 9 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/compiling/Identifier.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.compiling 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Date:2021/1/24-4:43 6 | * @Email:littlefogcat@foxmail.com 7 | */ 8 | class Identifier( 9 | name: String, 10 | value: Any? 11 | ) -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_scriptdetail/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_home/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/entities/RecommendSearchItem.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.entities 2 | 3 | /** 4 | * The recommended searching item. 5 | */ 6 | data class RecommendSearchItem( 7 | val id: Long, 8 | val title: String, 9 | val subtitle: String, 10 | val heat: Int = 0 11 | ) -------------------------------------------------------------------------------- /component_base/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_home/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /module_recorder/src/main/res/drawable/gfw_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_recorder/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/model/datasource/MessageDataSource.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.model.datasource 2 | 3 | import top.littlefogcat.clickerx.base.entities.Chat 4 | import top.littlefogcat.network.NetResult 5 | 6 | interface MessageDataSource { 7 | suspend fun loadChatList(): NetResult> 8 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/compiling/CompileException.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.compiling 2 | 3 | import java.lang.Exception 4 | 5 | /** 6 | * @Author:littlefogcat 7 | * @Date:2020/12/24-22:54 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | class CompileException(msg: String) : Exception(msg) -------------------------------------------------------------------------------- /lib_clinj/src/main/java/top/littlefogcat/clinj/Inject.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clinj 2 | 3 | /** 4 | * 根据`product flavor`对变量进行注入。 5 | * 6 | * @see [InjectSrc] 7 | * @Author:littlefogcat 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | 11 | @Target(AnnotationTarget.FIELD) 12 | @Retention(AnnotationRetention.RUNTIME) 13 | annotation class Inject(val name: String) -------------------------------------------------------------------------------- /lib_network/src/main/java/top/littlefogcat/network/HttpStatusCode.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.network 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Email:littlefogcat@foxmail.com 6 | */ 7 | object HttpStatusCode { 8 | const val OK = 200 9 | 10 | const val FORBIDDEN = 403 11 | const val NOT_FOUND = 404 12 | 13 | const val INTERNAL_ERROR = 500 14 | } -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/events/CoreInitEvent.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.events 2 | 3 | /** 4 | * Event showing the core service should be initialized. 5 | * 6 | * @Author:littlefogcat 7 | * @Email:littlefogcat@foxmail.com 8 | */ 9 | class CoreInitEvent( 10 | val screenWidth: Int, 11 | val screenHeight: Int 12 | ) -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/analyze/Token.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.analyze 2 | 3 | /** 4 | * 一个单词。 5 | * 6 | * Token:词法单元 7 | * 8 | * 内容:<种别码,属性值> 9 | * 10 | * @Author:littlefogcat 11 | * @Date:2020/12/26-18:13 12 | * @Email:littlefogcat@foxmail.com 13 | */ 14 | class Token(val type: String, val attr: Any? = null) -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/entities/Message.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.entities 2 | 3 | /** 4 | * 一条消息。 5 | * 包括消息的id[id],发送者id[sender],发送时间[time],消息内容[content],是否已读[read] 6 | */ 7 | data class Message( 8 | val id: Long, 9 | val sender: Long, 10 | val time: Long, 11 | val content: String, 12 | val read: Boolean, 13 | ) -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/analyze/Parser.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.analyze 2 | 3 | /** 4 | * 语法分析器。 5 | * 识别出句子中的短语,并构建语法分析树[ParseTree]。 6 | * 7 | * @Author:littlefogcat 8 | * @Date:2020/12/26-23:59 9 | * @Email:littlefogcat@foxmail.com 10 | */ 11 | class Parser { 12 | 13 | fun parse(tokens: List) { 14 | 15 | } 16 | } -------------------------------------------------------------------------------- /component_clickercore/src/main/java/top/littlefogcat/clickerx/core/trigger/OnAccessibilityEventListener.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.core.trigger 2 | 3 | import android.view.accessibility.AccessibilityEvent 4 | 5 | /** 6 | * @Author:littlefogcat 7 | * @Email:littlefogcat@foxmail.com 8 | */ 9 | interface OnAccessibilityEventListener { 10 | fun onEvent(event: AccessibilityEvent) 11 | } -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/base/TouchEventHandler.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.base 2 | 3 | import android.view.MotionEvent 4 | 5 | interface TouchEventHandler { 6 | /** 7 | * @see android.app.Activity.dispatchTouchEvent 8 | */ 9 | fun dispatchTouchEvent(event: MotionEvent): Boolean 10 | 11 | fun onTouchEvent(event: MotionEvent): Boolean 12 | } -------------------------------------------------------------------------------- /lib_common/src/main/res/anim/rtl_enter_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/common/TokenCreateException.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.common 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Date:2021/1/12-19:16 6 | * @Email:littlefogcat@foxmail.com 7 | */ 8 | class TokenCreateException(tokenString: String, msg: String? = null) : 9 | Exception("Unable to create token: $tokenString." + if (msg == null) "" else " With message[ $msg ]") -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/common/UnexpectedTokenException.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.common 2 | 3 | import java.lang.Exception 4 | 5 | /** 6 | * 遇到了意料之外的Token。 7 | * 一般是语法有误。 8 | * 9 | * @Author:littlefogcat 10 | * @Date:2021/1/12-2:05 11 | * @Email:littlefogcat@foxmail.com 12 | */ 13 | class UnexpectedTokenException(val index: Int) : Exception("Unexpected tokens") -------------------------------------------------------------------------------- /lib_common/src/main/res/drawable-anydpi/ic_play.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = "ClickerX" 2 | include ':app' 3 | include ':module_home' 4 | include ':component_clickercore' 5 | include ':component_base' 6 | include ':lib_common' 7 | include ':lib_compiler' 8 | include ':lib_shell' 9 | //include ':module_recorder' // 暂时不做 10 | include ':component_script' 11 | include ':component_user' 12 | include ':lib_network' 13 | include ':module_scriptdetail' 14 | include ':lib_clinj' 15 | -------------------------------------------------------------------------------- /component_base/src/main/res/layout/splash_act.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/common/DFAException.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.common 2 | 3 | import java.lang.Exception 4 | 5 | /** 6 | * DFA出错。 7 | * 一般是拼写错误或非法字符。 8 | * 9 | * @Author:littlefogcat 10 | * @Date:2021/1/12-1:38 11 | * @Email:littlefogcat@foxmail.com 12 | */ 13 | class DFAException(state: Int, input: Any) : 14 | Exception("Input [$input] is not available on state [$state]") -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/constants/Globals.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.constants 2 | 3 | /** 4 | * Global constants. Consider move to other place later. 5 | * 6 | * @Author:littlefogcat 7 | * @Email:littlefogcat@foxmail.com 8 | */ 9 | const val DEFAULT_SERVER_SOCKET_PORT = 23368 10 | const val SOCKET_PORT_FILE_PATH = "/data/local/tmp/socket_port.dat" 11 | 12 | const val INTENT_KEY_SCRIPT = "script" -------------------------------------------------------------------------------- /module_home/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /component_base/src/main/res/xml/ims.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 10 | -------------------------------------------------------------------------------- /lib_common/src/main/res/drawable-anydpi/ic_stop.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_action_add.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib_common/src/main/java/top/littlefogcat/common/utils/CommonUtils.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.common.utils 2 | 3 | import android.widget.Toast 4 | 5 | /** 6 | * @Author:littlefogcat 7 | * @Email:littlefogcat@foxmail.com 8 | */ 9 | 10 | fun showToast(msg: String) { 11 | Toast.makeText(AppContext.get(), msg, Toast.LENGTH_SHORT).show() 12 | } 13 | 14 | fun Any?.equalsOrNull(o: Any?): Boolean { 15 | return this != null && (o == null || equals(o)) 16 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/analyze/LexicalAnalyzeException.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.analyze 2 | 3 | import java.lang.Exception 4 | 5 | /** 6 | * 词法分析错误。 7 | * [msg] 错误信息 8 | * [index] 出错位置 9 | * 10 | * @Author:littlefogcat 11 | * @Date:2020/12/26-20:30 12 | * @Email:littlefogcat@foxmail.com 13 | */ 14 | class LexicalAnalyzeException(private val msg: String, private val index: Int) : Exception(msg) -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/me/MeListItemHeader.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.me 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Date:2021/2/28-17:20 6 | * @Email:littlefogcat@foxmail.com 7 | */ 8 | class MeListItemHeader( 9 | val imgSrc: String, 10 | val name: String, 11 | val desc: String, 12 | override val target: String?, 13 | override val type: Int = TYPE_HEADER 14 | ) : MeListItem(type, target) -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_home_dark.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_action_add_dark.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_done.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/message/MessageChatItem.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.message 2 | 3 | /** 4 | * 消息主页面RecyclerView的item,对应一条聊天。 5 | * 6 | * @Author:littlefogcat 7 | * @Date:2021/2/22-20:58 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | class MessageChatItem( 11 | val partnerId: Long, 12 | val avatarUrl: String, 13 | val title: String, 14 | val content: String, 15 | var lastMessageTime: Long 16 | ) -------------------------------------------------------------------------------- /lib_network/src/test/java/top/littlefogcat/network/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.network 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 | } -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_action_menu.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_right_arrow.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/menu/configs_nav_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 11 | -------------------------------------------------------------------------------- /component_clickercore/src/main/assets/search_sample.lua: -------------------------------------------------------------------------------- 1 | -- 启动Chrome 2 | launchApp("com.android.chrome") 3 | delay(300) 4 | 5 | -- 可能提示权限,点击允许 6 | clickByText("允许") 7 | delay(2000) 8 | 9 | -- 点击搜索框 10 | clickById("com.android.chrome:id/url_bar") 11 | delay(800) 12 | 13 | -- 输入网址 14 | input("https://www.baidu.com/s?wd=ClickerX") 15 | delay(300) 16 | 17 | -- 点击回车,一般处于屏幕右下角 18 | -- 非Root无法直接直接输入键值 19 | local h = getScreenHeight() 20 | local w = getScreenWidth() 21 | clickAt(w - 50, h - 50) -------------------------------------------------------------------------------- /lib_common/src/test/java/top/littlefogcat/clickerx/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx 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 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/actions/XAction.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.actions 2 | 3 | /** 4 | * 一条语句对应的行为。 5 | * 6 | * @Author:littlefogcat 7 | * @Date:2020/12/24-22:29 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | open class XAction( 11 | val type: String, // command指令 / def定义变量 / assign赋值 / if判断 / for循环 12 | val varargs: List, // 执行参数 13 | val subActions: List? = null // 子行为,用于判断与循环中 14 | ) 15 | -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/scanning/ScannerException.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.scanning 2 | 3 | import java.lang.Exception 4 | 5 | /** 6 | * 词法分析异常。 7 | * 当词法分析出现错误时抛出异常。 8 | * 原文[statement],异常信息[msg],出现错误的坐标[index]。 9 | * 10 | * @Author:littlefogcat 11 | * @Date:2021/1/12-1:33 12 | * @Email:littlefogcat@foxmail.com 13 | */ 14 | class ScannerException(val statement: String, val msg: String, val index: Int) : Exception(msg) -------------------------------------------------------------------------------- /lib_compiler/src/test/java/top/littlefogcat/clickerx/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx 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 | } -------------------------------------------------------------------------------- /lib_common/src/main/java/top/littlefogcat/common/utils/ImageLoader.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.common.utils 2 | 3 | import android.widget.ImageView 4 | 5 | /** 6 | * @Author:littlefogcat 7 | * @Date:2021/2/27-16:37 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | interface ImageLoader { 11 | companion object { 12 | fun get(): ImageLoader = ImageLoaderImpl 13 | } 14 | 15 | fun loadImage(iv: ImageView, url: String) 16 | fun loadImage(iv: ImageView, res: Int) 17 | } -------------------------------------------------------------------------------- /module_recorder/src/test/java/top/littlefogcat/clickerx/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx 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 | } -------------------------------------------------------------------------------- /component_base/src/test/java/top/littlefogcat/clickerx/base/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base 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 | } -------------------------------------------------------------------------------- /component_clickercore/src/test/java/top/littlefogcat/clickerx/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx 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 | } -------------------------------------------------------------------------------- /component_user/src/test/java/top/littlefogcat/clickerx/user/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.user 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 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/actions/Actions.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.actions 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Date:2020/12/24-22:46 6 | * @Email:littlefogcat@foxmail.com 7 | */ 8 | val EmptyAction = XAction("", emptyList()) 9 | const val ACTION_TYPE_COMMAND = "command" 10 | const val ACTION_TYPE_DEF = "def" 11 | const val ACTION_TYPE_ASSIGN = "assign" 12 | const val ACTION_TYPE_IF = "if" 13 | const val ACTION_TYPE_FOR = "for" -------------------------------------------------------------------------------- /module_home/src/test/java/top/littlefogcat/clickerx/home/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home 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 | } -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_home.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/layout/add_conf_act.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /component_script/src/test/java/top/littlefogcat/clickerx/script/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.script 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 | } -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_start.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_star_dark.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_scriptdetail/src/test/java/top/littlefogcat/clickerx/scriptdetail/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.scriptdetail 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 | } -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_pause.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_tab_favorite_dark.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/parsing/ParseTree.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.parsing 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Date:2021/1/24-7:04 6 | * @Email:littlefogcat@foxmail.com 7 | */ 8 | class ParseTree(val type: Int) { 9 | 10 | companion object { 11 | const val TYPE_STATEMENT = 0 12 | const val TYPE_EXPRESSION = 1 13 | const val TYPE_PARAM = 2 14 | const val TYPE_ID = 3 15 | const val TYPE_CONST = 4 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_me_dark.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib_common/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 48dp 4 | 18sp 5 | 44dp 6 | 15sp 7 | 13sp 8 | 12sp 9 | 50dp 10 | 180dp 11 | -------------------------------------------------------------------------------- /component_base/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 48dp 4 | 18sp 5 | 44dp 6 | 15sp 7 | 13sp 8 | 12sp 9 | 50dp 10 | 180dp 11 | -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/constants/FlavorConstants.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.constants 2 | 3 | /** 4 | * @Author:littlefogcat 5 | * @Email:littlefogcat@foxmail.com 6 | */ 7 | object FlavorConstants { 8 | const val FLAVOR_PROD = "prod" 9 | const val FLAVOR_MOCK = "mock" 10 | 11 | const val NAME_RECOMMEND_DS = "RecommendDataSource" 12 | const val NAME_SCRIPT_DS = "ScriptDataSource" 13 | const val NAME_MESSAGE_DS = "MessageDataSource" 14 | const val NAME_USER_DS = "UserDataSource" 15 | } -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/analyze/Exts.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.analyze 2 | 3 | /** 4 | * 返回字符串中从[start]位置开始,并且满足条件[ensure]的第一个字符[ch]的位置。 5 | * 6 | * @Author:littlefogcat 7 | * @Date:2020/12/26-22:19 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | fun String.indexOf(ch: Char, start: Int, ensure: (Int) -> Boolean): Int { 11 | var s = start 12 | while (s < length) { 13 | val next = indexOf(ch, s) 14 | if (ensure(next)) return next 15 | s++ 16 | } 17 | return -1 18 | } -------------------------------------------------------------------------------- /lib_common/src/main/java/top/littlefogcat/common/utils/GsonUtil.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.common.utils 2 | 3 | import com.google.gson.Gson 4 | import java.lang.reflect.Type 5 | 6 | /** 7 | * 作者:littlefogcat 8 | * 创建日期:2020/8/12-23:05 9 | * Email:littlefogcat@foxmail.com 10 | */ 11 | object GsonUtil { 12 | private val gson = Gson() 13 | 14 | fun fromJson(json: String, classOfT: Class) = gson.fromJson(json, classOfT) 15 | fun fromJson(json: String, type: Type) = gson.fromJson(json, type) 16 | fun toJson(obj: Any) = gson.toJson(obj) 17 | } -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_default_head.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_scriptdetail/src/main/res/drawable-anydpi/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib_common/src/main/res/layout/activity_dummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/me/MeListItem.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.me 2 | 3 | /** 4 | * [type] - item类型。 5 | * 6 | * @Author:littlefogcat 7 | * @Date:2021/2/26-22:32 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | abstract class MeListItem( 11 | open val type: Int, 12 | open val target: String? = null 13 | ) { 14 | companion object { 15 | const val TYPE_PLAIN = 0 16 | const val TYPE_HEADER = 1 17 | const val TYPE_DECORATOR = 2 18 | val DIVIDER = object : MeListItem(TYPE_DECORATOR, null) {} 19 | } 20 | } -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/model/services/MessageService.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.model.services 2 | 3 | import retrofit2.http.POST 4 | import top.littlefogcat.clickerx.base.entities.Chat 5 | import top.littlefogcat.clickerx.home.model.datasource.MessageDataSource 6 | import top.littlefogcat.network.NetResult 7 | 8 | /** 9 | * @Author:littlefogcat 10 | * @Email:littlefogcat@foxmail.com 11 | */ 12 | interface MessageService : MessageDataSource { 13 | @POST("/message/chatlist") 14 | override suspend fun loadChatList(): NetResult> 15 | } -------------------------------------------------------------------------------- /lib_common/src/main/res/drawable-anydpi/img_load_error.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/constants/RouteConstants.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.constants 2 | 3 | // for ARouter 4 | object RouteConstants { 5 | const val ROUTE_ACTIVITY_MAIN = "/home/MainActivity" 6 | const val ROUTE_ACTIVITY_SCRIPT_DETAIL = "/app/ScriptDetailActivity" 7 | const val ROUTE_ACTIVITY_DUMMY = "/common/DummyActivity" // this can be only used in debug 8 | 9 | const val ROUTE_RECOMMEND_SERVICE = "/recommend/provider" 10 | const val ROUTE_SCRIPT_SERVICE = "/script/provider" 11 | const val ROUTE_SERVICE_CORE = "/core/CoreService" 12 | } -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/entities/RecommendItem.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.entities 2 | 3 | /** 4 | * The recommended item. 5 | * 6 | * @param id the ID of the associated script. 7 | * @param title the title. 8 | * @param author the author. 9 | * @param desc the description. 10 | * @param votes number of likes. 11 | * @param comments number of comments. 12 | */ 13 | data class RecommendItem( 14 | val id: Long, 15 | val title: String, 16 | val author: UserSimple, 17 | val desc: String, 18 | val votes: Int, 19 | val comments: Int 20 | ) -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_message_dark.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/me/MeListItemPlain.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.me 2 | 3 | /** 4 | * [imgSrc] is the url of the image, 5 | * [text] is the text to show, 6 | * [target] is the target Activity's action, 7 | * [type] is the type is [MeListItem.TYPE_PLAIN] 8 | * 9 | * @Author:littlefogcat 10 | * @Date:2021/2/27-12:31 11 | * @Email:littlefogcat@foxmail.com 12 | */ 13 | class MeListItemPlain( 14 | val imgSrc: String, 15 | val text: String, 16 | override val target: String, 17 | override val type: Int = TYPE_PLAIN, 18 | ) : MeListItem(type, target) -------------------------------------------------------------------------------- /module_home/src/main/java/top/littlefogcat/clickerx/home/model/datasource/RecommendDataSource.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.home.model.datasource 2 | 3 | import top.littlefogcat.clickerx.base.entities.RecommendItem 4 | import top.littlefogcat.clickerx.base.entities.RecommendSearchItem 5 | import top.littlefogcat.network.NetResult 6 | 7 | /** 8 | * @Author:littlefogcat 9 | * @Email:littlefogcat@foxmail.com 10 | */ 11 | interface RecommendDataSource { 12 | suspend fun getRecommendList(): NetResult> 13 | suspend fun getRecommendSearchList(): NetResult> 14 | } -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_action_configs.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_star.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/drawable-anydpi/ic_back.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_me.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /component_base/src/main/res/xml/accessibility.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | -------------------------------------------------------------------------------- /lib_compiler/src/main/java/top/littlefogcat/clickerx/compiler/common/DFA.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.compiler.common 2 | 3 | /** 4 | * 定义DFA的接口。 5 | * 6 | * DFA的五要素: 7 | * 有穷状态集[states]、输入字母表[alphabet]、转换函数[input]、初始状态[initialState]、终止状态集[final]。 8 | * 9 | * 泛型中的[IN]表示输入的类型,[S]表示状态类型。 10 | * 11 | * @Author:littlefogcat 12 | * @Date:2021/1/11-22:08 13 | * @Email:littlefogcat@foxmail.com 14 | */ 15 | interface DFA { 16 | var state: S // 当前自动机的状态 17 | 18 | val states: Set // 有穷状态集 19 | val final: Set // 终止状态集 20 | val alphabet: Set // 输入字母表 21 | val initialState: S // 初始状态 22 | fun input(x: IN) // 转换函数 23 | } -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_tab_message.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /module_scriptdetail/src/main/res/layout/script_detail_act.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /component_base/src/main/java/top/littlefogcat/clickerx/base/base/DefaultToolbarHolder.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.base.base 2 | 3 | import android.view.View 4 | 5 | /** 6 | * 标记这个类包含了默认的toolbar。 7 | * 在继承自[BaseFragment]的类中,如果该Fragment实现了[DefaultToolbarHolder],那么就会进行标题、返回、确定的设置。 8 | * 这个toolbar对应的是[res/layout/toolbar.xml],需要在布局中引入。如果不引入布局,则需要在布局文件中设置对应id为 9 | * [tvTitle]、[btnBack]、[btnDone]的控件,分别对应标题、返回按钮、确认按钮。 10 | * 11 | * @Author:littlefogcat 12 | * @Email:littlefogcat@foxmail.com 13 | */ 14 | interface DefaultToolbarHolder { 15 | fun getTitle(): String 16 | fun onBtnBackClicked(): ((View) -> Unit)? 17 | fun onDoneClicked(): ((View) -> Unit)? 18 | } -------------------------------------------------------------------------------- /component_clickercore/src/main/res/xml/accessibility.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | -------------------------------------------------------------------------------- /module_home/src/main/res/drawable-anydpi/ic_action_search_dark.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib_common/src/main/java/top/littlefogcat/common/utils/AppContext.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.common.utils 2 | 3 | import android.app.Application 4 | 5 | /** 6 | * Application context for this app. To get application anywhere, use [AppContext.get]. 7 | * 8 | * Should invoke [AppContext.init] function as soon as possible to set the context. 9 | * 10 | * @Author:littlefogcat 11 | * @Email:littlefogcat@foxmail.com 12 | */ 13 | class AppContext { 14 | companion object { 15 | private lateinit var INSTANCE: Application 16 | fun get() = INSTANCE 17 | fun init(application: Application) { 18 | INSTANCE = application 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /component_clickercore/src/prod/java/top/littlefogcat/clickerx/core/CoreRepository.kt: -------------------------------------------------------------------------------- 1 | package top.littlefogcat.clickerx.core 2 | 3 | import top.littlefogcat.clickerx.db.ClickerXDatabase 4 | import top.littlefogcat.clickerx.db.entities.Script 5 | 6 | /** 7 | * @Author:littlefogcat 8 | * @Email:littlefogcat@foxmail.com 9 | */ 10 | object CoreRepository { 11 | private val scriptDao by lazy { ClickerXDatabase.get().getScriptDao() } 12 | 13 | fun loadLocalScripts(): List