diff options
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowActivityManager.java')
-rw-r--r-- | v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowActivityManager.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowActivityManager.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowActivityManager.java new file mode 100644 index 000000000..059139f53 --- /dev/null +++ b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowActivityManager.java @@ -0,0 +1,83 @@ +package com.xtremelabs.robolectric.shadows; + +import android.app.ActivityManager; +import com.xtremelabs.robolectric.internal.Implementation; +import com.xtremelabs.robolectric.internal.Implements; + +import java.util.ArrayList; +import java.util.List; + +/** + * Shadow for the Android {@code ActivityManager} class. + */ +@SuppressWarnings({"UnusedDeclaration"}) +@Implements(ActivityManager.class) +public class ShadowActivityManager { + + private List<ActivityManager.RunningTaskInfo> tasks = + new ArrayList<ActivityManager.RunningTaskInfo>(); + + private List<ActivityManager.RunningAppProcessInfo> processes = + new ArrayList<ActivityManager.RunningAppProcessInfo>(); + + private String backgroundPackage; + private ActivityManager.MemoryInfo memoryInfo; + + @Implementation + public List<ActivityManager.RunningTaskInfo> getRunningTasks(int maxNum) { + return tasks; + } + + @Implementation + public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() { + return processes; + } + + @Implementation + public void killBackgroundProcesses(String packageName) { + backgroundPackage = packageName; + } + + @Implementation + public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) { + if (memoryInfo != null) { + outInfo.lowMemory = memoryInfo.lowMemory; + } + } + + /** + * Non-Android accessor to set the list of running tasks. + * @param tasks + */ + public void setTasks(List<ActivityManager.RunningTaskInfo> tasks) { + this.tasks = tasks; + } + + /** + * Non-Android accessor to set the list of running processes. + * @param processes + */ + public void setProcesses( List<ActivityManager.RunningAppProcessInfo> processes ) { + this.processes = processes; + } + + /** + * Non-Android accessor, for use in assertions. + */ + public String getBackgroundPackage() { + return backgroundPackage; + } + + public void setMemoryInfo(ActivityManager.MemoryInfo memoryInfo) { + this.memoryInfo = memoryInfo; + } + + @Implements(ActivityManager.MemoryInfo.class) + public static class ShadowMemoryInfo { + public boolean lowMemory; + + public void setLowMemory(boolean lowMemory) { + this.lowMemory = lowMemory; + } + } +} |