diff --git a/TODO b/TODO index a8ea0055739d8fb286f26647e9fa4a0a140e5d20..65fd88ebb11a523b5ed0948a1c399209f8a14fa9 100644 --- a/TODO +++ b/TODO @@ -1,8 +1,5 @@ # Required for release -- Prevent accidental shutdown - - Add pop-up confirming router shutdown - - OR: make router button long-press - Display release notes directly on new router version - Text content - Move help content from release notes to help page diff --git a/res/layout/fragment_main.xml b/res/layout/fragment_main.xml index 6b796e10748481ce99abe25244fceecc779dd1fa..8d5bc80bc25d3957836b56883fb46c669d17207b 100644 --- a/res/layout/fragment_main.xml +++ b/res/layout/fragment_main.xml @@ -12,7 +12,7 @@ android:scaleType="centerInside" android:src="@drawable/routerlogo_0" /> - <ToggleButton + <net.i2p.android.router.util.LongToggleButton android:id="@+id/router_onoff_button" android:layout_width="match_parent" android:layout_height="68dp" diff --git a/res/values/strings.xml b/res/values/strings.xml index 5a9b718e5bbf1b2678b082eae3a0841b36d11cc5..fe07e4b2cadf936803603ed6b8f8f0ec88b6c7c8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -26,8 +26,8 @@ <string name="label_browse">Browse</string> <string name="label_graphs">Graphs</string> - <string name="button_router_off">Press to start I2P</string> - <string name="button_router_on">I2P is running (press to stop)</string> + <string name="button_router_off">Long press to start I2P</string> + <string name="button_router_on">I2P is running (long press to stop)</string> <string name="first_start_title">Congratulations on getting I2P installed!</string> <string name="first_start_welcome"><b>Welcome to I2P!</b> Please <b>have patience</b> as I2P boots up and finds peers.</string> diff --git a/src/net/i2p/android/router/MainFragment.java b/src/net/i2p/android/router/MainFragment.java index fc115569e331fab444f5ec937f21427f6ad46c02..a1e45056822e445f8f5c33e8fcde9b6a16aaf659 100644 --- a/src/net/i2p/android/router/MainFragment.java +++ b/src/net/i2p/android/router/MainFragment.java @@ -26,6 +26,7 @@ import java.util.List; import net.i2p.android.router.R; import net.i2p.android.router.dialog.FirstStartDialog; import net.i2p.android.router.dialog.VersionDialog; +import net.i2p.android.router.util.LongToggleButton; import net.i2p.android.router.util.Util; import net.i2p.data.DataHelper; import net.i2p.data.Destination; @@ -101,10 +102,10 @@ public class MainFragment extends I2PFragmentBase { final ImageView lightImage = (ImageView) v.findViewById(R.id.main_lights); lightImage.setImageResource(R.drawable.routerlogo_0); - ToggleButton b = (ToggleButton) v.findViewById(R.id.router_onoff_button); - b.setOnClickListener(new View.OnClickListener() { + LongToggleButton b = (LongToggleButton) v.findViewById(R.id.router_onoff_button); + b.setOnLongClickListener(new View.OnLongClickListener() { - public void onClick(View view) { + public boolean onLongClick(View view) { boolean on = ((ToggleButton) view).isChecked(); if (on) { _startPressed = true; @@ -116,6 +117,7 @@ public class MainFragment extends I2PFragmentBase { updateOneShot(); } } + return true; } }); diff --git a/src/net/i2p/android/router/util/LongToggleButton.java b/src/net/i2p/android/router/util/LongToggleButton.java new file mode 100644 index 0000000000000000000000000000000000000000..2db7af2dc929beeae1cec507395e8d6b73a2bb84 --- /dev/null +++ b/src/net/i2p/android/router/util/LongToggleButton.java @@ -0,0 +1,33 @@ +package net.i2p.android.router.util; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.ToggleButton; + +public class LongToggleButton extends ToggleButton { + public LongToggleButton(Context context) { + super(context); + } + + public LongToggleButton(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public LongToggleButton(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + @Override + public boolean performClick() { + /* Cancel out toggle */ + toggle(); + return super.performClick(); + } + + @Override + public boolean performLongClick() { + /* When clicked, toggle the state */ + toggle(); + return super.performLongClick(); + } +}