module Appium::Core::Android::Device::Clipboard

def self.add_methods

def self.add_methods
  ::Appium::Core::Device.add_endpoint_method(:get_clipboard) do
    def get_clipboard(content_type: :plaintext)
      unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
        raise ::Appium::Core::Error::ArgumentError,
              "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
      end
      params = { contentType: content_type }
      data = execute_script 'mobile:getClipboard', params
      Base64.decode64 data
    end
  end
  ::Appium::Core::Device.add_endpoint_method(:set_clipboard) do
    def set_clipboard(content:, content_type: :plaintext, label: nil)
      unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
        raise ::Appium::Core::Error::ArgumentError,
              "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
      end
      params = {
        contentType: content_type,
        content: Base64.strict_encode64(content)
      }
      params[:label] = label unless label.nil?
      execute_script 'mobile:setClipboard', params
    end
  end
end

def get_clipboard(content_type: :plaintext)

def get_clipboard(content_type: :plaintext)
  unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
    raise ::Appium::Core::Error::ArgumentError,
          "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
  end
  params = { contentType: content_type }
  data = execute_script 'mobile:getClipboard', params
  Base64.decode64 data
end

def set_clipboard(content:, content_type: :plaintext, label: nil)

def set_clipboard(content:, content_type: :plaintext, label: nil)
  unless ::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE.member?(content_type)
    raise ::Appium::Core::Error::ArgumentError,
          "content_type should be #{::Appium::Core::Base::Device::Clipboard::CONTENT_TYPE}"
  end
  params = {
    contentType: content_type,
    content: Base64.strict_encode64(content)
  }
  params[:label] = label unless label.nil?
  execute_script 'mobile:setClipboard', params
end