RpcReceiverManager getRpcReceiverManager() throws InterruptedException { mLatch.await(); if (mFacadeManager == null) { // Facade manage may not be available on // startup. mFacadeManager = mProxy.getRpcReceiverManagerFactory().getRpcReceiverManagers().get(0); } return mFacadeManager; }
@Override public void onStart(Intent intent, final int startId) { super.onStart(intent, startId); String path = intent.getStringExtra("scriptPath"); Log.d("Script Path: " + path); mScript = new Script(path); Log.d("FileName: " + mScript.getFileName()); Log.d("FileExtension: " + mScript.getFileExtension()); handleNetwork(); Interpreter interpreter = mInterpreterConfiguration.getInterpreterForScript(mScript.getFileName()); if (interpreter == null || !interpreter.isInstalled()) { mLatch.countDown(); if (FeaturedInterpreters.isSupported(mScript.getFileName())) { Log.d("Is Supported"); Intent i = new Intent(this, DialogActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.putExtra(Constants.EXTRA_SCRIPT_PATH, mScript.getFileName()); startActivity(i); } else { Log.e(this, "Cannot find an interpreter for script " + mScript.getFileName()); } stopSelf(startId); return; } File script = new File(path); Log.d("Launch with proxy "); mProxy = new AndroidProxy(this, null, true); mProxy.startLocal(); mLatch.countDown(); ScriptLauncher.launchScript( script, mInterpreterConfiguration, mProxy, new Runnable() { @Override public void run() { mProxy.shutdown(); stopSelf(startId); } }); }
@Override public void onDestroy() { super.onDestroy(); Log.d("onDestroy()"); Log.d("Closing socket connections"); if (mProxy != null) mProxy.shutdown(); Log.d("Script ended"); try { if (sock != null) { sock.close(); sock = null; } if (serverSock != null) { serverSock.close(); serverSock = null; } } catch (IOException e) { Log.d(e.toString()); } }