commit baeda47ebbedcdae3c1fe1bb5b08be2b62ef0941
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Mon Apr 3 18:14:47 2017 +0100

    Improve Deform.

diff --git a/src/main/java/org/distorted/examples/deform/DeformActivity.java b/src/main/java/org/distorted/examples/deform/DeformActivity.java
index 276921f..a46367f 100644
--- a/src/main/java/org/distorted/examples/deform/DeformActivity.java
+++ b/src/main/java/org/distorted/examples/deform/DeformActivity.java
@@ -37,30 +37,28 @@ import android.widget.SeekBar.OnSeekBarChangeListener;
 public class DeformActivity extends Activity implements OnSeekBarChangeListener
 {
     private TextView textR;
+    private EffectNames mCurrEffect;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
     
     @Override
-    protected void onCreate(Bundle icicle) 
+    protected void onCreate(Bundle savedState)
       {
-      super.onCreate(icicle);
+      super.onCreate(savedState);
       setContentView(R.layout.deformlayout);
 
-      SeekBar barR = (SeekBar)findViewById(R.id.deformSeekRadius);
-      barR.setOnSeekBarChangeListener(this); 
-        
       textR = (TextView)findViewById(R.id.deformTextRadius);
-     
-      barR.setProgress(50);
-      
-      textR.setText(getString(R.string.radius_placeholder,"50"));
-
-      RadioButton effect = (RadioButton)findViewById(R.id.deformDistortButton);
-      effect.setChecked(true);
 
-      DeformSurfaceView view = (DeformSurfaceView) this.findViewById(R.id.deformSurfaceView);
+      SeekBar barR = (SeekBar)findViewById(R.id.deformSeekRadius);
+      barR.setOnSeekBarChangeListener(this);
 
-      view.getRenderer().setMode(EffectNames.DISTORT);
+      if( savedState==null )
+        {
+        barR.setProgress(50);
+        RadioButton effect = (RadioButton)findViewById(R.id.deformDistortButton);
+        effect.setChecked(true);
+        Distort(null);
+        }
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -101,6 +99,7 @@ public class DeformActivity extends Activity implements OnSeekBarChangeListener
       {
       DeformSurfaceView view = (DeformSurfaceView) this.findViewById(R.id.deformSurfaceView);
       view.getRenderer().setMode(EffectNames.DISTORT);
+      mCurrEffect = EffectNames.DISTORT;
       }     
     
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -109,6 +108,7 @@ public class DeformActivity extends Activity implements OnSeekBarChangeListener
       {
       DeformSurfaceView view = (DeformSurfaceView) this.findViewById(R.id.deformSurfaceView);
       view.getRenderer().setMode(EffectNames.DEFORM);
+      mCurrEffect = EffectNames.DEFORM;
       }       
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -117,8 +117,32 @@ public class DeformActivity extends Activity implements OnSeekBarChangeListener
       {
       DeformSurfaceView view = (DeformSurfaceView) this.findViewById(R.id.deformSurfaceView);
       view.getRenderer().setMode(EffectNames.SHEAR);
+      mCurrEffect = EffectNames.SHEAR;
       }       
-    
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    @Override
+    public void onSaveInstanceState(Bundle savedInstanceState)
+      {
+      super.onSaveInstanceState(savedInstanceState);
+      savedInstanceState.putInt("effect", mCurrEffect.ordinal() );
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    @Override
+    public void onRestoreInstanceState(Bundle savedInstanceState)
+      {
+      super.onRestoreInstanceState(savedInstanceState);
+
+      int effect = savedInstanceState.getInt("effect");
+
+      if( effect == EffectNames.DISTORT.ordinal() ) Distort(null);
+      if( effect == EffectNames.DEFORM.ordinal()  ) Deform(null);
+      if( effect == EffectNames.SHEAR.ordinal()   ) Shear(null);
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
     
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser) 
