mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-04-23 20:31:17 +08:00
refactor with attr_{reader,accessor}
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
class TimerButtonListener < Java::Lang::Object
|
||||
def set_activity(activity)
|
||||
@activity = activity
|
||||
end
|
||||
attr_accessor :activity
|
||||
|
||||
def onClick(view)
|
||||
@activity.toggleTimer
|
||||
@@ -9,9 +7,7 @@ class TimerButtonListener < Java::Lang::Object
|
||||
end
|
||||
|
||||
class TimerTask < Java::Util::TimerTask
|
||||
def set_activity(activity)
|
||||
@activity = activity
|
||||
end
|
||||
attr_accessor :activity
|
||||
|
||||
def run
|
||||
@activity.handler.post -> { @activity.updateTimer }
|
||||
@@ -19,6 +15,8 @@ class TimerTask < Java::Util::TimerTask
|
||||
end
|
||||
|
||||
class MainActivity < Android::App::Activity
|
||||
attr_reader :handler
|
||||
|
||||
def onCreate(savedInstanceState)
|
||||
super
|
||||
@handler = Android::Os::Handler.new
|
||||
@@ -35,17 +33,13 @@ class MainActivity < Android::App::Activity
|
||||
@button = Android::Widget::Button.new(self)
|
||||
@button.text = 'Start'
|
||||
listener = TimerButtonListener.new
|
||||
listener.set_activity self
|
||||
listener.activity = self
|
||||
@button.onClickListener = listener
|
||||
layout.addView(@button)
|
||||
|
||||
self.contentView = layout
|
||||
end
|
||||
|
||||
def handler
|
||||
@handler
|
||||
end
|
||||
|
||||
def toggleTimer
|
||||
if @timer
|
||||
@timer.cancel
|
||||
@@ -55,7 +49,7 @@ class MainActivity < Android::App::Activity
|
||||
@timer = Java::Util::Timer.new
|
||||
@counter = 0
|
||||
task = TimerTask.new
|
||||
task.set_activity self
|
||||
task.activity = self
|
||||
@timer.schedule task , 0, 100
|
||||
@button.text = 'Stop'
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class MainActivity < Android::App::Activity
|
||||
attr_reader :webview, :handler
|
||||
|
||||
def onCreate(savedInstanceState)
|
||||
super
|
||||
@handler = Android::Os::Handler.new
|
||||
@@ -12,27 +14,17 @@ class MainActivity < Android::App::Activity
|
||||
|
||||
@webview.webChromeClient = MyWebChromeClient.new
|
||||
js_interface = DemoJavaScriptInterface.new
|
||||
js_interface.set_context(self)
|
||||
js_interface.context = self
|
||||
@webview.addJavascriptInterface(js_interface, "demo")
|
||||
|
||||
@webview.loadUrl("file:///android_asset/demo.html")
|
||||
|
||||
self.contentView = @webview
|
||||
end
|
||||
|
||||
def webview
|
||||
@webview
|
||||
end
|
||||
|
||||
def handler
|
||||
@handler
|
||||
end
|
||||
end
|
||||
|
||||
class DemoJavaScriptInterface < Java::Lang::Object
|
||||
def set_context(context)
|
||||
@context = context
|
||||
end
|
||||
attr_accessor :context
|
||||
|
||||
__annotation__('@android.webkit.JavascriptInterface')
|
||||
def clickOnAndroid
|
||||
|
||||
Reference in New Issue
Block a user