Skip to content

Instantly share code, notes, and snippets.

@I82Much
Created September 29, 2010 19:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save I82Much/603352 to your computer and use it in GitHub Desktop.
Save I82Much/603352 to your computer and use it in GitHub Desktop.
// Save state of map
@Override
protected Parcelable onSaveInstanceState() {
Parcelable superState = super.onSaveInstanceState();
SavedState ss = new SavedState(superState);
ss.centerPoint = getMapCenter();
ss.zoomLevel = getZoomLevel();
return ss;
}
protected void onRestoreInstanceState(Parcelable state) {
Log.i("mapView", "On restore instance state with " + state);
SavedState ss = (SavedState) state;
super.onRestoreInstanceState(ss.getSuperState());
setMapCenter(ss.centerPoint);
setZoomLevel(ss.zoomLevel);
}
protected static class SavedState extends View.BaseSavedState {
GeoPoint centerPoint;
int zoomLevel;
SavedState(Parcelable superState) {
super(superState);
}
SavedState(Parcel in) {
super(in);
zoomLevel = in.readInt();
int latitudeE6 = in.readInt();
int longitudeE6 = in.readInt();
centerPoint = new GeoPoint(latitudeE6, longitudeE6);
}
@Override
public void writeToParcel(Parcel out, int flags) {
super.writeToParcel(out, flags);
out.writeInt(zoomLevel);
out.writeInt(centerPoint.getLatitudeE6());
out.writeInt(centerPoint.getLongitudeE6());
}
public static final Parcelable.Creator CREATOR
= new Parcelable.Creator() {
public SavedState createFromParcel(Parcel in) {
return new SavedState(in);
}
public SavedState[] newArray(int size) {
return new SavedState[size];
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment