# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:android)

platform :android do

  desc "Runs all the tests"
  lane :tests do
    gradle(task: "test")
  end

  desc "Build a new version"
  lane :build do |options|
    gradle(
      task: "assemble",
      flavor: options[:flavor],
      build_type: "Release",
      print_command: false,
      properties: {
        "android.injected.signing.store.file" => options[:storefile],
        "android.injected.signing.store.password" => options[:storepass],
        "android.injected.signing.key.alias" => options[:keyalias],
        "android.injected.signing.key.password" => options[:keypass],
      }
    )
    sh("mkdir", "-p", "../releases")
    @releaseFile = "../releases/KeePassDX-" + android_get_version_name + "-" + options[:flavor] + ".apk"
    sh("cp", "../app/build/outputs/apk/" + options[:flavor] + "/release/app-" + options[:flavor] + "-release.apk", @releaseFile)
  end
  
  desc "Build each flavor and create release"
  lane :build_release do |options|
    build(flavor: "free", storefile: options[:storefile], storepass: options[:storepass], keyalias: options[:keyalias], keypass: options[:keypass])
    build(flavor: "libre", storefile: options[:storefile], storepass: options[:storepass], keyalias: options[:keyalias], keypass: options[:keypass])
    sh("./releaseDescGenerator.sh", android_get_version_code, android_get_version_name)
  end

  desc "Deploy a new Free Beta version to the Google Play"
  lane :deploy_beta_free do
    upload_to_play_store(
      track: "beta",
      skip_upload_metadata: "true",
      skip_upload_images: "true",
      skip_upload_screenshots: "true",
      apk: "./app/build/outputs/apk/free/release/app-free-release.apk",
      validate_only: "false",
    )
    gradle(
      task: 'clean'
    )
  end

end
