From 4810c9e990be3b30c75caa2afcba7c3ab5e9cf7a Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Wed, 28 Aug 2013 00:42:29 +0000 Subject: [PATCH] Implemented starting and stopping tunnels --- res/values/strings.xml | 2 ++ .../fragment/TunnelDetailFragment.java | 18 ++++++++++++++++++ .../i2ptunnel/fragment/TunnelListFragment.java | 17 +++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index f272b749d..5d3a090c0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -98,6 +98,8 @@ <string name="i2ptunnel_new_tunnel">New Tunnel</string> <string name="i2ptunnel_msg_config_saved">Configuration changes saved</string> <string name="i2ptunnel_msg_config_save_failed">Failed to save configuration</string> + <string name="i2ptunnel_msg_tunnel_starting">Starting tunnel</string> + <string name="i2ptunnel_msg_tunnel_stopping">Stopping tunnel</string> <string name="i2ptunnel_delete_confirm_message">Delete tunnel?</string> <string name="i2ptunnel_delete_confirm_button">Delete tunnel</string> diff --git a/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java b/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java index cb3b73533..f41c4cda4 100644 --- a/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java +++ b/src/net/i2p/android/i2ptunnel/fragment/TunnelDetailFragment.java @@ -128,6 +128,24 @@ public class TunnelDetailFragment extends Fragment { public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) { + case R.id.action_start_tunnel: + mTunnel.getController().startTunnelBackground(); + Toast.makeText(getActivity().getApplicationContext(), + getResources().getString(R.string.i2ptunnel_msg_tunnel_starting) + + ' ' + mTunnel.getName(), Toast.LENGTH_LONG).show(); + // Reload the action bar to change the start/stop action + getActivity().supportInvalidateOptionsMenu(); + return true; + case R.id.action_stop_tunnel: + mTunnel.getController().stopTunnel(); + Toast.makeText(getActivity().getApplicationContext(), + getResources().getString(R.string.i2ptunnel_msg_tunnel_stopping) + + ' ' + mTunnel.getName(), Toast.LENGTH_LONG).show(); + // Reload the action bar to change the start/stop action + getActivity().supportInvalidateOptionsMenu(); + return true; + case R.id.action_edit_tunnel: + return true; case R.id.action_delete_tunnel: DialogFragment dg = new DialogFragment() { @Override diff --git a/src/net/i2p/android/i2ptunnel/fragment/TunnelListFragment.java b/src/net/i2p/android/i2ptunnel/fragment/TunnelListFragment.java index 1c311ff55..60f4e40b0 100644 --- a/src/net/i2p/android/i2ptunnel/fragment/TunnelListFragment.java +++ b/src/net/i2p/android/i2ptunnel/fragment/TunnelListFragment.java @@ -21,6 +21,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.ListView; +import android.widget.Toast; public class TunnelListFragment extends ListFragment implements LoaderManager.LoaderCallbacks<List<TunnelEntry>> { @@ -145,10 +146,21 @@ public class TunnelListFragment extends ListFragment @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items + List<String> msgs; switch (item.getItemId()) { case R.id.action_add_tunnel: Intent wi = new Intent(getActivity(), TunnelWizardActivity.class); startActivityForResult(wi, TUNNEL_WIZARD_REQUEST); + return true; + case R.id.action_start_all_tunnels: + msgs = mGroup.startAllControllers(); + break; + case R.id.action_stop_all_tunnels: + msgs = mGroup.stopAllControllers(); + break; + case R.id.action_restart_all_tunnels: + msgs = mGroup.restartAllControllers(); + break; case R.id.action_i2ptunnel_help: Intent hi = new Intent(getActivity(), HelpActivity.class); hi.putExtra(HelpActivity.REFERRER, "i2ptunnel"); @@ -157,6 +169,11 @@ public class TunnelListFragment extends ListFragment default: return super.onOptionsItemSelected(item); } + // TODO: Do something with the other messages + if (msgs.size() > 0) + Toast.makeText(getActivity().getApplicationContext(), + msgs.get(0), Toast.LENGTH_LONG).show(); + return true; } @Override -- GitLab