I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit cb9924a0 authored by sponge's avatar sponge
Browse files

(Security fix) Fully kill the app and remove it from memory if not running.

parent 3ceed9a6
No related branches found
No related tags found
No related merge requests found
...@@ -12,6 +12,8 @@ import android.widget.Button; ...@@ -12,6 +12,8 @@ import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import java.io.File; import java.io.File;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.i2p.android.router.R; import net.i2p.android.router.R;
import net.i2p.android.router.service.RouterService; import net.i2p.android.router.service.RouterService;
import net.i2p.android.router.util.Util; import net.i2p.android.router.util.Util;
...@@ -30,6 +32,7 @@ public class MainActivity extends I2PActivityBase { ...@@ -30,6 +32,7 @@ public class MainActivity extends I2PActivityBase {
protected static final String PROP_NEW_VERSION = "i2p.newVersion"; protected static final String PROP_NEW_VERSION = "i2p.newVersion";
protected static final int DIALOG_NEW_INSTALL = 0; protected static final int DIALOG_NEW_INSTALL = 0;
protected static final int DIALOG_NEW_VERSION = 1; protected static final int DIALOG_NEW_VERSION = 1;
private boolean _keep = true;
/** Called when the activity is first created. */ /** Called when the activity is first created. */
@Override @Override
...@@ -207,6 +210,8 @@ public class MainActivity extends I2PActivityBase { ...@@ -207,6 +210,8 @@ public class MainActivity extends I2PActivityBase {
@Override @Override
public void onStop() public void onStop()
{ {
RouterContext ctx = getRouterContext();
_keep = Util.isConnected(this) && ctx != null;
super.onStop(); super.onStop();
_handler.removeCallbacks(_updater); _handler.removeCallbacks(_updater);
_handler.removeCallbacks(_oneShotUpdate); _handler.removeCallbacks(_oneShotUpdate);
...@@ -264,6 +269,26 @@ public class MainActivity extends I2PActivityBase { ...@@ -264,6 +269,26 @@ public class MainActivity extends I2PActivityBase {
quit.setVisibility(showStop ? View.VISIBLE : View.INVISIBLE); quit.setVisibility(showStop ? View.VISIBLE : View.INVISIBLE);
} }
@Override
public void onDestroy() {
// RouterContext ctx = getRouterContext();
super.onDestroy();
if (!_keep) {
Thread t = new Thread(new KillMe());
t.start();
}
}
private class KillMe implements Runnable {
public void run() {
try {
Thread.sleep(500); // is 500ms long enough?
} catch (InterruptedException ex) {
}
System.exit(0);
}
}
private void updateStatus() { private void updateStatus() {
RouterContext ctx = getRouterContext(); RouterContext ctx = getRouterContext();
TextView tv = (TextView) findViewById(R.id.main_status_text); TextView tv = (TextView) findViewById(R.id.main_status_text);
......
...@@ -547,6 +547,7 @@ public class RouterService extends Service { ...@@ -547,6 +547,7 @@ public class RouterService extends Service {
setState(stopState); setState(stopState);
} }
stopForeground(true); stopForeground(true);
_statusBar.off();
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment