package org.magnum.soda.example; import org.magnum.soda.android.AndroidSoda; import org.magnum.soda.android.AndroidSodaListener; import org.magnum.soda.android.SodaInvokeInUi; import org.magnum.soda.example.sodaclient.R; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements AndroidSodaListener{ private TextView status; private Button addReportButton_; private AndroidSoda as_; private AndroidSodaListener asl_; private Reports reports; private Report r; private static final String server_address_ = "192.168.173.1"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); status = (TextView) findViewById(R.id.textView_status); addReportButton_ = (Button) findViewById(R.id.button_add); addReportButton_.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addReport(); } }); AndroidSoda.init(this, server_address_, 8081, this); } @Override public void connected(AndroidSoda soda) { this.as_ = soda; getReport(); } public void getReport(){ AndroidSoda.async(new Runnable() { @Override public void run() { reports = as_.get(Reports.class,Reports.SVC_NAME); r = reports.getReports().get(0); as_.inUi(new Runnable() { @Override public void run() { updateStatus(r.getContent()); } }); reports.addListener(new ReportsListener() { @Override @SodaInvokeInUi public void reportAdded(Report r){ Log.d("SODA","reportAdded:#4 " + System.currentTimeMillis()); Log.d("SODA","reportAdded: "+ r.getContent()); status.setText(r.getContent()); Toast.makeText(MainActivity.this, "Add new report:" + r.getContent(), Toast.LENGTH_SHORT).show(); } @Override @SodaInvokeInUi public void reportchanged(Report r) { Log.d("SODA","report modified: "+ r.getContent()); status.setText(r.getContent()); Toast.makeText(MainActivity.this, "Modified report:"+r.getContent(), Toast.LENGTH_SHORT).show(); } }); } }); } public void addReport(){ Log.d("SODA","addReport#1: " + System.currentTimeMillis()); AndroidSoda.async(new Runnable() { @Override public void run() { reports = as_.get(Reports.class,Reports.SVC_NAME); Log.d("SODA","listeners size: "+ reports.getListeners().size()); Report r = new Report("First report."); reports.addReport(r); } }); } @SodaInvokeInUi public void updateStatus(String content){ Log.d("SODA","In updateStatus: "+ r.getContent()); status.setText(content); } } //93-6=87