#!/bin/bash # test-notification-receiver.sh # Author: Matthew Raymer # Description: Test script to manually trigger the DailyNotificationReceiver # to verify it's working correctly # Function to find adb command find_adb() { # Check if adb is in PATH if command -v adb >/dev/null 2>&1; then echo "adb" return 0 fi # Check for ANDROID_HOME if [ -n "$ANDROID_HOME" ] && [ -x "$ANDROID_HOME/platform-tools/adb" ]; then echo "$ANDROID_HOME/platform-tools/adb" return 0 fi # Check for local.properties local local_props="android/local.properties" if [ -f "$local_props" ]; then local sdk_dir=$(grep "^sdk.dir=" "$local_props" 2>/dev/null | cut -d'=' -f2 | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | sed "s|^file://||") if [ -n "$sdk_dir" ] && [ -x "$sdk_dir/platform-tools/adb" ]; then echo "$sdk_dir/platform-tools/adb" return 0 fi fi # Try common macOS locations local common_locations=( "$HOME/Library/Android/sdk" "$HOME/Android/Sdk" "$HOME/.android/sdk" ) for sdk_path in "${common_locations[@]}"; do if [ -x "$sdk_path/platform-tools/adb" ]; then echo "$sdk_path/platform-tools/adb" return 0 fi done # Not found return 1 } # Find adb ADB_CMD=$(find_adb) if [ $? -ne 0 ] || [ -z "$ADB_CMD" ]; then echo "Error: adb command not found!" echo "" echo "Please ensure one of the following:" echo " 1. adb is in your PATH" echo " 2. ANDROID_HOME is set and points to Android SDK" echo " 3. Android SDK is installed at:" echo " - $HOME/Library/Android/sdk (macOS default)" echo " - $HOME/Android/Sdk" echo "" echo "You can find your SDK location in Android Studio:" echo " Preferences > Appearance & Behavior > System Settings > Android SDK" exit 1 fi echo "Testing DailyNotificationReceiver..." echo "Using adb: $ADB_CMD" echo "" # Get the package name PACKAGE_NAME="app.timesafari.app" INTENT_ACTION="org.timesafari.daily.NOTIFICATION" echo "Package: $PACKAGE_NAME" echo "Intent Action: $INTENT_ACTION" echo "" # Check if device is connected if ! "$ADB_CMD" devices | grep -q $'\tdevice'; then echo "Error: No Android device/emulator connected!" echo "" echo "Please:" echo " 1. Start an Android emulator in Android Studio, or" echo " 2. Connect a physical device via USB" echo "" echo "Then run: $ADB_CMD devices" exit 1 fi # Test 1: Send broadcast intent to trigger receiver (without ID - simulates current bug) echo "Test 1: Sending broadcast intent to DailyNotificationReceiver (without ID)..." "$ADB_CMD" shell am broadcast -a "$INTENT_ACTION" -n "$PACKAGE_NAME/org.timesafari.dailynotification.DailyNotificationReceiver" echo "" echo "Test 2: Sending broadcast intent WITH ID (to test if receiver works with ID)..." "$ADB_CMD" shell am broadcast -a "$INTENT_ACTION" -n "$PACKAGE_NAME/org.timesafari.dailynotification.DailyNotificationReceiver" --es "id" "timesafari_daily_reminder" echo "" echo "Check logcat for 'DN|RECEIVE_START' to see if receiver was triggered" echo "Test 1 should show 'missing_id' error" echo "Test 2 should work correctly (if plugin supports it)" echo "" echo "To monitor logs, run:" echo " $ADB_CMD logcat | grep -E 'DN|RECEIVE_START|DailyNotification'"