package me.arpith.dmucscom;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.RemoteException;
import android.provider.BaseColumns;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class ScattActivity extends ScatterFriend {
public static final String TAG = ScattActivity.class.getSimpleName();
private EditText writeTweetView;
private String[] devices = {};
private boolean abort = false;
String UserName = "Arpith";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getActionBar().setBackgroundDrawable(new ColorDrawable(Color.BLACK));
writeTweetView = (EditText) findViewById(R.id.writeTweet);
ListView tweetList = (ListView) findViewById(R.id.tweetList);
String[] proj = new String[] { BaseColumns._ID, Constant.AUTHORID,
Constant.AUTHOR, Constant.MES, Constant.DATETIME };
showNumofMem();
Cursor c = managedQuery(Constant.TWEET_CONTENT_URI, proj, null, null,
null);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.tweetitem, c, new String[] { Constant.AUTHOR,
Constant.DATETIME, Constant.MES }, new int[] {
R.id.tweetAuthor, R.id.tweetTimeStamp, R.id.tweetMes });
tweetList.setAdapter(adapter);
Cursor tweets = getContentResolver().query(Constant.TWEET_CONTENT_URI,
proj, null, null, null);
if (tweets.getCount() == 0)
insertToDB("Disaster Recovery",
"You may now start chatting with people around you..");
}
public void writeTweet(View v) {
String myTweet = writeTweetView.getText().toString();
if (!myTweet.equals("")) {
boolean insert = insertToDB(UserName, myTweet);
if (insert)
writeTweetView.setText("");
}
try {
// All messages to be sent out must be separated with "|" between
// units
// A tweet is composed of three units(identifier+name+content)
myTweet = TWEET + "|" + UserName + "|" + myTweet;
devices = beddernetService.getDevices(applicationIdentifier);
beddernetService.sendMulticast(devices, null, myTweet.getBytes(),
applicationIdentifier);
} catch (RemoteException e) {
Log.e(TAG, "unable to get peer devices, are you out of network?");
}
}
@Override
public void onDestroy() {
super.onDestroy();
abort = true;
}
public void showNumofMem() {
new Thread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "updating number of members");
while (!abort) {
try {
if (beddernetService != null)
devices = beddernetService
.getDevices(applicationIdentifier);
} catch (RemoteException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
// numOfMembers.setText(devices.length+" ");
writeTweetView.setHint("Number of devices: "
+ devices.length);
}
});
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
}