Исправлено восстановление состояния после блокировки/сворачивания
приложения
This commit is contained in:
parent
722ef1a719
commit
0b5ba76a9f
@ -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_NAME = "name";
|
||||||
public static final String EXTRA_SAVE = "save";
|
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 final FadeInfo NO_FADE = new FadeInfo(false, false, 0);
|
||||||
private static ViewActivity instance;
|
private static ViewActivity instance;
|
||||||
@ -93,7 +94,12 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
|||||||
places = new MapPlacesES();
|
places = new MapPlacesES();
|
||||||
|
|
||||||
final Intent intent = getIntent();
|
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 {
|
try {
|
||||||
InputStream stream = null;
|
InputStream stream = null;
|
||||||
if (save != null) {
|
if (save != null) {
|
||||||
@ -147,10 +153,22 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
|||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
stopMusic(NO_FADE);
|
stopMusic(NO_FADE);
|
||||||
stopSound(NO_FADE);
|
stopSound(NO_FADE);
|
||||||
|
super.onPause();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
safeClearImageView(background);
|
safeClearImageView(background);
|
||||||
spritesClear();
|
spritesClear();
|
||||||
Parser.release();
|
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
|
@Override
|
||||||
@ -490,16 +508,9 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void saveState() {
|
private void saveState() {
|
||||||
final long timestamp = System.currentTimeMillis();
|
final SaveInfo info = createSave();
|
||||||
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);
|
|
||||||
try {
|
try {
|
||||||
final String filename = Long.toString(timestamp);
|
final String filename = Long.toString(info.getTime());
|
||||||
IOUtil.writeSaveInfo(getApplicationContext(), filename, info);
|
IOUtil.writeSaveInfo(getApplicationContext(), filename, info);
|
||||||
Toast.makeText(this, R.string.saved, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.saved, Toast.LENGTH_SHORT).show();
|
||||||
} catch (IOException ioe) {
|
} 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() {
|
private final Runnable nextCommandRunnable = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
Loading…
Reference in New Issue
Block a user