module Appium::Core::Android::Device::Screen

def self.add_methods

def self.add_methods
  ::Appium::Core::Device.add_endpoint_method(:get_display_density) do
    def get_display_density
      execute_script 'mobile:getDisplayDensity', {}
    end
  end
  ::Appium::Core::Device.add_endpoint_method(:start_recording_screen) do
    def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
                               file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil,
                               video_size: nil, time_limit: '180', bit_rate: nil, bug_report: nil)
      option = ::Appium::Core::Base::Device::ScreenRecord.new(
        remote_path: remote_path, user: user, pass: pass, method: method,
        file_field_name: file_field_name, form_fields: form_fields, headers: headers,
        force_restart: force_restart
      ).upload_option
      option[:videoSize] = video_size unless video_size.nil?
      option[:timeLimit] = time_limit
      option[:bitRate] = bit_rate unless bit_rate.nil?
      unless bug_report.nil?
        unless [true, false].member?(bug_report)
          raise ::Appium::Core::Error::ArgumentError, 'bug_report should be true or false'
        end
        option[:bugReport] = bug_report
      end
      execute(:start_recording_screen, {}, { options: option })
    end
  end
end

def get_display_density

def get_display_density
  execute_script 'mobile:getDisplayDensity', {}
end

def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',

def start_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT',
                           file_field_name: nil, form_fields: nil, headers: nil, force_restart: nil,
                           video_size: nil, time_limit: '180', bit_rate: nil, bug_report: nil)
  option = ::Appium::Core::Base::Device::ScreenRecord.new(
    remote_path: remote_path, user: user, pass: pass, method: method,
    file_field_name: file_field_name, form_fields: form_fields, headers: headers,
    force_restart: force_restart
  ).upload_option
  option[:videoSize] = video_size unless video_size.nil?
  option[:timeLimit] = time_limit
  option[:bitRate] = bit_rate unless bit_rate.nil?
  unless bug_report.nil?
    unless [true, false].member?(bug_report)
      raise ::Appium::Core::Error::ArgumentError, 'bug_report should be true or false'
    end
    option[:bugReport] = bug_report
  end
  execute(:start_recording_screen, {}, { options: option })
end