package com.robert.maps.applib.preference;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceCategory;
import android.preference.PreferenceManager;
import com.robert.maps.applib.R;
import com.robert.maps.applib.utils.OnlineCachePreference;
public class PredefMapsPrefActivity extends PreferenceActivity {
private static final String ID = "id";
private static final String NAME = "name";
private static final String GOOGLESCALE = "GOOGLESCALE";
private static final String PROJECTION = "PROJECTION";
private static final String MAPTILE_SIZEPX = "MAPTILE_SIZEPX";
private String mKey;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setPreferenceScreen(getPreferenceManager().createPreferenceScreen(this));
Intent intent = getIntent();
if(intent == null)
finish();
Bundle bundle = intent.getExtras();
mKey = bundle.getString("Key");
final PreferenceCategory prefscr = new PreferenceCategory(this);
prefscr.setKey(mKey);
prefscr.setTitle(bundle.getString(NAME));
getPreferenceScreen().addPreference(prefscr);
{
final CheckBoxPreference pref = new CheckBoxPreference(this);
pref.setKey(mKey);
pref.setTitle(getString(R.string.pref_usermap_enabled));
pref.setSummary(getString(R.string.pref_usermap_enabled_summary));
pref.setDefaultValue(true);
prefscr.addPreference(pref);
}
{
final OnlineCachePreference pref = new OnlineCachePreference(this, bundle.getString(ID));
pref.setKey(mKey + "_clearcache");
prefscr.addPreference(pref);
}
if(bundle.containsKey(GOOGLESCALE) && bundle.getBoolean(GOOGLESCALE)) {
final ListPreference pref = new ListPreference(this);
pref.setKey(mKey + "_googlescale");
pref.setDefaultValue("1");
pref.setTitle(R.string.pref_googlescale);
pref.setSummary(R.string.pref_googlescale_summary);
pref.setEntries(R.array.googlescale_pref_title);
pref.setEntryValues(R.array.googlescale_pref_values);
prefscr.addPreference(pref);
}
{
final ListPreference pref = new ListPreference(this);
pref.setKey(mKey + "_stretch");
pref.setDefaultValue("1");
pref.setTitle(R.string.pref_stretchtile);
pref.setSummary(R.string.pref_stretchtile_summary);
pref.setEntries(R.array.googlescale_pref_title);
pref.setEntryValues(R.array.googlescale_pref_values);
prefscr.addPreference(pref);
}
{
final Preference pref = new Preference(this);
pref.setTitle(R.string.pref_usermap_projection);
switch(bundle.getInt(PROJECTION)) {
case 1:
pref.setSummary(R.string.mercator_spheroid);
break;
case 2:
pref.setSummary(R.string.mercator_ellipsoid);
break;
case 3:
pref.setSummary(R.string.osgb36);
break;
}
prefscr.addPreference(pref);
}
{
final Preference pref = new Preference(this);
pref.setTitle(R.string.pref_tile_size);
int size = bundle.getInt(MAPTILE_SIZEPX);
final SharedPreferences sharpref = PreferenceManager.getDefaultSharedPreferences(this);
final double GOOGLESCALE_SIZE_FACTOR = Double.parseDouble(sharpref.getString(mKey + "_googlescale", "1"));
size = (int) (size * GOOGLESCALE_SIZE_FACTOR);
pref.setSummary(String.format("%d x %d px", size, size));
prefscr.addPreference(pref);
}
{
final OffsetPreference pref = new OffsetPreference(this, bundle.getString(ID));
pref.setKey(bundle.getString(ID) + "_offset");
pref.setTitle(R.string.pref_mapoffset);
pref.setSummary(R.string.pref_mapoffset_summary);
prefscr.addPreference(pref);
}
}
}