package org.ruboto; import java.io.IOException; import org.ruboto.Script; import android.app.ProgressDialog; import android.os.Bundle; public class RubotoActivity extends android.app.Activity implements org.ruboto.RubotoComponent { public static final String THEME_KEY = "RUBOTO_THEME"; /** * Called at the start of onCreate() to prepare the Activity. * @return true if onCreate() should just call super and terminate. */ private boolean preOnCreate(Bundle bundle) { System.out.println("RubotoActivity onCreate(): " + getClass().getName() + ", finishing: " + isFinishing()); if (isFinishing()) return true; // Shut this RubotoActivity down if it's not able to restart if (this.getClass().getName().equals("org.ruboto.RubotoActivity") && !JRubyAdapter.isInitialized()) { super.onCreate(bundle); System.out.println("Shutting down stale RubotoActivity: " + getClass().getName()); finish(); return true; } // FIXME(uwe): Deprecated as of Ruboto 0.13.0. Remove in june 2014 (twelve months). Bundle configBundle = getIntent().getBundleExtra("Ruboto Config"); if (configBundle != null) { if (configBundle.containsKey("Theme")) { setTheme(configBundle.getInt("Theme")); } } // EMXIF if (getIntent().hasExtra(THEME_KEY)) { setTheme(getIntent().getIntExtra(THEME_KEY, 0)); } scriptInfo.setFromIntent(getIntent()); return false; } private final ScriptInfo scriptInfo = new ScriptInfo(); public ScriptInfo getScriptInfo() { return scriptInfo; } /**************************************************************************************** * * Generated Methods */ public void onActivityResult(int requestCode, int resultCode, android.content.Intent data) { if (ScriptLoader.isCalledFromJRuby()) {super.onActivityResult(requestCode, resultCode, data); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onActivityResult"); {super.onActivityResult(requestCode, resultCode, data); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onActivityResult(requestCode, resultCode, data); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onActivityResult}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onActivityResult", new Object[]{requestCode, resultCode, data}); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_activity_result}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_activity_result", new Object[]{requestCode, resultCode, data}); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_activity_result}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_activity_result", new Object[]{requestCode, resultCode, data}); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onActivityResult", new Object[]{requestCode, resultCode, data}); } } } } public void onConfigurationChanged(android.content.res.Configuration newConfig) { if (ScriptLoader.isCalledFromJRuby()) {super.onConfigurationChanged(newConfig); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onConfigurationChanged"); {super.onConfigurationChanged(newConfig); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onConfigurationChanged(newConfig); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onConfigurationChanged}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onConfigurationChanged", newConfig); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_configuration_changed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_configuration_changed", newConfig); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_configuration_changed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_configuration_changed", newConfig); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onConfigurationChanged", newConfig); } } } } public boolean onContextItemSelected(android.view.MenuItem item) { if (ScriptLoader.isCalledFromJRuby()) return super.onContextItemSelected(item); if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onContextItemSelected"); return super.onContextItemSelected(item); } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) return super.onContextItemSelected(item); if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onContextItemSelected}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onContextItemSelected", item); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_context_item_selected}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_context_item_selected", item); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_context_item_selected}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_context_item_selected", item); } else { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onContextItemSelected", item); } } } } public void onContextMenuClosed(android.view.Menu menu) { if (ScriptLoader.isCalledFromJRuby()) {super.onContextMenuClosed(menu); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onContextMenuClosed"); {super.onContextMenuClosed(menu); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onContextMenuClosed(menu); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onContextMenuClosed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onContextMenuClosed", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_context_menu_closed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_context_menu_closed", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_context_menu_closed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_context_menu_closed", menu); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onContextMenuClosed", menu); } } } } public void onCreate(android.os.Bundle savedInstanceState) { if (ScriptLoader.isCalledFromJRuby()) {super.onCreate(savedInstanceState); return;} if (preOnCreate(savedInstanceState)) {super.onCreate(savedInstanceState); return;}; if (JRubyAdapter.isInitialized() && scriptInfo.isReadyToLoad()) { ScriptLoader.loadScript(this); } else { {super.onCreate(savedInstanceState); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onCreate(savedInstanceState); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onCreate}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onCreate", savedInstanceState); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_create}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_create", savedInstanceState); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_create}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_create", savedInstanceState); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onCreate", savedInstanceState); } } } } public void onCreateContextMenu(android.view.ContextMenu menu, android.view.View v, android.view.ContextMenu.ContextMenuInfo menuInfo) { if (ScriptLoader.isCalledFromJRuby()) {super.onCreateContextMenu(menu, v, menuInfo); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onCreateContextMenu"); {super.onCreateContextMenu(menu, v, menuInfo); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onCreateContextMenu(menu, v, menuInfo); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onCreateContextMenu}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onCreateContextMenu", new Object[]{menu, v, menuInfo}); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_create_context_menu}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_create_context_menu", new Object[]{menu, v, menuInfo}); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_create_context_menu}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_create_context_menu", new Object[]{menu, v, menuInfo}); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onCreateContextMenu", new Object[]{menu, v, menuInfo}); } } } } public boolean onCreateOptionsMenu(android.view.Menu menu) { if (ScriptLoader.isCalledFromJRuby()) return super.onCreateOptionsMenu(menu); if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onCreateOptionsMenu"); return super.onCreateOptionsMenu(menu); } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) return super.onCreateOptionsMenu(menu); if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onCreateOptionsMenu}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onCreateOptionsMenu", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_create_options_menu}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_create_options_menu", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_create_options_menu}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_create_options_menu", menu); } else { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onCreateOptionsMenu", menu); } } } } public void onDestroy() { if (ScriptLoader.isCalledFromJRuby()) {super.onDestroy(); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onDestroy"); {super.onDestroy(); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onDestroy(); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onDestroy}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onDestroy"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_destroy}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_destroy"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_destroy}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_destroy"); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onDestroy"); } } } ScriptLoader.unloadScript(this); } public void onNewIntent(android.content.Intent intent) { if (ScriptLoader.isCalledFromJRuby()) {super.onNewIntent(intent); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onNewIntent"); {super.onNewIntent(intent); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onNewIntent(intent); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onNewIntent}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onNewIntent", intent); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_new_intent}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_new_intent", intent); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_new_intent}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_new_intent", intent); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onNewIntent", intent); } } } } public boolean onOptionsItemSelected(android.view.MenuItem item) { if (ScriptLoader.isCalledFromJRuby()) return super.onOptionsItemSelected(item); if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onOptionsItemSelected"); return super.onOptionsItemSelected(item); } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) return super.onOptionsItemSelected(item); if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onOptionsItemSelected}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onOptionsItemSelected", item); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_options_item_selected}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_options_item_selected", item); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_options_item_selected}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_options_item_selected", item); } else { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onOptionsItemSelected", item); } } } } public void onOptionsMenuClosed(android.view.Menu menu) { if (ScriptLoader.isCalledFromJRuby()) {super.onOptionsMenuClosed(menu); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onOptionsMenuClosed"); {super.onOptionsMenuClosed(menu); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onOptionsMenuClosed(menu); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onOptionsMenuClosed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onOptionsMenuClosed", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_options_menu_closed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_options_menu_closed", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_options_menu_closed}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_options_menu_closed", menu); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onOptionsMenuClosed", menu); } } } } public void onPause() { if (ScriptLoader.isCalledFromJRuby()) {super.onPause(); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onPause"); {super.onPause(); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onPause(); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onPause}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onPause"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_pause}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_pause"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_pause}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_pause"); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onPause"); } } } } public boolean onPrepareOptionsMenu(android.view.Menu menu) { if (ScriptLoader.isCalledFromJRuby()) return super.onPrepareOptionsMenu(menu); if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onPrepareOptionsMenu"); return super.onPrepareOptionsMenu(menu); } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) return super.onPrepareOptionsMenu(menu); if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onPrepareOptionsMenu}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onPrepareOptionsMenu", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_prepare_options_menu}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_prepare_options_menu", menu); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_prepare_options_menu}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_prepare_options_menu", menu); } else { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onPrepareOptionsMenu", menu); } } } } public void onResume() { if (ScriptLoader.isCalledFromJRuby()) {super.onResume(); return;} if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onResume"); {super.onResume(); return;} } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) {super.onResume(); return;} if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onResume}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onResume"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_resume}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_resume"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_resume}")) { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "on_resume"); } else { JRubyAdapter.runRubyMethod(scriptInfo.getRubyInstance(), "onResume"); } } } } public boolean onSearchRequested() { if (ScriptLoader.isCalledFromJRuby()) return super.onSearchRequested(); if (!JRubyAdapter.isInitialized()) { Log.i("Method called before JRuby runtime was initialized: RubotoActivity#onSearchRequested"); return super.onSearchRequested(); } String rubyClassName = scriptInfo.getRubyClassName(); if (rubyClassName == null) return super.onSearchRequested(); if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :onSearchRequested}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onSearchRequested"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(false).any?{|m| m.to_sym == :on_search_requested}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_search_requested"); } else { if ((Boolean)JRubyAdapter.runScriptlet(rubyClassName + ".instance_methods(true).any?{|m| m.to_sym == :on_search_requested}")) { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "on_search_requested"); } else { return (Boolean) JRubyAdapter.runRubyMethod(Boolean.class, scriptInfo.getRubyInstance(), "onSearchRequested"); } } } } }