commit 6d896e0eece8e7d3ef17507ee0a925954cb1b2ae
Author: leszek <leszek@koltunski.pl>
Date:   Fri Jun 30 23:52:25 2017 +0100

    Improvement for MultiBlur and Glow apps.

diff --git a/src/main/java/org/distorted/examples/glow/GlowActivity.java b/src/main/java/org/distorted/examples/glow/GlowActivity.java
index b72812a..7f38ffb 100644
--- a/src/main/java/org/distorted/examples/glow/GlowActivity.java
+++ b/src/main/java/org/distorted/examples/glow/GlowActivity.java
@@ -35,6 +35,7 @@ import org.distorted.library.main.Distorted;
 public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeListener
 {
     private TextView textRadius, textAlpha;
+    private int mQuality;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -47,12 +48,14 @@ public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeLis
       textRadius = (TextView)findViewById(R.id.glowTextRadius);
       SeekBar bar = (SeekBar)findViewById(R.id.glowSeekRadius);
       bar.setOnSeekBarChangeListener(this);
-      bar.setProgress(50);
+      if( savedState==null ) bar.setProgress(50);
 
       textAlpha = (TextView)findViewById(R.id.glowTextAlpha);
       bar = (SeekBar)findViewById(R.id.glowSeekAlpha);
       bar.setOnSeekBarChangeListener(this);
-      bar.setProgress(50);
+      if( savedState==null ) bar.setProgress(50);
+
+      if( savedState==null ) mQuality = EffectQuality.HIGHEST.ordinal();
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -85,6 +88,35 @@ public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeLis
       super.onDestroy();
       }
 
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    @Override
+    public void onSaveInstanceState(Bundle savedInstanceState)
+      {
+      super.onSaveInstanceState(savedInstanceState);
+      savedInstanceState.putInt("quality", mQuality);
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    @Override
+    public void onRestoreInstanceState(Bundle savedInstanceState)
+      {
+      super.onRestoreInstanceState(savedInstanceState);
+
+      mQuality = savedInstanceState.getInt("quality");
+
+      switch(mQuality)
+        {
+        case 0 : quality0(null); break;
+        case 1 : quality1(null); break;
+        case 2 : quality2(null); break;
+        case 3 : quality3(null); break;
+        default: android.util.Log.e("Glow", "error - unknown quality!");
+        }
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public void onProgressChanged(SeekBar bar, int progress, boolean fromUser)
@@ -117,6 +149,7 @@ public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeLis
     GlowSurfaceView view = (GlowSurfaceView) this.findViewById(R.id.glowSurfaceView);
     GlowRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.HIGHEST);
+    mQuality = EffectQuality.HIGHEST.ordinal();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -126,6 +159,7 @@ public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeLis
     GlowSurfaceView view = (GlowSurfaceView) this.findViewById(R.id.glowSurfaceView);
     GlowRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.HIGH);
+    mQuality = EffectQuality.HIGH.ordinal();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -135,6 +169,7 @@ public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeLis
     GlowSurfaceView view = (GlowSurfaceView) this.findViewById(R.id.glowSurfaceView);
     GlowRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.MEDIUM);
+    mQuality = EffectQuality.MEDIUM.ordinal();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -144,5 +179,6 @@ public class GlowActivity extends Activity implements SeekBar.OnSeekBarChangeLis
     GlowSurfaceView view = (GlowSurfaceView) this.findViewById(R.id.glowSurfaceView);
     GlowRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.LOW);
+    mQuality = EffectQuality.LOW.ordinal();
     }
 }
diff --git a/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java b/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
index 9b494f3..eebe015 100644
--- a/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
+++ b/src/main/java/org/distorted/examples/multiblur/MultiblurActivity.java
@@ -34,6 +34,8 @@ import org.distorted.library.effect.EffectQuality;
 
 public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChangeListener
 {
+    private int mQuality;
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     @Override
@@ -52,6 +54,7 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
         {
         distanceBar.setProgress(50);
         rangeBar.setProgress(50);
+        mQuality = EffectQuality.HIGHEST.ordinal();
         }
       }
 
@@ -96,6 +99,7 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
       MultiblurRenderer renderer = view.getRenderer();
 
       savedInstanceState.putBooleanArray("checkboxes", renderer.getChecked() );
+      savedInstanceState.putInt("quality", mQuality);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -117,6 +121,17 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
           renderer.setChecked(i,checkboxes[i]);
           }
         }
+
+      mQuality = savedInstanceState.getInt("quality");
+
+      switch(mQuality)
+        {
+        case 0 : quality0(null); break;
+        case 1 : quality1(null); break;
+        case 2 : quality2(null); break;
+        case 3 : quality3(null); break;
+        default: android.util.Log.e("Glow", "error - unknown quality!");
+        }
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -172,6 +187,7 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
     MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
     MultiblurRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.HIGHEST);
+    mQuality = EffectQuality.HIGHEST.ordinal();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -181,6 +197,7 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
     MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
     MultiblurRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.HIGH);
+    mQuality = EffectQuality.HIGH.ordinal();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -190,6 +207,7 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
     MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
     MultiblurRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.MEDIUM);
+    mQuality = EffectQuality.MEDIUM.ordinal();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -199,5 +217,6 @@ public class MultiblurActivity extends Activity implements SeekBar.OnSeekBarChan
     MultiblurSurfaceView view = (MultiblurSurfaceView) this.findViewById(R.id.multiblurSurfaceView);
     MultiblurRenderer renderer = view.getRenderer();
     renderer.setQuality(EffectQuality.LOW);
+    mQuality = EffectQuality.LOW.ordinal();
     }
 }
