Browse Source

added porthack info button

Fabio Arnold 9 years ago
parent
commit
e5b75b5973

+ 8 - 5
res/layout/fragment_settings.xml

@@ -56,16 +56,19 @@
 				android:layout_height="wrap_content"
 				android:text="@string/install_porthack"
 				android:id="@+id/settings_deploy_porthack"
-				android:layout_below="@+id/txtP2PSubheader" android:layout_alignParentLeft="true"
-				android:layout_alignParentStart="false" android:layout_alignParentEnd="true"/>
+				android:layout_below="@+id/txtP2PSubheader" android:layout_centerHorizontal="true"/>
 		<Button
 				android:layout_width="wrap_content"
 				android:layout_height="wrap_content"
 				android:text="@string/uninstall_porthack"
 				android:id="@+id/settings_uninstall_porthack"
-				android:layout_below="@+id/settings_deploy_porthack" android:layout_alignParentLeft="true"
-				android:layout_alignParentStart="false" android:layout_alignParentEnd="true"
-				android:background="@color/holo_red" android:textColor="@android:color/white"/>
+				android:layout_below="@+id/txtP2PSubheader" android:layout_centerHorizontal="true"/>
+		<ImageView android:id="@+id/porthack_info_button" android:layout_width="wrap_content"
+				   android:layout_height="wrap_content"
+				   android:src="@android:drawable/ic_menu_info_details"
+				   android:layout_below="@+id/settings_porthack_installed"
+				   android:layout_alignRight="@+id/settings_porthack_installed"
+				   android:layout_alignEnd="@+id/settings_porthack_installed"/>
 	</RelativeLayout>
 	<FrameLayout
 			android:layout_width="fill_parent"

+ 2 - 1
res/values/strings.xml

@@ -105,9 +105,10 @@
 
     <string name="device_rooted">Device rooted</string>
     <string name="porthack_installed">Porthack installed</string>
-	<string name="iptables_available">IPTables available</string>
+	<string name="iptables_available">iptables available</string>
 	<string name="install_porthack">Install Porthack</string>
 	<string name="uninstall_porthack">Uninstall Porthack</string>
+	<string name="porthack_explanation"><![CDATA[<h1>Porthack?</h1><p>To use protocols with ports below 1024 your device requires root privileges. This App doesn\'t run with root privileges by default. That\'s why a small program called &quot;Porthack&quot; is required which opens a socket and passes it to the HosTaGe App.</p><p>Another possibility is to redirect those ports to higher port numbers. This is achieved using iptables. If iptables is available on your device the Porthack isn\'t needed.</p>]]></string>
     <string name="yes">Yes</string>
     <string name="no">No</string>
 

+ 15 - 0
src/de/tudarmstadt/informatik/hostage/ui/fragment/SettingsFragment.java

@@ -1,7 +1,11 @@
 package de.tudarmstadt.informatik.hostage.ui.fragment;
 
+import android.app.AlertDialog;
 import android.app.FragmentManager;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
 import android.os.Bundle;
+import android.text.Html;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -10,6 +14,7 @@ import android.widget.TextView;
 import de.tudarmstadt.informatik.hostage.R;
 import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
 import de.tudarmstadt.informatik.hostage.system.Device;
+import de.tudarmstadt.informatik.hostage.ui.activity.MainActivity;
 
 /**
  * @author Alexander Brakowski
@@ -64,6 +69,16 @@ public class SettingsFragment extends UpNavigatibleFragment {
 			}
 		});
 
+		v.findViewById(R.id.porthack_info_button).setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.getInstance());
+				builder.setMessage(Html.fromHtml(getString(R.string.porthack_explanation)));
+				AlertDialog alert = builder.create();
+				alert.show();
+			}
+		});
+
 		return v;
 	}