Adding Launcher3 callbacks for trimming memory.

It will help reduce memory footprint of Launcher, when in background.
It is required to help deallocate images, when Google Now Launcher
goes into the background. See cl/83222937/ .

Change-Id: I6d3d4d1f0457c67abcad3ba4516c87abcf666b05
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 5d8e136..591eb64 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -3791,6 +3791,9 @@
             if (mAppsCustomizeTabHost != null) {
                 mAppsCustomizeTabHost.trimMemory();
             }
+            if (mLauncherCallbacks != null) {
+                mLauncherCallbacks.onTrimMemory(level);
+            }
         }
     }
 
diff --git a/src/com/android/launcher3/LauncherCallbacks.java b/src/com/android/launcher3/LauncherCallbacks.java
index a1f4e0b..d8128d6 100644
--- a/src/com/android/launcher3/LauncherCallbacks.java
+++ b/src/com/android/launcher3/LauncherCallbacks.java
@@ -42,6 +42,7 @@
     public void dump(String prefix, FileDescriptor fd, PrintWriter w, String[] args);
     public void onHomeIntent();
     public boolean handleBackPressed();
+    public void onTrimMemory(int level);
 
     /*
      * Extension points for providing custom behavior on certain user interactions.
diff --git a/src/com/android/launcher3/LauncherExtension.java b/src/com/android/launcher3/LauncherExtension.java
index b264042..fe9bd6c 100644
--- a/src/com/android/launcher3/LauncherExtension.java
+++ b/src/com/android/launcher3/LauncherExtension.java
@@ -108,6 +108,10 @@
         }
 
         @Override
+        public void onTrimMemory(int level) {
+        }
+
+        @Override
         public void onLauncherProviderChange() {
         }