class Android::Manifest::Component
<activity>, <service>, <receiver> or <provider> element in <application> element of the manifest file.
Constants
- TYPES
component types
Attributes
elem[R]
@return [REXML::Element]
icon_id[R]
@return [String] icon id - use apk.icon_by_id(icon_id
) to retrieve it’s corresponding data.
intent_filters[R]
@return [Array<Manifest::IntentFilters<Manifest::IntentFilter>>]
metas[R]
@return [Array<Manifest::Meta>]
name[R]
@return [String] component name
type[R]
@return [String] type string in TYPES
Public Class Methods
new(elem)
click to toggle source
@param [REXML::Element] elem target element @raise [ArgumentError] when elem is invalid.
# File lib/android/manifest.rb, line 39 def initialize(elem) raise ArgumentError unless Component.valid?(elem) @elem = elem @type = elem.name @name = elem.attributes['name'] @icon_id = elem.attributes['icon'] @intent_filters = parse_intent_filters @metas = parse_metas end
valid?(elem)
click to toggle source
the element is valid Component
element or not @param [REXML::Element] elem xml element @return [Boolean]
# File lib/android/manifest.rb, line 18 def self.valid?(elem) TYPES.include?(elem.name.downcase) rescue => e false end
Private Instance Methods
parse_intent_filters()
click to toggle source
# File lib/android/manifest.rb, line 53 def parse_intent_filters intent_filters = [] return intent_filters if @elem.elements['intent-filter'].nil? @elem.each_element('intent-filter') do |filter| next if filter&.elements&.empty? next unless IntentFilter.valid?(filter) intent_filter = IntentFilter.new(filter) intent_filters << intent_filter unless intent_filter.empty? end intent_filters end
parse_metas()
click to toggle source
# File lib/android/manifest.rb, line 68 def parse_metas metas = [] return metas if @elem.elements['meta-data'].nil? @elem.each_element('meta-data') do |e| metas << Meta.new(e) end metas end