---
####################################################################
# WARNING: These are designed specifically for Ansible tests       #
# and should not be used as examples of how to write Ansible roles #
####################################################################

# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later

- name: Include OS-specific variables
  include_vars: '{{ ansible_os_family }}.yml'

- name: Install dependencies
  become: true
  package:
    name:
      - "{{ openjdk_pkg }}"
      - unzip
    state: present
  when: ansible_os_family != 'Darwin'

- name: Install dependencies (OSX)
  block:
    - name: Find brew binary
      command: which brew
      register: brew_which
    - name: Get owner of brew binary
      stat:
        path: "{{ brew_which.stdout }}"
      register: brew_stat
    - name: "Install package"
      homebrew:
        name:
          - "{{ openjdk_pkg }}"
          - unzip
        state: present
        update_homebrew: false
      become: true
      become_user: "{{ brew_stat.stat.pw_name }}"
      environment:
        HOMEBREW_NO_AUTO_UPDATE: "True"
    - name: Symlink java
      become: true
      file:
        src: "/usr/local/opt/openjdk@17/libexec/openjdk.jdk"
        dest: "/Library/Java/JavaVirtualMachines/openjdk-17.jdk"
        state: link
  when:
    - ansible_os_family == 'Darwin'

- name: Create Android SDK directory
  file:
    path: "{{ android_sdk_location }}"
    state: directory

- name: Check that sdkmanager is installed
  stat:
    path: "{{ android_sdk_location }}/cmdline-tools/latest/bin/sdkmanager"
  register: sdkmanager_installed

- name: Install Android command line tools
  when: not sdkmanager_installed.stat.exists
  block:
    - name: Create Android SDK dir structure
      file:
        path: "{{ item.path }}"
        state: "{{ item.state }}"
      with_items:
        - { path: "{{ android_cmdline_temp_dir }}", state: "directory" }
        - { path: "{{ android_sdk_location }}/cmdline-tools/latest", state: "directory" }

    - name: Download Android command line tools
      unarchive:
        src: "{{ commandline_tools_link }}"
        dest: "{{ android_cmdline_temp_dir }}"
        remote_src: yes
        creates: "{{ android_cmdline_temp_dir }}/cmdline-tools"
      when: not sdkmanager_installed.stat.exists


    - name: Fix directory structure
      copy:
        src: "{{ android_cmdline_temp_dir }}/cmdline-tools/"
        dest: "{{ android_sdk_location }}/cmdline-tools/latest"
        remote_src: yes
