#!/usr/bin/env bash
# Buat folder android/ & ios/ lalu atur nama "Multi Point 107" + izin jaringan.
# Jalankan sekali dari folder mobile:  bash setup_platforms.sh
set -e
flutter create --org com.ptsatukosongtujuh --project-name multipoint107 --platforms android,ios .
rm -f test/widget_test.dart   # test bawaan template merujuk MyApp yang tidak ada

M=android/app/src/main/AndroidManifest.xml
# nama aplikasi
perl -0pi -e 's/android:label="[^"]*"/android:label="Multi Point 107"/' "$M"
# izin internet (template hanya menaruhnya di debug) + http lokal untuk development
grep -q 'android.permission.INTERNET' "$M" || perl -0pi -e 's/(<manifest[^>]*>)/$1\n    <uses-permission android:name="android.permission.INTERNET"\/>/' "$M"
grep -q 'usesCleartextTraffic' "$M" || perl -0pi -e 's/<application/<application\n        android:usesCleartextTraffic="true"/' "$M"
# url_launcher (Android 11+) perlu deklarasi query untuk membuka halaman kartu
grep -q 'android.intent.action.VIEW' "$M" || perl -0pi -e 's/<\/manifest>/    <queries>\n        <intent>\n            <action android:name="android.intent.action.VIEW" \/>\n            <data android:scheme="https" \/>\n        <\/intent>\n    <\/queries>\n<\/manifest>/' "$M"

P=ios/Runner/Info.plist
perl -0pi -e 's/(<key>CFBundleDisplayName<\/key>\s*<string>)[^<]*(<\/string>)/$1Multi Point 107$2/' "$P"
perl -0pi -e 's/(<key>CFBundleName<\/key>\s*<string>)[^<]*(<\/string>)/$1Multi Point 107$2/' "$P"
grep -q 'NSAppTransportSecurity' "$P" || perl -0pi -e 's/<dict>/<dict>\n\t<key>NSAppTransportSecurity<\/key>\n\t<dict>\n\t\t<key>NSAllowsLocalNetworking<\/key>\n\t\t<true\/>\n\t<\/dict>/' "$P"

flutter pub get
echo "Selesai. Jalankan: flutter run --dart-define=API_BASE=http://10.0.2.2:8000"
