From 5ac6d512898ee165c62a578d5dc4fd288d99e3dc Mon Sep 17 00:00:00 2001
From: str4d <str4d@mail.i2p>
Date: Mon, 26 Aug 2013 04:18:02 +0000
Subject: [PATCH] Added support to SingleTextFieldPage for setting a default
 string

---
 .../android/i2ptunnel/activity/TunnelWizardModel.java |  2 ++
 .../i2p/android/wizard/model/SingleTextFieldPage.java | 11 +++++++++++
 .../android/wizard/ui/SingleTextFieldFragment.java    |  8 +++++++-
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/net/i2p/android/i2ptunnel/activity/TunnelWizardModel.java b/src/net/i2p/android/i2ptunnel/activity/TunnelWizardModel.java
index 15b9ae925..ee5852979 100644
--- a/src/net/i2p/android/i2ptunnel/activity/TunnelWizardModel.java
+++ b/src/net/i2p/android/i2ptunnel/activity/TunnelWizardModel.java
@@ -45,6 +45,7 @@ public class TunnelWizardModel extends AbstractWizardModel {
                 .setDescription("If you know of any outproxies for this type of tunnel (either HTTP or SOCKS), fill them in. Separate multiple proxies with commas.")
                 .setEqualAnyCondition(cClientType, "HTTP", "CONNECT", "SOCKS 4/4a/5", "SOCKS IRC"),
             new SingleTextFieldPage(this, "Target host")
+                .setDefault("127.0.0.1")
                 .setDescription("This is the IP that your service is running on, this is usually on the same machine so 127.0.0.1 is autofilled.")
                 .setEqualCondition(cClientType, "Streamr")
                 .setEqualAnyCondition(cServerType, "Standard", "HTTP", "HTTP bidir", "IRC"),
@@ -52,6 +53,7 @@ public class TunnelWizardModel extends AbstractWizardModel {
                 .setDescription("This is the port that the service is accepting connections on.")
                 .setEqualCondition(cTunnelType, "Server tunnel"),
             new SingleTextFieldPage(this, "Reachable on")
+                .setDefault("127.0.0.1")
                 .setDescription("This limits what computers or smartphones can access this tunnel.")
                 .setEqualAnyCondition(cClientType, "Standard", "HTTP", "IRC", "SOCKS 4/4a/5", "SOCKS IRC", "CONNECT")
                 .setEqualAnyCondition(cServerType, "HTTP bidir", "Streamr"),
diff --git a/src/net/i2p/android/wizard/model/SingleTextFieldPage.java b/src/net/i2p/android/wizard/model/SingleTextFieldPage.java
index 4eafc93ff..c86bba6da 100644
--- a/src/net/i2p/android/wizard/model/SingleTextFieldPage.java
+++ b/src/net/i2p/android/wizard/model/SingleTextFieldPage.java
@@ -27,6 +27,8 @@ import java.util.ArrayList;
  * A page asking for a text field.
  */
 public class SingleTextFieldPage extends Page {
+    // The null is checked in SingleTextFieldFragment
+    protected String mDef = null;
     protected String mDesc = "";
 
     public SingleTextFieldPage(ModelCallbacks callbacks, String title) {
@@ -48,6 +50,15 @@ public class SingleTextFieldPage extends Page {
         return !TextUtils.isEmpty(mData.getString(SIMPLE_DATA_KEY));
     }
 
+    public SingleTextFieldPage setDefault(String def) {
+        mDef = def;
+        return this;
+    }
+
+    public String getDefault() {
+        return mDef;
+    }
+
     public SingleTextFieldPage setDescription(String desc) {
         mDesc = desc;
         return this;
diff --git a/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java b/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java
index 28ff223e0..59fe96678 100644
--- a/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java
+++ b/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java
@@ -70,7 +70,13 @@ public class SingleTextFieldFragment extends Fragment {
 
         mFieldView = ((TextView) rootView.findViewById(R.id.wizard_text_field));
         mFieldView.setHint(mPage.getTitle());
-        mFieldView.setText(mPage.getData().getString(Page.SIMPLE_DATA_KEY));
+        if (mPage.getData().getString(Page.SIMPLE_DATA_KEY) != null)
+            mFieldView.setText(mPage.getData().getString(Page.SIMPLE_DATA_KEY));
+        else if (mPage.getDefault() != null) {
+            mFieldView.setText(mPage.getDefault());
+            mPage.getData().putString(Page.SIMPLE_DATA_KEY, mPage.getDefault());
+            mPage.notifyDataChanged();
+        }
         return rootView;
     }
 
-- 
GitLab