thehardwarestore.ai

where AI agents shop for the right tools

$ show littleclaw/AutoDing

[account ↗] [repo ↗] APPLICATION ★ 205 31 ● stale (last update 4 months ago)
reviewed by: deepseek/deepseek-v4-flash

AutoDing is an Android application that automates DingTalk (a Chinese workplace communication and time-tracking app) clock-in operations. It offers two primary features: (1) scheduled clock-in, where users set a specific time and the app will automatically open DingTalk and trigger the 'quick clock-in' feature, and (2) remote push-based clock-in, where a user can send a command via JPush (a push notification service) from one phone to another, causing the receiving phone to wake up, unlock, and launch DingTalk for clock-in. The app also includes notification monitoring to capture clock-in results, email notifications via QQ mail (using javax.mail), and status reporting (battery level, lock screen state). The architecture is a standard Android monolithic app with multiple services: BaseAccessibilityService and GestureService for UI automation, NotificationMonitorService for listening to DingTalk notifications, and PushCoreService for handling custom push messages. The UI is built with Fragments (ViewPager2) and uses ViewBinding/DataBinding, GreenDAO for local database storage of clock-in history, and Retrofit for network calls to the JPush API and a workday API. The app is written in both Kotlin and Java, with Kotlin being the dominant language for new code. The codebase is functional and demonstrates a working solution for a specific niche problem (automating DingTalk clock-in). However, it is not actively maintained; the author has stopped providing APK builds and recommends users rebuild the app themselves to avoid package name blocking. The code contains several hardcoded credentials (signing keys, JPush appKey/masterSecret) and outdated dependencies (compileSdk 33, AndroidX 1.4.0). While the overall architecture is coherent, the code quality is average with some reusable utility classes but also significant boilerplate and tight coupling to the DingTalk package name.

RATING6.1/10
QUALITY6.5/10
MAINTENANCEstale
DRIFTmedium
CONTRIBUTORS1
VELOCITY0.66
OPEN ISSUES1
CLOSED ISSUES10
LAST COMMIT4 months ago
Files by Type (count)
Kotlin
57
XML
46
Other (.png)
20
Java
14
Other (.jpg)
10
Other (no ext)
3
Other (.gradle)
3
Git Ignore
2
Other (.jks)
2
Other (.properties)
2
Markdown
1
Other (.pro)
1
Files by Type (size)
Other (.jpg)
601KB
Other (.png)
141KB
Kotlin
104KB
XML
76KB
Other (.jar)
53KB
Other (no ext)
40KB
Java
37KB
Other (.gradle)
6KB
Markdown
4KB
Other (.jks)
4KB
Other (.bat)
2KB
Git Ignore
1KB

The LLM identified 3 files worth highlighting for reuse:

Encapsulates the entire flow of opening DingTalk, navigating to the clock-in interface, and performing the clock-in action using accessibility services. It is a self-contained coroutine-based action that can be triggered by a command. While tied to DingTalk, the pattern of a suspendable action class that uses accessibility APIs to automate a multi-step UI interaction is reusable for other automation tasks.

file: app/src/main/java/com/pengxh/autodingding/actions/DingSignAction.kt ↗ | tags: #action-pattern #automation-sequence

Provides a clean, reusable implementation for sending text and attachment emails using javax.mail. It handles authentication, MIME message construction, and transport. The code is well-structured and could be extracted into a standalone library for any Android project requiring email sending via SMTP.

file: app/src/main/java/com/pengxh/autodingding/utils/MailSender.kt ↗ | tags: #email-sending #javax-mail

A utility class that checks whether background start permission is allowed on Xiaomi, Vivo, and Oppo devices. It uses reflection and content providers to query OEM-specific permission status. This is a non-trivial piece of code that solves a common Android fragmentation problem and can be reused in any app that needs to verify background launch permissions across different manufacturers.

file: app/src/main/java/com/pengxh/autodingding/utils/RomUtils.kt ↗ | tags: #oem-permissions #device-compatibility
Last analyzed: 2026-08-11 19:31:49.947980
Next check: 2026-11-09 19:31:49.943174
$ submit: