Module: PMScreenModule
- Included in:
- PMScreen
- Defined in:
- lib/project/pro_motion/pm_screen_module.rb
Overview
hipbyte.myjetbrains.com/youtrack/issue/RM-773 - can’t put this in a module yet :( module ProMotion
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #action_bar ⇒ Object
- #activity ⇒ Object
-
#add_action_bar_button(options = {}) ⇒ Object
Example: add_action_bar_button(title: “My text”, show: :if_room).
- #append(view_or_class, style = nil, opts = {}, dummy = nil) ⇒ Object
- #append!(view_or_class, style = nil, opts = {}) ⇒ Object
- #close(options = {}) ⇒ Object
- #color(*params) ⇒ Object
- #font ⇒ Object
- #hide_keyboard ⇒ Object
- #image ⇒ Object
- #menu ⇒ Object
- #on_load ⇒ Object
- #open(screen_class, options = {}) ⇒ Object
-
#r(resource_type, resource_name) ⇒ Object
temporary stand-in for Java’s R class.
- #rmq(*working_selectors) ⇒ Object
- #rmq_data ⇒ Object
- #root_view ⇒ Object
- #show_toast(message) ⇒ Object
- #soft_input_mode(mode) ⇒ Object
- #start_activity(activity_class) ⇒ Object
- #stylesheet ⇒ Object
- #stylesheet=(value) ⇒ Object
Class Method Details
.included(base) ⇒ Object
4 5 6 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 4 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#action_bar ⇒ Object
166 167 168 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 166 def activity.getActionBar() end |
#activity ⇒ Object
162 163 164 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 162 def activity getActivity() end |
#add_action_bar_button(options = {}) ⇒ Object
Example: add_action_bar_button(title: “My text”, show: :if_room)
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 175 def (={}) unless mp "#{self.inspect}#add_action_bar_button: No menu set up yet." return end [:show] ||= :always # Should be something like Android::MenuItem::SHOW_AS_ACTION_IF_ROOM show_as_action = 0 if [:show] == :never show_as_action = 1 if [:show] == :if_room show_as_action = 2 if [:show] == :always show_as_action = 4 if [:show] == :with_text show_as_action = 8 if [:show] == :collapse btn = self.activity..add(.fetch(:group, 0), .fetch(:item_id, 0), .fetch(:order, 0), .fetch(:title, "Untitled")) btn.setShowAsAction(show_as_action) if show_as_action btn.setIcon([:icon]) if [:icon] btn end |
#append(view_or_class, style = nil, opts = {}, dummy = nil) ⇒ Object
88 89 90 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 88 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 = {}) ⇒ Object
92 93 94 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 92 def append!(view_or_class, style=nil, opts={}) self.rmq.append(view_or_class, style, opts).get end |
#close(options = {}) ⇒ Object
137 138 139 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 137 def close(={}) self.activity.finish end |
#color(*params) ⇒ Object
76 77 78 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 76 def color(*params) RMQ.color(*params) end |
#font ⇒ Object
80 81 82 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 80 def font rmq.font end |
#hide_keyboard ⇒ Object
156 157 158 159 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 156 def hide_keyboard input_manager = activity.getSystemService(Android::Content::Context::INPUT_METHOD_SERVICE) input_manager.hideSoftInputFromWindow(view.getWindowToken(), 0); end |
#image ⇒ Object
84 85 86 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 84 def image rmq.image end |
#menu ⇒ Object
170 171 172 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 170 def activity. end |
#on_load ⇒ Object
72 73 74 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 72 def on_load # abstract end |
#open(screen_class, options = {}) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 109 def open(screen_class, ={}) mp "ScreenModule open", debugging_only: true activity_class = .delete(:activity) || PMSingleFragmentActivity # TODO: replace the fragment in the activity when possible # replace the fragment if we can; otherwise launch a new activity # we're taking a conservative approach for now - eventually we'll want to allow # replacing fragments for any kind of activity, but I'm not sure of the best way # to implement that yet intent = Android::Content::Intent.new(self.activity, activity_class) intent.putExtra PMSingleFragmentActivity::EXTRA_FRAGMENT_CLASS, screen_class.to_s if extras = .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 .blank? # The rest of the options are screen accessors, we use fragment arguments for this hash_bundle = PMHashBundle.from_hash() intent.putExtra PMSingleFragmentActivity::EXTRA_FRAGMENT_ARGUMENTS, hash_bundle.to_bundle end self.activity.startActivity intent end |
#r(resource_type, resource_name) ⇒ Object
temporary stand-in for Java’s R class
100 101 102 103 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 100 def r(resource_type, resource_name) resources.getIdentifier(resource_name.to_s, resource_type.to_s, activity.getApplicationInfo.packageName) end |
#rmq(*working_selectors) ⇒ Object
58 59 60 61 62 63 64 65 66 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 58 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 ⇒ Object
46 47 48 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 46 def rmq_data @_rmq_data ||= RMQScreenData.new end |
#root_view ⇒ Object
68 69 70 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 68 def root_view self.getView end |
#show_toast(message) ⇒ Object
105 106 107 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 105 def show_toast() Android::Widget::Toast.makeText(activity, , Android::Widget::Toast::LENGTH_SHORT).show end |
#soft_input_mode(mode) ⇒ Object
147 148 149 150 151 152 153 154 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 147 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) ⇒ Object
141 142 143 144 145 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 141 def start_activity(activity_class) intent = Android::Content::Intent.new(self.activity, activity_class) #intent.putExtra("key", value); # Optional parameters self.activity.startActivity(intent) end |
#stylesheet ⇒ Object
50 51 52 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 50 def stylesheet self.rmq.stylesheet end |
#stylesheet=(value) ⇒ Object
54 55 56 |
# File 'lib/project/pro_motion/pm_screen_module.rb', line 54 def stylesheet=(value) self.rmq.stylesheet = value end |