summaryrefslogtreecommitdiffstats
path: root/services/core
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2014-04-07 19:45:27 -0700
committerJeff Brown <jeffbrown@google.com>2014-04-08 20:51:07 -0700
commit13014b5fe5967b3c7e232ffaf81581ed178e6df6 (patch)
tree4771e759f79cdffe26ac7480983ea2e1f0988082 /services/core
parentad9ef191f50767d8d5b6f0fbd4b59bb1400dcd25 (diff)
downloadframeworks_base-13014b5fe5967b3c7e232ffaf81581ed178e6df6.zip
frameworks_base-13014b5fe5967b3c7e232ffaf81581ed178e6df6.tar.gz
frameworks_base-13014b5fe5967b3c7e232ffaf81581ed178e6df6.tar.bz2
Move certain internal activity manager methods to new class.
This is a little bit of refactoring in preparation for changing how the power manager notifies system components about changes in power state. Deleted the startRunning method since it is no longer useful. Bug: 13133142 Change-Id: I7f845c61ecc7ee890154ed0cbd90795de609b7ea
Diffstat (limited to 'services/core')
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java64
-rw-r--r--services/core/java/com/android/server/power/Notifier.java18
2 files changed, 28 insertions, 54 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 6c3f528..98cbe7d 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -24,7 +24,6 @@ import static com.android.internal.util.XmlUtils.writeLongAttribute;
import static com.android.server.Watchdog.NATIVE_STACKS_OF_INTEREST;
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
import static org.xmlpull.v1.XmlPullParser.START_TAG;
-
import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
import android.app.AppOpsManager;
@@ -33,6 +32,7 @@ import android.app.IActivityContainerCallback;
import android.appwidget.AppWidgetManager;
import android.graphics.Rect;
import android.util.ArrayMap;
+
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IAppOpsService;
@@ -49,6 +49,7 @@ import com.android.internal.util.Preconditions;
import com.android.server.AppOpsService;
import com.android.server.AttributeCache;
import com.android.server.IntentResolver;
+import com.android.server.LocalServices;
import com.android.server.ServiceThread;
import com.android.server.SystemService;
import com.android.server.Watchdog;
@@ -61,7 +62,6 @@ import com.google.android.collect.Lists;
import com.google.android.collect.Maps;
import dalvik.system.Zygote;
-
import libcore.io.IoUtils;
import org.xmlpull.v1.XmlPullParser;
@@ -72,6 +72,7 @@ import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityManager.StackInfo;
+import android.app.ActivityManagerInternal;
import android.app.ActivityManagerNative;
import android.app.ActivityOptions;
import android.app.ActivityThread;
@@ -798,9 +799,8 @@ public final class ActivityManagerService extends ActivityManagerNative
/**
* Used to control how we initialize the service.
*/
- boolean mStartRunning = false;
ComponentName mTopComponent;
- String mTopAction;
+ String mTopAction = Intent.ACTION_MAIN;
String mTopData;
boolean mProcessesReady = false;
boolean mSystemReady = false;
@@ -1985,7 +1985,8 @@ public final class ActivityManagerService extends ActivityManagerNative
mBatteryStatsService.publish(mContext);
mUsageStatsService.publish(mContext);
mAppOpsService.publish(mContext);
- startRunning(null, null, null, null);
+
+ LocalServices.addService(ActivityManagerInternal.class, new LocalService());
}
@Override
@@ -8164,13 +8165,7 @@ public final class ActivityManagerService extends ActivityManagerNative
return mSleeping || mShuttingDown;
}
- public void goingToSleep() {
- if (checkCallingPermission(android.Manifest.permission.DEVICE_POWER)
- != PackageManager.PERMISSION_GRANTED) {
- throw new SecurityException("Requires permission "
- + android.Manifest.permission.DEVICE_POWER);
- }
-
+ void goingToSleep() {
synchronized(this) {
mWentToSleep = true;
updateEventDispatchingLocked();
@@ -8245,13 +8240,7 @@ public final class ActivityManagerService extends ActivityManagerNative
}
}
- public void wakingUp() {
- if (checkCallingPermission(android.Manifest.permission.DEVICE_POWER)
- != PackageManager.PERMISSION_GRANTED) {
- throw new SecurityException("Requires permission "
- + android.Manifest.permission.DEVICE_POWER);
- }
-
+ void wakingUp() {
synchronized(this) {
mWentToSleep = false;
updateEventDispatchingLocked();
@@ -8971,25 +8960,6 @@ public final class ActivityManagerService extends ActivityManagerNative
}
}
- public final void startRunning(String pkg, String cls, String action,
- String data) {
- synchronized(this) {
- if (mStartRunning) {
- return;
- }
- mStartRunning = true;
- mTopComponent = pkg != null && cls != null
- ? new ComponentName(pkg, cls) : null;
- mTopAction = action != null ? action : Intent.ACTION_MAIN;
- mTopData = data;
- if (!mSystemReady) {
- return;
- }
- }
-
- systemReady(null);
- }
-
private void retrieveSettings() {
final ContentResolver resolver = mContext.getContentResolver();
String debugApp = Settings.Global.getString(
@@ -9202,9 +9172,6 @@ public final class ActivityManagerService extends ActivityManagerNative
mAppOpsService.systemReady();
mSystemReady = true;
- if (!mStartRunning) {
- return;
- }
}
ArrayList<ProcessRecord> procsToKill = null;
@@ -10884,8 +10851,7 @@ public final class ActivityManagerService extends ActivityManagerNative
}
if (dumpAll) {
pw.println(" Total persistent processes: " + numPers);
- pw.println(" mStartRunning=" + mStartRunning
- + " mProcessesReady=" + mProcessesReady
+ pw.println(" mProcessesReady=" + mProcessesReady
+ " mSystemReady=" + mSystemReady);
pw.println(" mBooting=" + mBooting
+ " mBooted=" + mBooted
@@ -16529,4 +16495,16 @@ public final class ActivityManagerService extends ActivityManagerNative
info.applicationInfo = getAppInfoForUser(info.applicationInfo, userId);
return info;
}
+
+ private final class LocalService extends ActivityManagerInternal {
+ @Override
+ public void goingToSleep() {
+ ActivityManagerService.this.goingToSleep();
+ }
+
+ @Override
+ public void wakingUp() {
+ ActivityManagerService.this.wakingUp();
+ }
+ }
}
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index c5a71ec..19d53cb 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -16,10 +16,13 @@
package com.android.server.power;
+import android.app.ActivityManagerInternal;
import android.app.AppOpsManager;
+
import com.android.internal.app.IAppOpsService;
import com.android.internal.app.IBatteryStats;
import com.android.server.EventLogTags;
+import com.android.server.LocalServices;
import android.app.ActivityManagerNative;
import android.content.BroadcastReceiver;
@@ -81,6 +84,7 @@ final class Notifier {
private final SuspendBlocker mSuspendBlocker;
private final ScreenOnBlocker mScreenOnBlocker;
private final WindowManagerPolicy mPolicy;
+ private final ActivityManagerInternal mActivityManagerInternal;
private final NotifierHandler mHandler;
private final Intent mScreenOnIntent;
@@ -115,6 +119,7 @@ final class Notifier {
mSuspendBlocker = suspendBlocker;
mScreenOnBlocker = screenOnBlocker;
mPolicy = policy;
+ mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class);
mHandler = new NotifierHandler(looper);
mScreenOnIntent = new Intent(Intent.ACTION_SCREEN_ON);
@@ -379,12 +384,7 @@ final class Notifier {
EventLog.writeEvent(EventLogTags.POWER_SCREEN_STATE, 1, 0, 0, 0);
mPolicy.screenTurningOn(mScreenOnListener);
-
- try {
- ActivityManagerNative.getDefault().wakingUp();
- } catch (RemoteException e) {
- // ignore it
- }
+ mActivityManagerInternal.wakingUp();
if (ActivityManagerNative.isSystemReady()) {
mContext.sendOrderedBroadcastAsUser(mScreenOnIntent, UserHandle.ALL, null,
@@ -435,11 +435,7 @@ final class Notifier {
EventLog.writeEvent(EventLogTags.POWER_SCREEN_STATE, 0, why, 0, 0);
mPolicy.screenTurnedOff(why);
- try {
- ActivityManagerNative.getDefault().goingToSleep();
- } catch (RemoteException e) {
- // ignore it.
- }
+ mActivityManagerInternal.goingToSleep();
if (ActivityManagerNative.isSystemReady()) {
mContext.sendOrderedBroadcastAsUser(mScreenOffIntent, UserHandle.ALL, null,