Browse Source

added connection info dialog to home fragment

Fabio Arnold 10 years ago
parent
commit
248e45c95f

+ 92 - 0
res/layout/fragment_connectioninfo_dialog.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+			  android:orientation="vertical"
+			  android:layout_width="fill_parent"
+			  android:layout_height="fill_parent">
+	<TableLayout
+			android:layout_width="match_parent"
+			android:layout_height="match_parent"
+			>
+		<TableRow
+				android:layout_width="fill_parent"
+				android:layout_height="fill_parent">
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="@string/ssid"
+					android:id="@+id/textView1" android:layout_column="0"
+					android:layout_margin="4dp"
+					android:textStyle="bold" android:textColor="@android:color/white"/>
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="undefined"
+					android:textColor="@android:color/white"
+					android:id="@+id/connectioninfo_ssid_value" android:layout_column="1"
+					android:layout_margin="4dp" android:layout_weight="0.5"/>
+		</TableRow>
+		<TableRow
+				android:layout_width="fill_parent"
+				android:layout_height="fill_parent">
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="@string/bssid"
+					android:id="@+id/textView2" android:layout_column="0"
+					android:layout_margin="4dp"
+					android:textStyle="bold" android:textColor="@android:color/white"/>
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="undefined"
+					android:textColor="@android:color/white"
+					android:id="@+id/connectioninfo_bssid_value" android:layout_column="1"
+					android:layout_margin="4dp"/>
+		</TableRow>
+		<TableRow
+				android:layout_width="fill_parent"
+				android:layout_height="fill_parent">
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="@string/internal_ip"
+					android:id="@+id/textView3" android:layout_column="0"
+					android:layout_margin="4dp"
+					android:textStyle="bold" android:textColor="@android:color/white"/>
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="undefined"
+					android:textColor="@android:color/white"
+					android:id="@+id/connectioninfo_internalip_value" android:layout_column="1"
+					android:layout_margin="4dp"/>
+		</TableRow>
+		<TableRow
+				android:layout_width="fill_parent"
+				android:layout_height="fill_parent">
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="@string/external_ip"
+					android:id="@+id/textView4" android:layout_column="0"
+					android:layout_margin="4dp"
+					android:textStyle="bold" android:textColor="@android:color/white"/>
+			<TextView
+					android:layout_width="wrap_content"
+					android:layout_height="wrap_content"
+					android:textAppearance="?android:attr/textAppearanceMedium"
+					android:text="undefined"
+					android:textColor="@android:color/white"
+					android:id="@+id/connectioninfo_externalip_value" android:layout_column="1"
+					android:layout_margin="4dp"/>
+		</TableRow>
+	</TableLayout>
+</LinearLayout>

+ 1 - 1
res/layout/fragment_home.xml

@@ -88,7 +88,7 @@
                 android:textSize="26sp" />
 
             <ImageView
-                android:id="@+id/imageView2"
+                android:id="@+id/home_button_connection_info"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentEnd="true"

+ 2 - 0
res/values/strings.xml

@@ -6,6 +6,7 @@
     <string name="action_about">About</string>
     <string name="capital_on">OFF</string>
     <string name="capital_off">ON</string>
+	<string name="title_connection_info">Connection Info</string>
     <string name="status">Status</string>
     <string name="paranoid">Paranoid Mode</string>
     <string name="details">Connection info</string>
@@ -23,6 +24,7 @@
 	<string name="clear">Clear</string>
 	<string name="delete">Delete</string>
 	<string name="cancel">Cancel</string>
+	<string name="close">Close</string>
 	<string name="dialog_clear_database">Clear all data?</string>	
 	<string name="export_dialog_title">Choose Export Format</string>		
 	<string name="delete_dialog_title">Delete data sets by:</string>	

+ 39 - 0
src/de/tudarmstadt/informatik/hostage/ui2/fragment/ConnectionInfoDialogFragment.java

@@ -0,0 +1,39 @@
+package de.tudarmstadt.informatik.hostage.ui2.fragment;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+import de.tudarmstadt.informatik.hostage.R;
+
+/**
+ * Created by Fabio Arnold on 03.03.14.
+ */
+public class ConnectionInfoDialogFragment extends DialogFragment {
+	public Dialog onCreateDialog(Bundle savedInstance) {
+		SharedPreferences sharedPreferences = getActivity().getSharedPreferences(getString(R.string.connection_info), Context.MODE_PRIVATE);
+		String ssid = sharedPreferences.getString(getString(R.string.connection_info_ssid), "");
+		String bssid = sharedPreferences.getString(getString(R.string.connection_info_bssid), "");
+		String internalIP = sharedPreferences.getString(getString(R.string.connection_info_internal_ip), "");
+		String externalIP = sharedPreferences.getString(getString(R.string.connection_info_external_ip), "");
+
+		LayoutInflater inflater = getActivity().getLayoutInflater();
+
+		AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), AlertDialog.THEME_HOLO_DARK);
+		View view = inflater.inflate(R.layout.fragment_connectioninfo_dialog, null);
+		((TextView)view.findViewById(R.id.connectioninfo_ssid_value)).setText(ssid);
+		((TextView)view.findViewById(R.id.connectioninfo_bssid_value)).setText(bssid);
+		((TextView)view.findViewById(R.id.connectioninfo_internalip_value)).setText(internalIP);
+		((TextView)view.findViewById(R.id.connectioninfo_externalip_value)).setText(externalIP);
+		builder.setView(view);
+		builder.setTitle(R.string.title_connection_info);
+		builder.setNeutralButton(R.string.close, null);
+		return builder.create();
+	}
+}

+ 17 - 1
src/de/tudarmstadt/informatik/hostage/ui2/fragment/HomeFragment.java

@@ -1,6 +1,7 @@
 package de.tudarmstadt.informatik.hostage.ui2.fragment;
 import android.app.AlertDialog;
 import android.app.Fragment;
+import android.app.FragmentManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -9,6 +10,7 @@ import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.support.v4.content.LocalBroadcastManager;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -39,6 +41,7 @@ public class HomeFragment extends Fragment {
 	private TextView mHomeTextProfile;
 	private TextView mHomeTextProfileHeader;
 	private ImageView mHomeProfileImage;
+	private ImageView mHomeConnectionInfoButton;
 
 	private View rootView;
 	private BroadcastReceiver mReceiver;
@@ -61,6 +64,7 @@ public class HomeFragment extends Fragment {
 		mHomeTextProfile = (TextView) rootView.findViewById(R.id.home_text_profile);
 		mHomeTextProfileHeader = (TextView) rootView.findViewById(R.id.home_text_profile_header);
 		mHomeProfileImage = (ImageView) rootView.findViewById(R.id.home_image_profile);
+		mHomeConnectionInfoButton = (ImageView) rootView.findViewById(R.id.home_button_connection_info);
 	}
 
 	private void registerBroadcastReceiver(){
@@ -118,6 +122,8 @@ public class HomeFragment extends Fragment {
 		mHomeTextAttacks.setVisibility(View.INVISIBLE);
 		mHomeTextProfile.setVisibility(View.INVISIBLE);
 		mHomeTextProfileHeader.setVisibility(View.INVISIBLE);
+		mHomeProfileImage.setVisibility(View.INVISIBLE);
+		mHomeConnectionInfoButton.setVisibility(View.INVISIBLE);
 
 		mHomeTextName.setText("Not connected");
 	}
@@ -125,6 +131,8 @@ public class HomeFragment extends Fragment {
 	public void setStateConnected(){
 		mHomeTextProfile.setVisibility(View.VISIBLE);
 		mHomeTextProfileHeader.setVisibility(View.VISIBLE);
+		mHomeProfileImage.setVisibility(View.VISIBLE);
+		mHomeConnectionInfoButton.setVisibility(View.VISIBLE);
 	}
 
 	public void updateUI(){
@@ -139,7 +147,6 @@ public class HomeFragment extends Fragment {
 			mHomeTextName.setText(mConnectionInfo.getString(getString(R.string.connection_info_ssid), ""));
 		}
 
-		int dangerLevel = 0;
 		boolean hasActiveListeners = false;
 		int totalAttacks = 0;
 		int totalLogged = 0;
@@ -225,6 +232,15 @@ public class HomeFragment extends Fragment {
         rootView = inflater.inflate(R.layout.fragment_home, container, false);
 	    assignViews();
 
+		// hook up the connection info button
+		mHomeConnectionInfoButton.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				ConnectionInfoDialogFragment connectionInfoDialogFragment = new ConnectionInfoDialogFragment();
+				connectionInfoDialogFragment.show(getFragmentManager().beginTransaction(), connectionInfoDialogFragment.getTag());
+			}
+		});
+
 	    defaultTextColor = mHomeTextName.getCurrentTextColor();
 
 	    setStateNotActive(true);

+ 1 - 1
src/de/tudarmstadt/informatik/hostage/ui2/fragment/opengl/ThreatIndicatorGLRenderer.java

@@ -32,7 +32,7 @@ public class ThreatIndicatorGLRenderer implements Renderer {
 		NO_THREAT,
 		PAST_THREAT,
 		LIVE_THREAT
-	};
+	}
 	
 	/**
 	 * Set the threat level which should be indicated