module PMScreenModule
Public Class Methods
included(base)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 4 def self.included(base) base.extend(ClassMethods) end
Public Instance Methods
action_bar()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 255 def action_bar activity && activity.getActionBar end
append(view_or_class, style=nil, opts={}, dummy=nil)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 125 def append(view_or_class, style=nil, opts={}, dummy=nil) self.rmq.append(view_or_class, style, opts) end
append!(view_or_class, style=nil, opts={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 129 def append!(view_or_class, style=nil, opts={}) self.rmq.append(view_or_class, style, opts).get end
build(view_or_class, style=nil, opts={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 141 def build(view_or_class, style=nil, opts={}) self.rmq.build(view_or_class, style, opts) end
build!(view_or_class, style=nil, opts={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 145 def build!(view_or_class, style=nil, opts={}) self.rmq.build(view_or_class, style, opts).get end
build_and_tag_xml_views()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 311 def build_and_tag_xml_views return unless @xml_resource self.rmq.all.each do |view| if ren = view.resource_entry_name self.rmq.build(view).tag(ren.to_sym) end end end
cleanup()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 68 def cleanup find.all.cleanup find.children.remove if @_rmq_data @_rmq_data.cleanup @_rmq_data = nil end end
close(options={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 203 def close(options={}) # Hang onto an activity reference, since we lose the activity act = self.activity if options[:activity] && options[:to_screen] # Closing to particular activity open options[:to_screen], activity: options[:activity], close: true elsif options[:to_screen] # Closing to particular fragment while act.fragment && !act.fragment.is_a?(options[:to_screen]) act.close_fragment act.finish unless act.fragment end else # Closing current screen or activity if no screens left act.close_fragment if act.fragment end if act.fragment act.fragment.set_up_action_bar act.fragment.on_return(options) else act.finish unless act.fragment end end
color(*params)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 113 def color(*params) RMQ.color(*params) end
create(view_or_class, style=nil, opts={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 133 def create(view_or_class, style=nil, opts={}) self.rmq.create(view_or_class, style, opts) end
create!(view_or_class, style=nil, opts={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 137 def create!(view_or_class, style=nil, opts={}) self.rmq.create(view_or_class, style, opts).get end
dummy_workaround_for_kind_of()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 58 def dummy_workaround_for_kind_of end
find(*working_selectors)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 85 def find(*working_selectors) # I do not call rmq below for performance reasons crmq = (rmq_data.cached_rmq ||= RMQ.create_with_selectors([], self)) if working_selectors.length == 0 crmq else RMQ.create_with_selectors(working_selectors, self, crmq) end end
font()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 117 def font rmq.font end
hide_keyboard()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 244 def hide_keyboard input_manager = activity.getSystemService(Android::Content::Context::INPUT_METHOD_SERVICE) input_manager.hideSoftInputFromWindow(view.getWindowToken(), 0) end
image()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 121 def image rmq.image end
log_tree()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 149 def log_tree rmq.log_tree end
onDestroy()
click to toggle source
Calls superclass method
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 61 def onDestroy #return super # disable rmq cleaning while debugging, but still super mp "onDestroy screen: #{self.class}", debugging_only: true self.cleanup super end
on_load()
click to toggle source
abstract methods
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 110 def on_load; end
on_options_item_selected(item)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 300 def on_options_item_selected(item) return unless @action_bar return unless method_name = @action_bar[:button_actions][item.getItemId] if respond_to?(method_name) send(method_name) else mp "#{self.inspect} No method #{method_name.inspect} implemented for this screen." true end end
on_return(opts={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 111 def on_return(opts={}); end
open(screen_class, options={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 163 def open(screen_class, options={}) mp "ScreenModule open", debugging_only: true if !options[:activity] && self.activity.respond_to?(:open_fragment) if screen_class.respond_to?(:new) screen = screen_class.new else screen = screen_class end self.activity.open_fragment screen, options else open_modal(screen_class, options) end end
open_modal(screen_class, options)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 178 def open_modal(screen_class, options) activity_class = options.delete(:activity) || PMNavigationActivity activity_class = PMNavigationActivity if activity_class == :nav activity_class = PMSingleFragmentActivity if activity_class == :single intent = Potion::Intent.new(self.activity, activity_class) intent.putExtra PMActivity::EXTRA_FRAGMENT_CLASS, screen_class.to_s intent.setFlags(Potion::Intent::FLAG_ACTIVITY_CLEAR_TOP) if options.delete(:close) if extras = options.delete(:extras) extras.keys.each do |key, value| # TODO, cahnge to bundle and do like below intent.putExtra key.to_s, value.toString end end unless options.blank? # The rest of the options are screen accessors, we use fragment arguments for this hash_bundle = PMHashBundle.from_hash(options) intent.putExtra PMActivity::EXTRA_FRAGMENT_ARGUMENTS, hash_bundle.to_bundle end self.activity.startActivity intent end
r(resource_type, resource_name)
click to toggle source
temporary stand-in for Java’s R class, TODO remove this
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 154 def r(resource_type, resource_name) resources.getIdentifier(resource_name.to_s, resource_type.to_s, activity.getApplicationInfo.packageName) end
rmq(*working_selectors)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 95 def rmq(*working_selectors) crmq = (rmq_data.cached_rmq ||= RMQ.create_with_selectors([], self)) if working_selectors.length == 0 crmq else RMQ.create_with_selectors(working_selectors, self, crmq) end end
rmq_data()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 54 def rmq_data @_rmq_data ||= RMQScreenData.new end
root_view()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 105 def root_view self.getView end
set_title()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 321 def set_title self.title = self.class.bars_title end
set_up_action_bar(options={})
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 263 def set_up_action_bar(options={}) if options[:show] action_bar.show action_bar.setDisplayHomeAsUpEnabled(!!options[:back]) action_bar.setDisplayShowHomeEnabled(!!options[:icon]) action_bar.setIcon(image.resource(options[:custom_icon].to_s)) if options[:custom_icon] action_bar.setHomeAsUpIndicator(image.resource(options[:custom_back].to_s)) if options[:custom_back] else action_bar.hide end end
show_keyboard()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 249 def show_keyboard field = activity.getCurrentFocus() input_manager = activity.getSystemService(Android::Content::Context::INPUT_METHOD_SERVICE) input_manager.showSoftInput(field, Android::View::InputMethod::InputMethodManager::SHOW_FORCED) end
show_toast(message)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 159 def show_toast(message) # TODO, remove this, use app.toast Android::Widget::Toast.makeText(activity, message, Android::Widget::Toast::LENGTH_SHORT).show end
soft_input_mode(mode)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 235 def soft_input_mode(mode) mode_const = case mode when :adjust_resize Android::View::WindowManager::LayoutParams::SOFT_INPUT_ADJUST_RESIZE end activity.getWindow().setSoftInputMode(mode_const) end
start_activity(activity_class)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 229 def start_activity(activity_class) intent = Potion::Intent.new(self.activity, activity_class) #intent.putExtra("key", value); # Optional parameters self.activity.startActivity(intent) end
stylesheet()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 77 def stylesheet self.rmq.stylesheet end
stylesheet=(value)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 81 def stylesheet=(value) self.rmq.stylesheet = value end
title()
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 325 def title @title end
title=(value)
click to toggle source
# File lib/project/pro_motion/fragments/pm_screen_module.rb, line 328 def title=(value) @title = value if a = self.activity if a_bar = self.action_bar a_bar.title = value end a.title = value end end