Modified:
/AndroidManifest.xml
/src/sk/madzik/android/logcatudp/LogcatThread.java
/src/sk/madzik/android/logcatudp/LogcatUdpService.java
=======================================
--- /AndroidManifest.xml Fri Jun 3 05:56:14 2011
+++ /AndroidManifest.xml Tue Oct 4 05:53:03 2011
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sk.madzik.android.logcatudp"
- android:versionCode="3"
- android:versionName="0.3">
+ android:versionCode="4"
+ android:versionName="0.4">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
@@ -17,7 +17,8 @@
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
- <service android:name="LogcatUdpService"></service>
+ <service android:name="LogcatUdpService"
+ android:process=":LogcatUdpService"/>
<receiver android:name="LogcatUdpReceiver"
android:enabled="true"
android:exported="false">
=======================================
--- /src/sk/madzik/android/logcatudp/LogcatThread.java Mon Jun 6 04:18:30
2011
+++ /src/sk/madzik/android/logcatudp/LogcatThread.java Tue Oct 4 05:53:03
2011
@@ -6,6 +6,7 @@
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
+import java.net.SocketException;
import android.util.Log;
import sk.madzik.android.logcatudp.LogcatUdpService.Config;
@@ -35,17 +36,22 @@
BufferedReader bufferedReader = new BufferedReader(new
InputStreamReader(process.getInputStream()));
String logLine;
while ( true ) {
+ String sendingLine = "";
// assume that log writes whole lines
if ( bufferedReader.ready() ) {
logLine = bufferedReader.readLine();
- String sendingLine = "";
if ( mConfig.mSendIds ) {
sendingLine = mConfig.mDevId + ": ";
}
sendingLine += logLine + System.getProperty("line.separator");
DatagramPacket packet = new DatagramPacket(sendingLine.getBytes(),
sendingLine.length(),
InetAddress.getByName(mConfig.mDestServer), mConfig.mDestPort);
- mSocket.send(packet);
+ try {
+ mSocket.send(packet);
+ sendingLine = "";
+ } catch (SocketException e) {
+ // it's OK, line was remembered
+ }
}
if ( isInterrupted() ) {
Log.d( TAG, "interupted." );
=======================================
--- /src/sk/madzik/android/logcatudp/LogcatUdpService.java Fri Jun 3
05:56:14 2011
+++ /src/sk/madzik/android/logcatudp/LogcatUdpService.java Tue Oct 4
05:53:03 2011
@@ -86,7 +86,11 @@
if ( mLogcatThread != null ) {
mLogcatThread.interrupt();
try {
- mLogcatThread.join();
+ mLogcatThread.join(1000);
+ if ( mLogcatThread.isAlive() ) {
+ // TODO: Display "force close/wait" dialog
+ mLogcatThread.join();
+ }
} catch (InterruptedException e) {
e.printStackTrace();
Log.w(TAG, "Joining logcat thread exception.");