# 📱 Android Testing Scripts

Scripturi pentru testarea aplicației ROA2WEB pe telefoane Android reale.

## 🎯 Scripturi Disponibile

| Script | Platform | Status | Descriere |
|--------|----------|---------|-----------|
| **android-test-setup.ps1** | Windows PowerShell | [OK] Functional | Setup complet Android testing |
| **android-disconnect.sh** | Bash/WSL | [OK] Functional | Cleanup port forwarding |

---

## Quick Start (Windows)

**In Windows PowerShell:**

```powershell
cd E:\proiecte\roa2web\roa2web\reports-app\frontend\scripts

# Setup complet (prima data)
.\android-test-setup.ps1
```

**Pentru cleanup:**
```bash
# In WSL (dupa testare)
cd /mnt/e/proiecte/roa2web/roa2web/reports-app/frontend
./scripts/android-disconnect.sh
```

**Screenshot-uri (Claude Code):**

Nu mai este nevoie de script pentru salvare screenshot-uri! Claude Code poate face screenshot-uri direct prin MCP (chrome-devtools-android) si le primeste inline pentru analiza.

---

## 📜 Documentație Detaliată

### 1️⃣ `android-test-setup.ps1` (Windows PowerShell)

**Scop:** Configurare completă conexiune Android pentru testare

**Ce face:**
- ✅ Verifică ADB este instalat
- ✅ Verifică telefon conectat (WiFi sau USB)
- ✅ Configurează port forwarding pentru Chrome DevTools (9222)
- ✅ Configurează reverse port forwarding pentru acces aplicație (3000, 8001)
- ✅ Testează conexiunea la Chrome pe telefon
- ✅ Afișează informații rețea și configurare MCP
- ✅ Comenzi utile pentru debugging

**Utilizare:**
```powershell
cd E:\proiecte\roa2web\roa2web\reports-app\frontend\scripts
.\android-test-setup.ps1
```

**Când să rulezi:**
- Prima dată când conectezi telefonul
- După restart calculator/telefon
- Când port forwarding nu mai funcționează
- Pentru verificare setup

**Output exemplu:**
```
================================
🚀 ROA2WEB - Android Testing Setup
================================

✓ ADB este instalat
Android Debug Bridge version 1.0.41

✓ Telefon Android conectat: 1 dispozitiv(e)
10.0.20.114:38261       device

✓ Port forwarding configurat: localhost:9222 -> Chrome pe telefon
10.0.20.114:38261 tcp:9222 localabstract:chrome_devtools_remote

✓ Reverse port forwarding configurat
  Frontend: http://localhost:3000
  Backend:  http://localhost:8001/api

ℹ IP-ul calculatorului: 10.0.20.144
```

---

### 2 `android-disconnect.sh` (Bash/WSL)

**Scop:** Cleanup port forwarding când termini testarea

**Ce face:**
- ✅ Șterge toate port forwarding-urile (9222, 3000, 8001)
- ✅ Șterge reverse port forwarding
- ✅ Cleanup complet pentru deconectare sigură

**Utilizare:**
```bash
cd /mnt/e/proiecte/roa2web/roa2web/reports-app/frontend
./scripts/android-disconnect.sh
```

**Când să rulezi:**
- După finalizarea sesiunii de testare
- Înainte de a deconecta telefonul
- Pentru cleanup general

**Output exemplu:**
```
🔌 Deconectare telefon Android și cleanup...
✓ Port forwarding șters
✓ Reverse port forwarding șters
✅ Deconectare completă!
```

---

## 🔧 Workflow Complet de Testare

### Setup Inițial (o dată):

**1. Instalează ADB pe Windows:**
```powershell
winget install Google.PlatformTools
```

**2. Configurează telefonul Android:**
```
Setări → Despre telefon → Apasă 7x "Build number"
Setări → Developer options → Activează "USB debugging"
Setări → Developer options → Activează "Wireless debugging"
```

**3. Conectează telefonul:**
- **WiFi:** `adb pair IP:PORT` apoi `adb connect IP:PORT`
- **USB:** Conectează cablu, acceptă "Allow USB debugging"

### Workflow Zilnic:

```powershell
# Windows PowerShell

# 1. Setup conexiune
cd E:\proiecte\roa2web\roa2web\reports-app\frontend\scripts
.\android-test-setup.ps1

# 2. Pornește aplicația (în WSL)
cd /mnt/e/proiecte/roa2web/roa2web
./start-dev.sh

# 3. Pe telefon Chrome: http://localhost:3000

# 4. In Claude Code: "fa screenshot de pe telefon" (MCP inline)

# 5. La final, cleanup (WSL)
./scripts/android-disconnect.sh
```

---

## 🐛 Troubleshooting

### "ADB not found"
```powershell
winget install Google.PlatformTools
# Sau download manual: https://developer.android.com/tools/releases/platform-tools
```

### "No Android device connected"
**WiFi:**
```powershell
adb pair 10.0.20.114:PORT    # Portul din "Pair device"
adb connect 10.0.20.114:PORT # Portul wireless debugging
adb devices                   # Verifică
```

**USB:**
- Verifică cablul (unele sunt doar pentru încărcare)
- Deblochează telefonul
- Acceptă "Allow USB debugging"

### "Port forwarding nu funcționează"
```powershell
# Re-setup complet
.\android-test-setup.ps1
```

---

## ⚠️ Note Importante

### De ce `android-test-setup.sh` nu funcționează în WSL?

ADB în WSL2 **nu poate vedea** dispozitivele USB conectate la Windows. Chiar și cu ADB wireless, există probleme de networking între WSL2 și Android device.

**Soluție:** Folosește scripturile **PowerShell** care rulează ADB direct în Windows!

### Chrome DevTools MCP

Pentru ca Chrome DevTools MCP să funcționeze din WSL (Claude Code), trebuie:
1. Port forwarding activ: `adb forward tcp:9222 ...`
2. Windows port proxy: `netsh interface portproxy add v4tov4 ...`
3. Configurare MCP cu IP-ul fizic Windows: `http://10.0.20.144:9222`

Vezi `tests/ANDROID_TESTING_GUIDE.md` pentru setup complet.

---

## 📚 Documentație Suplimentară

- **ANDROID_QUICK_START.md** - Ghid rapid 5 minute
- **tests/ANDROID_TESTING_GUIDE.md** - Ghid complet cu troubleshooting
- **frontend/README.md** - Secțiunea "Testing on Real Android Devices"

---

## Summary

**Scripturi functionale:**
- [OK] `android-test-setup.ps1` (Windows PowerShell) - Setup complet
- [OK] `android-disconnect.sh` (WSL) - Cleanup

**Screenshot-uri:**
- Nu mai este nevoie de script dedicat
- Claude Code face screenshot-uri prin MCP (chrome-devtools-android) inline

**Testare optima:**
- Ruleaza android-test-setup.ps1 din Windows PowerShell
- Claude Code controleaza Chrome pe telefon prin MCP

---

**Autor:** ROA2WEB Development Team
**Data:** 2025-10-20
**Versiune:** 3.0 (Final cleanup - doar scripturi esentiale)
