content: 
  package me.imid.swipebacklayout.lib;
  
  import android.app.Activity;
  import android.app.ActivityOptions;
  import android.os.Build;
  
  import java.lang.reflect.Method;
  
  /**
   * Created by Chaojun Wang on 6/9/14.
   */
  public class Utils {
      private Utils() {
      }
  
      /**
       * Convert a translucent themed Activity
       * {@link android.R.attr#windowIsTranslucent} to a fullscreen opaque
       * Activity.
       * <p>
       * Call this whenever the background of a translucent Activity has changed
       * to become opaque. Doing so will allow the {@link android.view.Surface} of
       * the Activity behind to be released.
       * <p>
       * This call has no effect on non-translucent activities or on activities
       * with the {@link android.R.attr#windowIsFloating} attribute.
       */
      public static void convertActivityFromTranslucent(Activity activity) {
          try {
              Method method = Activity.class.getDeclaredMethod("convertFromTranslucent");
              method.setAccessible(true);
              method.invoke(activity);
          } catch (Throwable t) {
          }
      }
  
      /**
       * Convert a translucent themed Activity
       * {@link android.R.attr#windowIsTranslucent} back from opaque to
       * translucent following a call to
       * {@link #convertActivityFromTranslucent(android.app.Activity)} .
       * <p>
       * Calling this allows the Activity behind this one to be seen again. Once
       * all such Activities have been redrawn
       * <p>
       * This call has no effect on non-translucent activities or on activities
       * with the {@link android.R.attr#windowIsFloating} attribute.
       */
      public static void convertActivityToTranslucent(Activity activity) {
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
              convertActivityToTranslucentAfterL(activity);
          } else {
              convertActivityToTranslucentBeforeL(activity);
          }
      }
  
      /**
       * Calling the convertToTranslucent method on platforms before Android 5.0
       */
      public static void convertActivityToTranslucentBeforeL(Activity activity) {
          try {
              Class<?>[] classes = Activity.class.getDeclaredClasses();
              Class<?> translucentConversionListenerClazz = null;
              for (Class clazz : classes) {
                  if (clazz.getSimpleName().contains("TranslucentConversionListener")) {
                      translucentConversionListenerClazz = clazz;
                  }
              }
              Method method = Activity.class.getDeclaredMethod("convertToTranslucent",
                      translucentConversionListenerClazz);
              method.setAccessible(true);
              method.invoke(activity, new Object[] {
                  null
              });
          } catch (Throwable t) {
          }
      }
  
      /**
       * Calling the convertToTranslucent method on platforms after Android 5.0
       */
      private static void convertActivityToTranslucentAfterL(Activity activity) {
          try {
              Method getActivityOptions = Activity.class.getDeclaredMethod("getActivityOptions");
              getActivityOptions.setAccessible(true);
              Object options = getActivityOptions.invoke(activity);
  
              Class<?>[] classes = Activity.class.getDeclaredClasses();
              Class<?> translucentConversionListenerClazz = null;
              for (Class clazz : classes) {
                  if (clazz.getSimpleName().contains("TranslucentConversionListener")) {
                      translucentConversionListenerClazz = clazz;
                  }
              }
              Method convertToTranslucent = Activity.class.getDeclaredMethod("convertToTranslucent",
                      translucentConversionListenerClazz, ActivityOptions.class);
              convertToTranslucent.setAccessible(true);
              convertToTranslucent.invoke(activity, null, options);
          } catch (Throwable t) {
          }
      }
  }
  