├── 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 |
--------------------------------------------------------------------------------
/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