/** * license (MIT) Copyright Nubisa Inc. 2014 */ package com.jxcore.androidmessagingclient; import jxcore.Client; import jxcore.ClientEvents; import jxcore.LogLevel; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity { Button btn = null; EditText txtInput = null; TextView txtLog = null; Handler uiThreadHandler = new Handler() { public void handleMessage(Message msg) { Object o = msg.obj; if (o == null) o = ""; addText(o.toString()); } }; jxcore.Callback callback = null; ClientEvents events = null; Client client = null; Integer cnt = 1; private void addTextToMain(String txt){ Message msg = uiThreadHandler.obtainMessage(); msg.obj = txt; uiThreadHandler.sendMessage(msg); } Thread thread = new Thread(new Runnable() { @Override public void run() { // String str = "Osiem"; // String xxx = ""; // try { // Gson g = new Gson(); // xxx = g.toJson(str); // addTextToMain(xxx); // } catch(Exception ex) { // addTextToMain(ex.getMessage()); // } if (client.Connect()) { addTextToMain("Ready."); // let's call the server-side method "serverMethod" from the // client-side! // in turn, as a response, the backend service will invoke // client's local "callback" defined above! // client.Call("serverMethod", "Hello", callback); } } }); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.button1); txtInput = (EditText) findViewById(R.id.editText1); txtLog = (TextView) findViewById(R.id.textView1); events = new ClientEvents() { @Override public void OnClientConnected(Client c) { System.out.println("Connected"); } @Override public void OnClientDisconnected(Client arg0) { System.out.println("Disconnected"); } @Override public void OnErrorReceived(Client c, String Message) { System.out.println("Error received:" + Message); } @Override public void OnEventLog(Client arg0, String arg1, LogLevel arg2) { System.out.println("Log, message: " + arg1); } }; callback = new jxcore.Callback() { @Override public void call(Object o) throws Exception { addTextToMain("From server: " + o.toString()); // System.out.println("Received from the server " // + o.toString()); } }; // let's create a client instance client = new Client(new CustomMethods(), "helloworld", "NUBISA-STANDARD-KEY-CHANGE-THIS", "192.168.1.11", 8000, false, true); // let's assign events object client.Events = events; txtInput.setText("txt" + Integer.toString(cnt++)); thread.start(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void btnClick(View view) { String s = txtInput.getText().toString(); //txtLog.setText(s); client.Call("serverMethod", s, callback); txtInput.setText("txt" + Integer.toString(cnt++)); } public void addText(String s) { String tmp = txtLog.getText().toString() + "\n"; txtLog.setText(tmp + s); } }