am 118ca2cc: Merge "Move ToneGenerator recreation/release to onStart/onStop" into lmp-mr1-dev

* commit '118ca2cc6456a8cdf1be90d0a9d7378c69fa7a62':
  Move ToneGenerator recreation/release to onStart/onStop
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 6daa89c..3212076 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -565,6 +565,28 @@
     }
 
     @Override
+    public void onStart() {
+        super.onStart();
+        // if the mToneGenerator creation fails, just continue without it.  It is
+        // a local audio signal, and is not as important as the dtmf tone itself.
+        final long start = System.currentTimeMillis();
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator == null) {
+                try {
+                    mToneGenerator = new ToneGenerator(DIAL_TONE_STREAM_TYPE, TONE_RELATIVE_VOLUME);
+                } catch (RuntimeException e) {
+                    Log.w(TAG, "Exception caught while creating local tone generator: " + e);
+                    mToneGenerator = null;
+                }
+            }
+        }
+        final long total = System.currentTimeMillis() - start;
+        if (total > 50) {
+            Log.i(TAG, "Time for ToneGenerator creation: " + total);
+        }
+    };
+
+    @Override
     public void onResume() {
         super.onResume();
 
@@ -592,20 +614,6 @@
 
         stopWatch.lap("hptc");
 
-        // if the mToneGenerator creation fails, just continue without it.  It is
-        // a local audio signal, and is not as important as the dtmf tone itself.
-        synchronized (mToneGeneratorLock) {
-            if (mToneGenerator == null) {
-                try {
-                    mToneGenerator = new ToneGenerator(DIAL_TONE_STREAM_TYPE, TONE_RELATIVE_VOLUME);
-                } catch (RuntimeException e) {
-                    Log.w(TAG, "Exception caught while creating local tone generator: " + e);
-                    mToneGenerator = null;
-                }
-            }
-        }
-        stopWatch.lap("tg");
-
         mPressedDialpadKeys.clear();
 
         configureScreenFromIntent(getActivity());
@@ -657,12 +665,6 @@
         stopTone();
         mPressedDialpadKeys.clear();
 
-        synchronized (mToneGeneratorLock) {
-            if (mToneGenerator != null) {
-                mToneGenerator.release();
-                mToneGenerator = null;
-            }
-        }
         // TODO: I wonder if we should not check if the AsyncTask that
         // lookup the last dialed number has completed.
         mLastNumberDialed = EMPTY_NUMBER;  // Since we are going to query again, free stale number.
@@ -674,6 +676,13 @@
     public void onStop() {
         super.onStop();
 
+        synchronized (mToneGeneratorLock) {
+            if (mToneGenerator != null) {
+                mToneGenerator.release();
+                mToneGenerator = null;
+            }
+        }
+
         if (mClearDigitsOnStop) {
             mClearDigitsOnStop = false;
             clearDialpad();