diff options
Diffstat (limited to 'src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java')
-rw-r--r-- | src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java index 9724e6b41..54f5332a6 100644 --- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java +++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowContextWrapper.java @@ -1,24 +1,19 @@ package com.xtremelabs.robolectric.shadows; -import android.content.BroadcastReceiver; -import android.content.ComponentName; -import android.content.ContentResolver; -import android.content.Context; -import android.content.ContextWrapper; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.ServiceConnection; -import android.content.SharedPreferences; +import android.content.*; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.content.res.Resources; import android.os.Looper; +import com.xtremelabs.robolectric.RobolectricConfig; import com.xtremelabs.robolectric.internal.Implementation; import com.xtremelabs.robolectric.internal.Implements; import com.xtremelabs.robolectric.internal.RealObject; +import com.xtremelabs.robolectric.res.RobolectricPackageManager; import com.xtremelabs.robolectric.tester.android.content.TestSharedPreferences; +import java.io.File; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -122,7 +117,14 @@ public class ShadowContextWrapper extends ShadowContext { */ @Implementation public PackageManager getPackageManager() { - return realContextWrapper == getApplicationContext() ? packageManager : getApplicationContext().getPackageManager(); + return realContextWrapper == getApplicationContext() ? requirePackageManager() : getApplicationContext().getPackageManager(); + } + + private PackageManager requirePackageManager() { + if (packageManager == null) { + packageManager = new RobolectricPackageManager(realContextWrapper, new RobolectricConfig(new File("."))); + } + return packageManager; } @Implementation |