Light theme default + yt-dlp search fallback
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
param(
|
||||
[string]$ProjectRoot = $PSScriptRoot
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$appGradle = Join-Path $ProjectRoot "android\app\build.gradle.kts"
|
||||
|
||||
if (-not (Test-Path $appGradle)) {
|
||||
throw "Introuvable: $appGradle"
|
||||
}
|
||||
|
||||
$backup = "$appGradle.before_hd_agp9_fix"
|
||||
|
||||
if (-not (Test-Path $backup)) {
|
||||
Copy-Item $appGradle $backup
|
||||
Write-Host "Backup: $backup"
|
||||
}
|
||||
|
||||
$text = Get-Content $appGradle -Raw
|
||||
|
||||
# Flutter 3.44 / AGP 9 utilise le Kotlin intégré à AGP.
|
||||
# Le bloc kotlin { compilerOptions { ... } } doit être dans android { ... }.
|
||||
$topLevelKotlinPattern = '(?ms)^[ \t]*kotlin\s*\{\s*compilerOptions\s*\{\s*jvmTarget\s*=\s*org\.jetbrains\.kotlin\.gradle\.dsl\.JvmTarget\.JVM_17\s*\}\s*\}\s*'
|
||||
|
||||
if ($text -match $topLevelKotlinPattern) {
|
||||
$text = [regex]::Replace(
|
||||
$text,
|
||||
$topLevelKotlinPattern,
|
||||
'',
|
||||
1
|
||||
)
|
||||
|
||||
Write-Host "Bloc kotlin {} invalide retiré du niveau projet."
|
||||
}
|
||||
|
||||
$androidKotlinBlock = @'
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
|
||||
}
|
||||
}
|
||||
|
||||
'@
|
||||
|
||||
# Insère le bloc Kotlin juste après compileOptions {} dans android {}.
|
||||
if (
|
||||
$text -notmatch '(?ms)android\s*\{.*?kotlin\s*\{\s*compilerOptions'
|
||||
) {
|
||||
$compileOptionsPattern = '(?ms)([ \t]*compileOptions\s*\{\s*sourceCompatibility\s*=\s*JavaVersion\.VERSION_17\s*targetCompatibility\s*=\s*JavaVersion\.VERSION_17(?:\s*isCoreLibraryDesugaringEnabled\s*=\s*true)?\s*\}\s*)'
|
||||
|
||||
$match = [regex]::Match(
|
||||
$text,
|
||||
$compileOptionsPattern
|
||||
)
|
||||
|
||||
if (-not $match.Success) {
|
||||
throw @"
|
||||
Impossible de trouver compileOptions Java 17 dans:
|
||||
$appGradle
|
||||
|
||||
Envoie-moi ce fichier et je te ferai un correctif exact.
|
||||
"@
|
||||
}
|
||||
|
||||
$replacement =
|
||||
$match.Groups[1].Value +
|
||||
"`r`n" +
|
||||
$androidKotlinBlock
|
||||
|
||||
$text =
|
||||
$text.Substring(0, $match.Index) +
|
||||
$replacement +
|
||||
$text.Substring(
|
||||
$match.Index + $match.Length
|
||||
)
|
||||
|
||||
Write-Host "Bloc kotlin {} déplacé dans android {}."
|
||||
}
|
||||
|
||||
# NewPipe utilise des API Java qui nécessitent le desugaring sur Android.
|
||||
if (
|
||||
$text -notmatch 'isCoreLibraryDesugaringEnabled\s*=\s*true'
|
||||
) {
|
||||
$text = $text.Replace(
|
||||
'targetCompatibility = JavaVersion.VERSION_17',
|
||||
"targetCompatibility = JavaVersion.VERSION_17`r`n isCoreLibraryDesugaringEnabled = true"
|
||||
)
|
||||
|
||||
Write-Host "Core library desugaring activé."
|
||||
}
|
||||
|
||||
# Vérifie que les dépendances HD sont toujours présentes.
|
||||
if (
|
||||
$text -notmatch 'com\.github\.TeamNewPipe:NewPipeExtractor:v0\.26\.3'
|
||||
) {
|
||||
$dependencyBlock = @'
|
||||
|
||||
dependencies {
|
||||
implementation("com.github.TeamNewPipe:NewPipeExtractor:v0.26.3")
|
||||
implementation("com.squareup.okhttp3:okhttp:4.12.0")
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs_nio:2.1.5")
|
||||
}
|
||||
'@
|
||||
|
||||
$text = $text.TrimEnd() + "`r`n" + $dependencyBlock + "`r`n"
|
||||
|
||||
Write-Host "Dépendances HD restaurées."
|
||||
}
|
||||
|
||||
Set-Content -Path $appGradle -Value $text -Encoding UTF8
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Correctif Gradle AGP 9 appliqué."
|
||||
Write-Host "Fichier: $appGradle"
|
||||
Write-Host ""
|
||||
Write-Host "Lance maintenant:"
|
||||
Write-Host " flutter clean"
|
||||
Write-Host " flutter pub get"
|
||||
Write-Host " flutter run -d f10778d8"
|
||||
Reference in New Issue
Block a user