├── .vscode └── settings.json ├── settings.gradle ├── source asset ├── icon 2.png └── HumanDetection4Tasker.zip ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── app ├── src │ ├── main │ │ ├── res │ │ │ ├── play_store_512.png │ │ │ ├── playstore-icon.png │ │ │ ├── ic_launcher-web.png │ │ │ ├── drawable-xhdpi │ │ │ │ └── bg_splash.png │ │ │ ├── mipmap-hdpi │ │ │ │ ├── human_detection.png │ │ │ │ ├── opencv4tasker.png │ │ │ │ ├── ai_image_analyzer.png │ │ │ │ ├── ai_image_analyzer_round.png │ │ │ │ ├── opencv4tasker_background.png │ │ │ │ ├── opencv4tasker_foreground.png │ │ │ │ ├── opencv4tasker_monochrome.png │ │ │ │ ├── human_detection_background.png │ │ │ │ ├── human_detection_foreground.png │ │ │ │ ├── human_detection_monochrome.png │ │ │ │ └── ai_image_analyzer_foreground.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── human_detection.png │ │ │ │ ├── opencv4tasker.png │ │ │ │ ├── ai_image_analyzer.png │ │ │ │ ├── ai_image_analyzer_round.png │ │ │ │ ├── opencv4tasker_background.png │ │ │ │ ├── opencv4tasker_foreground.png │ │ │ │ ├── opencv4tasker_monochrome.png │ │ │ │ ├── human_detection_background.png │ │ │ │ ├── human_detection_foreground.png │ │ │ │ ├── human_detection_monochrome.png │ │ │ │ └── ai_image_analyzer_foreground.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── opencv4tasker.png │ │ │ │ ├── human_detection.png │ │ │ │ ├── ai_image_analyzer.png │ │ │ │ ├── ai_image_analyzer_round.png │ │ │ │ ├── opencv4tasker_background.png │ │ │ │ ├── opencv4tasker_foreground.png │ │ │ │ ├── opencv4tasker_monochrome.png │ │ │ │ ├── human_detection_background.png │ │ │ │ ├── human_detection_foreground.png │ │ │ │ ├── human_detection_monochrome.png │ │ │ │ └── ai_image_analyzer_foreground.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── opencv4tasker.png │ │ │ │ ├── human_detection.png │ │ │ │ ├── ai_image_analyzer.png │ │ │ │ ├── ai_image_analyzer_round.png │ │ │ │ ├── opencv4tasker_background.png │ │ │ │ ├── opencv4tasker_foreground.png │ │ │ │ ├── opencv4tasker_monochrome.png │ │ │ │ ├── ai_image_analyzer_foreground.png │ │ │ │ ├── human_detection_background.png │ │ │ │ ├── human_detection_foreground.png │ │ │ │ └── human_detection_monochrome.png │ │ │ ├── image_download_play_store_512.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── opencv4tasker.png │ │ │ │ ├── ai_image_analyzer.png │ │ │ │ ├── human_detection.png │ │ │ │ ├── ai_image_analyzer_round.png │ │ │ │ ├── opencv4tasker_background.png │ │ │ │ ├── opencv4tasker_foreground.png │ │ │ │ ├── opencv4tasker_monochrome.png │ │ │ │ ├── human_detection_background.png │ │ │ │ ├── human_detection_foreground.png │ │ │ │ ├── human_detection_monochrome.png │ │ │ │ └── ai_image_analyzer_foreground.png │ │ │ ├── values │ │ │ │ ├── camera_play_background.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── camera_pause_background.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ └── strings.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ai_image_analyzer.xml │ │ │ │ ├── ai_image_analyzer_round.xml │ │ │ │ ├── opencv4tasker.xml │ │ │ │ └── human_detection.xml │ │ │ ├── menu │ │ │ │ └── main_menu.xml │ │ │ ├── layout │ │ │ │ ├── activity_splash.xml │ │ │ │ ├── activity_config_cancel_notification.xml │ │ │ │ ├── activity_config_detect_humans.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── activity_config_analyze_image.xml │ │ │ │ ├── activity_config.xml │ │ │ │ └── activity_config_notification_intercepted_event.xml │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ └── drawable │ │ │ │ └── ic_launcher_background.xml │ │ ├── assets │ │ │ └── lite-model_efficientdet_lite0_detection_metadata_1.tflite │ │ ├── java │ │ │ └── online │ │ │ │ └── avogadro │ │ │ │ └── opencv4tasker │ │ │ │ ├── tasker │ │ │ │ ├── NotificationRaiser.kt │ │ │ │ ├── AnalyzeImageOutput.kt │ │ │ │ ├── CancelNotificationInput.kt │ │ │ │ ├── DetectHumansInput.kt │ │ │ │ ├── DetectHumansOutput.kt │ │ │ │ ├── AnalyzeImageInput.kt │ │ │ │ ├── CancelNotificationOutput.kt │ │ │ │ ├── CancelNotificationActionHelper.kt │ │ │ │ ├── ActivityConfigNotificationInterceptedEvent.kt │ │ │ │ ├── NotificationInterceptedEvent.kt │ │ │ │ ├── DetectHumansActionHelper.kt │ │ │ │ └── AnalyzeImageActionHelper.kt │ │ │ │ ├── app │ │ │ │ ├── OpenCV4TaskerApplication.java │ │ │ │ ├── Util.java │ │ │ │ └── SharedPreferencesHelper.java │ │ │ │ ├── ai │ │ │ │ └── AIImageAnalyzer.java │ │ │ │ ├── opencv │ │ │ │ └── HumansDetector.java │ │ │ │ ├── tensorflowlite │ │ │ │ └── HumansDetectorTensorFlow.java │ │ │ │ ├── googleml │ │ │ │ └── HumansDetectorGoogleML.kt │ │ │ │ ├── ConfigActivity.java │ │ │ │ ├── notification │ │ │ │ ├── NotificationFileManager.kt │ │ │ │ ├── NotificationInterceptorService.kt │ │ │ │ └── NotificationImageExtractor.kt │ │ │ │ ├── SplashActivity.java │ │ │ │ ├── claudeai │ │ │ │ └── HumansDetectorClaudeAI.java │ │ │ │ ├── openrouter │ │ │ │ └── HumansDetectorOpenRouter.java │ │ │ │ └── gemini │ │ │ │ └── HumansDetectorGemini.java │ │ └── AndroidManifest.xml │ └── androidTest │ │ └── java │ │ └── online │ │ └── avogadro │ │ └── aws4tasker │ │ └── ExampleInstrumentedTest.java ├── .gitignore ├── proguard-rules.pro ├── REMOVED-google-services.json └── build.gradle ├── .claude └── settings.local.json ├── How to create API keys for Google and Claude.md ├── .gitignore ├── gradle.properties ├── gradlew.bat ├── CLAUDE.md ├── README.md └── gradlew /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "java.configuration.updateBuildConfiguration": "interactive" 3 | } -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name='AIImageAnalysis4Tasker' 3 | //include ':opencv' 4 | -------------------------------------------------------------------------------- /source asset/icon 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/source asset/icon 2.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/play_store_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/play_store_512.png -------------------------------------------------------------------------------- /app/src/main/res/playstore-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/playstore-icon.png -------------------------------------------------------------------------------- /app/src/main/res/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/ic_launcher-web.png -------------------------------------------------------------------------------- /source asset/HumanDetection4Tasker.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/source asset/HumanDetection4Tasker.zip -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/bg_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/drawable-xhdpi/bg_splash.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/human_detection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/human_detection.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/opencv4tasker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/opencv4tasker.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/human_detection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/human_detection.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/opencv4tasker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/opencv4tasker.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/opencv4tasker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/opencv4tasker.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/opencv4tasker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/opencv4tasker.png -------------------------------------------------------------------------------- /app/src/main/res/image_download_play_store_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/image_download_play_store_512.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ai_image_analyzer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/ai_image_analyzer.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ai_image_analyzer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/ai_image_analyzer.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/human_detection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/human_detection.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/human_detection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/human_detection.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/opencv4tasker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/opencv4tasker.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ai_image_analyzer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/ai_image_analyzer.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ai_image_analyzer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/ai_image_analyzer.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ai_image_analyzer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/ai_image_analyzer.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/human_detection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/human_detection.png -------------------------------------------------------------------------------- /app/src/main/res/values/camera_play_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #c37559 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ddd8c7 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ai_image_analyzer_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/ai_image_analyzer_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/opencv4tasker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/opencv4tasker_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/opencv4tasker_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/opencv4tasker_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/opencv4tasker_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/opencv4tasker_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ai_image_analyzer_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/ai_image_analyzer_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/opencv4tasker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/opencv4tasker_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/opencv4tasker_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/opencv4tasker_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/opencv4tasker_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/opencv4tasker_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ai_image_analyzer_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/ai_image_analyzer_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/opencv4tasker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/opencv4tasker_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/opencv4tasker_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/opencv4tasker_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/opencv4tasker_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/opencv4tasker_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ai_image_analyzer_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/ai_image_analyzer_round.png -------------------------------------------------------------------------------- /app/src/main/res/values/camera_pause_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #c37559 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/human_detection_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/human_detection_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/human_detection_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/human_detection_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/human_detection_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/human_detection_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/human_detection_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/human_detection_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/human_detection_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/human_detection_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/human_detection_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/human_detection_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/human_detection_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/human_detection_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/human_detection_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/human_detection_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/human_detection_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/human_detection_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/opencv4tasker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/opencv4tasker_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/opencv4tasker_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/opencv4tasker_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/opencv4tasker_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/opencv4tasker_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ai_image_analyzer_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/ai_image_analyzer_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/opencv4tasker_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/opencv4tasker_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/opencv4tasker_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/opencv4tasker_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/opencv4tasker_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/opencv4tasker_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ai_image_analyzer_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-hdpi/ai_image_analyzer_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ai_image_analyzer_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-mdpi/ai_image_analyzer_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ai_image_analyzer_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xhdpi/ai_image_analyzer_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ai_image_analyzer_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/ai_image_analyzer_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/human_detection_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/human_detection_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/human_detection_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/human_detection_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/human_detection_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxhdpi/human_detection_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/human_detection_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/human_detection_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/human_detection_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/human_detection_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/human_detection_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/human_detection_monochrome.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ai_image_analyzer_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/res/mipmap-xxxhdpi/ai_image_analyzer_foreground.png -------------------------------------------------------------------------------- /app/src/main/assets/lite-model_efficientdet_lite0_detection_metadata_1.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimoneAvogadro/HumanDetection4Tasker/HEAD/app/src/main/assets/lite-model_efficientdet_lite0_detection_metadata_1.tflite -------------------------------------------------------------------------------- /.claude/settings.local.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissions": { 3 | "allow": [ 4 | "WebSearch", 5 | "Bash(mkdir:*)", 6 | "WebFetch(domain:stackoverflow.com)" 7 | ], 8 | "deny": [], 9 | "ask": [] 10 | } 11 | } -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | .idea 4 | /local.properties 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /release 10 | /captures 11 | .externalNativeBuild 12 | 13 | .gradle/ 14 | .idea/ 15 | build/ 16 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ai_image_analyzer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Jun 04 14:32:15 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-8.2-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ai_image_analyzer_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/tasker/NotificationRaiser.kt: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.tasker 2 | import android.content.Context 3 | 4 | object NotificationRaiser { 5 | public fun raiseAlarmEvent(c: Context?, b: Any) { 6 | c?.triggerTaskerEventNotificationIntercepted(b) 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | 8 | 9 | #000000 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/opencv4tasker.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/human_detection.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/tasker/AnalyzeImageOutput.kt: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.tasker 2 | 3 | import com.joaomgcd.taskerpluginlibrary.output.TaskerOutputObject 4 | import com.joaomgcd.taskerpluginlibrary.output.TaskerOutputVariable 5 | 6 | @TaskerOutputObject 7 | class AnalyzeImageOutput( 8 | @get:TaskerOutputVariable("response") var response: String? = "" 9 | ) 10 | -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/tasker/CancelNotificationInput.kt: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.tasker 2 | 3 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputField 4 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputRoot 5 | 6 | @TaskerInputRoot 7 | class CancelNotificationInput @JvmOverloads constructor( 8 | @field:TaskerInputField("notificationKey") var notificationKey: String? = null 9 | ) -------------------------------------------------------------------------------- /app/src/main/res/menu/main_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/tasker/DetectHumansInput.kt: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.tasker 2 | 3 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputField 4 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputRoot 5 | 6 | @TaskerInputRoot 7 | class DetectHumansInput @JvmOverloads constructor( 8 | @field:TaskerInputField("imagePath") var imagePath: String? = null, 9 | @field:TaskerInputField("engine") var engine: String? = null 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/tasker/DetectHumansOutput.kt: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.tasker 2 | 3 | import com.joaomgcd.taskerpluginlibrary.output.TaskerOutputObject 4 | import com.joaomgcd.taskerpluginlibrary.output.TaskerOutputVariable 5 | 6 | @TaskerOutputObject 7 | class DetectHumansOutput( 8 | @get:TaskerOutputVariable("detectionScore") var detectionScore: Int? =0, 9 | @get:TaskerOutputVariable("detectionResponse") var detectionResponse: String? ="" 10 | ) { 11 | } -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/app/OpenCV4TaskerApplication.java: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.app; 2 | 3 | import android.app.Application; 4 | 5 | 6 | public class OpenCV4TaskerApplication extends Application { 7 | 8 | public static int partnerId = 8; 9 | public static String partnerIdS = "8"; 10 | 11 | private static OpenCV4TaskerApplication instance; 12 | 13 | public static OpenCV4TaskerApplication getInstance() { 14 | return instance; 15 | } 16 | @Override 17 | public void onCreate() { 18 | super.onCreate(); 19 | instance = this; 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/tasker/AnalyzeImageInput.kt: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.tasker 2 | 3 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputField 4 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputRoot 5 | 6 | @TaskerInputRoot 7 | class AnalyzeImageInput @JvmOverloads constructor( 8 | @field:TaskerInputField("imagePath") var imagePath: String? = null, 9 | @field:TaskerInputField("engine") var engine: String? = null, 10 | @field:TaskerInputField("systemPrompt") var systemPrompt: String? = null, 11 | @field:TaskerInputField("userPrompt") var userPrompt: String? = null 12 | ) 13 | -------------------------------------------------------------------------------- /How to create API keys for Google and Claude.md: -------------------------------------------------------------------------------- 1 | 2 | How to get a Google Gemini API key: 3 | * go to https://aistudio.google.com/apikey 4 | * register/login if needed 5 | * press the "+ Create API Key" button in the top right corner of the page 6 | 7 | How to get an Anthropic Claude API key: 8 | * go to https://console.anthropic.com/settings/keys 9 | * register/login if needed 10 | * press the "+ Create Key" button in the top right corner of the page 11 | 12 | How to get an openRouter API key: 13 | * go to https://openrouter.ai/settings/keys 14 | * register/login if needed 15 | * press the blue "Create API Key" button in the top right corner of the page 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_splash.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/tasker/CancelNotificationOutput.kt: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.tasker 2 | 3 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputField 4 | import com.joaomgcd.taskerpluginlibrary.input.TaskerInputRoot 5 | import com.joaomgcd.taskerpluginlibrary.output.TaskerOutputObject 6 | import com.joaomgcd.taskerpluginlibrary.output.TaskerOutputVariable 7 | 8 | @TaskerInputRoot 9 | @TaskerOutputObject 10 | class CancelNotificationOutput @JvmOverloads constructor( 11 | @get:TaskerOutputVariable("success") 12 | @TaskerInputField(key="success") 13 | var success: Boolean = false, 14 | 15 | @get:TaskerOutputVariable("message") 16 | @TaskerInputField(key="message") 17 | var message: String = "" 18 | ) -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -keep class org.opencv.** { *; } 23 | -keep class org.opencv.engine.OpenCVEngineInterface -------------------------------------------------------------------------------- /app/src/androidTest/java/online/avogadro/aws4tasker/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.meari.test; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | 25 | assertEquals("online.avogadro.aws4tasker", appContext.getPackageName()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | .idea 4 | /local.properties 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /release 10 | /captures 11 | .externalNativeBuild 12 | 13 | /app/debug 14 | 15 | .gradle/ 16 | .idea/ 17 | build/ 18 | /opencv/.cxx/Debug/ 19 | /opencv/.cxx/tools/debug/ 20 | /opencv/native/bin/armeabi-v7a/opencv_test_calib3d 21 | /opencv/native/bin/armeabi-v7a/opencv_test_core 22 | /opencv/native/bin/armeabi-v7a/opencv_test_dnn 23 | /opencv/native/bin/armeabi-v7a/opencv_test_features2d 24 | /opencv/native/bin/armeabi-v7a/opencv_test_flann 25 | /opencv/native/bin/armeabi-v7a/opencv_test_gapi 26 | /opencv/native/bin/armeabi-v7a/opencv_test_highgui 27 | /opencv/native/bin/armeabi-v7a/opencv_test_imgcodecs 28 | /opencv/native/bin/armeabi-v7a/opencv_test_imgproc 29 | /opencv/native/bin/armeabi-v7a/opencv_test_ml 30 | /opencv/native/bin/armeabi-v7a/opencv_test_objdetect 31 | /opencv/native/bin/armeabi-v7a/opencv_test_photo 32 | /opencv/native/bin/armeabi-v7a/opencv_test_stitching 33 | /opencv/native/bin/armeabi-v7a/opencv_test_video 34 | /opencv/native/bin/armeabi-v7a/opencv_test_videoio 35 | -------------------------------------------------------------------------------- /app/src/main/java/online/avogadro/opencv4tasker/ai/AIImageAnalyzer.java: -------------------------------------------------------------------------------- 1 | package online.avogadro.opencv4tasker.ai; 2 | 3 | import android.content.Context; 4 | 5 | import org.json.JSONException; 6 | 7 | import java.io.IOException; 8 | 9 | /** 10 | * Common interface for AI-based image analysis 11 | */ 12 | public interface AIImageAnalyzer { 13 | /** 14 | * Set up the analyzer with necessary API keys and configurations 15 | * @param ctx Android context 16 | */ 17 | void setup(Context ctx) throws IOException; 18 | 19 | /** 20 | * Analyze an image with AI using provided prompts 21 | * @param systemPrompt Instructions for the AI 22 | * @param userPrompt User's specific question about the image 23 | * @param imagePath Path to the image file 24 | * @return The AI's complete response as a string 25 | */ 26 | String analyzeImage(String systemPrompt, String userPrompt, String imagePath) throws IOException, JSONException; 27 | 28 | /** 29 | * Get the last response from the AI 30 | */ 31 | String getLastResponse(); 32 | 33 | /** 34 | * Get error information if the last call failed 35 | */ 36 | String getLastError(); 37 | } 38 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx4096m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | android.defaults.buildfeatures.buildconfig=true 21 | android.nonTransitiveRClass=false 22 | android.nonFinalResIds=false 23 | -------------------------------------------------------------------------------- /app/REMOVED-google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_id": "HumanDetection4Tasker-4f843", 4 | "project_number": "973182941123", 5 | "name": "HumanDetection Tasker Plugin" 6 | }, 7 | "client": [ 8 | { 9 | "client_info": { 10 | "mobilesdk_app_id": "1:629182941492:android:765f46cdf2b4779e", 11 | "client_id": "android:online.avogadro.opencv4tasker", 12 | "client_type": 1, 13 | "android_client_info": { 14 | "package_name": "online.avogadro.opencv4tasker" 15 | } 16 | }, 17 | "oauth_client": [], 18 | "api_key": [ 19 | { 20 | "current_key": "BHzaSyASz7Fo1191jy1gfdEiga6PXGF2qMpvPpQ" 21 | } 22 | ], 23 | "services": { 24 | "analytics_service": { 25 | "status": 0 26 | }, 27 | "cloud_messaging_service": { 28 | "status": 0, 29 | "apns_config": [] 30 | }, 31 | "appinvite_service": { 32 | "status": 0, 33 | "other_platform_oauth_client": [] 34 | }, 35 | "google_signin_service": { 36 | "status": 0 37 | }, 38 | "ads_service": { 39 | "status": 0 40 | } 41 | } 42 | } 43 | ], 44 | "client_info": [], 45 | "ARTIFACT_VERSION": "1" 46 | } -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AI Image Analysis Tasker Plugin 3 | account 4 | Success 5 | Failed 6 | 7 | 8 | Notification Title 9 | The title of the intercepted notification 10 | Notification Text 11 | The text content of the intercepted notification 12 | Image Path 13 | Path to the extracted notification image 14 | App Package 15 | Package name of the app that sent the notification 16 | App Name 17 | Human-readable name of the app that sent the notification 18 | 19 | 20 | Claude Sonnet 4.5 (online) 21 | Gemini 2.5 Flash (online) 22 | OpenRouter (online) 23 | Tensorflow Lite (local device) 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_config_cancel_notification.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 17 | 18 | 22 | 23 | 31 | 32 | 39 | 40 |