Port forwarding UDP/TCP dropdown

Refs #303
This commit is contained in:
M66B 2016-02-09 14:45:54 +01:00
parent 5436b12fbf
commit 285e2e7f13
3 changed files with 42 additions and 14 deletions

View File

@ -35,6 +35,7 @@ import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.Spinner;
import android.widget.Toast;
import java.net.InetAddress;
@ -66,7 +67,6 @@ public class ActivityForwarding extends AppCompatActivity {
lvForwarding.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PackageManager pm = getPackageManager();
Cursor cursor = (Cursor) adapter.getItem(position);
final int protocol = cursor.getInt(cursor.getColumnIndex("protocol"));
final int dport = cursor.getInt(cursor.getColumnIndex("dport"));
@ -75,7 +75,9 @@ public class ActivityForwarding extends AppCompatActivity {
PopupMenu popup = new PopupMenu(ActivityForwarding.this, view);
popup.inflate(R.menu.forward);
popup.getMenu().findItem(R.id.menu_port).setTitle(dport + " > " + raddr + "/" + rport);
popup.getMenu().findItem(R.id.menu_port).setTitle(
Util.getProtocolName(protocol, 0, false) + " " +
dport + " > " + raddr + "/" + rport);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
@ -119,7 +121,7 @@ public class ActivityForwarding extends AppCompatActivity {
case R.id.menu_add:
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.forwardadd, null);
final EditText etProtocol = (EditText) view.findViewById(R.id.etProtocol);
final Spinner spProtocol = (Spinner) view.findViewById(R.id.spProtocol);
final EditText etDPort = (EditText) view.findViewById(R.id.etDPort);
final EditText etRAddr = (EditText) view.findViewById(R.id.etRAddr);
final EditText etRPort = (EditText) view.findViewById(R.id.etRPort);
@ -129,12 +131,14 @@ public class ActivityForwarding extends AppCompatActivity {
dialog = new AlertDialog.Builder(this)
.setView(view)
.setCancelable(false)
.setCancelable(true)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
try {
final int protocol = Integer.parseInt(etProtocol.getText().toString());
int pos = spProtocol.getSelectedItemPosition();
String[] values = getResources().getStringArray(R.array.protocolValues);
final int protocol = Integer.valueOf(values[pos]);
final int dport = Integer.parseInt(etDPort.getText().toString());
final String raddr = etRAddr.getText().toString();
final int rport = Integer.parseInt(etRPort.getText().toString());

View File

@ -29,6 +29,13 @@
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/setting_forwarding"
android:textAppearance="@style/TextTitle" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -44,20 +51,23 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_protocol"
android:textAppearance="@style/TextMedium" />
android:textAppearance="@style/TextSmall" />
<EditText
android:id="@+id/etProtocol"
android:layout_width="match_parent"
<Spinner
android:id="@+id/spProtocol"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:layout_marginTop="8dp"
android:entries="@array/protocolNames"
android:prompt="@string/title_protocol"
android:textAppearance="@style/TextMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/title_dport"
android:textAppearance="@style/TextMedium" />
android:textAppearance="@style/TextSmall" />
<EditText
android:id="@+id/etDPort"
@ -69,20 +79,23 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/title_raddr"
android:textAppearance="@style/TextMedium" />
android:textAppearance="@style/TextSmall" />
<EditText
android:id="@+id/etRAddr"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textAppearance="@style/TextMedium" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/title_rport"
android:textAppearance="@style/TextMedium" />
android:textAppearance="@style/TextSmall" />
<EditText
android:id="@+id/etRPort"
@ -94,8 +107,9 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/title_ruid"
android:textAppearance="@style/TextMedium" />
android:textAppearance="@style/TextSmall" />
<EditText
android:id="@+id/etRUid"

View File

@ -220,5 +220,15 @@ Your internet traffic is not being sent to a remote VPN server.</string>
<item>6</item>
</string-array>
<string-array name="protocolNames">
<item>UDP</item>
<item>TCP</item>
</string-array>
<string-array name="protocolValues" translatable="false">
<item>17</item>
<item>6</item>
</string-array>
<string name="fingerprint" translatable="false">ef46f813d2c8a064d72c936b9b96d1cccc989378</string>
</resources>