diff --git a/android/app/src/main/res/drawable-hdpi/android12splash.png b/android/app/src/main/res/drawable-hdpi/android12splash.png new file mode 100644 index 0000000..9ce5369 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..ddeb41d Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000..9ce5369 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-mdpi/android12splash.png b/android/app/src/main/res/drawable-mdpi/android12splash.png new file mode 100644 index 0000000..a3fd006 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..4572047 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/drawable-mdpi/splash.png b/android/app/src/main/res/drawable-mdpi/splash.png new file mode 100644 index 0000000..a3fd006 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-night-hdpi/android12splash.png b/android/app/src/main/res/drawable-night-hdpi/android12splash.png new file mode 100644 index 0000000..9ce5369 Binary files /dev/null and b/android/app/src/main/res/drawable-night-hdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-night-mdpi/android12splash.png b/android/app/src/main/res/drawable-night-mdpi/android12splash.png new file mode 100644 index 0000000..a3fd006 Binary files /dev/null and b/android/app/src/main/res/drawable-night-mdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-night-v21/background.png b/android/app/src/main/res/drawable-night-v21/background.png new file mode 100644 index 0000000..fbfdaef Binary files /dev/null and b/android/app/src/main/res/drawable-night-v21/background.png differ diff --git a/android/app/src/main/res/drawable-night-v21/launch_background.xml b/android/app/src/main/res/drawable-night-v21/launch_background.xml new file mode 100644 index 0000000..3cc4948 --- /dev/null +++ b/android/app/src/main/res/drawable-night-v21/launch_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/android/app/src/main/res/drawable-night-xhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xhdpi/android12splash.png new file mode 100644 index 0000000..64f8d21 Binary files /dev/null and b/android/app/src/main/res/drawable-night-xhdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png new file mode 100644 index 0000000..efd09c6 Binary files /dev/null and b/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png new file mode 100644 index 0000000..ab0ea2e Binary files /dev/null and b/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-night/background.png b/android/app/src/main/res/drawable-night/background.png new file mode 100644 index 0000000..fbfdaef Binary files /dev/null and b/android/app/src/main/res/drawable-night/background.png differ diff --git a/android/app/src/main/res/drawable-night/launch_background.xml b/android/app/src/main/res/drawable-night/launch_background.xml new file mode 100644 index 0000000..3cc4948 --- /dev/null +++ b/android/app/src/main/res/drawable-night/launch_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000..3107d37 Binary files /dev/null and b/android/app/src/main/res/drawable-v21/background.png differ diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml index f74085f..3cc4948 100644 --- a/android/app/src/main/res/drawable-v21/launch_background.xml +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/android/app/src/main/res/drawable-xhdpi/android12splash.png b/android/app/src/main/res/drawable-xhdpi/android12splash.png new file mode 100644 index 0000000..64f8d21 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..6f872cd Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000..64f8d21 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/android12splash.png b/android/app/src/main/res/drawable-xxhdpi/android12splash.png new file mode 100644 index 0000000..efd09c6 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..2681112 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png new file mode 100644 index 0000000..efd09c6 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/android12splash.png b/android/app/src/main/res/drawable-xxxhdpi/android12splash.png new file mode 100644 index 0000000..ab0ea2e Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/android12splash.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..53192f3 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png new file mode 100644 index 0000000..ab0ea2e Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000..3107d37 Binary files /dev/null and b/android/app/src/main/res/drawable/background.png differ diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml index 304732f..3cc4948 100644 --- a/android/app/src/main/res/drawable/launch_background.xml +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,9 @@ - - - - - + + + + + + diff --git a/android/app/src/main/res/drawable/unionflow_logo.png b/android/app/src/main/res/drawable/unionflow_logo.png new file mode 100644 index 0000000..90bcd48 Binary files /dev/null and b/android/app/src/main/res/drawable/unionflow_logo.png differ diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..5f349f7 --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4..b68326b 100644 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b7..d0e8a58 100644 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 09d4391..be42904 100644 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d..8d7be32 100644 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372e..92bad8b 100644 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/main/res/values-night-v31/styles.xml b/android/app/src/main/res/values-night-v31/styles.xml new file mode 100644 index 0000000..54f29eb --- /dev/null +++ b/android/app/src/main/res/values-night-v31/styles.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml index 06952be..dbc9ea9 100644 --- a/android/app/src/main/res/values-night/styles.xml +++ b/android/app/src/main/res/values-night/styles.xml @@ -5,6 +5,10 @@ @drawable/launch_background + false + false + false + shortEdges + + + + diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..c5d5899 --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index cb1ef88..0d1fa8f 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -5,6 +5,10 @@ @drawable/launch_background + false + false + false + shortEdges - LSApplicationQueriesSchemes - - tel - sms - mailto - - - CFBundleURLTypes - - - CFBundleTypeRole - Editor - CFBundleURLName - UnionFlow Payment - CFBundleURLSchemes - - unionflow - - - - + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Unionflow Mobile Apps + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + unionflow_mobile_apps + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + LSApplicationQueriesSchemes + + tel + sms + mailto + + + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLName + UnionFlow Payment + CFBundleURLSchemes + + unionflow + + + + UIStatusBarHidden + + diff --git a/start-emulators.ps1 b/start-emulators.ps1 new file mode 100644 index 0000000..83310af --- /dev/null +++ b/start-emulators.ps1 @@ -0,0 +1,123 @@ +# start-emulators.ps1 +# Lance Pixel_5 (emulator-5554) et Pixel_5_2 (emulator-5556) puis Flutter sur chacun. + +$emulatorExe = "$env:LOCALAPPDATA\Android\Sdk\emulator\emulator.exe" +$avds = @("Pixel_5", "Pixel_5_2") +$devices = @("emulator-5554", "emulator-5556") +$flutterEnv = "ENV=dev" +$bootTimeoutSec = 120 +$dir = Split-Path -Parent (Resolve-Path $MyInvocation.MyCommand.Path) + +# --- Helpers ---------------------------------------------------------------- + +function Is-EmulatorRunning($device) { + $list = adb devices 2>$null + return ($list -match "^$device\s+device") +} + +function Wait-BootCompleted($device, $timeoutSec) { + $deadline = (Get-Date).AddSeconds($timeoutSec) + do { + if ((Get-Date) -gt $deadline) { + Write-Host " TIMEOUT : $device n'a pas boote en ${timeoutSec}s." -ForegroundColor Red + return $false + } + Start-Sleep -Seconds 2 + $val = (adb -s $device shell getprop sys.boot_completed 2>$null).Trim() + } while ($val -ne "1") + return $true +} + +# --- 1. Lancer uniquement les emulateurs non demarres ---------------------- + +for ($i = 0; $i -lt 2; $i++) { + $avd = $avds[$i] + $device = $devices[$i] + if (Is-EmulatorRunning $device) { + Write-Host ">>> $avd ($device) deja demarre, skip." -ForegroundColor Cyan + } else { + Write-Host ">>> Demarrage de $avd..." + Start-Process $emulatorExe -ArgumentList "-avd $avd -gpu swiftshader_indirect -no-snapshot-load -no-audio" + } +} + +# --- 2. Attendre le boot en parallele -------------------------------------- + +Write-Host ">>> Attente du boot..." + +$jobs = $devices | ForEach-Object { + $d = $_ + Start-Job -ScriptBlock { + param($device, $timeout) + $deadline = (Get-Date).AddSeconds($timeout) + adb -s $device wait-for-device 2>$null + do { + if ((Get-Date) -gt $deadline) { return "TIMEOUT:$device" } + Start-Sleep -Seconds 2 + $val = (adb -s $device shell getprop sys.boot_completed 2>$null).Trim() + } while ($val -ne "1") + return "OK:$device" + } -ArgumentList $d, $bootTimeoutSec +} + +$results = $jobs | Wait-Job | Receive-Job +$jobs | Remove-Job + +foreach ($r in $results) { + if ($r -like "TIMEOUT:*") { + Write-Host " TIMEOUT : $($r.Split(':')[1])" -ForegroundColor Red + exit 1 + } + Write-Host " OK : $($r.Split(':')[1]) pret." -ForegroundColor Green +} + +# --- 3. ADB reverse : localhost sur l'emulateur → host machine --------------- + +Write-Host ">>> Configuration ADB reverse port forwarding..." +foreach ($device in $devices) { + adb -s $device reverse tcp:8085 tcp:8085 2>$null # API backend + adb -s $device reverse tcp:8180 tcp:8180 2>$null # Keycloak + Write-Host " $device : ports 8085 et 8180 forwarded." -ForegroundColor Green +} + +# --- 5. Flutter pub get (restaure le cache pub si nécessaire) -------------- + +Write-Host "" +Write-Host ">>> flutter pub get..." -ForegroundColor Yellow +Push-Location $dir +flutter pub get +Pop-Location + +# --- 6. Pré-build Gradle sur le premier device (évite le lock parallèle) --- + +Write-Host "" +Write-Host ">>> Pre-build Gradle sur $($devices[0])..." -ForegroundColor Yellow +Push-Location $dir +flutter build apk --debug --dart-define=$flutterEnv | Out-Null +Pop-Location +Write-Host ">>> Pre-build termine." -ForegroundColor Green + +# --- 7. Flutter sur chaque emulateur (EncodedCommand — bulletproof) -------- + +Write-Host "" +Write-Host ">>> Lancement Flutter..." -ForegroundColor Yellow + +foreach ($device in $devices) { + $script = @" +`$host.UI.RawUI.WindowTitle = 'Flutter - $device' +Write-Host 'Device : $device' -ForegroundColor Cyan +Write-Host 'Dossier: $dir' -ForegroundColor Cyan +Write-Host '' +Set-Location '$dir' +flutter run -d $device --dart-define=$flutterEnv --no-pub +Write-Host '' +Write-Host 'Flutter termine. Fermeture manuelle uniquement.' -ForegroundColor Yellow +Read-Host 'Appuyer sur Entree pour fermer' +"@ + $bytes = [System.Text.Encoding]::Unicode.GetBytes($script) + $encoded = [Convert]::ToBase64String($bytes) + Start-Process powershell -ArgumentList "-ExecutionPolicy","Bypass","-NoExit","-EncodedCommand",$encoded + Start-Sleep -Seconds 5 +} + +Write-Host "Done. Deux fenetres PowerShell ouvertes."