From 0b5ba76a9fc42f26d9eb5ca45798ee7a1636b1d3 Mon Sep 17 00:00:00 2001 From: Victor Date: Sun, 3 May 2015 15:15:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=B2=D0=BE=D1=81=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=8F=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D1=81=D0=BB?= =?UTF-8?q?=D0=B5=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8/=D1=81=D0=B2=D0=BE=D1=80=D0=B0=D1=87=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../everlastingsummer/ViewActivity.java | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index 17690ec..7698724 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -37,6 +37,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch public static final String EXTRA_NAME = "name"; public static final String EXTRA_SAVE = "save"; + private static final String STATE_SAVEINFO = "saveinfo"; private static final FadeInfo NO_FADE = new FadeInfo(false, false, 0); private static ViewActivity instance; @@ -93,7 +94,12 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch places = new MapPlacesES(); final Intent intent = getIntent(); - final SaveInfo save = intent.getParcelableExtra(EXTRA_SAVE); + final SaveInfo save; + if (savedInstanceState != null) { + save = savedInstanceState.getParcelable(STATE_SAVEINFO); + } else { + save = intent.getParcelableExtra(EXTRA_SAVE); + } try { InputStream stream = null; if (save != null) { @@ -147,10 +153,22 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch protected void onPause() { stopMusic(NO_FADE); stopSound(NO_FADE); + super.onPause(); + } + + @Override + protected void onDestroy() { safeClearImageView(background); spritesClear(); Parser.release(); - super.onPause(); + super.onDestroy(); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + final SaveInfo info = createSave(); + outState.putParcelable(STATE_SAVEINFO, info); + super.onSaveInstanceState(outState); } @Override @@ -490,16 +508,9 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch } private void saveState() { - final long timestamp = System.currentTimeMillis(); - final SaveInfo info = new SaveInfo(); - info.setPath(scriptPath); - info.setPosition(Parser.getInstance().getLastPosition()); - info.setTime(timestamp); - info.setVariables(Variables.getVariables()); - info.setBackgroundType(backgroundType); - info.setBackgroundName(backgroundName); + final SaveInfo info = createSave(); try { - final String filename = Long.toString(timestamp); + final String filename = Long.toString(info.getTime()); IOUtil.writeSaveInfo(getApplicationContext(), filename, info); Toast.makeText(this, R.string.saved, Toast.LENGTH_SHORT).show(); } catch (IOException ioe) { @@ -507,6 +518,17 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch } } + private SaveInfo createSave() { + final SaveInfo info = new SaveInfo(); + info.setPath(scriptPath); + info.setPosition(Parser.getInstance().getLastPosition()); + info.setTime(System.currentTimeMillis()); + info.setVariables(Variables.getVariables()); + info.setBackgroundType(backgroundType); + info.setBackgroundName(backgroundName); + return info; + } + private final Runnable nextCommandRunnable = new Runnable() { @Override public void run() {