From d8636ff5633f24c100683a41a0c0051d93b02cf7 Mon Sep 17 00:00:00 2001
From: str4d <str4d@mail.i2p>
Date: Sun, 26 Jan 2014 04:59:16 +0000
Subject: [PATCH] Added About dialog

---
 res/layout/fragment_about.xml                 | 65 +++++++++++++++++++
 res/menu/activity_base_actions.xml            | 12 ++++
 res/menu/activity_main_actions.xml            |  9 +--
 res/values/strings.xml                        |  9 +++
 src/net/i2p/android/router/AboutDialog.java   | 28 ++++++++
 src/net/i2p/android/router/MainActivity.java  |  6 ++
 src/net/i2p/android/router/MainFragment.java  | 11 ++--
 .../i2p/android/router/log/LogActivity.java   |  2 +-
 8 files changed, 127 insertions(+), 15 deletions(-)
 create mode 100644 res/layout/fragment_about.xml
 create mode 100755 res/menu/activity_base_actions.xml
 create mode 100644 src/net/i2p/android/router/AboutDialog.java

diff --git a/res/layout/fragment_about.xml b/res/layout/fragment_about.xml
new file mode 100644
index 000000000..d0dc4afb5
--- /dev/null
+++ b/res/layout/fragment_about.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical" >
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/about_version"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/about_version"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/about_bugs"
+            android:textStyle="bold" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/url_android_forum"
+            android:autoLink="web" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/about_helpwanted"
+            android:textStyle="bold" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/about_volunteer" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/url_android_forum"
+            android:autoLink="web" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/about_donate" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:text="@string/url_donate"
+            android:autoLink="web" />
+
+    </LinearLayout>
+    
+
+</ScrollView>
diff --git a/res/menu/activity_base_actions.xml b/res/menu/activity_base_actions.xml
new file mode 100755
index 000000000..ab07512ef
--- /dev/null
+++ b/res/menu/activity_base_actions.xml
@@ -0,0 +1,12 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+      xmlns:i2pandroid="http://schemas.android.com/apk/res-auto">
+    <item android:title="@string/menu_settings"
+          android:id="@+id/menu_settings"
+          android:icon="@android:drawable/ic_menu_preferences"
+          i2pandroid:showAsAction="never" >
+    </item>
+    <item android:title="@string/menu_help"
+          android:id="@+id/menu_help"
+          i2pandroid:showAsAction="never" >
+    </item>
+</menu>
diff --git a/res/menu/activity_main_actions.xml b/res/menu/activity_main_actions.xml
index ab07512ef..067cdaba4 100755
--- a/res/menu/activity_main_actions.xml
+++ b/res/menu/activity_main_actions.xml
@@ -1,12 +1,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:i2pandroid="http://schemas.android.com/apk/res-auto">
-    <item android:title="@string/menu_settings"
-          android:id="@+id/menu_settings"
-          android:icon="@android:drawable/ic_menu_preferences"
-          i2pandroid:showAsAction="never" >
-    </item>
-    <item android:title="@string/menu_help"
-          android:id="@+id/menu_help"
+    <item android:title="@string/menu_about"
+          android:id="@+id/menu_about"
           i2pandroid:showAsAction="never" >
     </item>
 </menu>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5191f2ee0..f11d54eb9 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -103,6 +103,15 @@
     <string name="settings_summ_expl_backupQuantity">%s tunnels</string>
     <string name="settings_desc_expl_backupQuantity">How many tunnel backups</string>
 
+    <string name="menu_about">About</string>
+    <string name="about_version">Version</string>
+    <string name="about_bugs">Bugs and Support</string>
+    <string name="url_android_forum">http://zzz.i2p/</string>
+    <string name="about_helpwanted">Help Wanted!</string>
+    <string name="about_volunteer">Want to help make the app better? Volunteer on the Android forum:</string>
+    <string name="about_donate">Want to donate money or bitcoins to buy more Android devices for development and testing? Go to:</string>
+    <string name="url_donate">https://geti2p.net/en/donate</string>
+
     <string name="menu_help">Help</string>
 
     <string name="addressbook_search_header">%s found</string>
diff --git a/src/net/i2p/android/router/AboutDialog.java b/src/net/i2p/android/router/AboutDialog.java
new file mode 100644
index 000000000..3bb432659
--- /dev/null
+++ b/src/net/i2p/android/router/AboutDialog.java
@@ -0,0 +1,28 @@
+package net.i2p.android.router;
+
+import net.i2p.android.router.R;
+import net.i2p.android.router.util.Util;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+public class AboutDialog extends DialogFragment {
+    @Override
+    public Dialog onCreateDialog(Bundle SavedInstanceState) {
+        LayoutInflater li = LayoutInflater.from(getActivity());
+        View view = li.inflate(R.layout.fragment_about, null);
+
+        final String currentVersion = Util.getOurVersion(getActivity());
+        TextView tv = (TextView)view.findViewById(R.id.about_version);
+        tv.setText(currentVersion);
+
+        AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
+        b.setTitle(R.string.menu_about)
+        .setView(view);
+        return b.create();
+    }
+}
diff --git a/src/net/i2p/android/router/MainActivity.java b/src/net/i2p/android/router/MainActivity.java
index 1edc88780..932d66a11 100644
--- a/src/net/i2p/android/router/MainActivity.java
+++ b/src/net/i2p/android/router/MainActivity.java
@@ -70,6 +70,7 @@ public class MainActivity extends I2PActivityBase implements
     public boolean onCreateOptionsMenu(Menu menu) {
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.activity_main_actions, menu);
+        inflater.inflate(R.menu.activity_base_actions, menu);
         return super.onCreateOptionsMenu(menu);
     }
 
@@ -81,6 +82,11 @@ public class MainActivity extends I2PActivityBase implements
             startActivity(intent);
             return true;
 
+        case R.id.menu_about:
+            AboutDialog dialog = new AboutDialog();
+            dialog.show(getSupportFragmentManager(), "about");
+            return true;
+
         case R.id.menu_help:
             Intent hi = new Intent(MainActivity.this, HelpActivity.class);
             hi.putExtra(HelpActivity.REFERRER, "main");
diff --git a/src/net/i2p/android/router/MainFragment.java b/src/net/i2p/android/router/MainFragment.java
index 3babef4b1..66c434ce6 100644
--- a/src/net/i2p/android/router/MainFragment.java
+++ b/src/net/i2p/android/router/MainFragment.java
@@ -22,7 +22,6 @@ public class MainFragment extends I2PFragmentBase {
     private Runnable _updater;
     private Runnable _oneShotUpdate;
     private String _savedStatus;
-    private String _ourVersion;
     private boolean _keep = true;
     private boolean _startPressed = false;
     protected static final String PROP_NEW_INSTALL = "i2p.newInstall";
@@ -65,7 +64,6 @@ public class MainFragment extends I2PFragmentBase {
                 _savedStatus = saved;
             }
         }
-        _ourVersion = Util.getOurVersion(getActivity());
 
         _keep = true;
 
@@ -243,7 +241,7 @@ public class MainFragment extends I2PFragmentBase {
         if(!Util.isConnected(getActivity())) {
             // Manually set state, RouterService won't be running
             updateState("WAITING");
-            tv.setText("Router version: " + _ourVersion + "\nNo Internet connection is available");
+            tv.setText("No Internet connection is available");
             tv.setVisibility(View.VISIBLE);
         } else if(ctx != null) {
             if(_startPressed) {
@@ -304,8 +302,7 @@ public class MainFragment extends I2PFragmentBase {
             }
 
             String status =
-                    "ROUTER STATUS"
-                    + "\nNetwork: " + netstatus
+                    "Network: " + netstatus
                     + "\nPeers active/known: " + active + " / " + known
                     + "\nExploratory Tunnels in/out: " + inEx + " / " + outEx
                     + "\nClient Tunnels in/out: " + inCl + " / " + outCl;
@@ -325,12 +322,12 @@ public class MainFragment extends I2PFragmentBase {
                     + "\nMsg Delay: " + msgDelay
                     + "\nUptime: " + uptime;
 
-            _savedStatus = "Router version: " + _ourVersion + "\n" + status + participate + details;
+            _savedStatus = status + participate + details;
             tv.setText(_savedStatus);
             tv.setVisibility(View.VISIBLE);
         } else {
             // network but no router context
-            tv.setText("Router version: " + _ourVersion + "\n");
+            tv.setText("Not running");
             //tv.setVisibility(View.INVISIBLE);
             /**
              * **
diff --git a/src/net/i2p/android/router/log/LogActivity.java b/src/net/i2p/android/router/log/LogActivity.java
index 2802a6918..476e46fbe 100644
--- a/src/net/i2p/android/router/log/LogActivity.java
+++ b/src/net/i2p/android/router/log/LogActivity.java
@@ -76,7 +76,7 @@ public class LogActivity extends I2PActivityBase implements
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.activity_main_actions, menu);
+        inflater.inflate(R.menu.activity_base_actions, menu);
         // Help menu not needed (yet), hide
         menu.findItem(R.id.menu_help).setVisible(false);
         return super.onCreateOptionsMenu(menu);
-- 
GitLab