commit 30f337e50a7d5d83c0419732cc2f896aeef67cee
Author: leszek <leszek@koltunski.pl>
Date:   Wed Mar 20 12:08:46 2024 +0100

    Lint

diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
index f0658b2..35dc78f 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldEffectsManager.java
@@ -41,102 +41,102 @@ class AroundTheWorldEffectsManager
   // WHITENESS
   // Vertex effects:
   // a) make the lips smaller (SINK)
-  private Static4D wLipsRegion;
-  private Static3D wLipsCenter;
-  private Static1D wLipsFactor;
-  private Dynamic1D wLipsDyn;
+  private final Static4D wLipsRegion;
+  private final Static3D wLipsCenter;
+  private final Static1D wLipsFactor;
+  private final Dynamic1D wLipsDyn;
 
   // ASIANNESS
   // Vertex Effects:
   // a) move lips & nose higher (DISTORT)
-  private Static4D aLipsNoseRegion;
-  private Static3D aLipsNoseCenter;
-  private Static3D aLipsNoseFactor;
-  private Dynamic3D aLipsNoseDyn;
+  private final Static4D aLipsNoseRegion;
+  private final Static3D aLipsNoseCenter;
+  private final Static3D aLipsNoseFactor;
+  private final Dynamic3D aLipsNoseDyn;
   // b) make the nose broader (PINCH)
-  private Static4D aNoseBroaderRegion;
-  private Static3D aNoseBroaderCenter;
-  private Static3D aNoseBroaderFactor;
-  private Dynamic3D aNoseBroaderDyn;
+  private final Static4D aNoseBroaderRegion;
+  private final Static3D aNoseBroaderCenter;
+  private final Static3D aNoseBroaderFactor;
+  private final Dynamic3D aNoseBroaderDyn;
   // c) make the nostrils more visible (DISTORT)
-  private Static4D aNostrilsRegion;
-  private Static3D aNostrilsCenter;
-  private Static3D aNostrilsFactor;
-  private Dynamic3D aNostrilsDyn;
+  private final Static4D aNostrilsRegion;
+  private final Static3D aNostrilsCenter;
+  private final Static3D aNostrilsFactor;
+  private final Dynamic3D aNostrilsDyn;
   // d) rotate eyes (2 x SWIRL)
-  private Static4D aEyesRegion;
-  private Static3D aLEyeCenter, aREyeCenter;
-  private Static1D aLEyeFactor, aREyeFactor;
-  private Dynamic1D aLEyeDyn, aREyeDyn;
+  private final Static4D aEyesRegion;
+  private final Static3D aLEyeCenter, aREyeCenter;
+  private final Static1D aLEyeFactor, aREyeFactor;
+  private final Dynamic1D aLEyeDyn, aREyeDyn;
   // e) move eyebrow higher (DISTORT)
-  private Static4D aEyebrowsRegion;
-  private Static3D aEyebrowsCenter;
-  private Static3D aEyebrowsFactor;
-  private Dynamic3D aEyebrowsDyn;
+  private final Static4D aEyebrowsRegion;
+  private final Static3D aEyebrowsCenter;
+  private final Static3D aEyebrowsFactor;
+  private final Dynamic3D aEyebrowsDyn;
 
   // Fragment effects:
   // a) change color of the skin to more brown and less red (CHROMA)
-  private Static3D aSkinColorCenter;
-  private Static3D aSkinColorRegion;
-  private Static3D aChromaSkin;
-  private Static1D aChromaSkinFactor;
-  private Dynamic1D aChromaSkinDyn;
+  private final Static3D aSkinColorCenter;
+  private final Static3D aSkinColorRegion;
+  private final Static3D aChromaSkin;
+  private final Static1D aChromaSkinFactor;
+  private final Dynamic1D aChromaSkinDyn;
   // b) darken both eyes (2 x SMOOTH_CHROMA)
-  private Static3D aLEyeColorCenter, aREyeColorCenter;
-  private Static3D aLEyeColorRegion, aREyeColorRegion;
-  private Static3D aChromaEyes;
-  private Static1D aChromaEyesFactor;
-  private Dynamic1D aChromaEyesDyn;
+  private final Static3D aLEyeColorCenter, aREyeColorCenter;
+  private final Static3D aLEyeColorRegion, aREyeColorRegion;
+  private final Static3D aChromaEyes;
+  private final Static1D aChromaEyesFactor;
+  private final Dynamic1D aChromaEyesDyn;
 
   // BLACKNESS
   // Vertex Effects
   // a) make the whole face broader (PINCH)
-  private Static4D bFaceRegion;
-  private Static3D bFaceCenter;
-  private Static3D bFaceFactor;
-  private Dynamic3D bFaceDyn;
+  private final Static4D bFaceRegion;
+  private final Static3D bFaceCenter;
+  private final Static3D bFaceFactor;
+  private final Dynamic3D bFaceDyn;
   // b) tip of the nose lower (DISTORT)
-  private Static4D bTipLowerRegion;
-  private Static3D bTipLowerCenter;
-  private Static3D bTipLowerFactor;
-  private Dynamic3D bTipLowerDyn;
+  private final Static4D bTipLowerRegion;
+  private final Static3D bTipLowerCenter;
+  private final Static3D bTipLowerFactor;
+  private final Dynamic3D bTipLowerDyn;
   // c) broaden the whole nose: (PINCH)
-  private Static4D bWholeNoseRegion;
-  private Static3D bWholeNoseCenter;
-  private Static3D bWholeNoseFactor;
-  private Dynamic3D bWholeNoseDyn;
+  private final Static4D bWholeNoseRegion;
+  private final Static3D bWholeNoseCenter;
+  private final Static3D bWholeNoseFactor;
+  private final Dynamic3D bWholeNoseDyn;
   // d) broaden the tip of the nose some more: (PINCH)
-  private Static4D bNoseBroaderRegion;
-  private Static3D bNoseBroaderCenter;
-  private Static3D bNoseBroaderFactor;
-  private Dynamic3D bNoseBroaderDyn;
+  private final Static4D bNoseBroaderRegion;
+  private final Static3D bNoseBroaderCenter;
+  private final Static3D bNoseBroaderFactor;
+  private final Dynamic3D bNoseBroaderDyn;
   // 3) make lips higher: (PINCH)
-  private Static4D bLipsRegion;
-  private Static3D bLipsCenter;
-  private Static3D bLipsFactor;
-  private Dynamic3D bLipsDyn;
+  private final Static4D bLipsRegion;
+  private final Static3D bLipsCenter;
+  private final Static3D bLipsFactor;
+  private final Dynamic3D bLipsDyn;
   // Fragment effects
   // a) make the whole face darker (CHROMA)
-  private Static3D bSkinColorCenter;
-  private Static3D bSkinColorRegion;
-  private Static3D bChromaSkin;
-  private Static1D bChromaSkinFactor;
-  private Dynamic1D bChromaSkinDyn;
+  private final Static3D bSkinColorCenter;
+  private final Static3D bSkinColorRegion;
+  private final Static3D bChromaSkin;
+  private final Static1D bChromaSkinFactor;
+  private final Dynamic1D bChromaSkinDyn;
   // b) move both eyes back to whiteness (2 x SMOOTH CHROMA)
-  private Static3D bLEyeColorCenter, bREyeColorCenter;
-  private Static3D bLEyeColorRegion, bREyeColorRegion;
-  private Static3D bChromaEyes;
-  private Static1D bChromaEyesFactor;
-  private Dynamic1D bChromaEyesDyn;
+  private final Static3D bLEyeColorCenter, bREyeColorCenter;
+  private final Static3D bLEyeColorRegion, bREyeColorRegion;
+  private final Static3D bChromaEyes;
+  private final Static1D bChromaEyesFactor;
+  private final Dynamic1D bChromaEyesDyn;
   // c) darken both pupils (2 x SMOOTH_CHROMA)
-  private Static3D bLPupilColorCenter, bRPupilColorCenter;
-  private Static3D bLPupilColorRegion, bRPupilColorRegion;
-  private Static3D bChromaPupil;
-  private Static1D bChromaPupilFactor;
-  private Dynamic1D bChromaPupilDyn;
+  private final Static3D bLPupilColorCenter, bRPupilColorCenter;
+  private final Static3D bLPupilColorRegion, bRPupilColorRegion;
+  private final Static3D bChromaPupil;
+  private final Static1D bChromaPupilFactor;
+  private final Dynamic1D bChromaPupilDyn;
   // d) all those chroma effects have reduced contrast - bring it back
-  private Static1D bContrastFactor;
-  private Dynamic1D bContrastDyn;
+  private final Static1D bContrastFactor;
+  private final Dynamic1D bContrastDyn;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRendererPicker.java b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRendererPicker.java
index a04b642..7a132b1 100644
--- a/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRendererPicker.java
+++ b/src/main/java/org/distorted/examples/aroundtheworld/AroundTheWorldRendererPicker.java
@@ -64,22 +64,22 @@ class AroundTheWorldRendererPicker implements GLSurfaceView.Renderer
 	  {
 	  MatrixHelper.setIdentity(mModelMatrix);
 
-		final float[] triangleVertData = {
+	  final float[] triangleVertData = {
 				      -0.865f, 1.5f, 0.0f,    1.0f, 1.0f, 1.0f, 1.0f,   // x,y,z,  r,g,b,a
-	            -0.865f,-1.5f, 0.0f,    0.0f, 0.0f, 0.0f, 1.0f,
-	             1.730f, 0.0f, 0.0f,    0.5f, 0.5f, 0.0f, 1.0f };
+	                  -0.865f,-1.5f, 0.0f,    0.0f, 0.0f, 0.0f, 1.0f,
+	                   1.730f, 0.0f, 0.0f,    0.5f, 0.5f, 0.0f, 1.0f };
 
-		mTriangleVert = ByteBuffer.allocateDirect(triangleVertData.length * BYTES_PER_FLOAT).order(ByteOrder.nativeOrder()).asFloatBuffer();
-    mTriangleVert.put(triangleVertData).position(0);
+	  mTriangleVert = ByteBuffer.allocateDirect(triangleVertData.length * BYTES_PER_FLOAT).order(ByteOrder.nativeOrder()).asFloatBuffer();
+      mTriangleVert.put(triangleVertData).position(0);
 
-    final float[] squareVertData = {
+      final float[] squareVertData = {
 				      -0.15f, 0.15f, 0.0f,    1.0f, 0.0f, 0.0f, 1.0f,
-	            -0.15f,-0.15f, 0.0f,    1.0f, 0.0f, 0.0f, 1.0f,
-	             0.15f, 0.15f, 0.0f,    1.0f, 0.0f, 0.0f, 1.0f,
-	             0.15f,-0.15f, 0.0f,    1.0f, 0.0f, 0.0f, 1.0f };
+	                  -0.15f,-0.15f, 0.0f,    1.0f, 0.0f, 0.0f, 1.0f,
+	                   0.15f, 0.15f, 0.0f,    1.0f, 0.0f, 0.0f, 1.0f,
+	                   0.15f,-0.15f, 0.0f,    1.0f, 0.0f, 0.0f, 1.0f };
 
-		mSquareVert = ByteBuffer.allocateDirect(squareVertData.length * BYTES_PER_FLOAT).order(ByteOrder.nativeOrder()).asFloatBuffer();
-    mSquareVert.put(squareVertData).position(0);
+	  mSquareVert = ByteBuffer.allocateDirect(squareVertData.length * BYTES_PER_FLOAT).order(ByteOrder.nativeOrder()).asFloatBuffer();
+      mSquareVert.put(squareVertData).position(0);
 	  }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/blur/BlurRenderer.java b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
index da57cf8..464cf3f 100644
--- a/src/main/java/org/distorted/examples/blur/BlurRenderer.java
+++ b/src/main/java/org/distorted/examples/blur/BlurRenderer.java
@@ -110,9 +110,8 @@ class BlurRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUs
 
    int setHalo(int halo)
      {
-     int radius = halo;
-     mHaloRadiusSta.set0(radius);
-     return radius;
+     mHaloRadiusSta.set0(halo);
+     return halo;
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/deferredjob/DeferredJobRenderer.java b/src/main/java/org/distorted/examples/deferredjob/DeferredJobRenderer.java
index 73fd7d3..d2efa7a 100644
--- a/src/main/java/org/distorted/examples/deferredjob/DeferredJobRenderer.java
+++ b/src/main/java/org/distorted/examples/deferredjob/DeferredJobRenderer.java
@@ -19,9 +19,6 @@
 
 package org.distorted.examples.deferredjob;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
@@ -55,7 +52,6 @@ import javax.microedition.khronos.opengles.GL10;
 
 class DeferredJobRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
 {
-    private final GLSurfaceView mView;
     private final Resources mResources;
     private final DistortedScreen mScreen;
     private final DistortedEffects mEffects;
@@ -74,7 +70,6 @@ class DeferredJobRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Li
 
     DeferredJobRenderer(GLSurfaceView v)
       {
-      mView = v;
       mResources = v.getResources();
 
       mScreen = new DistortedScreen();
diff --git a/src/main/java/org/distorted/examples/deform/DeformRenderer.java b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
index 3a89133..39ac4d5 100644
--- a/src/main/java/org/distorted/examples/deform/DeformRenderer.java
+++ b/src/main/java/org/distorted/examples/deform/DeformRenderer.java
@@ -40,9 +40,6 @@ import org.distorted.library.type.Static1D;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
@@ -60,7 +57,6 @@ class DeformRenderer implements GLSurfaceView.Renderer, EffectListener, Distorte
    private static final int NUM_LINES   = 10;
    private static final float QUOT      = 0.6f;
 
-   private final GLSurfaceView mView;
    private final Resources mResources;
    private final DistortedTexture mTexture;
    private final DistortedEffects mEffects;
@@ -83,8 +79,7 @@ class DeformRenderer implements GLSurfaceView.Renderer, EffectListener, Distorte
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
    DeformRenderer(GLSurfaceView view)
-      { 
-      mView = view;
+      {
       mResources = view.getResources();
 
       mTexture    = new DistortedTexture();
diff --git a/src/main/java/org/distorted/examples/dynamic/DynamicSpeedSurfaceView.java b/src/main/java/org/distorted/examples/dynamic/DynamicSpeedSurfaceView.java
index 0c3808a..a442678 100644
--- a/src/main/java/org/distorted/examples/dynamic/DynamicSpeedSurfaceView.java
+++ b/src/main/java/org/distorted/examples/dynamic/DynamicSpeedSurfaceView.java
@@ -41,8 +41,8 @@ class DynamicSpeedSurfaceView extends SurfaceView implements SurfaceHolder.Callb
     private int mWidth, mHeight, mMargin;
     private int mMode, mNumRedPoints, mPointSize;
     private float mFontHeight;
-    private Paint mPaint;
-    private float[] mPoints = new float[NUM_POINTS];
+    private final Paint mPaint;
+    private final float[] mPoints = new float[NUM_POINTS];
     private float mMultiplier;
 
 /////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/earth/EarthSurfaceViewPicker.java b/src/main/java/org/distorted/examples/earth/EarthSurfaceViewPicker.java
index 4655145..d72befe 100644
--- a/src/main/java/org/distorted/examples/earth/EarthSurfaceViewPicker.java
+++ b/src/main/java/org/distorted/examples/earth/EarthSurfaceViewPicker.java
@@ -50,11 +50,11 @@ class EarthSurfaceViewPicker extends SurfaceView implements SurfaceHolder.Callba
     private GraphicsThread mThread;
     private EffectName mCurrentEffect;
     private ArrayList<Integer> mPointsX, mPointsY, mPointsE;
-    private WeakReference<EarthActivity> mAct;
+    private final WeakReference<EarthActivity> mAct;
     private int mRadius;
-    private Bitmap mBitmap;
-    private Paint mPointPaint;
-    private Rect mDst;
+    private final Bitmap mBitmap;
+    private final Paint mPointPaint;
+    private final Rect mDst;
     private int mWidth, mHeight;
 
 /////////////////////////////////////////////////////////////////////////////////////////
@@ -308,13 +308,11 @@ class EarthSurfaceViewPicker extends SurfaceView implements SurfaceHolder.Callba
       int action = event.getAction();
       int x = (int)event.getX();
       int y = (int)event.getY();
-           
-      switch(action)
-         {
-         case MotionEvent.ACTION_DOWN: addNewPoint(x,y);
-                                       refreshScreen = true;
-                                       break;
-         }
+
+        if (action == MotionEvent.ACTION_DOWN) {
+          addNewPoint(x, y);
+          refreshScreen = true;
+        }
              
       return true;
       }
diff --git a/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java b/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
index 8954430..1c720dd 100644
--- a/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
+++ b/src/main/java/org/distorted/examples/effectqueue/EffectQueueSurfaceView.java
@@ -50,8 +50,11 @@ public class EffectQueueSurfaceView extends GLSurfaceView
   private int mCurrentEffect;
   private int mScrW, mScrH;
     
-  private Dynamic1D mInterA, mInterB, mInterC, mInterS;
-  private Dynamic3D mInterD;
+  private final Dynamic1D mInterA;
+    private final Dynamic1D mInterB;
+    private final Dynamic1D mInterC;
+    private final Dynamic1D mInterS;
+  private final Dynamic3D mInterD;
 
   private final static Static3D RED      = new Static3D(1,0,0);
   private final static Static3D REGION_F = new Static3D(RADIUS,RADIUS,RADIUS);
diff --git a/src/main/java/org/distorted/examples/flatblur/FlatBlurRenderer.java b/src/main/java/org/distorted/examples/flatblur/FlatBlurRenderer.java
index d89d4de..5ccab0a 100644
--- a/src/main/java/org/distorted/examples/flatblur/FlatBlurRenderer.java
+++ b/src/main/java/org/distorted/examples/flatblur/FlatBlurRenderer.java
@@ -37,7 +37,6 @@ import javax.microedition.khronos.opengles.GL10;
 
 class FlatBlurRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
 {
-    private final GLSurfaceView mView;
     private final Resources mResources;
     private final DistortedScreen mScreen;
 
@@ -45,7 +44,6 @@ class FlatBlurRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Libra
 
     FlatBlurRenderer(GLSurfaceView v)
       {
-      mView = v;
       mResources = v.getResources();
       mScreen = new DistortedScreen();
       }
diff --git a/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java b/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java
index 9a046fd..327c7db 100644
--- a/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java
+++ b/src/main/java/org/distorted/examples/flatblur2/FlatBlur2Renderer.java
@@ -163,13 +163,6 @@ class FlatBlur2Renderer implements GLSurfaceView.Renderer, DistortedLibrary.Libr
 
     public void button1()
       {
-      /*
-      OverlayStars stars = new OverlayStars();
-      Resources res = mView.getResources();
-      DataStars data  = new DataStars(10,5,res);
-      stars.startOverlay(mScreen,this,data);
-       */
-
       mMove.set(0,mHeight*0.5f,0);
       }
 
diff --git a/src/main/java/org/distorted/examples/generic/GenericMeshList.java b/src/main/java/org/distorted/examples/generic/GenericMeshList.java
index a3d056c..df55e25 100644
--- a/src/main/java/org/distorted/examples/generic/GenericMeshList.java
+++ b/src/main/java/org/distorted/examples/generic/GenericMeshList.java
@@ -40,7 +40,7 @@ public enum GenericMeshList
 
   static final int LENGTH = values().length;
   private static final GenericMeshList[] meshes;
-  private int mDimension;
+  private final int mDimension;
 
   static
     {
diff --git a/src/main/java/org/distorted/examples/generic/GenericTab.java b/src/main/java/org/distorted/examples/generic/GenericTab.java
index 8466212..01ee0df 100644
--- a/src/main/java/org/distorted/examples/generic/GenericTab.java
+++ b/src/main/java/org/distorted/examples/generic/GenericTab.java
@@ -43,7 +43,7 @@ import java.util.ArrayList;
 public class GenericTab extends Fragment implements AdapterView.OnItemSelectedListener, View.OnClickListener
   {
   private EffectType mType;
-  private ArrayList<GenericEffect> mList;
+  private final ArrayList<GenericEffect> mList;
   private int mEffectAdd;
   private EffectName[] mEffectNames;
   private DistortedEffects mEffects;
diff --git a/src/main/java/org/distorted/examples/generic/GenericViewPager.java b/src/main/java/org/distorted/examples/generic/GenericViewPager.java
index 470f102..7a5d5ca 100644
--- a/src/main/java/org/distorted/examples/generic/GenericViewPager.java
+++ b/src/main/java/org/distorted/examples/generic/GenericViewPager.java
@@ -50,7 +50,7 @@ class GenericViewPager
 
   private static final int NUM_TABS = TABS.length;
 
-  private ViewPager mViewPager;
+  private final ViewPager mViewPager;
   private int mCurrentTab;
 
   private static class GenericTabViewPager extends FragmentPagerAdapter
diff --git a/src/main/java/org/distorted/examples/inflate/InflateMeshList.java b/src/main/java/org/distorted/examples/inflate/InflateMeshList.java
index 5f6223c..1dc038d 100644
--- a/src/main/java/org/distorted/examples/inflate/InflateMeshList.java
+++ b/src/main/java/org/distorted/examples/inflate/InflateMeshList.java
@@ -40,7 +40,7 @@ public enum InflateMeshList
 
   static final int LENGTH = values().length;
   private static final InflateMeshList[] meshes;
-  private int mDimension;
+  private final int mDimension;
 
   static
     {
diff --git a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
index 819a28e..5d88579 100644
--- a/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
+++ b/src/main/java/org/distorted/examples/listener/ListenerRenderer.java
@@ -40,9 +40,6 @@ import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 import org.distorted.library.message.EffectListener;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
diff --git a/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java b/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java
index 25f3237..2f2fb7a 100644
--- a/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java
+++ b/src/main/java/org/distorted/examples/meshfile/MeshFileActivity.java
@@ -48,7 +48,8 @@ public class MeshFileActivity extends Activity implements AdapterView.OnItemSele
 
     private LinearLayout mLayout;
     private int mResource;
-    private String[] mNames = new String[] { "triangle"   ,
+    private final  String[] mNames = new String[]
+                                           { "triangle"   ,
                                              "procedural" ,
                                              "polygon"    ,
                                              "multigon"   ,
diff --git a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
index 9686e6e..77979e9 100644
--- a/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
+++ b/src/main/java/org/distorted/examples/meshfile/MeshFileRenderer.java
@@ -314,16 +314,7 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Libra
 
       float C = 2f;
       float[] bands = { 1.0f, 0.00f*C, 0.9f, 0.04f*C,  0.8f, 0.07f*C, 0.5f, 0.09f*C, 0.0f, 0.10f*C};
-/*
-      int numBands      = 5;
-      float[] bands = new float[2*numBands];
 
-      for(int i=0; i<numBands; i++)
-        {
-        bands[2*i  ] = 1 + i/(1.0f-numBands);
-        bands[2*i+1] = B/(numBands-1)*i;
-        }
-*/
       mMesh = new MeshPolygon(vertices,bands,extraIndex,extraVertices,0.0f,0.0f);
       mMesh.setEffectAssociation(0,0,0);
       }
@@ -495,7 +486,7 @@ class MeshFileRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Libra
         }
       catch(IOException e)
         {
-        android.util.Log.e("MeshFile", "Error closing InputStream: "+e.toString());
+        android.util.Log.e("MeshFile", "Error closing InputStream: "+ e);
         }
       }
 
diff --git a/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java b/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java
index 0ea566d..b3b1b0c 100644
--- a/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java
+++ b/src/main/java/org/distorted/examples/meshjoin/MeshJoinRenderer.java
@@ -19,9 +19,6 @@
 
 package org.distorted.examples.meshjoin;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
@@ -57,7 +54,6 @@ import javax.microedition.khronos.opengles.GL10;
 
 class MeshJoinRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
 {
-    private final GLSurfaceView mView;
     private final Resources mResources;
     private final DistortedScreen mScreen;
     private final DistortedEffects mEffects;
@@ -75,7 +71,6 @@ class MeshJoinRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Libra
 
     MeshJoinRenderer(GLSurfaceView v)
       {
-      mView = v;
       mResources = v.getResources();
 
       mScreen = new DistortedScreen();
diff --git a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
index 0e6e771..95cb864 100644
--- a/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
+++ b/src/main/java/org/distorted/examples/mirror/MirrorRenderer.java
@@ -19,9 +19,6 @@
 
 package org.distorted.examples.mirror;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
diff --git a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
index 693387c..bfd174c 100644
--- a/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/movingeffects/MovingEffectsSurfaceView.java
@@ -55,16 +55,16 @@ public class MovingEffectsSurfaceView extends GLSurfaceView
 
     private static final Object lock = new Object();
 
-    private Dynamic3D mCenter;
-    private Paint mPaint;
+    private final Dynamic3D mCenter;
+    private final Paint mPaint;
     private int moving;
     private int mScrWidth, mScrHeight;
     private long mTime = 0;
     
     private int mCurrEffect;
     private int mSize1, mSize2;
-    private Static3D mDeform;
-    private Static1D mRadius;
+    private final Static3D mDeform;
+    private final Static1D mRadius;
 
     private MovingEffectsRenderer mRenderer;
 
diff --git a/src/main/java/org/distorted/examples/polymesh/PolymeshSurfaceView.java b/src/main/java/org/distorted/examples/polymesh/PolymeshSurfaceView.java
index 9e4aa8c..3f3cba1 100644
--- a/src/main/java/org/distorted/examples/polymesh/PolymeshSurfaceView.java
+++ b/src/main/java/org/distorted/examples/polymesh/PolymeshSurfaceView.java
@@ -55,16 +55,16 @@ public class PolymeshSurfaceView extends GLSurfaceView
 
     private static final Object lock = new Object();
 
-    private Dynamic3D mCenter;
-    private Paint mPaint;
+    private final Dynamic3D mCenter;
+    private final Paint mPaint;
     private int moving;
     private int mScrWidth, mScrHeight;
     private long mTime = 0;
     
     private int mCurrEffect;
     private int mSize1, mSize2;
-    private Static3D mDeform;
-    private Static1D mRadius;
+    private final Static3D mDeform;
+    private final Static1D mRadius;
 
     private PolymeshRenderer mRenderer;
 
diff --git a/src/main/java/org/distorted/examples/predeform/PredeformActivity2.java b/src/main/java/org/distorted/examples/predeform/PredeformActivity2.java
index e11dc36..599b7e5 100644
--- a/src/main/java/org/distorted/examples/predeform/PredeformActivity2.java
+++ b/src/main/java/org/distorted/examples/predeform/PredeformActivity2.java
@@ -74,8 +74,7 @@ public class PredeformActivity2 extends Activity implements SeekBar.OnSeekBarCha
       mTexture = new DistortedTexture();
 
       setContentView(R.layout.predeformlayout);
-;
-      mTextLevel = findViewById(R.id.predeformInflateText);
+          mTextLevel = findViewById(R.id.predeformInflateText);
 
       SeekBar inflateBar = findViewById(R.id.predeformInflateLevel);
       inflateBar.setOnSeekBarChangeListener(this);
diff --git a/src/main/java/org/distorted/examples/predeform/PredeformEffect.java b/src/main/java/org/distorted/examples/predeform/PredeformEffect.java
index 4e72e8e..dbfbb54 100644
--- a/src/main/java/org/distorted/examples/predeform/PredeformEffect.java
+++ b/src/main/java/org/distorted/examples/predeform/PredeformEffect.java
@@ -70,16 +70,17 @@ class PredeformEffect implements SeekBar.OnSeekBarChangeListener
   private static final int BACKGROUND_ODD = 0xff555555;
   private static final int BACKGROUND_EVEN= 0xff333333;
 
-  private WeakReference<PredeformActivity> mAct;
-
-  private EffectName mName;
-  private int[] mInter;
-  private int[] mInterRegion;
-  private int[] mInterCenter;
-  private int[] mSeekID;
-  private int[] mSeekRegionID;
-  private int[] mSeekCenterID;
-  private int mDimension, mRegionDimension;
+  private final WeakReference<PredeformActivity> mAct;
+
+  private final EffectName mName;
+  private final int[] mInter;
+  private final int[] mInterRegion;
+  private final int[] mInterCenter;
+  private final int[] mSeekID;
+  private final int[] mSeekRegionID;
+  private final int[] mSeekCenterID;
+  private final int mDimension;
+      private final int mRegionDimension;
   private TextView mText,mTextRegion,mTextCenter;
 
   private Dynamic1D mDyn1;
@@ -92,12 +93,12 @@ class PredeformEffect implements SeekBar.OnSeekBarChangeListener
   private Static3D  mSta3;
   private Static4D  mSta4;
   private Static5D  mSta5;
-  private Dynamic4D mRegion4Dyn;
-  private Static4D  mRegion4Sta;
-  private Dynamic3D mRegion3Dyn;
-  private Static3D  mRegion3Sta;
-  private Dynamic3D mCenterDyn;
-  private Static3D  mCenterSta;
+  private final Dynamic4D mRegion4Dyn;
+  private final Static4D  mRegion4Sta;
+  private final Dynamic3D mRegion3Dyn;
+  private final Static3D  mRegion3Sta;
+  private final Dynamic3D mCenterDyn;
+  private final Static3D  mCenterSta;
 
   private View mButton, mEffect, mCenter, mRegion;
   private long mId;
diff --git a/src/main/java/org/distorted/examples/predeform/PredeformEffectList.java b/src/main/java/org/distorted/examples/predeform/PredeformEffectList.java
index 8c95f23..864d973 100644
--- a/src/main/java/org/distorted/examples/predeform/PredeformEffectList.java
+++ b/src/main/java/org/distorted/examples/predeform/PredeformEffectList.java
@@ -27,7 +27,7 @@ import java.util.ArrayList;
 
 public class PredeformEffectList
   {
-  private static ArrayList<VertexEffect> mList = new ArrayList<>();
+  private static final ArrayList<VertexEffect> mList = new ArrayList<>();
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/main/java/org/distorted/examples/predeform/PredeformMeshList.java b/src/main/java/org/distorted/examples/predeform/PredeformMeshList.java
index 76d26e6..b98ede9 100644
--- a/src/main/java/org/distorted/examples/predeform/PredeformMeshList.java
+++ b/src/main/java/org/distorted/examples/predeform/PredeformMeshList.java
@@ -40,7 +40,7 @@ public enum PredeformMeshList
 
   static final int LENGTH = values().length;
   private static final PredeformMeshList[] meshes;
-  private int mDimension;
+  private final int mDimension;
 
   static
     {
diff --git a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
index 4681a0d..4a16937 100644
--- a/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
+++ b/src/main/java/org/distorted/examples/projection/ProjectionRenderer.java
@@ -49,7 +49,6 @@ import java.io.InputStream;
 
 class ProjectionRenderer implements GLSurfaceView.Renderer, DistortedLibrary.LibraryUser
 {
-   private final GLSurfaceView mView;
    private final Resources mResources;
    private final DistortedEffects mEffects;
    private final DistortedScreen mScreen;
@@ -62,8 +61,7 @@ class ProjectionRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Lib
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
    ProjectionRenderer(GLSurfaceView view)
-      { 
-      mView = view;
+      {
       mResources = view.getResources();
 
       mEffects= new DistortedEffects();
diff --git a/src/main/java/org/distorted/examples/rubik/RubikCube.java b/src/main/java/org/distorted/examples/rubik/RubikCube.java
index 962813a..0a991b7 100644
--- a/src/main/java/org/distorted/examples/rubik/RubikCube.java
+++ b/src/main/java/org/distorted/examples/rubik/RubikCube.java
@@ -55,16 +55,16 @@ class RubikCube
     private static final Static3D VectY = new Static3D(0,1,0);
     private static final Static3D VectZ = new Static3D(0,0,1);
 
-    private static Random mRnd = new Random(0);
-
-    private DistortedNode[][][] mNodes;
-    private MeshCubes[][][] mCubes;
-    private DistortedEffects[][][] mEffects;
-    private Static3D[][][] mRotationAxis;
-    private Dynamic1D[][][] mRotationAngle;
-    private MatrixEffectRotate[][][] mRotate;
-    private DistortedTexture mTexture;
-    private int mSize;
+    private static final Random mRnd = new Random(0);
+
+    private final DistortedNode[][][] mNodes;
+    private final MeshCubes[][][] mCubes;
+    private final DistortedEffects[][][] mEffects;
+    private final Static3D[][][] mRotationAxis;
+    private final Dynamic1D[][][] mRotationAngle;
+    private final MatrixEffectRotate[][][] mRotate;
+    private final DistortedTexture mTexture;
+    private final int mSize;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/main/java/org/distorted/examples/save/SaveActivity.java b/src/main/java/org/distorted/examples/save/SaveActivity.java
index f3a424b..46ea122 100644
--- a/src/main/java/org/distorted/examples/save/SaveActivity.java
+++ b/src/main/java/org/distorted/examples/save/SaveActivity.java
@@ -36,7 +36,7 @@ import android.widget.SeekBar;
 public class SaveActivity extends Activity implements SeekBar.OnSeekBarChangeListener
   {
   private static final int REQUEST_EXTERNAL_STORAGE = 1;
-  private static String[] PERMISSIONS_STORAGE =
+  private static final String[] PERMISSIONS_STORAGE =
      {
      Manifest.permission.READ_EXTERNAL_STORAGE,
      Manifest.permission.WRITE_EXTERNAL_STORAGE
diff --git a/src/main/java/org/distorted/examples/singlemesh/SingleMeshRenderer.java b/src/main/java/org/distorted/examples/singlemesh/SingleMeshRenderer.java
index c62e6e8..ab35301 100644
--- a/src/main/java/org/distorted/examples/singlemesh/SingleMeshRenderer.java
+++ b/src/main/java/org/distorted/examples/singlemesh/SingleMeshRenderer.java
@@ -107,7 +107,6 @@ class SingleMeshRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Lib
            new Static3D(+DIST,+DIST,+DIST),
          };
 
-    private final GLSurfaceView mView;
     private final Resources mResources;
     private final DistortedScreen mScreen;
     private final DistortedEffects mEffects;
@@ -127,7 +126,6 @@ class SingleMeshRenderer implements GLSurfaceView.Renderer, DistortedLibrary.Lib
 
     SingleMeshRenderer(GLSurfaceView v)
       {
-      mView = v;
       mResources = v.getResources();
 
       mScreen = new DistortedScreen();
diff --git a/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java b/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java
index 1528356..6323b14 100644
--- a/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java
+++ b/src/main/java/org/distorted/examples/starwars/StarWarsSurfaceView.java
@@ -28,7 +28,7 @@ import android.opengl.GLSurfaceView;
 
 class StarWarsSurfaceView extends GLSurfaceView 
   {
-  private StarWarsRenderer mRenderer;
+  private final StarWarsRenderer mRenderer;
 
   public StarWarsSurfaceView(Context context) 
     {
diff --git a/src/main/java/org/distorted/examples/surfaceview/RenderHandler.java b/src/main/java/org/distorted/examples/surfaceview/RenderHandler.java
index 5b793a9..ab47bdb 100644
--- a/src/main/java/org/distorted/examples/surfaceview/RenderHandler.java
+++ b/src/main/java/org/distorted/examples/surfaceview/RenderHandler.java
@@ -37,7 +37,7 @@ class RenderHandler extends Handler
   private static final int MSG_DO_FRAME = 2;
   private static final int MSG_SHUTDOWN = 4;
 
-  private WeakReference<RenderThread> mWeakRenderThread;
+  private final WeakReference<RenderThread> mWeakRenderThread;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/main/java/org/distorted/examples/surfaceview/RenderThread.java b/src/main/java/org/distorted/examples/surfaceview/RenderThread.java
index 25937ad..d32839c 100644
--- a/src/main/java/org/distorted/examples/surfaceview/RenderThread.java
+++ b/src/main/java/org/distorted/examples/surfaceview/RenderThread.java
@@ -72,7 +72,7 @@ class RenderThread extends Thread implements DistortedLibrary.LibraryUser
   private EGLSurface eglSurface;
   private DistortedTexture mTexture;
   private MeshSquare mMesh;
-  private volatile SurfaceHolder mSurfaceHolder;  // may be updated by UI thread
+  private final SurfaceHolder mSurfaceHolder;  // may be updated by UI thread
   private float mBmpRatio;
   private boolean mReady = false;
 
diff --git a/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java b/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java
index 3c65539..2337ef1 100644
--- a/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java
+++ b/src/main/java/org/distorted/examples/transparency/TransparencyRenderer.java
@@ -19,9 +19,6 @@
 
 package org.distorted.examples.transparency;
 
-import android.app.ActivityManager;
-import android.content.Context;
-import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.opengl.GLSurfaceView;
 
@@ -62,7 +59,6 @@ class TransparencyRenderer implements GLSurfaceView.Renderer, DistortedLibrary.L
     private static final int NUM_OBJECTS = OBJECTS.length/NUM;
     private static final int OBJ_SIZE    = 100;
 
-    private final GLSurfaceView mView;
     private final Resources mResources;
     private final DistortedNode[] mNode;
     private final DistortedTexture[] mTex;
@@ -81,7 +77,6 @@ class TransparencyRenderer implements GLSurfaceView.Renderer, DistortedLibrary.L
 
     TransparencyRenderer(GLSurfaceView v)
       {
-      mView = v;
       mResources = v.getResources();
 
       MeshSquare mesh = new MeshSquare(1,1);
diff --git a/src/main/java/org/distorted/examples/wind/WindEffectsManager.java b/src/main/java/org/distorted/examples/wind/WindEffectsManager.java
index c312322..abdc43c 100644
--- a/src/main/java/org/distorted/examples/wind/WindEffectsManager.java
+++ b/src/main/java/org/distorted/examples/wind/WindEffectsManager.java
@@ -41,19 +41,24 @@ class WindEffectsManager
                                                      // fall back down if no wind (milliseconds)
   private long mLastTime, mPausedTime;
   private float mWind;
-  private int mHeight, mWidth;
-
-  private Static3D  shearFactor;
-  private Static3D  scaleFactor;
-  private Static3D  deformForce;
-  private Static5D  windFactor11, windFactor12;
-  private Dynamic5D windDynamic1;
-  private Static5D  windFactor21, windFactor22;
-  private Dynamic5D windDynamic2;
-  private Static5D  windFactor31, windFactor32;
-  private Dynamic5D windDynamic3;
-  private Static5D  windFactor41, windFactor42;
-  private Dynamic5D windDynamic4;
+  private final int mHeight;
+    private final int mWidth;
+
+  private final Static3D  shearFactor;
+  private final Static3D  scaleFactor;
+  private final Static3D  deformForce;
+  private final Static5D  windFactor11;
+    private final Static5D windFactor12;
+  private final Dynamic5D windDynamic1;
+  private final Static5D  windFactor21;
+    private final Static5D windFactor22;
+  private final Dynamic5D windDynamic2;
+  private final Static5D  windFactor31;
+    private final Static5D windFactor32;
+  private final Dynamic5D windDynamic3;
+  private final Static5D  windFactor41;
+    private final Static5D windFactor42;
+  private final Dynamic5D windDynamic4;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/main/java/org/distorted/examples/wind/WindGust.java b/src/main/java/org/distorted/examples/wind/WindGust.java
index e951a44..1d2de30 100644
--- a/src/main/java/org/distorted/examples/wind/WindGust.java
+++ b/src/main/java/org/distorted/examples/wind/WindGust.java
@@ -29,7 +29,7 @@ class WindGust
   private int mAvgWind;
   private boolean mBlowingNow;
   private long mLastTime, mPausedTime;
-  private static Random mRnd = new Random();
+  private static final Random mRnd = new Random();
 
   WindGust()
     {
diff --git a/src/main/res/layout/check1layout.xml b/src/main/res/layout/check1layout.xml
index 6a2bc6e..93c5d2e 100644
--- a/src/main/res/layout/check1layout.xml
+++ b/src/main/res/layout/check1layout.xml
@@ -78,7 +78,7 @@
     <Button
         android:id="@+id/check1Button"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="0dp"
         android:layout_weight="0.10"
         android:onClick="Check"
         android:text="@string/check"
diff --git a/src/main/res/layout/effectqueuelayout.xml b/src/main/res/layout/effectqueuelayout.xml
index b270160..03ebe3e 100644
--- a/src/main/res/layout/effectqueuelayout.xml
+++ b/src/main/res/layout/effectqueuelayout.xml
@@ -20,7 +20,6 @@
         android:id="@+id/linearLayout1"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
-        android:layout_weight="0.3"
         android:gravity="fill_horizontal|top"
         android:orientation="vertical"
         android:weightSum="1">
diff --git a/src/main/res/layout/mirrorlayout.xml b/src/main/res/layout/mirrorlayout.xml
index cd90812..4990b89 100644
--- a/src/main/res/layout/mirrorlayout.xml
+++ b/src/main/res/layout/mirrorlayout.xml
@@ -22,7 +22,7 @@
         <SeekBar
             android:id="@+id/mirrorSeek"
             android:layout_weight="1"
-            android:layout_width="wrap_content"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:paddingLeft="10dp"
             android:paddingRight="10dp" />
