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