diff --git a/app/src/main/java/org/torproject/android/OrbotMainActivity.java b/app/src/main/java/org/torproject/android/OrbotMainActivity.java index 7374455f..3a9e356c 100644 --- a/app/src/main/java/org/torproject/android/OrbotMainActivity.java +++ b/app/src/main/java/org/torproject/android/OrbotMainActivity.java @@ -573,15 +573,18 @@ public class OrbotMainActivity extends AppCompatActivity HSContentProvider.HiddenService.NAME, HSContentProvider.HiddenService.DOMAIN, HSContentProvider.HiddenService.PORT, - HSContentProvider.HiddenService.REMOTE_PORT}; + HSContentProvider.HiddenService.ONION_PORT}; if(hsName == null) hsName = "hs"+hsPort; + if(hsRemotePort == -1) + hsRemotePort = hsPort; + ContentValues fields = new ContentValues(); fields.put("name", hsName); fields.put("port", hsPort); - fields.put("remote_port", hsRemotePort); + fields.put("onion_port", hsRemotePort); ContentResolver cr = getContentResolver(); Cursor row = cr.query(HSContentProvider.CONTENT_URI, mProjection, "port="+hsPort, null, null); @@ -623,7 +626,7 @@ public class OrbotMainActivity extends AppCompatActivity if (action.equals(INTENT_ACTION_REQUEST_HIDDEN_SERVICE)) { final int hiddenServicePort = getIntent().getIntExtra("hs_port", -1); - final int hiddenServiceRemotePort = getIntent().getIntExtra("hs_remote_port", -1); + final int hiddenServiceRemotePort = getIntent().getIntExtra("hs_onion_port", -1); final String hiddenServiceName = getIntent().getStringExtra("hs_name"); final boolean getHiddenServiceKey = getIntent().getBooleanExtra("hs_get_key",false); diff --git a/app/src/main/java/org/torproject/android/ui/hs/HiddenServicesActivity.java b/app/src/main/java/org/torproject/android/ui/hs/HiddenServicesActivity.java index ebf1ec31..da556da1 100644 --- a/app/src/main/java/org/torproject/android/ui/hs/HiddenServicesActivity.java +++ b/app/src/main/java/org/torproject/android/ui/hs/HiddenServicesActivity.java @@ -24,6 +24,7 @@ public class HiddenServicesActivity extends AppCompatActivity { HSContentProvider.HiddenService._ID, HSContentProvider.HiddenService.NAME, HSContentProvider.HiddenService.DOMAIN, + HSContentProvider.HiddenService.ONION_PORT, HSContentProvider.HiddenService.PORT}; @Override diff --git a/app/src/main/java/org/torproject/android/ui/hs/adapters/HSAdapter.java b/app/src/main/java/org/torproject/android/ui/hs/adapters/HSAdapter.java index 66ecb22f..92189ad8 100644 --- a/app/src/main/java/org/torproject/android/ui/hs/adapters/HSAdapter.java +++ b/app/src/main/java/org/torproject/android/ui/hs/adapters/HSAdapter.java @@ -32,8 +32,9 @@ public class HSAdapter extends CursorRecyclerViewAdapter { String name_string = cursor.getString(cursor.getColumnIndex(HSContentProvider.HiddenService.NAME)); Integer port = cursor.getInt(cursor.getColumnIndex(HSContentProvider.HiddenService.PORT)); + Integer onion_port = cursor.getInt(cursor.getColumnIndex(HSContentProvider.HiddenService.ONION_PORT)); - viewHolder.name.setText(name_string + ": " + port.toString()); + viewHolder.name.setText(name_string + ": " + port.toString()+ " -> " +onion_port.toString()); viewHolder.domain.setText( cursor.getString(cursor.getColumnIndex(HSContentProvider.HiddenService.DOMAIN)) diff --git a/app/src/main/java/org/torproject/android/ui/hs/database/HSDatabase.java b/app/src/main/java/org/torproject/android/ui/hs/database/HSDatabase.java index 0cfb6e5b..cafa7edd 100644 --- a/app/src/main/java/org/torproject/android/ui/hs/database/HSDatabase.java +++ b/app/src/main/java/org/torproject/android/ui/hs/database/HSDatabase.java @@ -15,7 +15,7 @@ public class HSDatabase extends SQLiteOpenHelper { "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT, " + "domain TEXT, " + - "remote_port INTEGER, " + + "onion_port INTEGER, " + "port INTEGER);"; public HSDatabase(Context context) { diff --git a/app/src/main/java/org/torproject/android/ui/hs/dialogs/HSDataDialog.java b/app/src/main/java/org/torproject/android/ui/hs/dialogs/HSDataDialog.java index e62d2cb9..0dc0a304 100644 --- a/app/src/main/java/org/torproject/android/ui/hs/dialogs/HSDataDialog.java +++ b/app/src/main/java/org/torproject/android/ui/hs/dialogs/HSDataDialog.java @@ -7,6 +7,7 @@ import android.content.ContentValues; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; +import android.support.v4.app.ShareCompat; import android.support.v7.app.AlertDialog; import android.view.View; import android.widget.Button; @@ -35,12 +36,15 @@ public class HSDataDialog extends DialogFragment { save.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String serverName = ((EditText) dialog_view.findViewById(R.id.hsName)).getText().toString(); - Integer serverPort = Integer.parseInt( - ((EditText) dialog_view.findViewById(R.id.serverPort)).getText().toString() + Integer localPort = Integer.parseInt( + ((EditText) dialog_view.findViewById(R.id.hsLocalPort)).getText().toString() + ); + Integer onionPort = Integer.parseInt( + ((EditText) dialog_view.findViewById(R.id.hsOnionPort)).getText().toString() ); - if (checkInput(serverPort)) { - saveData(serverName, serverPort); + if (checkInput(localPort,onionPort)) { + saveData(serverName, localPort,onionPort); serverDataDialog.dismiss(); } } @@ -56,11 +60,11 @@ public class HSDataDialog extends DialogFragment { return serverDataDialog; } - private boolean checkInput(Integer port) { + private boolean checkInput(Integer local, Integer remote){ boolean is_ok = true; Integer error_msg = 0; - if (port <= 1 || port > 65535) { + if ((local <= 1 || local > 65535) || (remote <= 1 || remote > 65535)) { error_msg = R.string.invalid_port; is_ok = false; } @@ -72,10 +76,11 @@ public class HSDataDialog extends DialogFragment { return is_ok; } - private void saveData(String name, Integer port) { + private void saveData(String name, Integer local, Integer remote) { ContentValues fields = new ContentValues(); fields.put("name", name); - fields.put("port", port); + fields.put("port", local); + fields.put("onion_port", remote); ContentResolver cr = getContext().getContentResolver(); diff --git a/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java b/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java index 6fec6b02..9b52a37f 100644 --- a/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java +++ b/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java @@ -113,7 +113,7 @@ public class HSContentProvider extends ContentProvider { //Nombres de columnas public static final String NAME = "name"; public static final String PORT = "port"; - public static final String REMOTE_PORT = "remote_port"; + public static final String ONION_PORT = "onion_port"; public static final String DOMAIN = "domain"; private HiddenService() { diff --git a/app/src/main/res/layout/dialog_hs_data.xml b/app/src/main/res/layout/dialog_hs_data.xml index 2f4daa6b..05d52fe9 100644 --- a/app/src/main/res/layout/dialog_hs_data.xml +++ b/app/src/main/res/layout/dialog_hs_data.xml @@ -24,10 +24,10 @@ android:id="@+id/hsName" /> @@ -35,7 +35,22 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" - android:id="@+id/serverPort" + android:id="@+id/hsLocalPort" + android:inputType="number" /> + + + + Save Cancel Hidden Service - Port + Ports + Local Port + Onion Port Name Invalid Port