Browse Source

Settings implemented(no use of settings)

Lars 10 years ago
parent
commit
d93b2416f9
37 changed files with 273 additions and 102 deletions
  1. 33 33
      .project
  2. 7 0
      .settings/org.eclipse.jdt.core.prefs
  3. 8 2
      AndroidManifest.xml
  4. 8 2
      bin/AndroidManifest.xml
  5. BIN
      bin/classes.dex
  6. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/HoneyListener.class
  7. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/HoneyService.class
  8. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$array.class
  9. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$attr.class
  10. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$dimen.class
  11. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$drawable.class
  12. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$id.class
  13. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$layout.class
  14. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$menu.class
  15. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$string.class
  16. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R$style.class
  17. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/R.class
  18. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/ui/ListViewAdapter.class
  19. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$1.class
  20. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$2.class
  21. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$3.class
  22. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$4.class
  23. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$5.class
  24. BIN
      bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity.class
  25. BIN
      bin/hostage.apk
  26. BIN
      bin/resources.ap_
  27. 72 53
      gen/de/tudarmstadt/informatik/hostage/R.java
  28. 15 0
      res/values/preference_array.xml
  29. 3 1
      res/values/strings.xml
  30. 21 0
      res/values/strings_preferences.xml
  31. 44 0
      res/xml/preferences.xml
  32. 1 0
      src/de/tudarmstadt/informatik/hostage/HoneyListener.java
  33. 2 0
      src/de/tudarmstadt/informatik/hostage/protocol/TELNET.java
  34. 12 0
      src/de/tudarmstadt/informatik/hostage/ui/MainActivity.java
  35. 13 0
      src/de/tudarmstadt/informatik/hostage/ui/SettingsActivity.java
  36. 33 11
      src/de/tudarmstadt/informatik/hostage/ui/ViewLog.java
  37. 1 0
      src/de/tudarmstadt/informatik/hostage/ui/ViewLogTable.java

+ 33 - 33
.project

@@ -1,33 +1,33 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>hostage</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>hostage</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

+ 7 - 0
.settings/org.eclipse.jdt.core.prefs

@@ -1,4 +1,11 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.source=1.6

+ 8 - 2
AndroidManifest.xml

@@ -8,6 +8,7 @@
         android:minSdkVersion="8"
         android:targetSdkVersion="18" />
 
+    <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
@@ -28,11 +29,16 @@
         </activity>
         <activity
             android:name="de.tudarmstadt.informatik.hostage.ui.ViewLog"
-            android:label="@string/app_name" >
+            android:label="@string/statistics" >
         </activity>
        	<activity
             android:name="de.tudarmstadt.informatik.hostage.ui.ViewLogTable"
-            android:label="@string/app_name" >
+            android:label="@string/logFile" >
+        </activity>
+        
+       	<activity
+            android:name="de.tudarmstadt.informatik.hostage.ui.SettingsActivity"
+            android:label="@string/settings" >
         </activity>
 
         <service android:name="de.tudarmstadt.informatik.hostage.HoneyService" >

+ 8 - 2
bin/AndroidManifest.xml

@@ -8,6 +8,7 @@
         android:minSdkVersion="8"
         android:targetSdkVersion="18" />
 
+    <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
@@ -28,11 +29,16 @@
         </activity>
         <activity
             android:name="de.tudarmstadt.informatik.hostage.ui.ViewLog"
-            android:label="@string/app_name" >
+            android:label="@string/statistics" >
         </activity>
        	<activity
             android:name="de.tudarmstadt.informatik.hostage.ui.ViewLogTable"
-            android:label="@string/app_name" >
+            android:label="@string/logFile" >
+        </activity>
+        
+       	<activity
+            android:name="de.tudarmstadt.informatik.hostage.ui.SettingsActivity"
+            android:label="@string/settings" >
         </activity>
 
         <service android:name="de.tudarmstadt.informatik.hostage.HoneyService" >

BIN
bin/classes.dex


BIN
bin/classes/de/tudarmstadt/informatik/hostage/HoneyListener.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/HoneyService.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$array.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$attr.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$dimen.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$drawable.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$id.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$layout.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$menu.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$string.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R$style.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/R.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/ListViewAdapter.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$1.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$2.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$3.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$4.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity$5.class


BIN
bin/classes/de/tudarmstadt/informatik/hostage/ui/MainActivity.class


BIN
bin/hostage.apk


BIN
bin/resources.ap_


+ 72 - 53
gen/de/tudarmstadt/informatik/hostage/R.java

@@ -15,7 +15,9 @@ public final class R {
         public static final int out_right_to_left=0x7f040003;
     }
     public static final class array {
-        public static final int protocols=0x7f060000;
+        public static final int protocols=0x7f070002;
+        public static final int upload_entries=0x7f070000;
+        public static final int upload_values=0x7f070001;
     }
     public static final class attr {
     }
@@ -26,8 +28,8 @@ public final class R {
          screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
     
          */
-        public static final int activity_horizontal_margin=0x7f050000;
-        public static final int activity_vertical_margin=0x7f050001;
+        public static final int activity_horizontal_margin=0x7f060000;
+        public static final int activity_vertical_margin=0x7f060001;
     }
     public static final class drawable {
         public static final int ic_launcher=0x7f020000;
@@ -41,36 +43,36 @@ public final class R {
         public static final int light_yellow_large=0x7f020008;
     }
     public static final class id {
-        public static final int TextViewServices=0x7f0a000f;
-        public static final int action_settings=0x7f0a001d;
-        public static final int buttonDeleteLog=0x7f0a0019;
-        public static final int buttonShowLog=0x7f0a0005;
-        public static final int buttonUploadLog=0x7f0a0018;
-        public static final int checkBoxParanoid=0x7f0a0003;
-        public static final int imageViewLight=0x7f0a0002;
-        public static final int layoutContainer=0x7f0a0012;
-        public static final int listViewProtocols=0x7f0a0010;
-        public static final int textFirstAttack=0x7f0a0013;
-        public static final int textFirstAttackValue=0x7f0a0014;
-        public static final int textLastAttack=0x7f0a0015;
-        public static final int textLastAttackValue=0x7f0a0016;
-        public static final int textLogFile=0x7f0a0017;
-        public static final int textStatistics=0x7f0a0011;
-        public static final int textViewBSSID=0x7f0a0009;
-        public static final int textViewBSSIDValue=0x7f0a000a;
-        public static final int textViewConnections=0x7f0a001b;
-        public static final int textViewConnectionsValue=0x7f0a001c;
-        public static final int textViewDetails=0x7f0a0006;
-        public static final int textViewExternalIP=0x7f0a000d;
-        public static final int textViewExternalIPValue=0x7f0a000e;
-        public static final int textViewInternalIP=0x7f0a000b;
-        public static final int textViewInternalIPValue=0x7f0a000c;
-        public static final int textViewProtocol=0x7f0a001a;
-        public static final int textViewSSID=0x7f0a0007;
-        public static final int textViewSSIDValue=0x7f0a0008;
-        public static final int textViewStatus=0x7f0a0001;
-        public static final int toggleButtonOnOff=0x7f0a0004;
-        public static final int viewAnimator=0x7f0a0000;
+        public static final int TextViewServices=0x7f0b000f;
+        public static final int action_settings=0x7f0b001d;
+        public static final int buttonDeleteLog=0x7f0b0019;
+        public static final int buttonShowLog=0x7f0b0005;
+        public static final int buttonUploadLog=0x7f0b0018;
+        public static final int checkBoxParanoid=0x7f0b0003;
+        public static final int imageViewLight=0x7f0b0002;
+        public static final int layoutContainer=0x7f0b0012;
+        public static final int listViewProtocols=0x7f0b0010;
+        public static final int textFirstAttack=0x7f0b0013;
+        public static final int textFirstAttackValue=0x7f0b0014;
+        public static final int textLastAttack=0x7f0b0015;
+        public static final int textLastAttackValue=0x7f0b0016;
+        public static final int textLogFile=0x7f0b0017;
+        public static final int textStatistics=0x7f0b0011;
+        public static final int textViewBSSID=0x7f0b0009;
+        public static final int textViewBSSIDValue=0x7f0b000a;
+        public static final int textViewConnections=0x7f0b001b;
+        public static final int textViewConnectionsValue=0x7f0b001c;
+        public static final int textViewDetails=0x7f0b0006;
+        public static final int textViewExternalIP=0x7f0b000d;
+        public static final int textViewExternalIPValue=0x7f0b000e;
+        public static final int textViewInternalIP=0x7f0b000b;
+        public static final int textViewInternalIPValue=0x7f0b000c;
+        public static final int textViewProtocol=0x7f0b001a;
+        public static final int textViewSSID=0x7f0b0007;
+        public static final int textViewSSIDValue=0x7f0b0008;
+        public static final int textViewStatus=0x7f0b0001;
+        public static final int toggleButtonOnOff=0x7f0b0004;
+        public static final int viewAnimator=0x7f0b0000;
     }
     public static final class layout {
         public static final int activity_main=0x7f030000;
@@ -78,26 +80,40 @@ public final class R {
         public static final int list_view_protocols_row=0x7f030002;
     }
     public static final class menu {
-        public static final int main=0x7f090000;
+        public static final int main=0x7f0a0000;
     }
     public static final class string {
-        public static final int action_settings=0x7f070001;
-        public static final int app_name=0x7f070000;
-        public static final int bssid=0x7f070008;
-        public static final int capital_off=0x7f070003;
-        public static final int capital_on=0x7f070002;
-        public static final int connections=0x7f07000c;
-        public static final int details=0x7f070006;
-        public static final int external_ip=0x7f07000a;
-        public static final int firstAttack=0x7f07000f;
-        public static final int internal_ip=0x7f070009;
-        public static final int lastAttack=0x7f070010;
-        public static final int logFile=0x7f07000e;
-        public static final int paranoid=0x7f070005;
-        public static final int services=0x7f07000b;
-        public static final int ssid=0x7f070007;
-        public static final int statistics=0x7f07000d;
-        public static final int status=0x7f070004;
+        public static final int action_settings=0x7f080001;
+        public static final int app_name=0x7f080000;
+        public static final int bssid=0x7f080008;
+        public static final int capital_off=0x7f080003;
+        public static final int capital_on=0x7f080002;
+        public static final int connections=0x7f08000c;
+        public static final int details=0x7f080006;
+        public static final int external_ip=0x7f08000a;
+        public static final int firstAttack=0x7f08000f;
+        public static final int internal_ip=0x7f080009;
+        public static final int lastAttack=0x7f080010;
+        public static final int logFile=0x7f08000e;
+        public static final int paranoid=0x7f080005;
+        public static final int pref_alarm=0x7f080012;
+        public static final int pref_alarm_default=0x7f080013;
+        public static final int pref_external_storage_summ=0x7f080016;
+        public static final int pref_external_storage_title=0x7f080015;
+        public static final int pref_notification=0x7f080017;
+        public static final int pref_storage=0x7f080014;
+        public static final int pref_tracing=0x7f08001a;
+        public static final int pref_upload=0x7f08001b;
+        public static final int pref_upload_connection=0x7f08001d;
+        public static final int pref_upload_connection_summ=0x7f08001e;
+        public static final int pref_upload_summ=0x7f08001c;
+        public static final int pref_vibration=0x7f080018;
+        public static final int pref_vibration_summ=0x7f080019;
+        public static final int services=0x7f08000b;
+        public static final int settings=0x7f080011;
+        public static final int ssid=0x7f080007;
+        public static final int statistics=0x7f08000d;
+        public static final int status=0x7f080004;
     }
     public static final class style {
         /** 
@@ -121,10 +137,13 @@ public final class R {
     
  API 14 theme customizations can go here. 
          */
-        public static final int AppBaseTheme=0x7f080000;
+        public static final int AppBaseTheme=0x7f090000;
         /**  Application theme. 
  All customizations that are NOT specific to a particular API-level can go here. 
          */
-        public static final int AppTheme=0x7f080001;
+        public static final int AppTheme=0x7f090001;
+    }
+    public static final class xml {
+        public static final int preferences=0x7f050000;
     }
 }

+ 15 - 0
res/values/preference_array.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+	
+	<string-array name="upload_entries">
+	    <item>Always</item>
+        <item>Only with WiFi Connection</item>
+    </string-array>
+    
+	<string-array name="upload_values">
+	    <item>ALWAYS</item>
+        <item>WIFI</item>
+    </string-array>
+    
+
+</resources>

+ 3 - 1
res/values/strings.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 
-    <string name="app_name">Hostage</string>
+    <string name="app_name">HOsTaGe</string>
     <string name="action_settings">Settings</string>
     <string name="capital_on">ON</string>
     <string name="capital_off">OFF</string>
@@ -18,5 +18,7 @@
 	<string name="logFile">Log File</string>
 	<string name="firstAttack">First Attack:</string>
 	<string name="lastAttack">Last Attack:</string>
+	
+
 
 </resources>

+ 21 - 0
res/values/strings_preferences.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+	<string name="settings">Settings</string>
+	<string name="pref_alarm">Set Sound</string>
+	<string name="pref_alarm_default">VIBRATION</string>
+	<string name="pref_storage">External Storage</string>
+	<string name="pref_external_storage_title">External Storage</string>
+	<string name="pref_external_storage_summ">Save Log File on SD-Card</string>
+	<string name="pref_notification">Notification</string>
+	<string name="pref_vibration">Vibration</string>
+	<string name="pref_vibration_summ">Enable Vibration</string>
+	<string name="pref_tracing">TraCINg</string>
+	<string name="pref_upload">Upload Log File</string>	
+	<string name="pref_upload_summ">Enable Upload of Log File to TraCINg</string>
+	<string name="pref_upload_connection">Connection</string>	
+	<string name="pref_upload_connection_summ">Choose connection for upload</string>
+
+	
+	
+</resources>

+ 44 - 0
res/xml/preferences.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <PreferenceCategory android:title="@string/pref_storage" >
+        <CheckBoxPreference
+            android:defaultValue="false"
+            android:key="pref_external_storage"
+            android:summary="@string/pref_external_storage_summ"
+            android:title="@string/pref_external_storage_title" />
+    </PreferenceCategory>
+    <PreferenceCategory android:title="@string/pref_tracing" >
+        <CheckBoxPreference
+            android:defaultValue="true"
+            android:key="pref_upload"
+            android:summary="@string/pref_upload_summ"
+            android:title="@string/pref_upload" />
+
+        <ListPreference
+            android:defaultValue="WIFI"
+            android:dependency="pref_upload"
+            android:entries="@array/upload_entries"
+            android:entryValues="@array/upload_values"
+            android:key="pref_upload_"
+            android:summary="@string/pref_upload_connection_summ"
+            android:title="@string/pref_upload_connection" />
+    </PreferenceCategory>
+    <PreferenceCategory android:title="@string/pref_notification" >
+        <CheckBoxPreference
+            android:defaultValue="true"
+            android:key="pref_vibration"
+            android:summary="@string/pref_vibration_summ"
+            android:title="@string/pref_vibration" />
+
+        <RingtonePreference
+            android:defaultValue="content://settings/system/notification_sound"
+            android:key="pref_notification"
+            android:ringtoneType="notification"
+            android:showDefault="true"
+            android:showSilent="true"
+            android:summary="Select Notification Sound"
+            android:title="@string/pref_alarm" />
+    </PreferenceCategory>
+
+</PreferenceScreen>

+ 1 - 0
src/de/tudarmstadt/informatik/hostage/HoneyListener.java

@@ -9,6 +9,7 @@ import de.tudarmstadt.informatik.hostage.handler.ByteArrayHandlerImpl;
 import de.tudarmstadt.informatik.hostage.handler.StringHandlerImpl;
 import de.tudarmstadt.informatik.hostage.net.MyServerSocketFactory;
 import de.tudarmstadt.informatik.hostage.protocol.Protocol;
+import de.tudarmstadt.informatik.hostage.ui.MainActivity;
 import de.tudarmstadt.informatik.hostage.wrapper.ByteArray;
 
 public class HoneyListener implements Runnable {

+ 2 - 0
src/de/tudarmstadt/informatik/hostage/protocol/TELNET.java

@@ -41,6 +41,7 @@ public final class TELNET implements Protocol<ByteArray> {
 			state = STATE.LOGIN;
 			break;
 		case LOGIN:
+			usr = new byte[message.size()-2];
 			System.arraycopy(message.get(), 0, usr, 0, message.size() - 2);
 			response.add(new ByteArray("Password: ".getBytes()));
 			state = STATE.AUTHENTICATE;
@@ -52,6 +53,7 @@ public final class TELNET implements Protocol<ByteArray> {
 			state = STATE.LOGGED_IN;
 			break;
 		case LOGGED_IN:
+			 cmd = new byte[message.size()-2];
 			System.arraycopy(message.get(), 0, cmd, 0, message.size() - 2);
 			if (new String(cmd).contains("exit")) {
 				response.add(new ByteArray("logout\r\n".getBytes()));

+ 12 - 0
src/de/tudarmstadt/informatik/hostage/ui/MainActivity.java

@@ -19,6 +19,7 @@ import android.support.v4.content.LocalBroadcastManager;
 import android.view.GestureDetector;
 import android.view.GestureDetector.SimpleOnGestureListener;
 import android.view.Menu;
+import android.view.MenuItem;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnTouchListener;
@@ -78,6 +79,17 @@ public class MainActivity extends Activity {
 		getMenuInflater().inflate(R.menu.main, menu);
 		return true;
 	}
+	
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+	    // Handle item selection
+	    switch (item.getItemId()) {
+	        case R.id.action_settings:
+	            startActivity(new Intent(this, SettingsActivity.class));
+	        default:
+	            return super.onOptionsItemSelected(item);
+	    }
+	}
 
 	@Override
 	protected void onStart() {

+ 13 - 0
src/de/tudarmstadt/informatik/hostage/ui/SettingsActivity.java

@@ -0,0 +1,13 @@
+package de.tudarmstadt.informatik.hostage.ui;
+
+import de.tudarmstadt.informatik.hostage.R;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+
+public class SettingsActivity extends PreferenceActivity {
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        addPreferencesFromResource(R.xml.preferences);        
+    }
+}

+ 33 - 11
src/de/tudarmstadt/informatik/hostage/ui/ViewLog.java

@@ -12,6 +12,7 @@ import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.widget.LinearLayout;
 import android.widget.TextView;
@@ -19,12 +20,13 @@ import android.widget.TextView;
 public class ViewLog extends Activity {
 
 	HashMap<String, TextView> statisticCounter;
+	DatabaseHandler dbh;
 
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
 		setContentView(R.layout.activity_viewlog);
-
+		dbh = new DatabaseHandler(getApplicationContext());
 		initStatistic();
 	}
 
@@ -34,19 +36,29 @@ public class ViewLog extends Activity {
 		return true;
 	}
 	
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+	    // Handle item selection
+	    switch (item.getItemId()) {
+	        case R.id.action_settings:
+	            startActivity(new Intent(this, SettingsActivity.class));
+	        default:
+	            return super.onOptionsItemSelected(item);
+	    }
+	}
+
+	
 	public void showLog(View view){
 		startActivity(new Intent(this, ViewLogTable.class));
 	}
 	
-	public void deleteLog(View view){
-		DatabaseHandler dbh = new DatabaseHandler(getBaseContext());		
+	public void deleteLog(View view){		
 		dbh.clearData();
 	}
 
 	private void initStatistic() {
 		LinearLayout container = (LinearLayout) findViewById(R.id.layoutContainer);
 		statisticCounter = new HashMap<String, TextView>();
-		DatabaseHandler dbh = new DatabaseHandler(getBaseContext());
 
 		ArrayList<String> protocols = new ArrayList<String>();
 		protocols.add("Total");
@@ -71,12 +83,22 @@ public class ViewLog extends Activity {
 			container.addView(containerRow);
 		}
 		
-        SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
-        Date resultdate = new Date(Long.parseLong(dbh.getRecord(1).getTimestamp()));
-        TextView text = (TextView) findViewById(R.id.textFirstAttackValue);
-        text.setText(sdf.format(resultdate));
-        text = (TextView) findViewById(R.id.textLastAttackValue);
-        resultdate = new Date(Long.parseLong(dbh.getRecord( dbh.getRecordCount()).getTimestamp()));
-        text.setText(sdf.format(resultdate));
+		int attackCount = dbh.getRecordCount();
+		if(attackCount > 0){
+			SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
+	        Date resultdate = new Date(Long.parseLong(dbh.getRecord(1).getTimestamp()));
+	        TextView text = (TextView) findViewById(R.id.textFirstAttackValue);
+	        text.setText(sdf.format(resultdate));
+	        text = (TextView) findViewById(R.id.textLastAttackValue);
+	        resultdate = new Date(Long.parseLong(dbh.getRecord( dbh.getRecordCount()).getTimestamp()));
+	        text.setText(sdf.format(resultdate));
+		} else {
+	        TextView text = (TextView) findViewById(R.id.textFirstAttackValue);
+	        text.setText("-");
+	        text = (TextView) findViewById(R.id.textLastAttackValue);
+	        text.setText("-");
+		}
+
+
 	}
 }

+ 1 - 0
src/de/tudarmstadt/informatik/hostage/ui/ViewLogTable.java

@@ -22,6 +22,7 @@ public class ViewLogTable extends Activity{
 		ScrollView scroll = new ScrollView(this);
 		TextView text = new TextView(getApplicationContext());
 		text.setText(log);
+		text.setTextAppearance(this, android.R.style.TextAppearance_Medium);
 		scroll.addView(text);
 		setContentView(scroll);