content: /* Android IMSI-Catcher Detector | (c) AIMSICD Privacy Project
   * -----------------------------------------------------------
   * LICENSE:  http://git.io/vki47 | TERMS:  http://git.io/vki4o
   * -----------------------------------------------------------
   */
  package zz.aimsicd.lite.utils;
  
  import android.content.Context;
  import android.os.CountDownTimer;
  import android.os.Handler;
  import android.widget.Toast;
  
  public class Toaster {
  
      private static final int SHORT_TOAST_DURATION = 2000;
      private static final long TOAST_DURATION_MILLS = 6000; //change if need longer
      private static Toast toast;
  
      /**
       * Private constructor. Prevents instantiation from other classes.
       */
      private Toaster() { }
  
      /**
       * Long toast message
       * TOAST_DURATION_MILLS controls the duration
       * currently set to 6 seconds
       * @param context Application Context
       * @param msg     Message to send
       */
      public static void msgLong(final Context context, final String msg) {
          if (context != null && msg != null) {
              if (toast != null) {
                  toast.cancel();
              }
  
              new Handler(context.getMainLooper()).post(new Runnable() {
                  @Override
                  public void run() {
                      toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
                      new CountDownTimer(Math.max(TOAST_DURATION_MILLS - SHORT_TOAST_DURATION, 1000), 1000) {
                          @Override
                          public void onFinish() {
                              toast.show();
                          }
  
                          @Override
                          public void onTick(long millisUntilFinished) {
                              toast.show();
                          }
                      }.start();
                  }
              });
          }
      }
      /**
       * Short toast message
       * (Predefined in AOS to 2000 ms = 2 sec)
       *
       * @param context Application Context
       * @param msg     Message to send
       */
      public static void msgShort(final Context context, final String msg) {
          if (context != null && msg != null) {
              if (toast != null) {
                  toast.cancel();
              }
              new Handler(context.getMainLooper()).post(new Runnable() {
                  @Override
                  public void run() {
                      toast = Toast.makeText(context, msg.trim(), Toast.LENGTH_SHORT);
                      toast.show();
                  }
              });
          }
      }
  }
  