From 4c6988e3bc9ebd1d34e0b5faa50748c75a160c8b Mon Sep 17 00:00:00 2001
From: unlnown542a <unknown542a@i2pmail.org>
Date: Thu, 18 Jan 2018 19:35:37 +0300
Subject: [PATCH] code cleanup

---
 android/build.gradle                            |  5 +++++
 android/gradle.properties                       |  2 +-
 .../src/org/purplei2p/i2pd/DaemonSingleton.java | 17 ++++++++---------
 .../org/purplei2p/i2pd/ForegroundService.java   | 13 +++++++++++--
 android/src/org/purplei2p/i2pd/I2PD.java        |  2 +-
 5 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/android/build.gradle b/android/build.gradle
index fcbb47ec..46d0d057 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -46,6 +46,11 @@ android {
     }
 }
 
+tasks.withType(JavaCompile) {
+    options.compilerArgs << '-Xlint:unchecked' << '-Xlint:deprecation'
+    options.deprecation = true
+}
+
 task zipCerts(type:Zip) {
     from (files('../contrib/'))
     include 'certificates/**/*.crt'
diff --git a/android/gradle.properties b/android/gradle.properties
index e32ec00b..d8894a70 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1 +1 @@
-org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=256M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
diff --git a/android/src/org/purplei2p/i2pd/DaemonSingleton.java b/android/src/org/purplei2p/i2pd/DaemonSingleton.java
index e95e0df1..031a7ef1 100644
--- a/android/src/org/purplei2p/i2pd/DaemonSingleton.java
+++ b/android/src/org/purplei2p/i2pd/DaemonSingleton.java
@@ -38,7 +38,7 @@ public class DaemonSingleton {
 	
 	public State getState() { return state; }
 	
-	public synchronized void start() {
+    public synchronized void start(final String confDir, final String dataDir) {
 		if(state != State.uninitialized)return;
 		state = State.starting;
 		fireStateUpdate();
@@ -62,14 +62,13 @@ public class DaemonSingleton {
 				}
 				try {
 					synchronized (DaemonSingleton.this) {
-                        String args[] = {
-                            "i2pd", 
-                            "--conf=/sdcard/i2pd/i2pd.conf", 
-                            "--tunconf=/sdcard/i2pd/tunnels.conf", 
-                            "--datadir=/data/data/org.purplei2p.i2pd/app_data/",
-                            "--service",
-                            "--daemon"
-                        };
+
+						String args[] = new String[] {
+							"i2pd", "--service", "--daemon", 
+								"--datadir=" + dataDir,
+								"--conf=" + confDir + "/i2pd.conf",
+								"--tunconf=" + confDir + "/tunnels.conf"
+						};
 
 						daemonStartResult = I2PD_JNI.startDaemon(args);
 						if("ok".equals(daemonStartResult)){
diff --git a/android/src/org/purplei2p/i2pd/ForegroundService.java b/android/src/org/purplei2p/i2pd/ForegroundService.java
index d25d0a88..645d0dca 100644
--- a/android/src/org/purplei2p/i2pd/ForegroundService.java
+++ b/android/src/org/purplei2p/i2pd/ForegroundService.java
@@ -5,6 +5,8 @@ import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.Service;
 import android.content.Intent;
+import android.content.Context;
+import android.os.Environment;
 import android.os.Binder;
 import android.os.IBinder;
 import android.util.Log;
@@ -28,13 +30,20 @@ public class ForegroundService extends Service {
         }
     }
 
+    private String dataDir;
+    private String confDir;
+
     @Override
     public void onCreate() {
         notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
+        dataDir = this.getDir("data", Context.MODE_PRIVATE).toString();
+        confDir = Environment.getExternalStoragePublicDirectory("i2pd").toString();
 
         // Display a notification about us starting.  We put an icon in the status bar.
         showNotification();
-        daemon.start();
+
+        Log.i("ForegroundService", "About to start daemon with dataDir: " + dataDir + ", confDir: " + confDir);
+        daemon.start(confDir, dataDir);
         // Tell the user we started.
         Toast.makeText(this, R.string.i2pd_service_started, Toast.LENGTH_SHORT).show();
     }
@@ -42,7 +51,7 @@ public class ForegroundService extends Service {
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
         Log.i("ForegroundService", "Received start id " + startId + ": " + intent);
-        daemon.start();
+        daemon.start(confDir, dataDir);
         return START_STICKY;
     }
 
diff --git a/android/src/org/purplei2p/i2pd/I2PD.java b/android/src/org/purplei2p/i2pd/I2PD.java
index 869cf570..b9d8d037 100755
--- a/android/src/org/purplei2p/i2pd/I2PD.java
+++ b/android/src/org/purplei2p/i2pd/I2PD.java
@@ -66,7 +66,7 @@ public class I2PD extends Activity {
         super.onCreate(savedInstanceState);
 
 		//install certs every time
-		Decompress.unzipFromAssets(this, "certificates.zip", "/data/data/org.purplei2p.i2pd/app_data/");
+		Decompress.unzipFromAssets(this, "certificates.zip", this.getDir("data", Context.MODE_PRIVATE).toString() + "/" );
 
         textView = new TextView(this);
         setContentView(textView);