diff --git a/res/values/strings.xml b/res/values/strings.xml
index da93a5c..daa7c3f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6,11 +6,13 @@
Предыдущая сцена
Следующая сцена
Навигация
+ Сохранить
- @string/to_prev_scene
- @string/to_next_scene
- @string/navigate
+ - @string/save
diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java
index e6d085c..e4e07a5 100644
--- a/src/com/annimon/everlastingsummer/ViewActivity.java
+++ b/src/com/annimon/everlastingsummer/ViewActivity.java
@@ -5,6 +5,7 @@ import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import com.annimon.everlastingsummer.TouchGesture.TouchGestureType;
+import com.annimon.everlastingsummer.ast.Variables;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ContentResolver;
@@ -163,6 +164,9 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
case 2:
Dialogs.with(getInstance()).showNavigate();
break;
+ case 3:
+ saveState();
+ break;
}
}
@@ -387,6 +391,21 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
iv = null;
}
+ private void saveState() {
+ final SaveInfo info = new SaveInfo();
+ info.setPath(scriptPath);
+ info.setPosition(Parser.getInstance().getPosition());
+ info.setTime(System.currentTimeMillis());
+ info.setVariables(Variables.getVariables());
+ try {
+ final String filename = Long.toString(System.currentTimeMillis());
+ IOUtil.writeSaveInfo(getApplicationContext(), filename, info);
+ Toast.makeText(this, "Сохранено", Toast.LENGTH_SHORT).show();
+ } catch (IOException ioe) {
+ if (Logger.DEBUG) Logger.log("Ошибка сохранения", ioe);
+ }
+ }
+
private final Runnable nextCommandRunnable = new Runnable() {
@Override
public void run() {