diff --git a/packages/MediaComponents/proguard.cfg b/packages/MediaComponents/proguard.cfg
index 1b06c8c..43f2e63 100644
--- a/packages/MediaComponents/proguard.cfg
+++ b/packages/MediaComponents/proguard.cfg
@@ -16,5 +16,5 @@
 
 # Keep entry point for updatable Java classes
 -keep public class com.android.media.update.ApiFactory {
-   public static java.lang.Object initialize(android.content.Context, android.content.Context);
+   public static java.lang.Object initialize(android.content.res.Resources, android.content.res.Resources$Theme);
 }
diff --git a/packages/MediaComponents/src/com/android/media/update/ApiFactory.java b/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
index abff13e..f015b86 100644
--- a/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
+++ b/packages/MediaComponents/src/com/android/media/update/ApiFactory.java
@@ -16,7 +16,8 @@
 
 package com.android.media.update;
 
-import android.content.Context;
+import android.content.res.Resources;
+import android.content.res.Resources.Theme;
 import android.media.update.MediaController2Provider;
 import android.media.update.VideoView2Provider;
 import android.media.update.StaticProvider;
@@ -28,10 +29,9 @@
 import com.android.widget.VideoView2Impl;
 
 public class ApiFactory implements StaticProvider {
-
-    public static Object initialize(Context appContext, Context libContext)
+    public static Object initialize(Resources libResources, Theme libTheme)
             throws ReflectiveOperationException {
-        ApiHelper.initialize(appContext, libContext);
+        ApiHelper.initialize(libResources, libTheme);
         return new ApiFactory();
     }
 
diff --git a/packages/MediaComponents/src/com/android/media/update/ApiHelper.java b/packages/MediaComponents/src/com/android/media/update/ApiHelper.java
index 550da86..07edb03 100644
--- a/packages/MediaComponents/src/com/android/media/update/ApiHelper.java
+++ b/packages/MediaComponents/src/com/android/media/update/ApiHelper.java
@@ -16,29 +16,27 @@
 
 package com.android.media.update;
 
-import android.content.Context;
 import android.content.res.Resources;
+import android.content.res.Resources.Theme;
 
 public class ApiHelper {
     private static ApiHelper sInstance;
-    private final Context mAppContext;
     private final Resources mLibResources;
-    private final Resources.Theme mLibTheme;
+    private final Theme mLibTheme;
 
     public static ApiHelper getInstance() {
         return sInstance;
     }
 
-    static void initialize(Context appContext, Context libContext) {
+    static void initialize(Resources libResources, Theme libTheme) {
         if (sInstance == null) {
-            sInstance = new ApiHelper(appContext, libContext);
+            sInstance = new ApiHelper(libResources, libTheme);
         }
     }
 
-    private ApiHelper(Context appContext, Context libContext) {
-        mAppContext = appContext;
-        mLibResources = libContext.getResources();
-        mLibTheme = libContext.getTheme();
+    private ApiHelper(Resources libResources, Theme libTheme) {
+        mLibResources = libResources;
+        mLibTheme = libTheme;
     }
 
     public Resources getLibResources() {
