Enable strict mode in OsmAnd~ version

This commit is contained in:
Victor Shcherb 2013-05-23 19:48:22 +02:00
parent ad455a43ed
commit 7bd0697b09
6 changed files with 38 additions and 48 deletions

View file

@ -319,33 +319,33 @@ public class TileSourceManager {
final List<TileSourceTemplate> templates = new ArrayList<TileSourceTemplate>();
// FIXME android.os.NetworkOnMainThreadException
// at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
// try {
// URLConnection connection = new URL("http://download.osmand.net//tile_sources.php?" + versionAsUrl).openConnection();
// XmlPullParser parser = PlatformUtil.newXMLPullParser();
// parser.setInput(connection.getInputStream(), "UTF-8");
// int tok;
// while ((tok = parser.next()) != XmlPullParser.END_DOCUMENT) {
// if (tok == XmlPullParser.START_TAG) {
// String name = parser.getName();
// if (name.equals("tile_source")) {
// Map<String, String> attrs = new LinkedHashMap<String, String>();
// for(int i=0; i< parser.getAttributeCount(); i++) {
// attrs.put(parser.getAttributeName(i), parser.getAttributeValue(i));
// }
// TileSourceTemplate template = createTileSourceTemplate(attrs);
// if (template != null) {
// templates.add(template);
// }
// }
// }
// }
// } catch (IOException e) {
// log.error("Exception while downloading tile sources", e);
// return null;
// } catch (XmlPullParserException e) {
// log.error("Exception while downloading tile sources", e);
// return null;
// }
try {
URLConnection connection = new URL("http://download.osmand.net//tile_sources.php?" + versionAsUrl).openConnection();
XmlPullParser parser = PlatformUtil.newXMLPullParser();
parser.setInput(connection.getInputStream(), "UTF-8");
int tok;
while ((tok = parser.next()) != XmlPullParser.END_DOCUMENT) {
if (tok == XmlPullParser.START_TAG) {
String name = parser.getName();
if (name.equals("tile_source")) {
Map<String, String> attrs = new LinkedHashMap<String, String>();
for(int i=0; i< parser.getAttributeCount(); i++) {
attrs.put(parser.getAttributeName(i), parser.getAttributeValue(i));
}
TileSourceTemplate template = createTileSourceTemplate(attrs);
if (template != null) {
templates.add(template);
}
}
}
}
} catch (IOException e) {
log.error("Exception while downloading tile sources", e);
return null;
} catch (XmlPullParserException e) {
log.error("Exception while downloading tile sources", e);
return null;
}
return templates;
}

View file

@ -55,6 +55,7 @@ import android.graphics.drawable.BitmapDrawable;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.StrictMode;
import android.text.format.DateFormat;
import android.widget.Toast;
@ -103,7 +104,13 @@ public class OsmandApplication extends Application implements ClientContext {
@Override
public void onCreate() {
long timeToStart = System.currentTimeMillis();
if (Version.getAppName(this).equals("OsmAnd~")) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskWrites().detectNetwork().detectCustomSlowCalls().
penaltyLog().penaltyDeath().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
}
super.onCreate();
settingsAPI = new net.osmand.plus.api.SettingsAPIImpl(this);
externalServiceAPI = new net.osmand.plus.api.ExternalServiceAPIImpl(this);
internalToDoAPI = new net.osmand.plus.api.InternalToDoAPIImpl(this);

View file

@ -15,8 +15,6 @@ import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import android.os.Build;
import net.osmand.IndexConstants;
import net.osmand.StateChangedListener;
import net.osmand.data.LatLon;
@ -30,6 +28,7 @@ import net.osmand.plus.api.SettingsAPI.SettingsEditor;
import net.osmand.plus.render.RendererRegistry;
import net.osmand.plus.routing.RouteProvider.RouteService;
import net.osmand.render.RenderingRulesStorage;
import android.os.Build;
public class OsmandSettings {
@ -98,7 +97,6 @@ public class OsmandSettings {
// cache variables
private long lastTimeInternetConnectionChecked = 0;
private boolean internetConnectionAvailable = true;
private List<TileSourceTemplate> internetAvailableSourceTemplates = null;
protected OsmandSettings(OsmandApplication clientContext) {
@ -816,12 +814,6 @@ public class OsmandSettings {
public final CommonPreference<String> MAP_TILE_SOURCES = new StringPreference("map_tile_sources",
TileSourceManager.getMapnikSource().getName()).makeGlobal();
public List<TileSourceTemplate> getInternetAvailableSourceTemplates(){
if(internetAvailableSourceTemplates == null && isInternetConnectionAvailable()){
internetAvailableSourceTemplates = TileSourceManager.downloadTileSourceTemplates(Version.getVersionAsURLParam(ctx));
}
return internetAvailableSourceTemplates;
}
public CommonPreference<String> PREVIOUS_INSTALLED_VERSION = new StringPreference("previous_installed_version", "").makeGlobal();
@ -868,8 +860,6 @@ public class OsmandSettings {
if (ret != null) {
return ret;
}
// try to find among other templates
ret = checkAmongAvailableTileSources(dir, getInternetAvailableSourceTemplates());
if (ret != null) {
return ret;
}
@ -884,16 +874,8 @@ public class OsmandSettings {
TileSourceTemplate ret = checkAmongAvailableTileSources(dir, knownTemplates);
if (ret != null) {
t = ret;
} else {
// try to find among other templates
ret = checkAmongAvailableTileSources(dir, getInternetAvailableSourceTemplates());
if (ret != null) {
t = ret;
}
}
}
return t;
}
return null;

View file

@ -23,7 +23,6 @@ import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.hardware.SensorManager;
import android.media.AudioManager;
import android.os.AsyncTask;
import android.os.Bundle;
@ -114,7 +113,6 @@ public class SettingsGeneralActivity extends SettingsBaseActivity {
screen.addPreference(applicationDir);
}
screen.addPreference(createCheckBoxPreference(settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS, R.string.use_magnetic_sensor, R.string.use_magnetic_sensor_descr));
screen.addPreference(createCheckBoxPreference(settings.USE_KALMAN_FILTER_FOR_COMPASS, R.string.use_kalman_filter_compass, R.string.use_kalman_filter_compass_descr));
registerBooleanPreference(settings.USE_ENGLISH_NAMES, screen);

View file

@ -28,6 +28,8 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
R.string.trace_rendering, R.string.trace_rendering_descr);
cat.addPreference(dbg);
cat.addPreference(createCheckBoxPreference(settings.USE_MAGNETIC_FIELD_SENSOR_COMPASS, R.string.use_magnetic_sensor, R.string.use_magnetic_sensor_descr));
Preference pref = new Preference(this);
pref.setTitle(R.string.test_voice_prompts);
pref.setSummary(R.string.play_commands_of_currently_selected_voice);

View file

@ -105,6 +105,7 @@ public class HillshadeLayer extends MapTileLayer {
}
} while(cursor.moveToNext());
cursor.close();
}
}