Merge "Use single instance of ContactPhotoManager in Dialer"
diff --git a/src/com/android/dialer/DialerApplication.java b/src/com/android/dialer/DialerApplication.java
index 39a1ac7..e788144 100644
--- a/src/com/android/dialer/DialerApplication.java
+++ b/src/com/android/dialer/DialerApplication.java
@@ -1,16 +1,47 @@
-// Copyright 2013 Google Inc. All Rights Reserved.
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
 
 package com.android.dialer;
 
 import android.app.Application;
 
+import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.extensions.ExtensionsFactory;
 
 public class DialerApplication extends Application {
 
+    private ContactPhotoManager mContactPhotoManager;
+
     @Override
     public void onCreate() {
         super.onCreate();
         ExtensionsFactory.init(getApplicationContext());
     }
+
+    @Override
+    public Object getSystemService(String name) {
+        if (ContactPhotoManager.CONTACT_PHOTO_SERVICE.equals(name)) {
+            if (mContactPhotoManager == null) {
+                mContactPhotoManager = ContactPhotoManager.createContactPhotoManager(this);
+                registerComponentCallbacks(mContactPhotoManager);
+                mContactPhotoManager.preloadPhotosInBackground();
+            }
+            return mContactPhotoManager;
+        }
+
+        return super.getSystemService(name);
+    }
 }