From afd656c6b4f4a77a65af2efc3e3a628bde802401 Mon Sep 17 00:00:00 2001
From: sponge-transport <sponge-transport@mail.i2p>
Date: Thu, 4 Oct 2012 16:46:03 +0000
Subject: [PATCH] Fixes to peers webviewer

---
 custom_rules.xml                              | 23 ++++++++-
 res/raw/router_config                         | 14 +++---
 res/values/strings.xml                        |  1 -
 res/xml/settings1.xml                         | 48 ++++++++++++-------
 .../router/activity/InitActivities.java       | 10 ++--
 .../router/activity/PeersActivity.java        | 24 ++++++----
 6 files changed, 79 insertions(+), 41 deletions(-)

diff --git a/custom_rules.xml b/custom_rules.xml
index 66118f61b..66833a762 100644
--- a/custom_rules.xml
+++ b/custom_rules.xml
@@ -411,10 +411,23 @@
         <copy file="LICENSE.txt" tofile="res/raw/license_app_txt" />
         <copy file="licenses/LICENSE-Apache2.0.txt" tofile="res/raw/license_apache20_txt" />
         <copy file="${i2pbase}/installer/resources/themes/console/images/i2plogo.png" todir="res/drawable/" />
+	<!-- 
+	
+	No, no, no. Wrong, wrong, wrong. Static web sources should be in
+        the assets directory. 
+        
         <copy file="${i2pbase}/installer/resources/themes/console/images/outbound.png" todir="res/drawable/" />
         <copy file="${i2pbase}/installer/resources/themes/console/images/inbound.png" todir="res/drawable/" />
         <copy file="${i2pbase}/installer/resources/themes/console/light/images/header.png" todir="res/drawable/" />
-        <copy file="${i2pbase}/installer/resources/themes/console/light/console.css" tofile="res/raw/console_css" />
+        <copy file="${i2pbase}/installer/resources/themes/console/light/console.css" tofile="res/drawable/console_css" />
+        -->
+        
+        <copy file="${i2pbase}/installer/resources/themes/console/images/i2plogo.png" todir="assets/themes/console/images/" />
+        <copy file="${i2pbase}/installer/resources/themes/console/images/outbound.png" todir="assets/themes/console/images/" />
+        <copy file="${i2pbase}/installer/resources/themes/console/images/inbound.png" todir="assets/themes/console/images/" />
+        <copy file="${i2pbase}/installer/resources/themes/console/light/images/header.png" todir="assets/themes/console/light/images/" />
+        <copy file="${i2pbase}/installer/resources/themes/console/light/console.css" todir="assets/themes/console/light/" />
+
         <copy file="${i2pbase}/installer/resources/blocklist.txt" tofile="res/raw/blocklist_txt" />
         <copy file="${i2pbase}/installer/resources/hosts.txt" tofile="res/raw/hosts_txt" />
         <copy file="${i2pbase}/licenses/LICENSE-ElGamalDSA.txt" tofile="res/raw/license_elgamaldsa_txt" />
@@ -446,6 +459,14 @@
         <delete file="res/drawable/inbound.png" verbose="${verbose}"/>
         <delete file="res/drawable/header.png" verbose="${verbose}"/>
         <delete file="res/raw/console_css" verbose="${verbose}"/>
+
+        <delete file="assets/themes/console/images/i2plogo.png" />
+        <delete file="assets/themes/console/images/outbound.png" />
+        <delete file="assets/themes/console/images/inbound.png" />
+        <delete file="assets/themes/console/light/images/header.png" />
+        <delete file="assets/themes/console/light/console.css" />
+
+
         <delete file="res/raw/blocklist_txt" verbose="${verbose}" />
         <delete file="res/raw/hosts_txt" verbose="${verbose}" />
         <delete file="res/raw/license_app_txt" />
diff --git a/res/raw/router_config b/res/raw/router_config
index b60f6c45c..c922bfd4c 100644
--- a/res/raw/router_config
+++ b/res/raw/router_config
@@ -20,7 +20,7 @@ time.disabled=false
 #
 # no external I2CP (7654)
 #
-i2cp.disableInterface=true
+i2cp.disableInterface=false
 #
 # hosts.txt should be more crash-proof than blockfile
 # Todo: implement a NamingService using the android native SQLite
@@ -38,8 +38,8 @@ router.outboundPool.backupQuantity=0
 router.outboundPool.length=2
 router.outboundPool.lengthVariance=0
 router.outboundPool.quantity=2
-router.maxParticipatingTunnels=0
-router.sharePercentage=10
+router.maxParticipatingTunnels=20
+router.sharePercentage=80
 #
 ##### Transport
 #
@@ -49,12 +49,12 @@ i2np.bandwidth.outboundKBytesPerSecond=100
 # NTCP
 #
 i2np.ntcp.enable=true
-i2np.ntcp.maxConnections=24
+i2np.ntcp.maxConnections=32
 #
 # UDP
 #
 i2np.udp.enable=true
-i2np.udp.maxConnections=24
+i2np.udp.maxConnections=32
 #
 #
 # not on android
@@ -69,8 +69,8 @@ i2np.upnp.enable=true
 
 #
 # Hidden by default, this turns off sharing, etc.
-#
-router.hiddenMode=true
+# bad idea, reduces user experience. Paranoids should set this only.
+router.hiddenMode=false
 
 #
 # Bad idea, disable it!
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 225c90147..fa16c9bc5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5,7 +5,6 @@
     <string name="welcome_new_install">Welcome to I2P! This app is ALPHA software and it does not provide strong anonymity. Please read the release notes and license information.</string>
     <string name="welcome_new_version">New version installed. Please read the release notes. Version:</string>
     <string name="settings_label_subscriptions">I2P Addressbook Settings</string>
-    <string name="hello_world">Hello world!</string>
     <string name="menu_settings">Settings</string>
 
 </resources>
\ No newline at end of file
diff --git a/res/xml/settings1.xml b/res/xml/settings1.xml
index ed52d23d4..06222c6d9 100644
--- a/res/xml/settings1.xml
+++ b/res/xml/settings1.xml
@@ -16,7 +16,7 @@
     -->
     <CheckBoxPreference
         android:key="i2cp.disableInterface"
-        android:defaultValue="true"
+        android:defaultValue="false"
         android:title="Disable i2cp interface"
         />
     <!--
@@ -36,39 +36,51 @@
     -->
     <com.hlidskialf.android.preference.SeekBarPreference
         android:key="i2np.bandwidth.outboundKBytesPerSecond"
-        android:defaultValue="30"
+        android:defaultValue="100"
         android:max="1000"
         android:title="Outbound speed"
         android:summary="Maximum outbound speed"
         android:dialogMessage="Maximum outbound speed"
         android:text=" KByets/sec"
         />
+
+    <CheckBoxPreference
+        android:key="i2np.ntcp.enable"
+        android:defaultValue="true"
+        android:title="Enable NTCP"
+        />
+
+    <!--
+    i2np.udp.enable=false
+    I might hide this one...
+    -->
+    <CheckBoxPreference
+        android:key="i2np.udp.enable"
+        android:defaultValue="true"
+        android:title="Enable UDP"
+        android:summary="DO NOT DISABLE THIS"
+        />
+
     <!--
     i2np.ntcp.maxConnections=24
     -->
     <com.hlidskialf.android.preference.SeekBarPreference
         android:key="i2np.ntcp.maxConnections"
-        android:defaultValue="24"
+        android:defaultValue="32"
         android:max="250"
         android:title="Max NTCP connections"
-        android:summary="Maximum NTCP connections allowed"
+        android:summary="Maximum NTCP connections allowed (default=32)"
         android:dialogMessage="Maximum NTCP connections"
         android:text=" connections"
-        />
-    <!--
-    i2np.udp.enable=false
-    -->
-    <CheckBoxPreference
-        android:key="i2np.udp.enable"
-        android:defaultValue="false"
-        android:title="Enable UDP"
+        android:dependency="i2np.ntcp.enable"
+        android:shouldDisableView="true"
         />
     <!--
     i2np.udp.maxConnections=12
     -->
     <com.hlidskialf.android.preference.SeekBarPreference
         android:key="i2np.udp.maxConnections"
-        android:defaultValue="24"
+        android:defaultValue="32"
         android:max="500"
         android:title="Max UDP connections"
         android:summary="Maximum UDP connections allowed"
@@ -82,7 +94,7 @@
     -->
     <CheckBoxPreference
         android:key="i2np.upnp.enable"
-        android:defaultValue="false"
+        android:defaultValue="true"
         android:title="Enable UPNP"
         />
 
@@ -100,10 +112,10 @@
     -->
     <com.hlidskialf.android.preference.SeekBarPreference
         android:key="router.maxParticipatingTunnels"
-        android:defaultValue="0"
+        android:defaultValue="20"
         android:max="500"
         android:title="Max Participating Tunnels"
-        android:summary="Maximum tunnels to participate in (default=0)"
+        android:summary="Maximum tunnels to participate in (default=20)"
         android:dialogMessage="Maximum tunnels to participate in"
         android:text=" Tunnels"
         android:dependency="router.hiddenMode"
@@ -113,10 +125,10 @@
     -->
     <com.hlidskialf.android.preference.SeekBarPreference
         android:key="router.sharePercentage"
-        android:defaultValue="10"
+        android:defaultValue="80"
         android:max="100"
         android:title="Share Percentage"
-        android:summary="Percentage of bandwith to share (default=10)"
+        android:summary="Percentage of bandwith to share (default=80)"
         android:dialogMessage="Percentage of bandwith to share"
         android:text="%"
         android:dependency="router.hiddenMode"
diff --git a/src/net/i2p/android/router/activity/InitActivities.java b/src/net/i2p/android/router/activity/InitActivities.java
index fbc6ff8a0..1f41704d8 100644
--- a/src/net/i2p/android/router/activity/InitActivities.java
+++ b/src/net/i2p/android/router/activity/InitActivities.java
@@ -100,19 +100,19 @@ class InitActivities {
 
             File cssDir = new File(docsDir, "themes/console/light");
             cssDir.mkdirs();
-            copyResourceToFile(R.raw.console_css, "docs/themes/console/light/console.css");
-            copyResourceToFile(R.raw.android_css, "docs/themes/console/light/android.css");
+            //copyResourceToFile(R.raw.console_css, "docs/themes/console/light/console.css");
+            //copyResourceToFile(R.raw.android_css, "docs/themes/console/light/android.css");
 
             File imgDir = new File(docsDir, "themes/console/images");
             imgDir.mkdir();
             copyResourceToFile(R.drawable.i2plogo, "docs/themes/console/images/i2plogo.png");
             copyResourceToFile(R.drawable.itoopie_sm, "docs/themes/console/images/itoopie_sm.png");
-            copyResourceToFile(R.drawable.outbound, "docs/themes/console/images/outbound.png");
-            copyResourceToFile(R.drawable.inbound, "docs/themes/console/images/inbound.png");
+            //copyResourceToFile(R.drawable.outbound, "docs/themes/console/images/outbound.png");
+            //copyResourceToFile(R.drawable.inbound, "docs/themes/console/images/inbound.png");
 
             File img2Dir = new File(cssDir, "images");
             img2Dir.mkdir();
-            copyResourceToFile(R.drawable.header, "docs/themes/console/light/images/header.png");
+            //copyResourceToFile(R.drawable.header, "docs/themes/console/light/images/header.png");
 
             File certDir = new File(myDir, "certificates");
             certDir.mkdir();
diff --git a/src/net/i2p/android/router/activity/PeersActivity.java b/src/net/i2p/android/router/activity/PeersActivity.java
index 73aec24aa..395ec0280 100644
--- a/src/net/i2p/android/router/activity/PeersActivity.java
+++ b/src/net/i2p/android/router/activity/PeersActivity.java
@@ -8,6 +8,7 @@ import java.io.IOException;
 import java.io.StringWriter;
 import net.i2p.android.router.R;
 import net.i2p.android.router.service.RouterService;
+import net.i2p.android.router.util.Util;
 import net.i2p.router.CommSystemFacade;
 
 public class PeersActivity extends I2PActivityBase {
@@ -24,7 +25,7 @@ public class PeersActivity extends I2PActivityBase {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.peers);
         WebView wv = (WebView) findViewById(R.id.peers_webview);
-        wv.getSettings().setLoadsImagesAutomatically(false);
+        wv.getSettings().setLoadsImagesAutomatically(true); // was false
         // http://stackoverflow.com/questions/2369310/webview-double-tap-zoom-not-working-on-a-motorola-droid-a855
         wv.getSettings().setUseWideViewPort(true);
         _wvClient = new I2PWebViewClient(this);
@@ -49,6 +50,7 @@ public class PeersActivity extends I2PActivityBase {
 
     private void update() {
         WebView wv = (WebView) findViewById(R.id.peers_webview);
+        wv.clearHistory(); // fixes having to hit back.
         CommSystemFacade comm = getCommSystem();
         String data;
         if (comm != null) {
@@ -57,7 +59,7 @@ public class PeersActivity extends I2PActivityBase {
             try {
                 comm.renderStatusHTML(out, "http://thiswontwork.i2p/peers", 0);
                 out.append(FOOTER);
-                data = out.toString();
+                data = out.toString().replaceAll("/themes", "themes");
             } catch (IOException ioe) {
                 data = HEADER + "Error: " + ioe + FOOTER;
             }
@@ -65,10 +67,11 @@ public class PeersActivity extends I2PActivityBase {
             data = HEADER + "No peer data available. The router is not running." + FOOTER;
         }
         try {
-            wv.loadData(data, "text/html", "UTF-8");
+            // wv.loadData(data, "text/html", "UTF-8");
             // figure out a way to get /themes/console/images/outbound.png to load
-            //String url = "file://" + _myDir + "/docs/";
-            //wv.loadDataWithBaseURL(url, data, "text/html", "UTF-8", url);
+            // String url = "file://" + _myDir + "/docs/";
+            String url = "file:///android_asset/";
+            wv.loadDataWithBaseURL(url, data, "text/html", "UTF-8", url);
         } catch (Exception e) {
         }
     }
@@ -79,10 +82,13 @@ public class PeersActivity extends I2PActivityBase {
         if ((keyCode == KeyEvent.KEYCODE_BACK)) {
             _wvClient.cancelAll();
             wv.stopLoading();
-            if (wv.canGoBack()) {
-                wv.goBack();
-                return true;
-            }
+
+            // We do not want to go back, or keep history... Theere is no need to.
+            // What we DO want to do is exit!
+            //if (wv.canGoBack()) {
+            //    wv.goBack();
+            //    return true;
+            //}
         }
         return super.onKeyDown(keyCode, event);
     }
-- 
GitLab