examples/calculator: implement state saving and loading
authorAlexis Laferrière <alexis.laf@xymus.net>
Fri, 8 May 2015 16:30:42 +0000 (12:30 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Tue, 19 May 2015 16:40:17 +0000 (12:40 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

examples/calculator/src/calculator.nit

index 2cc50ec..2e2f437 100644 (file)
@@ -24,6 +24,7 @@ app_name "app.nit Calc."
 end
 
 import app::ui
+import app::data_store
 import android::aware
 
 import calculator_logic
@@ -92,4 +93,22 @@ class CalculatorWindow
                        display.text = context.display_text
                end
        end
+
+       redef fun on_save_state
+       do
+               app.data_store["context"] = context.to_json
+               super
+       end
+
+       redef fun on_restore_state
+       do
+               super
+
+               var save = app.data_store["context"]
+               if save == null then return
+               assert save isa String
+
+               self.context = new CalculatorContext.from_json(save)
+               display.text = context.display_text
+       end
 end