screengrab/lib/screengrab/android_environment.rb in fastlane_hotfix-2.165.1 vs screengrab/lib/screengrab/android_environment.rb in fastlane_hotfix-2.187.0

- old
+ new

@@ -2,87 +2,39 @@ require 'fastlane_core/command_executor' module Screengrab class AndroidEnvironment attr_reader :android_home - attr_reader :build_tools_version # android_home - the String path to the install location of the Android SDK - # build_tools_version - the String version of the Android build tools that should be used - def initialize(android_home, build_tools_version) + # build_tools_version - the String version of the Android build tools that should be used, ignored + def initialize(android_home, build_tools_version = nil) @android_home = android_home - @build_tools_version = build_tools_version end def platform_tools_path @platform_tools_path ||= find_platform_tools(android_home) end - def build_tools_path - @build_tools_path ||= find_build_tools(android_home, build_tools_version) - end - def adb_path @adb_path ||= find_adb(platform_tools_path) end - def aapt_path - @aapt_path ||= find_aapt(build_tools_path) - end - private def find_platform_tools(android_home) return nil unless android_home - platform_tools_path = File.join(android_home, 'platform-tools') + platform_tools_path = Helper.localize_file_path(File.join(android_home, 'platform-tools')) File.directory?(platform_tools_path) ? platform_tools_path : nil end - def find_build_tools(android_home, build_tools_version) - return nil unless android_home - - build_tools_dir = File.join(android_home, 'build-tools') - - return nil unless build_tools_dir && File.directory?(build_tools_dir) - - return File.join(build_tools_dir, build_tools_version) if build_tools_version - - version = select_build_tools_version(build_tools_dir) - - return version ? File.join(build_tools_dir, version) : nil - end - - def select_build_tools_version(build_tools_dir) - # Collect the sub-directories of the build_tools_dir, rejecting any that start with '.' to remove . and .. - dir_names = Dir.entries(build_tools_dir).select { |e| !e.start_with?('.') && File.directory?(File.join(build_tools_dir, e)) } - - # Collect a sorted array of Version objects from the directory names, handling the possibility that some - # entries may not be valid version names - versions = dir_names.map do |d| - begin - Gem::Version.new(d) - rescue - nil - end - end.reject(&:nil?).sort - - # We'll take the last entry (highest version number) as the directory name we want - versions.last.to_s - end - def find_adb(platform_tools_path) return FastlaneCore::CommandExecutor.which('adb') unless platform_tools_path - adb_path = File.join(platform_tools_path, 'adb') + adb_path = Helper.get_executable_path(File.join(platform_tools_path, 'adb')) + adb_path = Helper.localize_file_path(adb_path) return executable_command?(adb_path) ? adb_path : nil - end - - def find_aapt(build_tools_path) - return FastlaneCore::CommandExecutor.which('aapt') unless build_tools_path - - aapt_path = File.join(build_tools_path, 'aapt') - return executable_command?(aapt_path) ? aapt_path : nil end def executable_command?(cmd_path) Helper.executable?(cmd_path) end