package me.guillaumin.android.osmtracker.activity; import me.guillaumin.android.osmtracker.OSMTracker; import me.guillaumin.android.osmtracker.db.TrackContentProvider.Schema; import me.guillaumin.android.osmtracker.util.ThemeValidator; import me.guillaumin.android.osmtracker.view.DisplayTrackView; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.ViewGroup.LayoutParams; /** * Displays current track in 2D view. *<P> * Used only if {@link OSMTracker.Preferences#KEY_UI_DISPLAYTRACK_OSM} is not true. * Otherwise {@link DisplayTrackMap} is used. * * @author Nicolas Guillaumin * */ public class DisplayTrack extends Activity { @SuppressWarnings("unused") private static final String TAG = DisplayTrack.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { // Set application theme according to user settings setTheme(getResources().getIdentifier(ThemeValidator.getValidTheme( PreferenceManager.getDefaultSharedPreferences(this), getResources()), null, null)); super.onCreate(savedInstanceState); // Create special view and displays it final long trackId = getIntent().getExtras().getLong(Schema.COL_TRACK_ID); DisplayTrackView dtv = new DisplayTrackView(this, trackId); dtv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); setTitle(getTitle() + ": #" + getIntent().getExtras().getLong(Schema.COL_TRACK_ID)); setContentView(dtv); // If this is the first time showing this activity, // wait for everything to initialize and then ask // the user if they'd rather see the OSM background. SharedPreferences dtPrefs = PreferenceManager.getDefaultSharedPreferences(this); if (! dtPrefs.getBoolean(OSMTracker.Preferences.KEY_UI_ASKED_DISPLAYTRACK_OSM, false)) { dtPrefs.edit().putBoolean(OSMTracker.Preferences.KEY_UI_ASKED_DISPLAYTRACK_OSM, true).commit(); dtv.post(new Runnable() { @Override public void run() { new AlertDialog.Builder(DisplayTrack.this) .setTitle(me.guillaumin.android.osmtracker.R.string.prefs_displaytrack_osm) .setMessage(me.guillaumin.android.osmtracker.R.string.prefs_displaytrack_osm_summary_ask) .setNegativeButton(android.R.string.no, null) .setPositiveButton(me.guillaumin.android.osmtracker.R.string.displaytrack_map, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { PreferenceManager.getDefaultSharedPreferences(DisplayTrack.this).edit() .putBoolean(OSMTracker.Preferences.KEY_UI_DISPLAYTRACK_OSM, true).commit(); Intent i = new Intent(DisplayTrack.this, DisplayTrackMap.class); i.putExtra(Schema.COL_TRACK_ID, trackId); startActivity(i); finish(); // DisplayTrackMap replaces our activity } }) .show(); } }); } } }