From 05f6f08832ea18821c9b55ca0f53167adfdc828b Mon Sep 17 00:00:00 2001
From: Peter Serwylo <peter@serwylo.com>
Date: Wed, 29 Mar 2017 15:41:06 +1100
Subject: [PATCH] Add Profiler class for diagnosing performance problems.

Unused for now, but like with the `LoggingQuery`, it is helpful to
be used for debugging purposes. For example, used this to quickly
figure out that it took 7 seconds to fix the PRNG stuff in FDroidApp
onCreate().
---
 app/src/main/java/org/fdroid/fdroid/Utils.java | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java
index b26768c86..c812e1273 100644
--- a/app/src/main/java/org/fdroid/fdroid/Utils.java
+++ b/app/src/main/java/org/fdroid/fdroid/Utils.java
@@ -623,4 +623,19 @@ public final class Utils {
         Resources r = ctx.getResources();
         return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics());
     }
+
+    @SuppressWarnings("unused")
+    public static class Profiler {
+        public final long startTime = System.currentTimeMillis();
+        public final String logTag;
+
+        public Profiler(String logTag) {
+            this.logTag = logTag;
+        }
+
+        public void log(String message) {
+            long duration = System.currentTimeMillis() - startTime;
+            Utils.debugLog(logTag, "[" + duration + "ms] " + message);
+        }
+    }
 }