Browse Source

record detail fragment redesigned, it now also shows the whole conversation of an attack

Alexander Brakowski 10 years ago
parent
commit
4324b3641c

+ 10 - 0
res/drawable/records_detail_received_indicator.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+	<item android:bottom="4px">
+		<shape android:shape="rectangle">
+			<solid android:color="@color/holo_red" />
+			<corners android:radius="6dp" />
+		</shape>
+	</item>
+</selector>

+ 10 - 0
res/drawable/records_detail_send_indicator.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+	<item android:bottom="4px">
+		<shape android:shape="rectangle">
+			<solid android:color="@color/holo_dark_green" />
+			<corners android:radius="6dp" />
+		</shape>
+	</item>
+</selector>

+ 1 - 1
res/layout/activity_nfc.xml

@@ -9,7 +9,7 @@
     android:paddingTop="@dimen/activity_vertical_margin" >
 
     <TextView
-        android:id="@+id/textView"
+        android:id="@+id/record_details_text_ssid"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="NFC - SYNC" />

+ 5 - 5
res/layout/fragment_about.xml

@@ -47,7 +47,7 @@
 			<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
 					  android:textAppearance="?android:attr/textAppearanceMedium"
 					  android:text="@string/ui_dev_by"
-					  android:id="@+id/textView4" android:layout_gravity="center_horizontal|left"
+					  android:id="@+id/record_details_text_bssid" android:layout_gravity="center_horizontal|left"
 					  android:singleLine="false" android:autoText="false"
 					  android:layout_marginTop="8dp" android:textStyle="bold"
 					  android:textColor="@android:color/holo_blue_dark"/>
@@ -74,7 +74,7 @@
 			          android:textAlignment="center"/>
 			<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceMedium"
-			          android:text="Daniel Lazar" android:id="@+id/textView6"
+			          android:text="Daniel Lazar" android:id="@+id/record_details_text_protocol"
 			          android:layout_gravity="center_horizontal|left" android:singleLine="false"
 			          android:autoText="false" android:layout_marginTop="4dp"
 			          android:textAlignment="center"/>
@@ -88,7 +88,7 @@
 				android:layout_alignParentEnd="true" android:layout_marginRight="10dp">
 			<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceMedium"
-			          android:text="@string/core_dev_by" android:id="@+id/textView8"
+			          android:text="@string/core_dev_by" android:id="@+id/record_details_text_remoteip"
 			          android:singleLine="false"
 			          android:autoText="false" android:layout_marginTop="8dp"
 			          android:textStyle="bold" android:textColor="@android:color/holo_blue_dark"
@@ -101,13 +101,13 @@
 			          android:textAlignment="center" android:layout_gravity="right"/>
 			<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceMedium"
-			          android:text="Wulf Pfeiffer" android:id="@+id/textView10"
+			          android:text="Wulf Pfeiffer" android:id="@+id/record_conversation_type"
 			          android:singleLine="false"
 			          android:autoText="false" android:layout_marginTop="4dp"
 			          android:textAlignment="center" android:layout_gravity="right"/>
 			<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceMedium"
-			          android:text="Mihai Plasoianu " android:id="@+id/textView12"
+			          android:text="Mihai Plasoianu " android:id="@+id/record_conversation_type"
 			          android:singleLine="false"
 			          android:autoText="false" android:layout_marginTop="4dp"
 			          android:textAlignment="center" android:layout_gravity="right"/>

+ 1 - 1
res/layout/fragment_connectioninfo_dialog.xml

@@ -74,7 +74,7 @@
 					android:layout_height="wrap_content"
 					android:textAppearance="?android:attr/textAppearanceMedium"
 					android:text="@string/external_ip"
-					android:id="@+id/textView4" android:layout_column="0"
+					android:id="@+id/record_details_text_bssid" android:layout_column="0"
 					android:layout_margin="4dp"
 					android:textStyle="bold"/>
 			<TextView

+ 1 - 1
res/layout/fragment_home.xml

@@ -25,7 +25,7 @@
         android:weightSum="1" >
 
         <TextView
-            android:id="@+id/textView"
+            android:id="@+id/record_details_text_ssid"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentEnd="true"

+ 49 - 0
res/layout/fragment_record_conversation_received.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout
+		xmlns:android="http://schemas.android.com/apk/res/android"
+		android:layout_width="match_parent"
+		android:layout_height="wrap_content"
+		android:layout_weight="7.93"
+		android:padding="10dp">
+
+	<TextView
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:textAppearance="?android:attr/textAppearanceSmall"
+			android:text="@string/record_details_received"
+			android:id="@+id/record_conversation_type"
+			android:layout_marginRight="10dp"
+			android:background="@drawable/records_detail_received_indicator"
+			android:textColor="#FFFFFFFF"
+			android:paddingTop="2dp"
+			android:paddingRight="5dp"
+			android:paddingBottom="2dp"
+			android:paddingLeft="5dp"/>
+
+	<TextView
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:textAppearance="?android:attr/textAppearanceSmall"
+			android:text=""
+			android:id="@+id/record_conversation_info"
+			android:layout_alignParentTop="true"
+			android:layout_toRightOf="@+id/record_conversation_type"
+			android:textColor="@color/dark_grey"/>
+
+	<TextView
+			android:layout_width="match_parent"
+			android:layout_height="wrap_content"
+			android:padding="8dp"
+			android:textAppearance="?android:attr/textAppearanceSmall"
+			android:text="@string/record_details_nocontent"
+			android:id="@+id/record_conversation_content"
+			android:typeface="monospace"
+			android:singleLine="false"
+			android:textIsSelectable="true"
+			android:maxLines="8"
+			android:scrollbars="vertical"
+			android:layout_below="@+id/record_conversation_info"
+			android:layout_alignParentLeft="true"
+			android:layout_alignParentStart="true"/>
+</RelativeLayout>

+ 55 - 0
res/layout/fragment_record_conversation_sent.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="7.93"
+                android:padding="10dp"
+                android:layout_marginTop="2dp"
+                android:background="@color/bright_grey">
+
+	<TextView
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:textAppearance="?android:attr/textAppearanceSmall"
+			android:text="@string/record_details_sent"
+			android:id="@+id/record_conversation_type"
+			android:background="@drawable/records_detail_send_indicator"
+			android:textColor="#FFFFFFFF"
+			android:paddingTop="2dp"
+			android:paddingRight="5dp"
+			android:paddingBottom="2dp"
+			android:paddingLeft="5dp"
+			android:layout_alignParentTop="true"
+			android:layout_alignParentRight="true"
+			android:layout_alignParentEnd="true"
+			android:layout_marginLeft="10dp"/>
+
+	<TextView
+			android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:textAppearance="?android:attr/textAppearanceSmall"
+			android:text=""
+			android:id="@+id/record_conversation_info"
+			android:textColor="@color/dark_grey"
+			android:layout_alignTop="@+id/record_conversation_type"
+			android:layout_toLeftOf="@+id/record_conversation_type"
+			android:gravity="right"/>
+
+	<TextView
+			android:layout_width="match_parent"
+			android:layout_height="wrap_content"
+			android:padding="8dp"
+			android:textAppearance="?android:attr/textAppearanceSmall"
+			android:text="@string/record_details_nocontent"
+			android:id="@+id/record_conversation_content"
+			android:typeface="monospace"
+			android:singleLine="false"
+			android:textIsSelectable="true"
+			android:maxLines="8"
+			android:scrollbars="vertical"
+			android:layout_below="@+id/record_conversation_info"
+			android:layout_alignParentRight="true"
+			android:layout_alignParentEnd="true"
+			android:gravity="right"/>
+</RelativeLayout>

+ 6 - 6
res/layout/fragment_record_detail.xml

@@ -34,7 +34,7 @@
 					android:layout_height="wrap_content"
 					android:textAppearance="?android:attr/textAppearanceMedium"
 					android:text="@string/bssid"
-					android:id="@+id/textView" android:layout_column="0"/>
+					android:id="@+id/record_details_text_ssid" android:layout_column="0"/>
 			<TextView
 					android:layout_width="wrap_content"
 					android:layout_height="wrap_content"
@@ -68,7 +68,7 @@
 					android:layout_height="wrap_content"
 					android:textAppearance="?android:attr/textAppearanceMedium"
 					android:text="@string/timestamp"
-					android:id="@+id/textView4" android:layout_column="0"/>
+					android:id="@+id/record_details_text_bssid" android:layout_column="0"/>
 			<TextView
 					android:layout_width="wrap_content"
 					android:layout_height="wrap_content"
@@ -119,7 +119,7 @@
 					android:layout_height="wrap_content"
 					android:textAppearance="?android:attr/textAppearanceMedium"
 					android:text="@string/external_ip"
-					android:id="@+id/textView6" android:layout_column="0"/>
+					android:id="@+id/record_details_text_protocol" android:layout_column="0"/>
 			<TextView
 					android:layout_width="wrap_content"
 					android:layout_height="wrap_content"
@@ -136,7 +136,7 @@
 					android:layout_height="wrap_content"
 					android:textAppearance="?android:attr/textAppearanceMedium"
 					android:text="@string/remote_ip"
-					android:id="@+id/textView6" android:layout_column="0"/>
+					android:id="@+id/record_details_text_protocol" android:layout_column="0"/>
 			<TextView
 					android:layout_width="wrap_content"
 					android:layout_height="wrap_content"
@@ -153,7 +153,7 @@
 					android:layout_height="wrap_content"
 					android:textAppearance="?android:attr/textAppearanceMedium"
 					android:text="@string/packet_type"
-					android:id="@+id/textView8" android:layout_column="0"/>
+					android:id="@+id/record_details_text_remoteip" android:layout_column="0"/>
 			<TextView
 					android:layout_width="wrap_content"
 					android:layout_height="wrap_content"
@@ -181,7 +181,7 @@
 				android:padding="8dp"
 				android:textAppearance="?android:attr/textAppearanceMedium"
 				android:text="undefined"
-				android:id="@+id/record_detail_packetcontent_value" android:autoText="false"
+				android:id="@+id/record_conversation_content" android:autoText="false"
 				android:typeface="monospace"
 				android:singleLine="false"
 				android:textIsSelectable="true"

+ 140 - 5
res/layout/fragment_record_overview.xml

@@ -1,8 +1,143 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:id="@+id/scrollView"
+            android:fillViewport="false">
 
-</LinearLayout>
+	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+	              android:orientation="vertical"
+	              android:layout_width="match_parent"
+	              android:layout_height="wrap_content"
+	              android:weightSum="1"
+	              android:measureWithLargestChild="false"
+	              android:baselineAligned="false"
+	              android:id="@+id/record_overview_conversation">
+
+		<RelativeLayout
+				android:layout_width="match_parent"
+				android:layout_height="wrap_content"
+				android:background="@drawable/panel_bg_selector"
+				android:layout_margin="5dp"
+				android:paddingBottom="10dp"
+				android:paddingLeft="5dp"
+				android:paddingTop="5dp"
+				android:paddingRight="5dp"
+				>
+
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text='-'
+					android:id="@+id/record_details_text_ssid"
+					android:layout_marginLeft="55dp"
+					android:layout_alignParentTop="true"
+					android:layout_toRightOf="@+id/textView2"
+					android:layout_toLeftOf="@+id/textView5"/>
+
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceSmall"
+					android:text="@string/RecordSSID"
+					android:textAllCaps="true"
+					android:id="@+id/textView2"
+					android:layout_alignParentLeft="true"
+					android:layout_alignParentStart="false"
+					android:gravity="center"
+					android:layout_marginLeft="10dp"
+					android:layout_marginRight="10dp"
+					android:layout_alignParentTop="true"
+					android:layout_above="@+id/record_details_text_bssid"/>
+
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceSmall"
+					android:text="@string/RecordBSSID"
+					android:textAllCaps="true"
+					android:id="@+id/textView3"
+					android:gravity="center"
+					android:layout_below="@+id/record_details_text_ssid"
+					android:layout_toLeftOf="@+id/record_details_text_ssid"
+					android:layout_above="@+id/record_details_text_remoteip"/>
+
+			<TextView
+					android:id="@+id/record_details_text_bssid"
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="-"
+					android:layout_alignLeft="@+id/record_details_text_ssid"
+					android:layout_alignStart="@+id/record_details_text_ssid"
+					android:layout_below="@+id/record_details_text_ssid"
+					android:layout_alignRight="@+id/record_details_text_ssid"
+					android:layout_alignEnd="@+id/record_details_text_ssid"/>
+
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceSmall"
+					android:text="@string/record_details_remote_ip"
+					android:textAllCaps="true"
+					android:id="@+id/textView7"
+					android:gravity="center"
+					android:layout_alignTop="@+id/record_details_text_remoteip"
+					android:layout_alignLeft="@+id/textView2"
+					android:layout_alignStart="@+id/textView2"
+					android:layout_marginTop="2dp"/>
+
+			<TextView
+					android:id="@+id/record_details_text_remoteip"
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="-"
+					android:layout_alignLeft="@+id/record_details_text_bssid"
+					android:layout_alignStart="@+id/record_details_text_bssid"
+					android:layout_below="@+id/record_details_text_bssid"
+					android:layout_alignRight="@+id/record_details_text_bssid"
+					android:layout_alignEnd="@+id/record_details_text_bssid"/>
+
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceSmall"
+					android:text="@string/RecordProtocol"
+					android:id="@+id/textView5"
+					android:textAllCaps="true"
+					android:gravity="center|center_horizontal"
+					android:layout_above="@+id/record_details_text_protocol"
+					android:layout_alignParentRight="true"
+					android:layout_alignParentEnd="true"
+					android:layout_marginRight="10dp"/>
+
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceLarge"
+					android:text="-"
+					android:textAllCaps="true"
+					android:id="@+id/record_details_text_protocol"
+					android:gravity="center_horizontal"
+					android:layout_below="@+id/record_details_text_ssid"
+					android:layout_alignRight="@+id/textView5"
+					android:layout_alignEnd="@+id/textView5"/>
+
+		</RelativeLayout>
+
+		<TextView
+				android:layout_width="wrap_content"
+				android:layout_height="wrap_content"
+				android:textAppearance="?android:attr/textAppearanceSmall"
+				android:text="@string/record_details_conversation"
+				android:textAllCaps="true"
+				android:id="@+id/textView9"
+				android:layout_marginLeft="10dp"
+				android:layout_marginTop="10dp"
+				android:layout_marginBottom="20dp"/>
+
+	</LinearLayout>
+</ScrollView>

+ 2 - 2
res/layout/fragment_services.xml

@@ -9,7 +9,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
         <TextView
-                android:id="@+id/textView"
+                android:id="@+id/record_details_text_ssid"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentEnd="true"
@@ -66,7 +66,7 @@
             android:weightSum="1" >
 
         <TextView
-                android:id="@+id/textView"
+                android:id="@+id/record_details_text_ssid"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentEnd="true"

+ 2 - 2
res/layout/fragment_settings.xml

@@ -13,14 +13,14 @@
 				android:layout_height="wrap_content"
 				android:textAppearance="?android:attr/textAppearanceMedium"
 				android:text="@string/device_rooted"
-				android:id="@+id/textView" android:textStyle="bold"/>
+				android:id="@+id/record_details_text_ssid" android:textStyle="bold"/>
 		<TextView
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
 				android:textAppearance="?android:attr/textAppearanceMedium"
 				android:text="@string/porthack_installed"
 				android:id="@+id/textView2"
-				android:layout_below="@+id/textView" android:layout_alignParentLeft="true"
+				android:layout_below="@+id/record_details_text_ssid" android:layout_alignParentLeft="true"
 				android:layout_alignParentStart="true" android:textStyle="bold"/>
 		<TextView
 				android:layout_width="wrap_content"

+ 1 - 1
res/layout/fragment_threatmap_infowindow.xml

@@ -16,7 +16,7 @@
 			android:layout_height="wrap_content"
 			android:textAppearance="?android:attr/textAppearanceSmall"
 			android:text="@string/threatmap_show_records"
-			android:id="@id/textView" android:layout_gravity="center_horizontal"
+			android:id="@id/record_details_text_ssid" android:layout_gravity="center_horizontal"
 			android:textColor="@color/dark_grey" android:clickable="false"
 			android:textIsSelectable="false"/>
 </LinearLayout>

+ 6 - 6
res/layout/profile_manager_list_item.xml

@@ -131,21 +131,21 @@
 					android:textAppearance="?android:attr/textAppearanceSmall"
 					android:text="HTTP"
 					style="@style/ProfileManagerListBadge"
-					android:id="@+id/textView" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp"/>
+					android:id="@+id/record_details_text_ssid" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView2" android:layout_gravity="center_vertical"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
-			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView11" android:layout_gravity="bottom"
+			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/record_conversation_info" android:layout_gravity="bottom"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView3" android:layout_gravity="center_vertical"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
-			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView10" android:layout_gravity="bottom"
+			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/record_conversation_type" android:layout_gravity="bottom"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
-			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView4" android:layout_gravity="center_vertical"
+			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/record_details_text_bssid" android:layout_gravity="center_vertical"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView5" android:layout_gravity="center_vertical"
@@ -154,10 +154,10 @@
 			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView9" android:layout_gravity="center_vertical"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
-			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView8" android:layout_gravity="bottom"
+			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/record_details_text_remoteip" android:layout_gravity="bottom"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
-			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView6" android:layout_gravity="center_vertical"
+			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/record_details_text_protocol" android:layout_gravity="center_vertical"
 			          android:layout_marginLeft="10dp"/>
 			<TextView style="@style/ProfileManagerListBadge" android:layout_width="wrap_content" android:layout_height="wrap_content"
 			          android:textAppearance="?android:attr/textAppearanceSmall" android:text="HTTP" android:id="@+id/textView7" android:layout_gravity="center_vertical"

+ 8 - 0
res/values-de/strings.xml

@@ -134,4 +134,12 @@
     <string name="stats_select_protocol_data">Wähle Kriterium zum Vergleich</string>
     <string name="stats_per_cent_all">% von allen</string>
     <string name="pie_all">Alle</string>
+
+	<string name="record_details_received">EMPFANGEN</string>
+	<string name="record_details_sent">GESENDET</string>
+	<string name="record_details_info" formatted="false">von %s an %s\n%s um %s Uhr</string>
+	<string name="record_details_dateformat" formatted="false">d. MMMM, yyyy \'um\' HH:mm:ss \'Uhr\'</string>
+	<string name="record_details_nocontent">Kein Inhalt</string>
+	<string name="record_details_remote_ip">REMOTE IP</string>
+	<string name="record_details_conversation">Unterhaltung</string>
 </resources>

+ 8 - 0
res/values/strings.xml

@@ -134,4 +134,12 @@
     <string name="stats_select_protocol_data">Select protocol data to compare</string>
     <string name="stats_per_cent_all">% of all</string>
     <string name="pie_all">All</string>
+
+	<string name="record_details_received">RECEIVED</string>
+	<string name="record_details_sent">SENT</string>
+	<string name="record_details_info" formatted="false">from %s to %s\n%s at %s</string>
+	<string name="record_details_dateformat" formatted="false">MMMM d, yyyy \'at\' H:m:s a</string>
+	<string name="record_details_nocontent">No content</string>
+	<string name="record_details_remote_ip">REMOTE IP</string>
+	<string name="record_details_conversation">Conversation</string>
 </resources>

+ 2 - 2
src/de/tudarmstadt/informatik/hostage/sync/NFCSync.java

@@ -116,11 +116,11 @@ public class NFCSync extends Activity implements CreateNdefMessageCallback,
 		super.onCreate(savedInstanceState);
 		setContentView(R.layout.activity_nfc);
 
-		mInfoText = (TextView) findViewById(R.id.textView);
+		mInfoText = (TextView) findViewById(R.id.record_details_text_ssid);
 		// Check for available NFC Adapter
 		mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
 		if (mNfcAdapter == null) {
-			mInfoText = (TextView) findViewById(R.id.textView);
+			mInfoText = (TextView) findViewById(R.id.record_details_text_ssid);
 			mInfoText.setText("NFC is not available on this device.");
 		} else {
 			// Register callback to set NDEF message

+ 86 - 49
src/de/tudarmstadt/informatik/hostage/ui2/fragment/RecordDetailFragment.java

@@ -1,17 +1,19 @@
 package de.tudarmstadt.informatik.hostage.ui2.fragment;
 
 import android.annotation.SuppressLint;
-import android.app.Fragment;
 import android.os.Bundle;
+import android.text.format.DateFormat;
+import android.text.method.ScrollingMovementMethod;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.ScrollView;
 import android.widget.TextView;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 
 import de.tudarmstadt.informatik.hostage.R;
@@ -62,6 +64,15 @@ public class RecordDetailFragment extends UpNavigatibleFragment {
     private Record record;
     private UglyDbHelper dbh;
     private View rootView;
+	private LayoutInflater mInflater;
+
+
+	private ScrollView mScrollView;
+	private LinearLayout mRecordOverviewConversation;
+	private TextView mRecordDetailsTextSsid;
+	private TextView mRecordDetailsTextBssid;
+	private TextView mRecordDetailsTextRemoteip;
+	private TextView mRecordDetailsTextProtocol;
 
     public void setRecord(Record rec){
         this.record = rec;
@@ -71,7 +82,8 @@ public class RecordDetailFragment extends UpNavigatibleFragment {
     }
 
     public int getLayoutId(){
-        return R.layout.fragment_record_detail;
+        //return R.layout.fragment_record_detail;
+	    return R.layout.fragment_record_overview;
     }
 
     public void onCreate(Bundle savedInstanceState) {
@@ -83,11 +95,15 @@ public class RecordDetailFragment extends UpNavigatibleFragment {
                              Bundle savedInstanceState) {
         super.onCreateView(inflater, container, savedInstanceState);
 
+	    mInflater = inflater;
+	    getActivity().setTitle(record.getSsid());
+
         this.dbh = new UglyDbHelper(this.getActivity().getBaseContext());
 
         this.rootView = inflater.inflate(this.getLayoutId(), container, false);
+	    this.assignViews(rootView);
         this.configurateRootView(rootView);
-	    System.out.println("ATT: " + dbh.getConversationForAttackID(record.getAttack_id()));
+
 
         return rootView;
     }
@@ -97,37 +113,64 @@ public class RecordDetailFragment extends UpNavigatibleFragment {
 
     }
 
-    private void configurateRootView(View rootView) {
-		/*
-        String protocol = this.record.getProtocol();
-        String type = "" + this.record.getType();
-        String externalIP = this.record.getExternalIP();
-        String localIP = this.record.getLocalIP();
-        String localPort = "" + this.record.getLocalPort();
-        String remoteIP = this.record.getRemoteIP();
-        String bssid = this.record.getBssid() ;
-        String essid = this.record.getSsid();
-        double latitude = this.record.getLatitude();
-        double longitude = this.record.getLongitude();
-        float accuracy =this.record.getAccuracy();
-
-        Location  location = new Location(latitude, longitude, accuracy);
-
-        String packet = this.record.getPacket();
-        String timeStamp = this.getDateAsString(this.record.getTimestamp());
-        */
-
-		((TextView)rootView.findViewById(R.id.record_detail_ssid_value)).setText(record.getSsid());
-		((TextView)rootView.findViewById(R.id.record_detail_bssid_value)).setText(record.getBssid());
-		((TextView)rootView.findViewById(R.id.record_detail_protocol_value)).setText(record.getProtocol());
-		((TextView)rootView.findViewById(R.id.record_detail_timestamp_value)).setText(getDateAsString(record.getTimestamp()));
-		((TextView)rootView.findViewById(R.id.record_detail_location_value)).setText(record.getLatitude() + ", " + record.getLongitude());
-		((TextView)rootView.findViewById(R.id.record_detail_externalip_value)).setText(record.getExternalIP());
-		((TextView)rootView.findViewById(R.id.record_detail_internalip_value)).setText(record.getLocalIP() + ":" + record.getLocalPort());
-		((TextView)rootView.findViewById(R.id.record_detail_remoteip_value)).setText(record.getRemoteIP() + ":" + record.getRemotePort());
-		((TextView)rootView.findViewById(R.id.record_detail_packettype_value)).setText(
-				record.getType() == Record.TYPE.SEND ? "SEND" : "RECV");
-		((TextView)rootView.findViewById(R.id.record_detail_packetcontent_value)).setText(record.getPacket());
+	private void assignViews(View view) {
+		mScrollView = (ScrollView) view.findViewById(R.id.scrollView);
+		mRecordOverviewConversation = (LinearLayout) view.findViewById(R.id.record_overview_conversation);
+		mRecordDetailsTextSsid = (TextView) view.findViewById(R.id.record_details_text_ssid);
+		mRecordDetailsTextBssid = (TextView) view.findViewById(R.id.record_details_text_bssid);
+		mRecordDetailsTextRemoteip = (TextView) view.findViewById(R.id.record_details_text_remoteip);
+		mRecordDetailsTextProtocol = (TextView) view.findViewById(R.id.record_details_text_protocol);
+	}
+
+	private void configurateRootView(View rootView) {
+
+		mRecordDetailsTextBssid.setText(record.getBssid());
+		mRecordDetailsTextSsid.setText(record.getSsid());
+		if(record.getRemoteIP() != null) mRecordDetailsTextRemoteip.setText(record.getRemoteIP() + ":" + record.getRemotePort());
+		mRecordDetailsTextProtocol.setText(record.getProtocol());
+
+	    ArrayList<Record> conversation = this.dbh.getConversationForAttackID(record.getAttack_id());
+
+	    for(Record r: conversation){
+		    View row;
+
+		    String from = r.getLocalIP() == null ? "-" : r.getLocalIP() + ":" + r.getLocalPort();
+		    String to = r.getRemoteIP() == null ? "-" : r.getRemoteIP() + ":" + r.getRemotePort();
+
+		    if(r.getType() == Record.TYPE.SEND){
+			    row = mInflater.inflate(R.layout.fragment_record_conversation_sent, null);
+		    } else {
+			    row = mInflater.inflate(R.layout.fragment_record_conversation_received, null);
+
+			    String tmp = from;
+			    from = to;
+			    to = tmp;
+		    }
+
+		    TextView conversationInfo = (TextView) row.findViewById(R.id.record_conversation_info);
+		    TextView conversationContent = (TextView) row.findViewById(R.id.record_conversation_content);
+			conversationContent.setOnTouchListener(new View.OnTouchListener() {
+				@Override
+				public boolean onTouch(final View v, final MotionEvent motionEvent) {
+					if (v.getId() == R.id.record_conversation_content) {
+						v.getParent().requestDisallowInterceptTouchEvent(true);
+						switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
+							case MotionEvent.ACTION_UP:
+								v.getParent().requestDisallowInterceptTouchEvent(
+										false);
+								break;
+						}
+					}
+					return false;
+				}
+			});
+
+		    Date date = new Date(r.getTimestamp());
+		    conversationInfo.setText(String.format(getString(R.string.record_details_info), from, to, getDateAsString(date), getTimeAsString(date)));
+		    if(r.getPacket() != null) conversationContent.setText(r.getPacket());
+
+		    mRecordOverviewConversation.addView(row);
+	    }
     }
 
 
@@ -136,20 +179,14 @@ public class RecordDetailFragment extends UpNavigatibleFragment {
      *          Date Transform
      *
      * ***************************/
-
-
-    @SuppressLint("SimpleDateFormat")
-    private String getDateAsString(long timeStamp) {
-
-        try {
-            DateFormat sdf = new SimpleDateFormat("H:mm d.M.yy");
-            Date netDate = (new Date(timeStamp));
-            return sdf.format(netDate);
-        } catch (Exception ex) {
-            return "xx";
-        }
+    private String getDateAsString(Date date) {
+		return DateFormat.getDateFormat(getActivity()).format(date);
     }
 
+	private String getTimeAsString(Date date){
+		return DateFormat.getTimeFormat(getActivity()).format(date);
+	}
+
 
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);