commit a8cbefceb07b0501ffc0d2de3ae3ed7553c41010
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon Dec 2 23:09:26 2019 +0000

    fix a bug: in certain places when we use reflection, it needs to be getDeclaredMethod and not getMethod because the methods are not public!

diff --git a/src/main/java/org/distorted/effect/SizeChangeEffect.java b/src/main/java/org/distorted/effect/SizeChangeEffect.java
index cfcdc78e..b4d5afed 100644
--- a/src/main/java/org/distorted/effect/SizeChangeEffect.java
+++ b/src/main/java/org/distorted/effect/SizeChangeEffect.java
@@ -253,26 +253,27 @@ public abstract class SizeChangeEffect implements EffectListener
 
   public static void enableEffects()
     {
-    Method method=null;
+    Method method;
 
     for(Type type: Type.values())
       {
       try
         {
-        method = type.effect.getMethod("enable");
+        method = type.effect.getDeclaredMethod("enable");  // enable not public, thus getDeclaredMethod
         }
       catch(NoSuchMethodException ex)
         {
-        android.util.Log.e("SizeChangeEffect", "exception getting method: "+ex.getMessage());
+        android.util.Log.e("SizeChangeEffect", type.effect.getSimpleName()+": exception getting method: "+ex.getMessage());
+        method = null;
         }
 
       try
         {
-        method.invoke(null);
+        if( method!=null ) method.invoke(null);
         }
       catch(Exception ex)
         {
-        android.util.Log.e("SizeChangeEffect", "exception invoking method: "+ex.getMessage());
+        android.util.Log.e("SizeChangeEffect", type.effect.getSimpleName()+": exception invoking method: "+ex.getMessage());
         }
       }
     }
diff --git a/src/main/java/org/distorted/effect/UnscrambleEffect.java b/src/main/java/org/distorted/effect/UnscrambleEffect.java
index 97b41811..6efdfb51 100644
--- a/src/main/java/org/distorted/effect/UnscrambleEffect.java
+++ b/src/main/java/org/distorted/effect/UnscrambleEffect.java
@@ -215,26 +215,27 @@ public abstract class UnscrambleEffect implements EffectListener
   @SuppressWarnings("unused")
   public static void enableEffects()
     {
-    Method method=null;
+    Method method;
 
     for(Type type: Type.values())
       {
       try
         {
-        method = type.effect.getMethod("enable");
+        method = type.effect.getDeclaredMethod("enable"); // enable not public, thus getDeclaredMethod
         }
       catch(NoSuchMethodException ex)
         {
-        android.util.Log.e("UnscrambleEffect", "exception getting method: "+ex.getMessage());
+        android.util.Log.e("UnscrambleEffect", type.effect.getSimpleName()+": exception getting method: "+ex.getMessage());
+        method = null;
         }
 
       try
         {
-        method.invoke(null);
+        if( method!=null ) method.invoke(null);
         }
       catch(Exception ex)
         {
-        android.util.Log.e("UnscrambleEffect", "exception invoking method: "+ex.getMessage());
+        android.util.Log.e("UnscrambleEffect", type.effect.getSimpleName()+": exception invoking method: "+ex.getMessage());
         }
       }
     }
