package cgeo.geocaching.maps; import cgeo.geocaching.R; import cgeo.geocaching.maps.interfaces.MapActivityImpl; import cgeo.geocaching.maps.routing.Routing; import android.app.Activity; import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.Window; /** * Base class for the map activity. Delegates base class calls to the * provider-specific implementation. */ public abstract class AbstractMap { final MapActivityImpl mapActivity; protected AbstractMap(final MapActivityImpl activity) { mapActivity = activity; } public Resources getResources() { return mapActivity.getResources(); } public Activity getActivity() { return mapActivity.getActivity(); } public void onCreate(final Bundle savedInstanceState) { mapActivity.superOnCreate(savedInstanceState); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { mapActivity.getActivity().requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); } Routing.connect(); } public void onResume() { mapActivity.superOnResume(); } public void onStop() { mapActivity.superOnStop(); } public void onPause() { mapActivity.superOnPause(); } public void onDestroy() { mapActivity.superOnDestroy(); Routing.disconnect(); } public boolean onCreateOptionsMenu(final Menu menu) { final boolean result = mapActivity.superOnCreateOptionsMenu(menu); mapActivity.getActivity().getMenuInflater().inflate(R.menu.map_activity, menu); return result; } public boolean onPrepareOptionsMenu(final Menu menu) { return mapActivity.superOnPrepareOptionsMenu(menu); } public boolean onOptionsItemSelected(final MenuItem item) { return mapActivity.superOnOptionsItemSelected(item); } public abstract void onSaveInstanceState(final Bundle outState); }