Browse Source

Settings implemented(no use of settings)

Lars 11 năm trước cách đây
mục cha
commit
d93b2416f9
37 tập tin đã thay đổi với 273 bổ sung102 xóa
  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);