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 a2c9280c..576f083c 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
@@ -2,17 +2,21 @@ package org.torproject.android.ui.hs;
import android.content.ContentResolver;
+import android.content.DialogInterface;
import android.database.ContentObserver;
import android.os.Bundle;
import android.os.Handler;
import android.support.design.widget.FloatingActionButton;
+import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
+import android.widget.TextView;
import org.torproject.android.R;
import org.torproject.android.ui.hs.adapters.OnionListAdapter;
+import org.torproject.android.ui.hs.dialogs.HSActionsDialog;
import org.torproject.android.ui.hs.dialogs.HSDataDialog;
import org.torproject.android.ui.hs.providers.HSContentProvider;
@@ -69,19 +73,12 @@ public class HiddenServicesActivity extends AppCompatActivity {
ListView onion_list = (ListView) findViewById(R.id.onion_list);
onion_list.setAdapter(mAdapter);
- onion_list.setOnItemClickListener(new AdapterView.OnItemClickListener(){
+ onion_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
-
- }
- });
-
- onion_list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener(){
-
- @Override
- public boolean onItemLongClick(AdapterView> parent, View view, int position, long id) {
- return false;
+ HSActionsDialog dialog = new HSActionsDialog();
+ dialog.show(getSupportFragmentManager(), "HSActionsDialog");
}
});
}
diff --git a/app/src/main/java/org/torproject/android/ui/hs/dialogs/HSActionsDialog.java b/app/src/main/java/org/torproject/android/ui/hs/dialogs/HSActionsDialog.java
new file mode 100644
index 00000000..8c5ca48d
--- /dev/null
+++ b/app/src/main/java/org/torproject/android/ui/hs/dialogs/HSActionsDialog.java
@@ -0,0 +1,56 @@
+package org.torproject.android.ui.hs.dialogs;
+
+
+import android.app.Dialog;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v4.app.DialogFragment;
+import android.support.v7.app.AlertDialog;
+import android.view.View;
+import android.widget.Button;
+
+import org.torproject.android.R;
+
+public class HSActionsDialog extends DialogFragment {
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+
+ final View dialog_view = getActivity().getLayoutInflater().inflate(R.layout.layout_hs_actions, null);
+ final AlertDialog actionDialog = new AlertDialog.Builder(getActivity())
+ .setView(dialog_view)
+ .setTitle(R.string.hidden_services)
+ .create();
+
+ Button save = (Button) dialog_view.findViewById(R.id.btn_hs_backup);
+ save.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ actionDialog.dismiss();
+ }
+ });
+
+ Button cancel = (Button) dialog_view.findViewById(R.id.btn_hs_clipboard);
+ cancel.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ actionDialog.dismiss();
+ }
+ });
+
+ Button delete = (Button) dialog_view.findViewById(R.id.btn_hs_delete);
+ delete.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ actionDialog.dismiss();
+ }
+ });
+
+ Button btn_cancel = (Button) dialog_view.findViewById(R.id.btn_hs_cancel);
+ btn_cancel.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ actionDialog.dismiss();
+ }
+ });
+
+ return actionDialog;
+ }
+}
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 67c36910..98a9d3f4 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
@@ -25,9 +25,9 @@ public class HSDataDialog extends DialogFragment {
final View dialog_view = getActivity().getLayoutInflater().inflate(R.layout.layout_hs_data_dialog, null);
// Use the Builder class for convenient dialog construction
- final AlertDialog serverDataDialog = new AlertDialog.Builder(getActivity())
+ final AlertDialog serviceDataDialog = new AlertDialog.Builder(getActivity())
.setView(dialog_view)
- .setTitle(R.string.hs_dialog_title)
+ .setTitle(R.string.hidden_services)
.create();
// Buttons action
@@ -44,7 +44,7 @@ public class HSDataDialog extends DialogFragment {
if (checkInput(localPort,onionPort)) {
saveData(serverName, localPort,onionPort);
- serverDataDialog.dismiss();
+ serviceDataDialog.dismiss();
}
}
});
@@ -52,11 +52,11 @@ public class HSDataDialog extends DialogFragment {
Button cancel = (Button) dialog_view.findViewById(R.id.HSDialogCancel);
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
- serverDataDialog.cancel();
+ serviceDataDialog.cancel();
}
});
- return serverDataDialog;
+ return serviceDataDialog;
}
private boolean checkInput(Integer local, Integer remote){
diff --git a/app/src/main/res/layout/layout_hs_actions.xml b/app/src/main/res/layout/layout_hs_actions.xml
new file mode 100644
index 00000000..64bda7db
--- /dev/null
+++ b/app/src/main/res/layout/layout_hs_actions.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/layout_hs_data_dialog.xml b/app/src/main/res/layout/layout_hs_data_dialog.xml
index 7379f455..d791b1bf 100644
--- a/app/src/main/res/layout/layout_hs_data_dialog.xml
+++ b/app/src/main/res/layout/layout_hs_data_dialog.xml
@@ -59,7 +59,7 @@
android:layout_height="match_parent">