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() {