Skip to content

Commit

Permalink
Merged AddMessageActivity into MessageListActivity, use alarm for UDP…
Browse files Browse the repository at this point in the history
… broadcast
  • Loading branch information
blanu committed Nov 4, 2011
1 parent 0014d82 commit a12e0da
Show file tree
Hide file tree
Showing 17 changed files with 250 additions and 201 deletions.
6 changes: 3 additions & 3 deletions android/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
<activity android:name=".MessageListActivity"
android:label="@string/message_list">
</activity>
<activity android:name=".AddMessageActivity"
android:label="@string/add_message">
</activity>
<activity android:name=".AddPhotoActivity"
android:label="@string/addphoto">
</activity>
<activity android:name=".EnterPasswordActivity"
android:label="@string/enter_password_text">
</activity>
<service android:name=".LANProbeService" />
</application>
</manifest>
24 changes: 0 additions & 24 deletions android/res/layout/add_message.xml

This file was deleted.

10 changes: 5 additions & 5 deletions android/res/layout/list_item.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp"/>
27 changes: 27 additions & 0 deletions android/res/layout/list_messages.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/msgtext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/submit"
/>
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
<TextView android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="No data"/>
</LinearLayout>
2 changes: 0 additions & 2 deletions android/res/menu/menu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
android:title="@string/log" />
<item android:id="@+id/list"
android:title="@string/list" />
<item android:id="@+id/add"
android:title="@string/add" />
<item android:id="@+id/addphoto"
android:title="@string/addphoto" />
<item android:id="@+id/destroy"
Expand Down
1 change: 0 additions & 1 deletion android/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<string name="message_list">Messages</string>
<string name="add_message">Post a message</string>
<string name="submit">Submit</string>
<string name="add">Add</string>
<string name="addphoto">Photo</string>
<string name="destroy">Destroy</string>
<string name="takephoto">Take Photo</string>
Expand Down
57 changes: 0 additions & 57 deletions android/src/net/blanu/sneakermesh/AddMessageActivity.java

This file was deleted.

5 changes: 1 addition & 4 deletions android/src/net/blanu/sneakermesh/AndroidSneakermesh.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,7 @@ public AndroidSneakermesh(Context p)
Log.e(TAG, "null extdir: "+p.getExternalFilesDir(null));
}

probe=p;

Message.setLogger(this);
Util.setLogger(this);
probe=p;
}

public void log(String s)
Expand Down
48 changes: 46 additions & 2 deletions android/src/net/blanu/sneakermesh/LANProbeService.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package net.blanu.sneakermesh;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.Socket;
Expand All @@ -9,6 +11,8 @@
import java.util.Enumeration;
import java.util.List;
import java.util.Collections;
import java.util.Timer;
import java.util.TimerTask;

import android.app.Service;
import android.content.Context;
Expand All @@ -30,11 +34,16 @@ public class LANProbeService extends Service implements Logger
static Intent intent;
private final IBinder mBinder = new LocalBinder();

List<String> lines=new ArrayList<String>();

@Override
public void onCreate() {
super.onCreate();
BROADCAST_ACTION=this.getPackageName()+".log";
intent = new Intent(BROADCAST_ACTION);

Message.setLogger(this);
Util.setLogger(this);
}

@Override
Expand All @@ -45,6 +54,9 @@ public int onStartCommand(Intent intent, int flags, int startId) {
{
mesh=new AndroidSneakermesh(this);

Timer timer = new Timer();
timer.scheduleAtFixedRate(new UDPBroadcast(), 1, 30*1000);

try
{
SyncServer server=new SyncServer(mesh);
Expand All @@ -56,7 +68,7 @@ public int onStartCommand(Intent intent, int flags, int startId) {
}

try {
probe=new UDPLANProbe(mesh, getBroadcastAddress());
probe=new UDPLANProbe(mesh, getBroadcastAddress(), false);
probe.start();
} catch (IOException e) {
e.printStackTrace();
Expand All @@ -67,6 +79,32 @@ public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}

private class UDPBroadcast extends TimerTask
{
@Override
public void run()
{
InetAddress ip;
try {
ip = getBroadcastAddress();
} catch (IOException e1) {
e1.printStackTrace();
return;
}
log("broadcasting to: "+ip);
DatagramSocket socket;
try {
socket = new DatagramSocket();
socket.setBroadcast(true);
String data="\0x00";
DatagramPacket packet = new DatagramPacket(data.getBytes(), data.length(), ip, 11917);
socket.send(packet);
} catch (Exception e) {
e.printStackTrace();
}
}
}

public Sneakermesh getMesh()
{
return mesh;
Expand Down Expand Up @@ -98,7 +136,13 @@ public void log(String s)
{
Log.e(TAG, s);

intent.putExtra("logline", s);
lines.add(s);
if(lines.size()>30)
{
lines.remove(0);
}

intent.putExtra("logline", Util.join((String[])lines.toArray(new String[0]), "\n"));
sendBroadcast(intent);
}

Expand Down
3 changes: 1 addition & 2 deletions android/src/net/blanu/sneakermesh/LogViewerActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@ public void log(String logline)
TextView text=(TextView)findViewById(R.id.textview);
if(text!=null && logline!=null)
{
text.append(logline);
text.append("\n");
text.setText(logline);
}
else
{
Expand Down
47 changes: 44 additions & 3 deletions android/src/net/blanu/sneakermesh/MessageListActivity.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.blanu.sneakermesh;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
Expand All @@ -16,13 +17,17 @@
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
Expand All @@ -32,6 +37,39 @@ public class MessageListActivity extends SneakermeshListActivity implements Logg
{
private static final String TAG="MessageListActivity";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);

setContentView(R.layout.list_messages);

final Button button = (Button) findViewById(R.id.submit);
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
final TextView tv = (TextView) findViewById(R.id.msgtext);
String s=tv.getText().toString();
tv.setText("");
tv.clearComposingText();

try
{
probe.getMesh().addMessage(new TextMessage(s));

refreshUI();
} catch (IOException e) {
e.printStackTrace();
}

InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(tv.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
});
}

@Override
protected void onResume() {
super.onResume();
Expand All @@ -49,19 +87,22 @@ protected void refreshUI()

List<Message> msgs=probe.getMesh().getMessages();
Collections.sort(msgs);
Collections.reverse(msgs);

for(Message msg : msgs)
{
TextMessage tm=(TextMessage)msg;
adapter.add(tm.getText());
}
adapter.notifyDataSetChanged();
adapter.notifyDataSetChanged();
}

protected void createView()
{
List<Message>msgs=probe.getMesh().getMessages();
Collections.sort(msgs);
Collections.reverse(msgs);

adapter=new ArrayAdapter<String>(this, R.layout.list_item, new ArrayList<String>());
for(Message msg : msgs)
{
Expand All @@ -71,7 +112,7 @@ protected void createView()
setListAdapter(adapter);

ListView lv = getListView();
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_DISABLED);

lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
Expand All @@ -80,6 +121,6 @@ public void onItemClick(AdapterView<?> parent, View view,
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
});
}
}
Loading

0 comments on commit a12e0da

Please sign in to comment.