# Run with tooling from https://github.com/flutter/codelabs/tree/main/tooling/codelab_rebuild
name: Place Tracker rebuild script
steps:
  - name: Remove runner
    rmdirs: 
      - android
      - ios
      - web
  - name: Rebuild Runner
    flutter: create --org dev.flutter --platform android,ios,web .
  - name: Update deps
    flutter: pub upgrade --major-versions
  - name: Patch android/app/build.gradle
    path: android/app/build.gradle
    patch-u: |
      --- b/place_tracker/android/app/build.gradle
      +++ a/place_tracker/android/app/build.gradle
      @@ -43,9 +43,8 @@ android {
           defaultConfig {
               // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
               applicationId "dev.flutter.place_tracker"
      -        // You can update the following values to match your application needs.
      -        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
      -        minSdkVersion flutter.minSdkVersion
      +        // Google Maps requires a minimum SDK version of 20
      +        minSdkVersion 20
               targetSdkVersion flutter.targetSdkVersion
               versionCode flutterVersionCode.toInteger()
               versionName flutterVersionName
  - name: Patch android/app/src/main/AndroidManifest.xml
    path: android/app/src/main/AndroidManifest.xml
    patch-u: |
      --- b/place_tracker/android/app/src/main/AndroidManifest.xml
      +++ a/place_tracker/android/app/src/main/AndroidManifest.xml
      @@ -3,6 +3,12 @@
               android:label="place_tracker"
               android:name="${applicationName}"
               android:icon="@mipmap/ic_launcher">
      +        <meta-data
      +            android:name="com.google.android.gms.version"
      +            android:value="@integer/google_play_services_version" />
      +        <meta-data
      +            android:name="com.google.android.geo.API_KEY"
      +            android:value="YOUR API KEY HERE" />
               <activity
                   android:name=".MainActivity"
                   android:exported="true"
  - name: Patch ios/Runner/AppDelegate.swift
    path: ios/Runner/AppDelegate.swift
    patch-u: |
      --- b/place_tracker/ios/Runner/AppDelegate.swift
      +++ a/place_tracker/ios/Runner/AppDelegate.swift
      @@ -1,5 +1,6 @@
       import UIKit
       import Flutter
      +import GoogleMaps
       
       @UIApplicationMain
       @objc class AppDelegate: FlutterAppDelegate {
      @@ -7,6 +8,7 @@ import Flutter
           _ application: UIApplication,
           didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
         ) -> Bool {
      +    GMSServices.provideAPIKey("YOUR KEY HERE")
           GeneratedPluginRegistrant.register(with: self)
           return super.application(application, didFinishLaunchingWithOptions: launchOptions)
         }
  - name: Patch ios/Flutter/AppFrameworkInfo.plist
    path: ios/Flutter/AppFrameworkInfo.plist
    patch-u: |
      --- b/place_tracker/ios/Flutter/AppFrameworkInfo.plist
      +++ a/place_tracker/ios/Flutter/AppFrameworkInfo.plist
      @@ -21,6 +21,6 @@
         <key>CFBundleVersion</key>
         <string>1.0</string>
         <key>MinimumOSVersion</key>
      -  <string>11.0</string>
      +  <string>13.0</string>
       </dict>
       </plist>
  - name: Patch ios/Podfile
    path: ios/Podfile
    patch-u: |
      --- b/place_tracker/ios/Podfile
      +++ a/place_tracker/ios/Podfile
      @@ -1,5 +1,5 @@
      -# Uncomment this line to define a global platform for your project
      -# platform :ios, '11.0'
      +# Google Maps requires iOS 13: https://developers.google.com/maps/documentation/ios-sdk/overview#supported_platforms
      +platform :ios, '13.0'
       
       # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
       ENV['COCOAPODS_DISABLE_STATS'] = 'true'
  - name: Patch web/index.html
    path: web/index.html
    patch-u: |
      --- b/place_tracker/web/index.html
      +++ a/place_tracker/web/index.html
      @@ -32,6 +32,9 @@
         <title>place_tracker</title>
         <link rel="manifest" href="manifest.json">
       
      +  <!-- Google Maps: https://pub.dev/packages/google_maps_flutter_web -->
      +  <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"></script>
      +
         <script>
           // The value below is injected by flutter build, do not touch.
           const serviceWorkerVersion = null;
  - name: Build iOS simulator bundle
    platforms: [ macos ]
    flutter: build ios --simulator
