# -*- mode: ruby; -*-
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.13.0"

default_platform :android

platform :android do

  desc "Submit a new Beta Build to the Play Store Beta channel"
  lane :beta do |options|
    gradle(
      task: "assemble",
      flavor: "withFirebase",
      build_type: "Release",
      print_command: false,
      properties: {
        "android.injected.signing.store.file" => options[:keystore_path],
        "android.injected.signing.store.password" => options[:storepass],
        "android.injected.signing.key.alias" => options[:keyalias],
        "android.injected.signing.key.password" => options[:keypass],
      }
    )

    upload_to_play_store(
      track: "beta",
      json_key: options[:json_key],
      mapping: options[:mapping]
    )
  end

  desc "Submit a new Build to the Play Store"
  lane :production do |options|
    gradle(
      task: "assemble",
      flavor: "withFirebase",
      build_type: "Release",
      print_command: false,
      properties: {
        "android.injected.signing.store.file" => options[:keystore_path],
        "android.injected.signing.store.password" => options[:storepass],
        "android.injected.signing.key.alias" => options[:keyalias],
        "android.injected.signing.key.password" => options[:keypass],
      }
    )

    upload_to_play_store(
      track: "production",
      json_key: options[:json_key],
      mapping: options[:mapping]
    )
  end

  desc "So far, we just sign and align the APK"
  lane :nopush do |options|
    gradle(
      task: "assemble",
      flavor: "noPush",
      build_type: "Release",
      print_command: false,
      properties: {
        "android.injected.signing.store.file" => options[:keystore_path],
        "android.injected.signing.store.password" => options[:storepass],
        "android.injected.signing.key.alias" => options[:keyalias],
        "android.injected.signing.key.password" => options[:keypass],
      }
    )
  end

end
