1214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Juddpackage com.bumptech.glide.util; 2214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd 3214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Juddimport android.annotation.TargetApi; 4214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Juddimport android.os.Build; 5214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Juddimport android.os.SystemClock; 6214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd 75f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd/** 85f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * A class for logging elapsed real time in millis. 95f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 105ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Juddpublic final class LogTime { 11e7319b67364bd0ac6306bc7470a43d4a31600c1aRobert Papp private static final double MILLIS_MULTIPLIER = 125ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd Build.VERSION_CODES.JELLY_BEAN_MR1 <= Build.VERSION.SDK_INT ? 1d / Math.pow(10, 6) : 1d; 135ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd 145ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd private LogTime() { 155ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd // Utility class. 165ba19a0e69ad3a651b8f13ba45de48a56b56ce36Sam Judd } 17214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd 185f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 195f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * Returns the current time in either millis or nanos depending on the api level to be used with 205f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * {@link #getElapsedMillis(long)}. 215f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 22e7319b67364bd0ac6306bc7470a43d4a31600c1aRobert Papp @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) 23214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd public static long getLogTime() { 24e7319b67364bd0ac6306bc7470a43d4a31600c1aRobert Papp if (Build.VERSION_CODES.JELLY_BEAN_MR1 <= Build.VERSION.SDK_INT) { 25214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd return SystemClock.elapsedRealtimeNanos(); 26214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd } else { 275f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd return System.currentTimeMillis(); 28214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd } 29214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd } 30214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd 315f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd /** 325f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * Returns the time elapsed since the given logTime in millis. 335f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * 345f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd * @param logTime The start time of the event. 355f4610b54d517be58105bcf73ce3291ba79f9f40Sam Judd */ 36214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd public static double getElapsedMillis(long logTime) { 37214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd return (getLogTime() - logTime) * MILLIS_MULTIPLIER; 38214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd } 39214e9f90ba8a156b0bdbaff7fc911ffaf3e5b137Sam Judd} 40