summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wale Ogunwale <ogunwale@google.com> 2018-10-25 19:59:40 -0700
committer Wale Ogunwale <ogunwale@google.com> 2018-10-26 16:45:48 -0700
commit387b34ccac506bebc39d0b49aea9fbd5983eb830 (patch)
treec2883665508791e7a0a0bd5f4ef08f6b55e09c49
parent24e289ab3a5e6cb5259b770ba87326bcec3a9655 (diff)
Made a few ATMS methods public that can be accessed from AMS (35/n)
With this CL we should the mostly ready to move ATMS and company to the WM package. Bug: 80414790 Test: Existing tests pass Change-Id: Ie37efb48b7a843ef14397d88452da0cf7cb35f80
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java10
-rw-r--r--services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java1
-rw-r--r--services/core/java/com/android/server/am/ActivityTaskManagerService.java79
-rw-r--r--services/core/java/com/android/server/am/AppErrors.java6
-rw-r--r--services/core/java/com/android/server/am/MemoryStatUtil.java6
-rw-r--r--services/core/java/com/android/server/am/ProcessList.java3
-rw-r--r--services/core/java/com/android/server/am/ProcessRecord.java6
-rw-r--r--services/core/java/com/android/server/am/WindowProcessController.java7
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java1
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java7
-rw-r--r--services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java2
14 files changed, 67 insertions, 67 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index b6f4d7f5e94e..88558b48b2e5 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -1361,14 +1361,6 @@ public class ActivityManagerService extends IActivityManager.Stub
private static String sTheRealBuildSerial = Build.UNKNOWN;
- /**
- * Current global configuration information. Contains general settings for the entire system,
- * also corresponds to the merged configuration of the default display.
- */
- Configuration getGlobalConfiguration() {
- return mActivityTaskManager.getGlobalConfiguration();
- }
-
final class UiHandler extends Handler {
public UiHandler() {
super(com.android.server.UiThread.get().getLooper(), null, true);
@@ -10401,7 +10393,7 @@ public class ActivityManagerService extends IActivityManager.Stub
return mProviderMap.dumpProviderProto(fd, pw, name, args);
}
- static class ItemMatcher {
+ public static class ItemMatcher {
ArrayList<ComponentName> components;
ArrayList<String> strings;
ArrayList<Integer> objects;
diff --git a/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java b/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java
index cf727380ae6b..4f2a254f080f 100644
--- a/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java
+++ b/services/core/java/com/android/server/am/ActivityTaskManagerDebugConfig.java
@@ -69,6 +69,7 @@ public class ActivityTaskManagerDebugConfig {
static final boolean DEBUG_METRICS = DEBUG_ALL || false;
static final String POSTFIX_APP = APPEND_CATEGORY_NAME ? "_App" : "";
+ static final String POSTFIX_CLEANUP = (APPEND_CATEGORY_NAME) ? "_Cleanup" : "";
static final String POSTFIX_IDLE = APPEND_CATEGORY_NAME ? "_Idle" : "";
static final String POSTFIX_RELEASE = APPEND_CATEGORY_NAME ? "_Release" : "";
static final String POSTFIX_USER_LEAVING = APPEND_CATEGORY_NAME ? "_UserLeaving" : "";
diff --git a/services/core/java/com/android/server/am/ActivityTaskManagerService.java b/services/core/java/com/android/server/am/ActivityTaskManagerService.java
index 4ae9856e091c..5b0a4a9b0596 100644
--- a/services/core/java/com/android/server/am/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityTaskManagerService.java
@@ -612,23 +612,27 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
GL_ES_VERSION = SystemProperties.getInt("ro.opengles.version", GL_ES_VERSION_UNDEFINED);
}
- void onSystemReady() {
- mHasHeavyWeightFeature = mContext.getPackageManager().hasSystemFeature(
- PackageManager.FEATURE_CANT_SAVE_STATE);
- mAssistUtils = new AssistUtils(mContext);
- mVrController.onSystemReady();
- mRecentTasks.onSystemReadyLocked();
+ public void onSystemReady() {
+ synchronized (mGlobalLock) {
+ mHasHeavyWeightFeature = mContext.getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_CANT_SAVE_STATE);
+ mAssistUtils = new AssistUtils(mContext);
+ mVrController.onSystemReady();
+ mRecentTasks.onSystemReadyLocked();
+ }
}
- void onInitPowerManagement() {
- mStackSupervisor.initPowerManagement();
- final PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
- mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
- mVoiceWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*voice*");
- mVoiceWakeLock.setReferenceCounted(false);
+ public void onInitPowerManagement() {
+ synchronized (mGlobalLock) {
+ mStackSupervisor.initPowerManagement();
+ final PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
+ mVoiceWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*voice*");
+ mVoiceWakeLock.setReferenceCounted(false);
+ }
}
- void installSystemProviders() {
+ public void installSystemProviders() {
mFontScaleSettingObserver = new FontScaleSettingObserver();
}
@@ -737,9 +741,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
mKeyguardController = mStackSupervisor.getKeyguardController();
}
- void onActivityManagerInternalAdded() {
- mAmInternal = LocalServices.getService(ActivityManagerInternal.class);
- mUgmInternal = LocalServices.getService(UriGrantsManagerInternal.class);
+ public void onActivityManagerInternalAdded() {
+ synchronized (mGlobalLock) {
+ mAmInternal = LocalServices.getService(ActivityManagerInternal.class);
+ mUgmInternal = LocalServices.getService(UriGrantsManagerInternal.class);
+ }
}
int increaseConfigurationSeqLocked() {
@@ -753,14 +759,18 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
return supervisor;
}
- void setWindowManager(WindowManagerService wm) {
- mWindowManager = wm;
- mLockTaskController.setWindowManager(wm);
- mStackSupervisor.setWindowManager(wm);
+ public void setWindowManager(WindowManagerService wm) {
+ synchronized (mGlobalLock) {
+ mWindowManager = wm;
+ mLockTaskController.setWindowManager(wm);
+ mStackSupervisor.setWindowManager(wm);
+ }
}
- void setUsageStatsManager(UsageStatsManagerInternal usageStatsManager) {
- mUsageStatsInternal = usageStatsManager;
+ public void setUsageStatsManager(UsageStatsManagerInternal usageStatsManager) {
+ synchronized (mGlobalLock) {
+ mUsageStatsInternal = usageStatsManager;
+ }
}
UserManagerService getUserManager() {
@@ -2136,7 +2146,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
}
- boolean isControllerAMonkey() {
+ public boolean isControllerAMonkey() {
synchronized (mGlobalLock) {
return mController != null && mControllerIsAMonkey;
}
@@ -2895,7 +2905,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
});
}
- void onScreenAwakeChanged(boolean isAwake) {
+ public void onScreenAwakeChanged(boolean isAwake) {
mH.post(() -> {
for (int i = mScreenObservers.size() - 1; i >= 0; i--) {
mScreenObservers.get(i).onAwakeStateChanged(isAwake);
@@ -4905,15 +4915,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
}
- boolean canShowErrorDialogs() {
- return mShowDialogs && !mSleeping && !mShuttingDown
- && !mKeyguardController.isKeyguardOrAodShowing(DEFAULT_DISPLAY)
- && !hasUserRestriction(UserManager.DISALLOW_SYSTEM_ERROR_DIALOGS,
- mAmInternal.getCurrentUserId())
- && !(UserManager.isDeviceInDemoMode(mContext)
- && mAmInternal.getCurrentUser().isDemo());
- }
-
static long getInputDispatchingTimeoutLocked(ActivityRecord r) {
if (r == null || !r.hasProcess()) {
return KEY_DISPATCHING_TIMEOUT_MS;
@@ -6791,5 +6792,17 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
false /* deferResume */);
}
}
+
+ @Override
+ public boolean canShowErrorDialogs() {
+ synchronized (mGlobalLock) {
+ return mShowDialogs && !mSleeping && !mShuttingDown
+ && !mKeyguardController.isKeyguardOrAodShowing(DEFAULT_DISPLAY)
+ && !hasUserRestriction(UserManager.DISALLOW_SYSTEM_ERROR_DIALOGS,
+ mAmInternal.getCurrentUserId())
+ && !(UserManager.isDeviceInDemoMode(mContext)
+ && mAmInternal.getCurrentUser().isDemo());
+ }
+ }
}
}
diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java
index dee59cc4403d..44f69b1693e9 100644
--- a/services/core/java/com/android/server/am/AppErrors.java
+++ b/services/core/java/com/android/server/am/AppErrors.java
@@ -474,7 +474,7 @@ class AppErrors {
mService.mProcessList.removeProcessLocked(r, false, true, "crash");
if (taskId != INVALID_TASK_ID) {
try {
- mService.mActivityTaskManager.startActivityFromRecents(taskId,
+ mService.startActivityFromRecents(taskId,
ActivityOptions.makeBasic().toBundle());
} catch (IllegalArgumentException e) {
// Hmm...that didn't work. Task should either be in recents or associated
@@ -794,7 +794,7 @@ class AppErrors {
mService.mUserController.getCurrentUserId()) != 0;
final boolean crashSilenced = mAppsNotReportingCrashes != null &&
mAppsNotReportingCrashes.contains(proc.info.packageName);
- if ((mService.mActivityTaskManager.canShowErrorDialogs() || showBackground)
+ if ((mService.mAtmInternal.canShowErrorDialogs() || showBackground)
&& !crashSilenced
&& (showFirstCrash || showFirstCrashDevOption || data.repeating)) {
proc.crashDialog = dialogToShow = new AppErrorDialog(mContext, mService, data);
@@ -847,7 +847,7 @@ class AppErrors {
boolean showBackground = Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0;
- if (mService.mActivityTaskManager.canShowErrorDialogs() || showBackground) {
+ if (mService.mAtmInternal.canShowErrorDialogs() || showBackground) {
dialogToShow = new AppNotRespondingDialog(mService, mContext, data);
proc.anrDialog = dialogToShow;
} else {
diff --git a/services/core/java/com/android/server/am/MemoryStatUtil.java b/services/core/java/com/android/server/am/MemoryStatUtil.java
index 85ee7e65ffe7..2c4b33864ea3 100644
--- a/services/core/java/com/android/server/am/MemoryStatUtil.java
+++ b/services/core/java/com/android/server/am/MemoryStatUtil.java
@@ -36,7 +36,7 @@ import java.util.regex.Pattern;
/**
* Static utility methods related to {@link MemoryStat}.
*/
-final class MemoryStatUtil {
+public final class MemoryStatUtil {
/**
* Which native processes to create {@link MemoryStat} for.
*
@@ -114,7 +114,7 @@ final class MemoryStatUtil {
* Returns null if no stats can be read.
*/
@Nullable
- static MemoryStat readMemoryStatFromFilesystem(int uid, int pid) {
+ public static MemoryStat readMemoryStatFromFilesystem(int uid, int pid) {
return hasMemcg() ? readMemoryStatFromMemcg(uid, pid) : readMemoryStatFromProcfs(pid);
}
@@ -266,7 +266,7 @@ final class MemoryStatUtil {
return DEVICE_HAS_PER_APP_MEMCG;
}
- static final class MemoryStat {
+ public static final class MemoryStat {
/** Number of page faults */
long pgfault;
/** Number of major page faults */
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 805b979b4bb7..652d39b19a1d 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -1982,8 +1982,7 @@ public final class ProcessList {
StatsLog.write(StatsLog.ISOLATED_UID_CHANGED, info.uid, uid,
StatsLog.ISOLATED_UID_CHANGED__EVENT__CREATED);
}
- final ProcessRecord r = new ProcessRecord(mService, info, proc, uid,
- mService.getGlobalConfiguration());
+ final ProcessRecord r = new ProcessRecord(mService, info, proc, uid);
if (!mService.mBooted && !mService.mBooting
&& userId == UserHandle.USER_SYSTEM
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index 21259f4c98c2..683754cd9a35 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -535,7 +535,7 @@ final class ProcessRecord implements WindowProcessListener {
}
ProcessRecord(ActivityManagerService _service, ApplicationInfo _info, String _processName,
- int _uid, Configuration config) {
+ int _uid) {
mService = _service;
info = _info;
isolated = _info.uid != _uid;
@@ -549,7 +549,7 @@ final class ProcessRecord implements WindowProcessListener {
removed = false;
lastStateTime = lastPssTime = nextPssTime = SystemClock.uptimeMillis();
mWindowProcessController = new WindowProcessController(
- mService.mActivityTaskManager, info, processName, uid, userId, this, this, config);
+ mService.mActivityTaskManager, info, processName, uid, userId, this, this);
pkgList.put(_info.packageName, new ProcessStats.ProcessStateHolder(_info.longVersionCode));
}
@@ -1259,7 +1259,7 @@ final class ProcessRecord implements WindowProcessListener {
synchronized (mService) {
// PowerManager.reboot() can block for a long time, so ignore ANRs while shutting down.
- if (mService.mActivityTaskManager.mShuttingDown) {
+ if (mService.mAtmInternal.isShuttingDown()) {
Slog.i(TAG, "During shutdown skipping ANR: " + this + " " + annotation);
return;
} else if (isNotResponding()) {
diff --git a/services/core/java/com/android/server/am/WindowProcessController.java b/services/core/java/com/android/server/am/WindowProcessController.java
index 32d19aaa58c8..1dd8c52f8207 100644
--- a/services/core/java/com/android/server/am/WindowProcessController.java
+++ b/services/core/java/com/android/server/am/WindowProcessController.java
@@ -157,8 +157,7 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
private int mDisplayId;
WindowProcessController(ActivityTaskManagerService atm, ApplicationInfo info, String name,
- int uid, int userId, Object owner, WindowProcessListener listener,
- Configuration config) {
+ int uid, int userId, Object owner, WindowProcessListener listener) {
mInfo = info;
mName = name;
mUid = uid;
@@ -168,8 +167,8 @@ public class WindowProcessController extends ConfigurationContainer<Configuratio
mAtm = atm;
mLastReportedConfiguration = new Configuration();
mDisplayId = INVALID_DISPLAY;
- if (config != null) {
- onConfigurationChanged(config);
+ if (atm != null) {
+ onConfigurationChanged(atm.getGlobalConfiguration());
}
}
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
index d652d95bd304..b011da60b210 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java
@@ -469,4 +469,5 @@ public abstract class ActivityTaskManagerInternal {
public abstract void clearLockedTasks(String reason);
public abstract void updateUserConfiguration();
+ public abstract boolean canShowErrorDialogs();
}
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java
index 349c0a37a4c1..060c55d41bea 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java
@@ -260,7 +260,7 @@ public class ActivityManagerServiceTest {
uidRec.hasInternetPermission = true;
mAms.mActiveUids.put(uid, uidRec);
- final ProcessRecord appRec = new ProcessRecord(mAms, new ApplicationInfo(), TAG, uid, null);
+ final ProcessRecord appRec = new ProcessRecord(mAms, new ApplicationInfo(), TAG, uid);
appRec.thread = Mockito.mock(IApplicationThread.class);
mAms.mProcessList.mLruProcesses.add(appRec);
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java
index 9192d6b84fee..e1ebbcf8f653 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityStartControllerTests.java
@@ -83,7 +83,7 @@ public class ActivityStartControllerTests extends ActivityTestsBase {
final WindowProcessController wpc = new WindowProcessController(mService,
mService.mContext.getApplicationInfo(), "name", 12345,
UserHandle.getUserId(12345), mock(Object.class),
- mock(WindowProcessListener.class), null);
+ mock(WindowProcessListener.class));
wpc.setThread(mock(IApplicationThread.class));
mController.addPendingActivityLaunch(
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java b/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java
index ba64b51c9e84..fb11a04ece50 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java
@@ -211,7 +211,7 @@ public class ActivityStarterTests extends ActivityTestsBase {
final WindowProcessController wpc =
containsConditions(preconditions, PRECONDITION_NO_CALLER_APP)
? null : new WindowProcessController(
- service, mock(ApplicationInfo.class),null, 0, -1, null, null, null);
+ service, mock(ApplicationInfo.class),null, 0, -1, null, null);
doReturn(wpc).when(service).getProcessController(anyObject());
final Intent intent = new Intent();
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
index 01d51e44146c..094241e98a8d 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityTestsBase.java
@@ -286,7 +286,7 @@ public class ActivityTestsBase {
final WindowProcessController wpc = new WindowProcessController(mService,
mService.mContext.getApplicationInfo(), "name", 12345,
UserHandle.getUserId(12345), mock(Object.class),
- mock(WindowProcessListener.class), null);
+ mock(WindowProcessListener.class));
wpc.setThread(mock(IApplicationThread.class));
activity.setProcess(wpc);
return activity;
@@ -536,11 +536,6 @@ public class ActivityTestsBase {
mUgmInternal = mock(UriGrantsManagerInternal.class);
}
- @Override
- Configuration getGlobalConfiguration() {
- return mContext.getResources().getConfiguration();
- }
-
ActivityManagerInternal getLocalService() {
if (mInternal == null) {
mInternal = new LocalService();
diff --git a/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java b/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java
index 06d41f1919c8..3a7a24d2e103 100644
--- a/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/AppErrorDialogTest.java
@@ -69,7 +69,7 @@ public class AppErrorDialogTest {
@UiThreadTest
public void testCreateWorks() throws Exception {
AppErrorDialog.Data data = new AppErrorDialog.Data();
- data.proc = new ProcessRecord(null, mContext.getApplicationInfo(), "name", 12345, null);
+ data.proc = new ProcessRecord(null, mContext.getApplicationInfo(), "name", 12345);
data.result = new AppErrorResult();
AppErrorDialog dialog = new AppErrorDialog(mContext, mService, data);