content: /*
   *     Copyright (C) 2016  Merbin J Anselm <merbinjanselm@gmail.com>
   *
   *     This program is free software; you can redistribute it and/or modify
   *     it under the terms of the GNU General Public License as published by
   *     the Free Software Foundation; either version 2 of the License, or
   *     (at your option) any later version.
   *
   *     This program is distributed in the hope that it will be useful,
   *     but WITHOUT ANY WARRANTY; without even the implied warranty of
   *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   *     GNU General Public License for more details.
   *
   *     You should have received a copy of the GNU General Public License along
   *     with this program; if not, write to the Free Software Foundation, Inc.,
   *     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
   */
  
  package in.blogspot.anselmbros.torchie.utils;
  
  import android.util.Log;
  
  import in.blogspot.anselmbros.torchie.BuildConfig;
  
  /**
   * Created by Merbin J Anselm on 02-Feb-17.
   */
  
  public class LogUtils {
  
      private static final String LOG_PREFIX = "Torchie:";
      private static final int LOG_PREFIX_LENGTH = LOG_PREFIX.length();
      private static final int MAX_LOG_TAG_LENGTH = 23;
  
      public static boolean LOGGING_ENABLED = !BuildConfig.BUILD_TYPE.equalsIgnoreCase("release");
  
      private LogUtils() {
      }
  
      public static String makeLogTag(String str) {
          if (str.length() > MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH) {
              return LOG_PREFIX + str.substring(0, MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH - 1);
          }
  
          return LOG_PREFIX + str;
      }
  
      /**
       * Don't use this when obfuscating class names!
       */
      public static String makeLogTag(Class cls) {
          return makeLogTag(cls.getSimpleName());
      }
  
      public static void LOGD(final String tag, String message) {
          if (LOGGING_ENABLED) {
              if (Log.isLoggable(tag, Log.DEBUG)) {
                  Log.d(tag, message);
              }
          }
      }
  
      public static void LOGD(final String tag, String message, Throwable cause) {
          if (LOGGING_ENABLED) {
              if (Log.isLoggable(tag, Log.DEBUG)) {
                  Log.d(tag, message, cause);
              }
          }
      }
  
      public static void LOGV(final String tag, String message) {
          if (LOGGING_ENABLED) {
              if (Log.isLoggable(tag, Log.VERBOSE)) {
                  Log.v(tag, message);
              }
          }
      }
  
      public static void LOGV(final String tag, String message, Throwable cause) {
          if (LOGGING_ENABLED) {
              if (Log.isLoggable(tag, Log.VERBOSE)) {
                  Log.v(tag, message, cause);
              }
          }
      }
  
      public static void LOGI(final String tag, String message) {
          if (LOGGING_ENABLED) {
              Log.i(tag, message);
          }
      }
  
      public static void LOGI(final String tag, String message, Throwable cause) {
          if (LOGGING_ENABLED) {
              Log.i(tag, message, cause);
          }
      }
  
      public static void LOGW(final String tag, String message) {
          Log.w(tag, message);
      }
  
      public static void LOGW(final String tag, String message, Throwable cause) {
          Log.w(tag, message, cause);
      }
  
      public static void LOGE(final String tag, String message) {
          Log.e(tag, message);
      }
  
      public static void LOGE(final String tag, String message, Throwable cause) {
          Log.e(tag, message, cause);
      }
  
  }
  