111 lines
3.7 KiB
Java
111 lines
3.7 KiB
Java
package dk.network42.osmfocus;
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.content.pm.PackageManager.NameNotFoundException;
|
|
import android.content.res.Configuration;
|
|
import android.location.Location;
|
|
import android.preference.PreferenceManager;
|
|
import android.util.Log;
|
|
|
|
public class SharedData {
|
|
private static final String TAG = "SharedData";
|
|
|
|
private static final String PREF_VER_KEY = "prefVersion";
|
|
|
|
public OsmDB mDb = new OsmDB();
|
|
public OsmTileProvider mTileLayerProvider;
|
|
public OsmTileLayerBm mTileLayer = null;
|
|
public OsmTileProvider mVectorLayerProvider;
|
|
public OsmTileLayerVector mVectorLayer = null;
|
|
|
|
public boolean mUseCompass = false;
|
|
boolean mDebugHUD = false;
|
|
public boolean mFollowGPS = true;
|
|
public double mLon, mLat; // View location
|
|
long mLocationUpdates = 0;
|
|
int mSatelitesVisible = 0;
|
|
int mSatelitesUsed = 0;
|
|
Location mPhyLocation = null; // Physical location
|
|
public String mLocProvider;
|
|
public double mAzimuth, mPitch, mRoll;
|
|
PaintConfig mPcfg = new PaintConfig();
|
|
|
|
final boolean mDeveloperMode = false;
|
|
|
|
static final int AUTODOWNLOAD_MANUAL = 1;
|
|
static final int AUTODOWNLOAD_AUTOMATIC1 = 2;
|
|
static final int AUTODOWNLOAD_AUTOMATIC2 = 3;
|
|
int mVectorAutoDownload = AUTODOWNLOAD_AUTOMATIC1;
|
|
|
|
boolean mShowPoiLines = true;
|
|
int mPoisToShow = 0;
|
|
|
|
String mOsmServerAgentName = new String("OSMfocus");
|
|
|
|
Context mCtx;
|
|
|
|
public void update(Context ctx) {
|
|
mCtx = ctx;
|
|
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
|
|
mVectorAutoDownload = Integer.parseInt(sharedPrefs.getString("pref_autoload", "2"));
|
|
mShowPoiLines = sharedPrefs.getBoolean("pref_poilines", false);
|
|
|
|
int numpoi = Integer.parseInt(sharedPrefs.getString("pref_poinum", "0"));
|
|
boolean largescreen = (ctx.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)
|
|
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
|
|
boolean landscape = (ctx.getResources().getConfiguration().orientation & Configuration.ORIENTATION_LANDSCAPE) != 0;
|
|
//Log.d(TAG, "Pref:POI num=" + numpoi+" isLargeScreen="+largescreen+" landscape="+landscape);
|
|
if (numpoi == 0) { // Auto
|
|
if (largescreen || landscape) {
|
|
mPoisToShow = 8;
|
|
} else {
|
|
mPoisToShow = 4;
|
|
}
|
|
Log.d(TAG, "Auto POI num=" + mPoisToShow);
|
|
} else {
|
|
mPoisToShow = numpoi;
|
|
}
|
|
|
|
int backtype = Integer.parseInt(sharedPrefs.getString("pref_backmaptype", "1"));
|
|
if (mPcfg.mBackMapType != backtype) {
|
|
mPcfg.mBackMapType = backtype;
|
|
mTileLayer.setProviderUrl(OsmTileLayer.urlFromType(mPcfg.mBackMapType));
|
|
}
|
|
mPcfg.update(ctx);
|
|
}
|
|
|
|
public void printState(PrintWriter pw) {
|
|
pw.print("Loc="+mLon+","+mLat);
|
|
pw.print("PhyLoc="+mPhyLocation);
|
|
}
|
|
|
|
static void checkAppUpdate(Context ctx) {
|
|
// SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
|
|
// int ver = getAppVersion(ctx);
|
|
// int prefver = prefs.getInt(PREF_VER_KEY, 0);
|
|
// SharedPreferences.Editor ed = prefs.edit();
|
|
// if (prefver >= 0) {
|
|
// if (ver==2) {
|
|
// Log.d(TAG, "Do pref update, have "+prefver+" wants "+ver);
|
|
// ed.remove("pref_autoload");
|
|
// ed.apply();
|
|
// }
|
|
// }
|
|
// ed.putInt(PREF_VER_KEY, prefver);
|
|
// ed.apply();
|
|
}
|
|
|
|
static int getAppVersion(Context ctx) {
|
|
int ver = -1;
|
|
try {
|
|
ver = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0).versionCode;
|
|
} catch (NameNotFoundException e) {
|
|
Log.e(TAG, "Could not find package name");
|
|
}
|
|
return ver;
|
|
}
|
|
}
|