getRouterContext() helper function
This commit is contained in:
@ -2,27 +2,15 @@ package net.i2p.android.router;
|
|||||||
|
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
import android.preference.PreferenceCategory;
|
import android.preference.PreferenceCategory;
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
import android.preference.PreferenceManager;
|
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
|
||||||
import java.util.SortedSet;
|
|
||||||
import java.util.TreeSet;
|
|
||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
import net.i2p.android.router.R;
|
|
||||||
import net.i2p.android.router.service.StatSummarizer;
|
import net.i2p.android.router.service.StatSummarizer;
|
||||||
import net.i2p.android.router.util.Util;
|
import net.i2p.android.router.util.Util;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
@ -31,7 +19,11 @@ import net.i2p.stat.Rate;
|
|||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
||||||
import net.i2p.stat.StatManager;
|
import net.i2p.stat.StatManager;
|
||||||
import net.i2p.util.LogManager;
|
import net.i2p.util.LogManager;
|
||||||
import net.i2p.util.OrderedProperties;
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.SortedSet;
|
||||||
|
|
||||||
public class SettingsActivity extends PreferenceActivity {
|
public class SettingsActivity extends PreferenceActivity {
|
||||||
// Actions for legacy settings
|
// Actions for legacy settings
|
||||||
@ -51,10 +43,10 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
addPreferencesFromResource(R.xml.settings_net);
|
addPreferencesFromResource(R.xml.settings_net);
|
||||||
} else if (ACTION_PREFS_GRAPHS.equals(action)){
|
} else if (ACTION_PREFS_GRAPHS.equals(action)){
|
||||||
addPreferencesFromResource(R.xml.settings_graphs);
|
addPreferencesFromResource(R.xml.settings_graphs);
|
||||||
setupGraphSettings(this, getPreferenceScreen(), getRouterContext());
|
setupGraphSettings(this, getPreferenceScreen(), Util.getRouterContext());
|
||||||
} else if (ACTION_PREFS_LOGGING.equals(action)) {
|
} else if (ACTION_PREFS_LOGGING.equals(action)) {
|
||||||
addPreferencesFromResource(R.xml.settings_logging);
|
addPreferencesFromResource(R.xml.settings_logging);
|
||||||
RouterContext ctx = getRouterContext();
|
RouterContext ctx = Util.getRouterContext();
|
||||||
if (ctx != null)
|
if (ctx != null)
|
||||||
setupLoggingSettings(this, getPreferenceScreen(), ctx);
|
setupLoggingSettings(this, getPreferenceScreen(), ctx);
|
||||||
} else if (ACTION_PREFS_ADVANCED.equals(action)) {
|
} else if (ACTION_PREFS_ADVANCED.equals(action)) {
|
||||||
@ -66,14 +58,6 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static RouterContext getRouterContext() {
|
|
||||||
List<RouterContext> contexts = RouterContext.listContexts();
|
|
||||||
if ( !((contexts == null) || (contexts.isEmpty())) ) {
|
|
||||||
return contexts.get(0);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static void setupGraphSettings(Context context, PreferenceScreen ps, RouterContext ctx) {
|
protected static void setupGraphSettings(Context context, PreferenceScreen ps, RouterContext ctx) {
|
||||||
if (ctx == null) {
|
if (ctx == null) {
|
||||||
PreferenceCategory noRouter = new PreferenceCategory(context);
|
PreferenceCategory noRouter = new PreferenceCategory(context);
|
||||||
@ -177,13 +161,12 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
Properties logSettings = lProps.get(1);
|
Properties logSettings = lProps.get(1);
|
||||||
|
|
||||||
// Apply new config if we are running.
|
// Apply new config if we are running.
|
||||||
List<RouterContext> contexts = RouterContext.listContexts();
|
RouterContext rCtx = Util.getRouterContext();
|
||||||
if ( !((contexts == null) || (contexts.isEmpty())) ) {
|
if (rCtx != null) {
|
||||||
RouterContext _context = contexts.get(0);
|
rCtx.router().saveConfig(props, null);
|
||||||
_context.router().saveConfig(props, null);
|
|
||||||
|
|
||||||
// Merge in new log settings
|
// Merge in new log settings
|
||||||
saveLoggingChanges(_context, logSettings);
|
saveLoggingChanges(rCtx, logSettings);
|
||||||
} else {
|
} else {
|
||||||
// Merge in new config settings, write the file.
|
// Merge in new config settings, write the file.
|
||||||
InitActivities init = new InitActivities(this);
|
InitActivities init = new InitActivities(this);
|
||||||
@ -227,12 +210,12 @@ public class SettingsActivity extends PreferenceActivity {
|
|||||||
addPreferencesFromResource(R.xml.settings_net);
|
addPreferencesFromResource(R.xml.settings_net);
|
||||||
} else if ("graphs".equals(settings)) {
|
} else if ("graphs".equals(settings)) {
|
||||||
addPreferencesFromResource(R.xml.settings_graphs);
|
addPreferencesFromResource(R.xml.settings_graphs);
|
||||||
RouterContext ctx = getRouterContext();
|
RouterContext ctx = Util.getRouterContext();
|
||||||
if (ctx != null)
|
if (ctx != null)
|
||||||
setupGraphSettings(getActivity(), getPreferenceScreen(), ctx);
|
setupGraphSettings(getActivity(), getPreferenceScreen(), ctx);
|
||||||
} else if ("logging".equals(settings)) {
|
} else if ("logging".equals(settings)) {
|
||||||
addPreferencesFromResource(R.xml.settings_logging);
|
addPreferencesFromResource(R.xml.settings_logging);
|
||||||
RouterContext ctx = getRouterContext();
|
RouterContext ctx = Util.getRouterContext();
|
||||||
if (ctx != null)
|
if (ctx != null)
|
||||||
setupLoggingSettings(getActivity(), getPreferenceScreen(), ctx);
|
setupLoggingSettings(getActivity(), getPreferenceScreen(), ctx);
|
||||||
} else if ("advanced".equals(settings)) {
|
} else if ("advanced".equals(settings)) {
|
||||||
|
@ -323,12 +323,11 @@ public class RouterService extends Service {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setState(State.RUNNING);
|
setState(State.RUNNING);
|
||||||
List<?> contexts = RouterContext.listContexts();
|
_statusBar.replace(StatusBar.ICON_RUNNING, "I2P is running");
|
||||||
if((contexts == null) || (contexts.isEmpty())) {
|
_context = Util.getRouterContext();
|
||||||
|
if (_context == null) {
|
||||||
throw new IllegalStateException("No contexts. This is usually because the router is either starting up or shutting down.");
|
throw new IllegalStateException("No contexts. This is usually because the router is either starting up or shutting down.");
|
||||||
}
|
}
|
||||||
_statusBar.replace(StatusBar.ICON_RUNNING, "I2P is running");
|
|
||||||
_context = (RouterContext) contexts.get(0);
|
|
||||||
_context.router().setKillVMOnEnd(false);
|
_context.router().setKillVMOnEnd(false);
|
||||||
Job loadJob = new LoadClientsJob(_context, _notif);
|
Job loadJob = new LoadClientsJob(_context, _notif);
|
||||||
_context.jobQueue().addJob(loadJob);
|
_context.jobQueue().addJob(loadJob);
|
||||||
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
|
import net.i2p.android.router.util.Util;
|
||||||
import net.i2p.router.RouterContext;
|
import net.i2p.router.RouterContext;
|
||||||
import net.i2p.stat.Rate;
|
import net.i2p.stat.Rate;
|
||||||
import net.i2p.stat.RateStat;
|
import net.i2p.stat.RateStat;
|
||||||
@ -18,15 +19,20 @@ public class StatSummarizer implements Runnable {
|
|||||||
private Thread _thread;
|
private Thread _thread;
|
||||||
|
|
||||||
public StatSummarizer() {
|
public StatSummarizer() {
|
||||||
_context = RouterContext.listContexts().get(0);
|
_context = Util.getRouterContext();
|
||||||
_listeners = new CopyOnWriteArrayList<SummaryListener>();
|
_listeners = new CopyOnWriteArrayList<SummaryListener>();
|
||||||
_instance = this;
|
_instance = this;
|
||||||
|
if (_context != null)
|
||||||
_context.addShutdownTask(new Shutdown());
|
_context.addShutdownTask(new Shutdown());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StatSummarizer instance() { return _instance; }
|
public static StatSummarizer instance() { return _instance; }
|
||||||
|
|
||||||
public void run() {
|
public void run() {
|
||||||
|
// We can't do anything without a RouterContext
|
||||||
|
if (_context == null)
|
||||||
|
return;
|
||||||
|
|
||||||
_thread = Thread.currentThread();
|
_thread = Thread.currentThread();
|
||||||
String specs = "";
|
String specs = "";
|
||||||
while (_isRunning && _context.router().isAlive()) {
|
while (_isRunning && _context.router().isAlive()) {
|
||||||
|
@ -7,6 +7,7 @@ import android.content.pm.PackageManager;
|
|||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
|
import net.i2p.router.RouterContext;
|
||||||
import net.i2p.util.OrderedProperties;
|
import net.i2p.util.OrderedProperties;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -31,6 +32,19 @@ public abstract class Util {
|
|||||||
return "??";
|
return "??";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the active RouterContext.
|
||||||
|
*
|
||||||
|
* @return the active RouterContext, or null
|
||||||
|
*/
|
||||||
|
public static RouterContext getRouterContext() {
|
||||||
|
List<RouterContext> contexts = RouterContext.listContexts();
|
||||||
|
if ( !((contexts == null) || (contexts.isEmpty())) ) {
|
||||||
|
return contexts.get(0);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private static final String ANDROID_TAG = "I2P";
|
private static final String ANDROID_TAG = "I2P";
|
||||||
|
|
||||||
public static void e(String m) {
|
public static void e(String m) {
|
||||||
|
Reference in New Issue
Block a user