class Android::Layout

Attributes

doc[R]

@return [REXML::Document] xml document object

path[R]

@return [String] layout file path

Public Class Methods

collect_layouts(apk) click to toggle source

@return [Hash] { path => Layout }

# File lib/android/layout.rb, line 9
def self.collect_layouts(apk)
  targets = apk.find {|name, data| name =~ /^res\/layout\/*/ }
  ret = {}
  targets.each do |path|
    data = apk.file(path)
    data.force_encoding(Encoding::ASCII_8BIT)
    ret[path] = nil
    begin
      ret[path] = Layout.new(data, path) if AXMLParser.axml?(data)
    rescue => e
      $stderr.puts e
    end
  end
  ret
end
new(data, path=nil) click to toggle source
# File lib/android/layout.rb, line 30
def initialize(data, path=nil)
  @data = data
  @path = path
  @doc = AXMLParser.new(data).parse
end

Public Instance Methods

to_xml(indent=4) click to toggle source

@return [String] xml string

# File lib/android/layout.rb, line 37
def to_xml(indent=4)
  xml = ''.dup
  formatter = REXML::Formatters::Pretty.new(indent)
  formatter.write(@doc.root, xml)
  xml
end