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 @@ + + + +