Update language to comply with Android's inclusive language guidance

See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: I1eaa45b576913e57ad9728e3a6fc892c4cf9fdc7
This commit is contained in:
Edgar Wang
2020-08-03 15:48:11 +08:00
parent 867e9db69d
commit 41711581d6
5 changed files with 164 additions and 160 deletions

View File

@@ -92,27 +92,27 @@ public class RunningState {
// entry. // entry.
final SparseArray<HashMap<String, ProcessItem>> mServiceProcessesByName final SparseArray<HashMap<String, ProcessItem>> mServiceProcessesByName
= new SparseArray<HashMap<String, ProcessItem>>(); = new SparseArray<HashMap<String, ProcessItem>>();
// Processes that are hosting a service we are interested in, organized // Processes that are hosting a service we are interested in, organized
// by their pid. These disappear and re-appear as services are restarted. // by their pid. These disappear and re-appear as services are restarted.
final SparseArray<ProcessItem> mServiceProcessesByPid final SparseArray<ProcessItem> mServiceProcessesByPid
= new SparseArray<ProcessItem>(); = new SparseArray<ProcessItem>();
// Used to sort the interesting processes. // Used to sort the interesting processes.
final ServiceProcessComparator mServiceProcessComparator final ServiceProcessComparator mServiceProcessComparator
= new ServiceProcessComparator(); = new ServiceProcessComparator();
// Additional interesting processes to be shown to the user, even if // Additional interesting processes to be shown to the user, even if
// there is no service running in them. // there is no service running in them.
final ArrayList<ProcessItem> mInterestingProcesses = new ArrayList<ProcessItem>(); final ArrayList<ProcessItem> mInterestingProcesses = new ArrayList<ProcessItem>();
// All currently running processes, for finding dependencies etc. // All currently running processes, for finding dependencies etc.
final SparseArray<ProcessItem> mRunningProcesses final SparseArray<ProcessItem> mRunningProcesses
= new SparseArray<ProcessItem>(); = new SparseArray<ProcessItem>();
// The processes associated with services, in sorted order. // The processes associated with services, in sorted order.
final ArrayList<ProcessItem> mProcessItems = new ArrayList<ProcessItem>(); final ArrayList<ProcessItem> mProcessItems = new ArrayList<ProcessItem>();
// All processes, used for retrieving memory information. // All processes, used for retrieving memory information.
final ArrayList<ProcessItem> mAllProcessItems = new ArrayList<ProcessItem>(); final ArrayList<ProcessItem> mAllProcessItems = new ArrayList<ProcessItem>();
@@ -139,69 +139,74 @@ public class RunningState {
int mSequence = 0; int mSequence = 0;
final Comparator<RunningState.MergedItem> mBackgroundComparator final Comparator<RunningState.MergedItem> mBackgroundComparator =
= new Comparator<RunningState.MergedItem>() { new Comparator<RunningState.MergedItem>() {
@Override @Override
public int compare(MergedItem lhs, MergedItem rhs) { public int compare(MergedItem lhs, MergedItem rhs) {
if (DEBUG_COMPARE) { if (DEBUG_COMPARE) {
Log.i(TAG, "Comparing " + lhs + " with " + rhs); Log.i(TAG, "Comparing " + lhs + " with " + rhs);
Log.i(TAG, " Proc " + lhs.mProcess + " with " + rhs.mProcess); Log.i(TAG, " Proc " + lhs.mProcess + " with " + rhs.mProcess);
Log.i(TAG, " UserId " + lhs.mUserId + " with " + rhs.mUserId); Log.i(TAG, " UserId " + lhs.mUserId + " with " + rhs.mUserId);
} }
if (lhs.mUserId != rhs.mUserId) { if (lhs.mUserId != rhs.mUserId) {
if (lhs.mUserId == mMyUserId) return -1; if (lhs.mUserId == mMyUserId) return -1;
if (rhs.mUserId == mMyUserId) return 1; if (rhs.mUserId == mMyUserId) return 1;
return lhs.mUserId < rhs.mUserId ? -1 : 1; return lhs.mUserId < rhs.mUserId ? -1 : 1;
} }
if (lhs.mProcess == rhs.mProcess) { if (lhs.mProcess == rhs.mProcess) {
if (lhs.mLabel == rhs.mLabel) { if (lhs.mLabel == rhs.mLabel) {
return 0;
}
return lhs.mLabel != null ? lhs.mLabel.compareTo(rhs.mLabel) : -1;
}
if (lhs.mProcess == null) return -1;
if (rhs.mProcess == null) return 1;
if (DEBUG_COMPARE) {
Log.i(TAG, " Label " + lhs.mProcess.mLabel
+ " with " + rhs.mProcess.mLabel);
}
final ActivityManager.RunningAppProcessInfo lhsInfo =
lhs.mProcess.mRunningProcessInfo;
final ActivityManager.RunningAppProcessInfo rhsInfo =
rhs.mProcess.mRunningProcessInfo;
final boolean lhsBg = lhsInfo.importance
>= ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND;
final boolean rhsBg = rhsInfo.importance
>= ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND;
if (DEBUG_COMPARE) Log.i(TAG, " Bg " + lhsBg + " with " + rhsBg);
if (lhsBg != rhsBg) {
return lhsBg ? 1 : -1;
}
final boolean lhsA = (lhsInfo.flags
& ActivityManager.RunningAppProcessInfo.FLAG_HAS_ACTIVITIES) != 0;
final boolean rhsA = (rhsInfo.flags
& ActivityManager.RunningAppProcessInfo.FLAG_HAS_ACTIVITIES) != 0;
if (DEBUG_COMPARE) Log.i(TAG, " Act " + lhsA + " with " + rhsA);
if (lhsA != rhsA) {
return lhsA ? -1 : 1;
}
if (DEBUG_COMPARE) {
Log.i(TAG,
" Lru " + lhsInfo.lru + " with " + rhsInfo.lru);
}
if (lhsInfo.lru != rhsInfo.lru) {
return lhsInfo.lru < rhsInfo.lru ? -1 : 1;
}
if (lhs.mProcess.mLabel == rhs.mProcess.mLabel) {
return 0; return 0;
} }
return lhs.mLabel != null ? lhs.mLabel.compareTo(rhs.mLabel) : -1; if (lhs.mProcess.mLabel == null) return 1;
if (rhs.mProcess.mLabel == null) return -1;
return lhs.mProcess.mLabel.compareTo(rhs.mProcess.mLabel);
} }
if (lhs.mProcess == null) return -1; };
if (rhs.mProcess == null) return 1;
if (DEBUG_COMPARE) Log.i(TAG, " Label " + lhs.mProcess.mLabel
+ " with " + rhs.mProcess.mLabel);
final ActivityManager.RunningAppProcessInfo lhsInfo
= lhs.mProcess.mRunningProcessInfo;
final ActivityManager.RunningAppProcessInfo rhsInfo
= rhs.mProcess.mRunningProcessInfo;
final boolean lhsBg = lhsInfo.importance
>= ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND;
final boolean rhsBg = rhsInfo.importance
>= ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND;
if (DEBUG_COMPARE) Log.i(TAG, " Bg " + lhsBg + " with " + rhsBg);
if (lhsBg != rhsBg) {
return lhsBg ? 1 : -1;
}
final boolean lhsA = (lhsInfo.flags
& ActivityManager.RunningAppProcessInfo.FLAG_HAS_ACTIVITIES) != 0;
final boolean rhsA = (rhsInfo.flags
& ActivityManager.RunningAppProcessInfo.FLAG_HAS_ACTIVITIES) != 0;
if (DEBUG_COMPARE) Log.i(TAG, " Act " + lhsA + " with " + rhsA);
if (lhsA != rhsA) {
return lhsA ? -1 : 1;
}
if (DEBUG_COMPARE) Log.i(TAG, " Lru " + lhsInfo.lru + " with " + rhsInfo.lru);
if (lhsInfo.lru != rhsInfo.lru) {
return lhsInfo.lru < rhsInfo.lru ? -1 : 1;
}
if (lhs.mProcess.mLabel == rhs.mProcess.mLabel) {
return 0;
}
if (lhs.mProcess.mLabel == null) return 1;
if (rhs.mProcess.mLabel == null) return -1;
return lhs.mProcess.mLabel.compareTo(rhs.mProcess.mLabel);
}
};
// ----- following protected by mLock ----- // ----- following protected by mLock -----
// Lock for protecting the state that will be shared between the // Lock for protecting the state that will be shared between the
// background update thread and the UI thread. // background update thread and the UI thread.
final Object mLock = new Object(); final Object mLock = new Object();
boolean mResumed; boolean mResumed;
boolean mHaveData; boolean mHaveData;
boolean mWatchingBackgroundItems; boolean mWatchingBackgroundItems;
@@ -210,7 +215,7 @@ public class RunningState {
ArrayList<MergedItem> mMergedItems = new ArrayList<MergedItem>(); ArrayList<MergedItem> mMergedItems = new ArrayList<MergedItem>();
ArrayList<MergedItem> mBackgroundItems = new ArrayList<MergedItem>(); ArrayList<MergedItem> mBackgroundItems = new ArrayList<MergedItem>();
ArrayList<MergedItem> mUserBackgroundItems = new ArrayList<MergedItem>(); ArrayList<MergedItem> mUserBackgroundItems = new ArrayList<MergedItem>();
int mNumBackgroundProcesses; int mNumBackgroundProcesses;
long mBackgroundProcessMemory; long mBackgroundProcessMemory;
int mNumForegroundProcesses; int mNumForegroundProcesses;
@@ -221,6 +226,7 @@ public class RunningState {
// ----- BACKGROUND MONITORING THREAD ----- // ----- BACKGROUND MONITORING THREAD -----
final HandlerThread mBackgroundThread; final HandlerThread mBackgroundThread;
final class BackgroundHandler extends Handler { final class BackgroundHandler extends Handler {
public BackgroundHandler(Looper looper) { public BackgroundHandler(Looper looper) {
super(looper); super(looper);
@@ -372,9 +378,9 @@ public class RunningState {
ActivityManager.RunningServiceInfo mRunningService; ActivityManager.RunningServiceInfo mRunningService;
ServiceInfo mServiceInfo; ServiceInfo mServiceInfo;
boolean mShownAsStarted; boolean mShownAsStarted;
MergedItem mMergedItem; MergedItem mMergedItem;
public ServiceItem(int userId) { public ServiceItem(int userId) {
super(false, userId); super(false, userId);
} }
@@ -385,17 +391,17 @@ public class RunningState {
= new HashMap<ComponentName, ServiceItem>(); = new HashMap<ComponentName, ServiceItem>();
final SparseArray<ProcessItem> mDependentProcesses final SparseArray<ProcessItem> mDependentProcesses
= new SparseArray<ProcessItem>(); = new SparseArray<ProcessItem>();
final int mUid; final int mUid;
final String mProcessName; final String mProcessName;
int mPid; int mPid;
ProcessItem mClient; ProcessItem mClient;
int mLastNumDependentProcesses; int mLastNumDependentProcesses;
int mRunningSeq; int mRunningSeq;
ActivityManager.RunningAppProcessInfo mRunningProcessInfo; ActivityManager.RunningAppProcessInfo mRunningProcessInfo;
MergedItem mMergedItem; MergedItem mMergedItem;
boolean mInteresting; boolean mInteresting;
@@ -404,7 +410,7 @@ public class RunningState {
boolean mIsSystem; boolean mIsSystem;
boolean mIsStarted; boolean mIsStarted;
long mActiveSince; long mActiveSince;
public ProcessItem(Context context, int uid, String processName) { public ProcessItem(Context context, int uid, String processName) {
super(true, UserHandle.getUserId(uid)); super(true, UserHandle.getUserId(uid));
mDescription = context.getResources().getString( mDescription = context.getResources().getString(
@@ -412,12 +418,12 @@ public class RunningState {
mUid = uid; mUid = uid;
mProcessName = processName; mProcessName = processName;
} }
void ensureLabel(PackageManager pm) { void ensureLabel(PackageManager pm) {
if (mLabel != null) { if (mLabel != null) {
return; return;
} }
try { try {
ApplicationInfo ai = pm.getApplicationInfo(mProcessName, ApplicationInfo ai = pm.getApplicationInfo(mProcessName,
PackageManager.MATCH_ANY_USER); PackageManager.MATCH_ANY_USER);
@@ -429,11 +435,11 @@ public class RunningState {
} }
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
} }
// If we couldn't get information about the overall // If we couldn't get information about the overall
// process, try to find something about the uid. // process, try to find something about the uid.
String[] pkgs = pm.getPackagesForUid(mUid); String[] pkgs = pm.getPackagesForUid(mUid);
// If there is one package with this uid, that is what we want. // If there is one package with this uid, that is what we want.
if (pkgs.length == 1) { if (pkgs.length == 1) {
try { try {
@@ -446,7 +452,7 @@ public class RunningState {
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
} }
} }
// If there are multiple, see if one gives us the official name // If there are multiple, see if one gives us the official name
// for this uid. // for this uid.
for (String name : pkgs) { for (String name : pkgs) {
@@ -465,7 +471,7 @@ public class RunningState {
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
} }
} }
// If still don't have anything to display, just use the // If still don't have anything to display, just use the
// service info. // service info.
if (mServices.size() > 0) { if (mServices.size() > 0) {
@@ -476,7 +482,7 @@ public class RunningState {
mLabel = mDisplayLabel.toString(); mLabel = mDisplayLabel.toString();
return; return;
} }
// Finally... whatever, just pick the first package's name. // Finally... whatever, just pick the first package's name.
try { try {
ApplicationInfo ai = pm.getApplicationInfo(pkgs[0], ApplicationInfo ai = pm.getApplicationInfo(pkgs[0],
@@ -544,16 +550,16 @@ public class RunningState {
si.mDescription = context.getResources().getString( si.mDescription = context.getResources().getString(
R.string.service_started_by_app); R.string.service_started_by_app);
} }
return changed; return changed;
} }
boolean updateSize(Context context, long pss, int curSeq) { boolean updateSize(Context context, long pss, int curSeq) {
mSize = pss * 1024; mSize = pss * 1024;
if (mCurSeq == curSeq) { if (mCurSeq == curSeq) {
String sizeStr = Formatter.formatShortFileSize( String sizeStr = Formatter.formatShortFileSize(
context, mSize); context, mSize);
if (!sizeStr.equals(mSizeStr)){ if (!sizeStr.equals(mSizeStr)) {
mSizeStr = sizeStr; mSizeStr = sizeStr;
// We update this on the second tick where we update just // We update this on the second tick where we update just
// the text in the current items, so no need to say we // the text in the current items, so no need to say we
@@ -563,11 +569,11 @@ public class RunningState {
} }
return false; return false;
} }
boolean buildDependencyChain(Context context, PackageManager pm, int curSeq) { boolean buildDependencyChain(Context context, PackageManager pm, int curSeq) {
final int NP = mDependentProcesses.size(); final int NP = mDependentProcesses.size();
boolean changed = false; boolean changed = false;
for (int i=0; i<NP; i++) { for (int i = 0; i < NP; i++) {
ProcessItem proc = mDependentProcesses.valueAt(i); ProcessItem proc = mDependentProcesses.valueAt(i);
if (proc.mClient != this) { if (proc.mClient != this) {
changed = true; changed = true;
@@ -577,19 +583,19 @@ public class RunningState {
proc.ensureLabel(pm); proc.ensureLabel(pm);
changed |= proc.buildDependencyChain(context, pm, curSeq); changed |= proc.buildDependencyChain(context, pm, curSeq);
} }
if (mLastNumDependentProcesses != mDependentProcesses.size()) { if (mLastNumDependentProcesses != mDependentProcesses.size()) {
changed = true; changed = true;
mLastNumDependentProcesses = mDependentProcesses.size(); mLastNumDependentProcesses = mDependentProcesses.size();
} }
return changed; return changed;
} }
void addDependentProcesses(ArrayList<BaseItem> dest, void addDependentProcesses(ArrayList<BaseItem> dest,
ArrayList<ProcessItem> destProc) { ArrayList<ProcessItem> destProc) {
final int NP = mDependentProcesses.size(); final int NP = mDependentProcesses.size();
for (int i=0; i<NP; i++) { for (int i = 0; i < NP; i++) {
ProcessItem proc = mDependentProcesses.valueAt(i); ProcessItem proc = mDependentProcesses.valueAt(i);
proc.addDependentProcesses(dest, destProc); proc.addDependentProcesses(dest, destProc);
dest.add(proc); dest.add(proc);
@@ -606,7 +612,7 @@ public class RunningState {
final ArrayList<ProcessItem> mOtherProcesses = new ArrayList<ProcessItem>(); final ArrayList<ProcessItem> mOtherProcesses = new ArrayList<ProcessItem>();
final ArrayList<ServiceItem> mServices = new ArrayList<ServiceItem>(); final ArrayList<ServiceItem> mServices = new ArrayList<ServiceItem>();
final ArrayList<MergedItem> mChildren = new ArrayList<MergedItem>(); final ArrayList<MergedItem> mChildren = new ArrayList<MergedItem>();
private int mLastNumProcesses = -1, mLastNumServices = -1; private int mLastNumProcesses = -1, mLastNumServices = -1;
MergedItem(int userId) { MergedItem(int userId) {
@@ -646,7 +652,7 @@ public class RunningState {
int numProcesses = 0; int numProcesses = 0;
int numServices = 0; int numServices = 0;
mActiveSince = -1; mActiveSince = -1;
for (int i=0; i<mChildren.size(); i++) { for (int i = 0; i < mChildren.size(); i++) {
MergedItem child = mChildren.get(i); MergedItem child = mChildren.get(i);
numProcesses += child.mLastNumProcesses; numProcesses += child.mLastNumProcesses;
numServices += child.mLastNumServices; numServices += child.mLastNumServices;
@@ -661,14 +667,14 @@ public class RunningState {
mPackageInfo = mProcess.mPackageInfo; mPackageInfo = mProcess.mPackageInfo;
mDisplayLabel = mProcess.mDisplayLabel; mDisplayLabel = mProcess.mDisplayLabel;
mLabel = mProcess.mLabel; mLabel = mProcess.mLabel;
if (!mBackground) { if (!mBackground) {
setDescription(context, (mProcess.mPid > 0 ? 1 : 0) + mOtherProcesses.size(), setDescription(context, (mProcess.mPid > 0 ? 1 : 0) + mOtherProcesses.size(),
mServices.size()); mServices.size());
} }
mActiveSince = -1; mActiveSince = -1;
for (int i=0; i<mServices.size(); i++) { for (int i = 0; i < mServices.size(); i++) {
ServiceItem si = mServices.get(i); ServiceItem si = mServices.get(i);
if (si.mActiveSince >= 0 && mActiveSince < si.mActiveSince) { if (si.mActiveSince >= 0 && mActiveSince < si.mActiveSince) {
mActiveSince = si.mActiveSince; mActiveSince = si.mActiveSince;
@@ -678,25 +684,25 @@ public class RunningState {
return false; return false;
} }
boolean updateSize(Context context) { boolean updateSize(Context context) {
if (mUser != null) { if (mUser != null) {
mSize = 0; mSize = 0;
for (int i=0; i<mChildren.size(); i++) { for (int i = 0; i < mChildren.size(); i++) {
MergedItem child = mChildren.get(i); MergedItem child = mChildren.get(i);
child.updateSize(context); child.updateSize(context);
mSize += child.mSize; mSize += child.mSize;
} }
} else { } else {
mSize = mProcess.mSize; mSize = mProcess.mSize;
for (int i=0; i<mOtherProcesses.size(); i++) { for (int i = 0; i < mOtherProcesses.size(); i++) {
mSize += mOtherProcesses.get(i).mSize; mSize += mOtherProcesses.get(i).mSize;
} }
} }
String sizeStr = Formatter.formatShortFileSize( String sizeStr = Formatter.formatShortFileSize(
context, mSize); context, mSize);
if (!sizeStr.equals(mSizeStr)){ if (!sizeStr.equals(mSizeStr)) {
mSizeStr = sizeStr; mSizeStr = sizeStr;
// We update this on the second tick where we update just // We update this on the second tick where we update just
// the text in the current items, so no need to say we // the text in the current items, so no need to say we
@@ -746,7 +752,7 @@ public class RunningState {
return 0; return 0;
} }
} }
static CharSequence makeLabel(PackageManager pm, static CharSequence makeLabel(PackageManager pm,
String className, PackageItemInfo item) { String className, PackageItemInfo item) {
if (item != null && (item.labelRes != 0 if (item != null && (item.labelRes != 0
@@ -756,15 +762,15 @@ public class RunningState {
return label; return label;
} }
} }
String label = className; String label = className;
int tail = label.lastIndexOf('.'); int tail = label.lastIndexOf('.');
if (tail >= 0) { if (tail >= 0) {
label = label.substring(tail+1, label.length()); label = label.substring(tail + 1, label.length());
} }
return label; return label;
} }
static RunningState getInstance(Context context) { static RunningState getInstance(Context context) {
synchronized (sGlobalLock) { synchronized (sGlobalLock) {
if (sInstance == null) { if (sInstance == null) {
@@ -776,9 +782,9 @@ public class RunningState {
private RunningState(Context context) { private RunningState(Context context) {
mApplicationContext = context.getApplicationContext(); mApplicationContext = context.getApplicationContext();
mAm = (ActivityManager)mApplicationContext.getSystemService(Context.ACTIVITY_SERVICE); mAm = mApplicationContext.getSystemService(ActivityManager.class);
mPm = mApplicationContext.getPackageManager(); mPm = mApplicationContext.getPackageManager();
mUm = (UserManager)mApplicationContext.getSystemService(Context.USER_SERVICE); mUm = mApplicationContext.getSystemService(UserManager.class);
mMyUserId = UserHandle.myUserId(); mMyUserId = UserHandle.myUserId();
UserInfo userInfo = mUm.getUserInfo(mMyUserId); UserInfo userInfo = mUm.getUserInfo(mMyUserId);
mHideManagedProfiles = userInfo == null || !userInfo.canHaveProfile(); mHideManagedProfiles = userInfo == null || !userInfo.canHaveProfile();
@@ -842,14 +848,14 @@ public class RunningState {
} }
private boolean isInterestingProcess(ActivityManager.RunningAppProcessInfo pi) { private boolean isInterestingProcess(ActivityManager.RunningAppProcessInfo pi) {
if ((pi.flags&ActivityManager.RunningAppProcessInfo.FLAG_CANT_SAVE_STATE) != 0) { if ((pi.flags & ActivityManager.RunningAppProcessInfo.FLAG_CANT_SAVE_STATE) != 0) {
return true; return true;
} }
if ((pi.flags&ActivityManager.RunningAppProcessInfo.FLAG_PERSISTENT) == 0 if ((pi.flags & ActivityManager.RunningAppProcessInfo.FLAG_PERSISTENT) == 0
&& pi.importance >= ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && pi.importance >= ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND
&& pi.importance < ActivityManager.RunningAppProcessInfo.IMPORTANCE_CANT_SAVE_STATE && pi.importance < ActivityManager.RunningAppProcessInfo.IMPORTANCE_CANT_SAVE_STATE
&& pi.importanceReasonCode && pi.importanceReasonCode
== ActivityManager.RunningAppProcessInfo.REASON_UNKNOWN) { == ActivityManager.RunningAppProcessInfo.REASON_UNKNOWN) {
return true; return true;
} }
return false; return false;
@@ -897,15 +903,15 @@ public class RunningState {
final PackageManager pm = context.getPackageManager(); final PackageManager pm = context.getPackageManager();
mSequence++; mSequence++;
boolean changed = false; boolean changed = false;
// Retrieve list of services, filtering out anything that definitely // Retrieve list of services, filtering out anything that definitely
// won't be shown in the UI. // won't be shown in the UI.
List<ActivityManager.RunningServiceInfo> services List<ActivityManager.RunningServiceInfo> services
= am.getRunningServices(MAX_SERVICES); = am.getRunningServices(MAX_SERVICES);
int NS = services != null ? services.size() : 0; int NS = services != null ? services.size() : 0;
for (int i=0; i<NS; i++) { for (int i = 0; i < NS; i++) {
ActivityManager.RunningServiceInfo si = services.get(i); ActivityManager.RunningServiceInfo si = services.get(i);
// We are not interested in services that have not been started // We are not interested in services that have not been started
// and don't have a known client, because // and don't have a known client, because
@@ -918,7 +924,7 @@ public class RunningState {
} }
// We likewise don't care about services running in a // We likewise don't care about services running in a
// persistent process like the system or phone. // persistent process like the system or phone.
if ((si.flags&ActivityManager.RunningServiceInfo.FLAG_PERSISTENT_PROCESS) if ((si.flags & ActivityManager.RunningServiceInfo.FLAG_PERSISTENT_PROCESS)
!= 0) { != 0) {
services.remove(i); services.remove(i);
i--; i--;
@@ -933,14 +939,14 @@ public class RunningState {
= am.getRunningAppProcesses(); = am.getRunningAppProcesses();
final int NP = processes != null ? processes.size() : 0; final int NP = processes != null ? processes.size() : 0;
mTmpAppProcesses.clear(); mTmpAppProcesses.clear();
for (int i=0; i<NP; i++) { for (int i = 0; i < NP; i++) {
ActivityManager.RunningAppProcessInfo pi = processes.get(i); ActivityManager.RunningAppProcessInfo pi = processes.get(i);
mTmpAppProcesses.put(pi.pid, new AppProcessInfo(pi)); mTmpAppProcesses.put(pi.pid, new AppProcessInfo(pi));
} }
// Initial iteration through running services to collect per-process // Initial iteration through running services to collect per-process
// info about them. // info about them.
for (int i=0; i<NS; i++) { for (int i = 0; i < NS; i++) {
ActivityManager.RunningServiceInfo si = services.get(i); ActivityManager.RunningServiceInfo si = services.get(i);
if (si.restarting == 0 && si.pid > 0) { if (si.restarting == 0 && si.pid > 0) {
AppProcessInfo ainfo = mTmpAppProcesses.get(si.pid); AppProcessInfo ainfo = mTmpAppProcesses.get(si.pid);
@@ -954,7 +960,7 @@ public class RunningState {
} }
// Update state we are maintaining about process that are running services. // Update state we are maintaining about process that are running services.
for (int i=0; i<NS; i++) { for (int i = 0; i < NS; i++) {
ActivityManager.RunningServiceInfo si = services.get(i); ActivityManager.RunningServiceInfo si = services.get(i);
// If this service's process is in use at a higher importance // If this service's process is in use at a higher importance
@@ -1001,7 +1007,7 @@ public class RunningState {
proc = new ProcessItem(context, si.uid, si.process); proc = new ProcessItem(context, si.uid, si.process);
procs.put(si.process, proc); procs.put(si.process, proc);
} }
if (proc.mCurSeq != mSequence) { if (proc.mCurSeq != mSequence) {
int pid = si.restarting == 0 ? si.pid : 0; int pid = si.restarting == 0 ? si.pid : 0;
if (pid != proc.mPid) { if (pid != proc.mPid) {
@@ -1021,10 +1027,10 @@ public class RunningState {
} }
changed |= proc.updateService(context, si); changed |= proc.updateService(context, si);
} }
// Now update the map of other processes that are running (but // Now update the map of other processes that are running (but
// don't have services actively running inside them). // don't have services actively running inside them).
for (int i=0; i<NP; i++) { for (int i = 0; i < NP; i++) {
ActivityManager.RunningAppProcessInfo pi = processes.get(i); ActivityManager.RunningAppProcessInfo pi = processes.get(i);
ProcessItem proc = mServiceProcessesByPid.get(pi.pid); ProcessItem proc = mServiceProcessesByPid.get(pi.pid);
if (proc == null) { if (proc == null) {
@@ -1040,7 +1046,7 @@ public class RunningState {
} }
proc.mDependentProcesses.clear(); proc.mDependentProcesses.clear();
} }
if (isInterestingProcess(pi)) { if (isInterestingProcess(pi)) {
if (!mInterestingProcesses.contains(proc)) { if (!mInterestingProcesses.contains(proc)) {
changed = true; changed = true;
@@ -1052,7 +1058,7 @@ public class RunningState {
} else { } else {
proc.mInteresting = false; proc.mInteresting = false;
} }
proc.mRunningSeq = mSequence; proc.mRunningSeq = mSequence;
proc.mRunningProcessInfo = pi; proc.mRunningProcessInfo = pi;
} }
@@ -1060,7 +1066,7 @@ public class RunningState {
// Build the chains from client processes to the process they are // Build the chains from client processes to the process they are
// dependent on; also remove any old running processes. // dependent on; also remove any old running processes.
int NRP = mRunningProcesses.size(); int NRP = mRunningProcesses.size();
for (int i = 0; i < NRP;) { for (int i = 0; i < NRP; ) {
ProcessItem proc = mRunningProcesses.valueAt(i); ProcessItem proc = mRunningProcesses.valueAt(i);
if (proc.mRunningSeq == mSequence) { if (proc.mRunningSeq == mSequence) {
int clientPid = proc.mRunningProcessInfo.importanceReasonPid; int clientPid = proc.mRunningProcessInfo.importanceReasonPid;
@@ -1085,10 +1091,10 @@ public class RunningState {
NRP--; NRP--;
} }
} }
// Remove any old interesting processes. // Remove any old interesting processes.
int NHP = mInterestingProcesses.size(); int NHP = mInterestingProcesses.size();
for (int i=0; i<NHP; i++) { for (int i = 0; i < NHP; i++) {
ProcessItem proc = mInterestingProcesses.get(i); ProcessItem proc = mInterestingProcesses.get(i);
if (!proc.mInteresting || mRunningProcesses.get(proc.mPid) == null) { if (!proc.mInteresting || mRunningProcesses.get(proc.mPid) == null) {
changed = true; changed = true;
@@ -1097,21 +1103,21 @@ public class RunningState {
NHP--; NHP--;
} }
} }
// Follow the tree from all primary service processes to all // Follow the tree from all primary service processes to all
// processes they are dependent on, marking these processes as // processes they are dependent on, marking these processes as
// still being active and determining if anything has changed. // still being active and determining if anything has changed.
final int NAP = mServiceProcessesByPid.size(); final int NAP = mServiceProcessesByPid.size();
for (int i=0; i<NAP; i++) { for (int i = 0; i < NAP; i++) {
ProcessItem proc = mServiceProcessesByPid.valueAt(i); ProcessItem proc = mServiceProcessesByPid.valueAt(i);
if (proc.mCurSeq == mSequence) { if (proc.mCurSeq == mSequence) {
changed |= proc.buildDependencyChain(context, pm, mSequence); changed |= proc.buildDependencyChain(context, pm, mSequence);
} }
} }
// Look for services and their primary processes that no longer exist... // Look for services and their primary processes that no longer exist...
ArrayList<Integer> uidToDelete = null; ArrayList<Integer> uidToDelete = null;
for (int i=0; i<mServiceProcessesByName.size(); i++) { for (int i = 0; i < mServiceProcessesByName.size(); i++) {
HashMap<String, ProcessItem> procs = mServiceProcessesByName.valueAt(i); HashMap<String, ProcessItem> procs = mServiceProcessesByName.valueAt(i);
Iterator<ProcessItem> pit = procs.values().iterator(); Iterator<ProcessItem> pit = procs.values().iterator();
while (pit.hasNext()) { while (pit.hasNext()) {
@@ -1119,8 +1125,7 @@ public class RunningState {
if (pi.mCurSeq == mSequence) { if (pi.mCurSeq == mSequence) {
pi.ensureLabel(pm); pi.ensureLabel(pm);
if (pi.mPid == 0) { if (pi.mPid == 0) {
// Sanity: a non-process can't be dependent on // Validation: a non-process can't be dependent on anything.
// anything.
pi.mDependentProcesses.clear(); pi.mDependentProcesses.clear();
} }
} else { } else {
@@ -1147,7 +1152,7 @@ public class RunningState {
} }
} }
} }
if (uidToDelete != null) { if (uidToDelete != null) {
for (int i = 0; i < uidToDelete.size(); i++) { for (int i = 0; i < uidToDelete.size(); i++) {
int uid = uidToDelete.get(i); int uid = uidToDelete.get(i);
@@ -1158,7 +1163,7 @@ public class RunningState {
if (changed) { if (changed) {
// First determine an order for the services. // First determine an order for the services.
ArrayList<ProcessItem> sortedProcesses = new ArrayList<ProcessItem>(); ArrayList<ProcessItem> sortedProcesses = new ArrayList<ProcessItem>();
for (int i=0; i<mServiceProcessesByName.size(); i++) { for (int i = 0; i < mServiceProcessesByName.size(); i++) {
for (ProcessItem pi : mServiceProcessesByName.valueAt(i).values()) { for (ProcessItem pi : mServiceProcessesByName.valueAt(i).values()) {
pi.mIsSystem = false; pi.mIsSystem = false;
pi.mIsStarted = true; pi.mIsStarted = true;
@@ -1166,7 +1171,7 @@ public class RunningState {
for (ServiceItem si : pi.mServices.values()) { for (ServiceItem si : pi.mServices.values()) {
if (si.mServiceInfo != null if (si.mServiceInfo != null
&& (si.mServiceInfo.applicationInfo.flags && (si.mServiceInfo.applicationInfo.flags
& ApplicationInfo.FLAG_SYSTEM) != 0) { & ApplicationInfo.FLAG_SYSTEM) != 0) {
pi.mIsSystem = true; pi.mIsSystem = true;
} }
if (si.mRunningService != null if (si.mRunningService != null
@@ -1180,16 +1185,16 @@ public class RunningState {
sortedProcesses.add(pi); sortedProcesses.add(pi);
} }
} }
Collections.sort(sortedProcesses, mServiceProcessComparator); Collections.sort(sortedProcesses, mServiceProcessComparator);
ArrayList<BaseItem> newItems = new ArrayList<BaseItem>(); ArrayList<BaseItem> newItems = new ArrayList<BaseItem>();
ArrayList<MergedItem> newMergedItems = new ArrayList<MergedItem>(); ArrayList<MergedItem> newMergedItems = new ArrayList<MergedItem>();
mProcessItems.clear(); mProcessItems.clear();
for (int i=0; i<sortedProcesses.size(); i++) { for (int i = 0; i < sortedProcesses.size(); i++) {
ProcessItem pi = sortedProcesses.get(i); ProcessItem pi = sortedProcesses.get(i);
pi.mNeedDivider = false; pi.mNeedDivider = false;
int firstProc = mProcessItems.size(); int firstProc = mProcessItems.size();
// First add processes we are dependent on. // First add processes we are dependent on.
pi.addDependentProcesses(newItems, mProcessItems); pi.addDependentProcesses(newItems, mProcessItems);
@@ -1198,7 +1203,7 @@ public class RunningState {
if (pi.mPid > 0) { if (pi.mPid > 0) {
mProcessItems.add(pi); mProcessItems.add(pi);
} }
// Now add the services running in it. // Now add the services running in it.
MergedItem mergedItem = null; MergedItem mergedItem = null;
boolean haveAllMerged = false; boolean haveAllMerged = false;
@@ -1216,7 +1221,7 @@ public class RunningState {
haveAllMerged = false; haveAllMerged = false;
} }
} }
if (!haveAllMerged || mergedItem == null if (!haveAllMerged || mergedItem == null
|| mergedItem.mServices.size() != pi.mServices.size()) { || mergedItem.mServices.size() != pi.mServices.size()) {
// Whoops, we need to build a new MergedItem! // Whoops, we need to build a new MergedItem!
@@ -1227,11 +1232,11 @@ public class RunningState {
} }
mergedItem.mProcess = pi; mergedItem.mProcess = pi;
mergedItem.mOtherProcesses.clear(); mergedItem.mOtherProcesses.clear();
for (int mpi=firstProc; mpi<(mProcessItems.size()-1); mpi++) { for (int mpi = firstProc; mpi < (mProcessItems.size() - 1); mpi++) {
mergedItem.mOtherProcesses.add(mProcessItems.get(mpi)); mergedItem.mOtherProcesses.add(mProcessItems.get(mpi));
} }
} }
mergedItem.update(context, false); mergedItem.update(context, false);
if (mergedItem.mUserId != mMyUserId) { if (mergedItem.mUserId != mMyUserId) {
addOtherUserItem(context, newMergedItems, mOtherUserMergedItems, mergedItem); addOtherUserItem(context, newMergedItems, mOtherUserMergedItems, mergedItem);
@@ -1243,7 +1248,7 @@ public class RunningState {
// Finally, interesting processes need to be shown and will // Finally, interesting processes need to be shown and will
// go at the top. // go at the top.
NHP = mInterestingProcesses.size(); NHP = mInterestingProcesses.size();
for (int i=0; i<NHP; i++) { for (int i = 0; i < NHP; i++) {
ProcessItem proc = mInterestingProcesses.get(i); ProcessItem proc = mInterestingProcesses.get(i);
if (proc.mClient == null && proc.mServices.size() <= 0) { if (proc.mClient == null && proc.mServices.size() <= 0) {
if (proc.mMergedItem == null) { if (proc.mMergedItem == null) {
@@ -1264,7 +1269,7 @@ public class RunningState {
// Finally finally, user aggregated merged items need to be // Finally finally, user aggregated merged items need to be
// updated now that they have all of their children. // updated now that they have all of their children.
final int NU = mOtherUserMergedItems.size(); final int NU = mOtherUserMergedItems.size();
for (int i=0; i<NU; i++) { for (int i = 0; i < NU; i++) {
MergedItem user = mOtherUserMergedItems.valueAt(i); MergedItem user = mOtherUserMergedItems.valueAt(i);
if (user.mCurSeq == mSequence) { if (user.mCurSeq == mSequence) {
user.update(context, false); user.update(context, false);
@@ -1276,7 +1281,7 @@ public class RunningState {
mMergedItems = newMergedItems; mMergedItems = newMergedItems;
} }
} }
// Count number of interesting other (non-active) processes, and // Count number of interesting other (non-active) processes, and
// build a list of all processes we will retrieve memory for. // build a list of all processes we will retrieve memory for.
mAllProcessItems.clear(); mAllProcessItems.clear();
@@ -1285,7 +1290,7 @@ public class RunningState {
int numForegroundProcesses = 0; int numForegroundProcesses = 0;
int numServiceProcesses = 0; int numServiceProcesses = 0;
NRP = mRunningProcesses.size(); NRP = mRunningProcesses.size();
for (int i=0; i<NRP; i++) { for (int i = 0; i < NRP; i++) {
ProcessItem proc = mRunningProcesses.valueAt(i); ProcessItem proc = mRunningProcesses.valueAt(i);
if (proc.mCurSeq != mSequence) { if (proc.mCurSeq != mSequence) {
// We didn't hit this process as a dependency on one // We didn't hit this process as a dependency on one
@@ -1306,7 +1311,7 @@ public class RunningState {
numServiceProcesses++; numServiceProcesses++;
} }
} }
long backgroundProcessMemory = 0; long backgroundProcessMemory = 0;
long foregroundProcessMemory = 0; long foregroundProcessMemory = 0;
long serviceProcessMemory = 0; long serviceProcessMemory = 0;
@@ -1316,13 +1321,13 @@ public class RunningState {
try { try {
final int numProc = mAllProcessItems.size(); final int numProc = mAllProcessItems.size();
int[] pids = new int[numProc]; int[] pids = new int[numProc];
for (int i=0; i<numProc; i++) { for (int i = 0; i < numProc; i++) {
pids[i] = mAllProcessItems.get(i).mPid; pids[i] = mAllProcessItems.get(i).mPid;
} }
long[] pss = ActivityManager.getService() long[] pss = ActivityManager.getService()
.getProcessPss(pids); .getProcessPss(pids);
int bgIndex = 0; int bgIndex = 0;
for (int i=0; i<pids.length; i++) { for (int i = 0; i < pids.length; i++) {
ProcessItem proc = mAllProcessItems.get(i); ProcessItem proc = mAllProcessItems.get(i);
changed |= proc.updateSize(context, pss[i], mSequence); changed |= proc.updateSize(context, pss[i], mSequence);
if (proc.mCurSeq == mSequence) { if (proc.mCurSeq == mSequence) {
@@ -1340,7 +1345,7 @@ public class RunningState {
if (bgIndex >= mBackgroundItems.size() if (bgIndex >= mBackgroundItems.size()
|| mBackgroundItems.get(bgIndex).mProcess != proc) { || mBackgroundItems.get(bgIndex).mProcess != proc) {
newBackgroundItems = new ArrayList<MergedItem>(numBackgroundProcesses); newBackgroundItems = new ArrayList<MergedItem>(numBackgroundProcesses);
for (int bgi=0; bgi<bgIndex; bgi++) { for (int bgi = 0; bgi < bgIndex; bgi++) {
mergedItem = mBackgroundItems.get(bgi); mergedItem = mBackgroundItems.get(bgi);
diffUsers |= mergedItem.mUserId != mMyUserId; diffUsers |= mergedItem.mUserId != mMyUserId;
newBackgroundItems.add(mergedItem); newBackgroundItems.add(mergedItem);
@@ -1363,12 +1368,12 @@ public class RunningState {
} }
} catch (RemoteException e) { } catch (RemoteException e) {
} }
if (newBackgroundItems == null) { if (newBackgroundItems == null) {
// One or more at the bottom may no longer exist. // One or more at the bottom may no longer exist.
if (mBackgroundItems.size() > numBackgroundProcesses) { if (mBackgroundItems.size() > numBackgroundProcesses) {
newBackgroundItems = new ArrayList<MergedItem>(numBackgroundProcesses); newBackgroundItems = new ArrayList<MergedItem>(numBackgroundProcesses);
for (int bgi=0; bgi<numBackgroundProcesses; bgi++) { for (int bgi = 0; bgi < numBackgroundProcesses; bgi++) {
MergedItem mergedItem = mBackgroundItems.get(bgi); MergedItem mergedItem = mBackgroundItems.get(bgi);
diffUsers |= mergedItem.mUserId != mMyUserId; diffUsers |= mergedItem.mUserId != mMyUserId;
newBackgroundItems.add(mergedItem); newBackgroundItems.add(mergedItem);
@@ -1387,7 +1392,7 @@ public class RunningState {
// items for users are collapsed together. // items for users are collapsed together.
newUserBackgroundItems = new ArrayList<MergedItem>(); newUserBackgroundItems = new ArrayList<MergedItem>();
final int NB = newBackgroundItems.size(); final int NB = newBackgroundItems.size();
for (int i=0; i<NB; i++) { for (int i = 0; i < NB; i++) {
MergedItem mergedItem = newBackgroundItems.get(i); MergedItem mergedItem = newBackgroundItems.get(i);
if (mergedItem.mUserId != mMyUserId) { if (mergedItem.mUserId != mMyUserId) {
addOtherUserItem(context, newUserBackgroundItems, addOtherUserItem(context, newUserBackgroundItems,
@@ -1399,7 +1404,7 @@ public class RunningState {
// And user aggregated merged items need to be // And user aggregated merged items need to be
// updated now that they have all of their children. // updated now that they have all of their children.
final int NU = mOtherUserBackgroundItems.size(); final int NU = mOtherUserBackgroundItems.size();
for (int i=0; i<NU; i++) { for (int i = 0; i < NU; i++) {
MergedItem user = mOtherUserBackgroundItems.valueAt(i); MergedItem user = mOtherUserBackgroundItems.valueAt(i);
if (user.mCurSeq == mSequence) { if (user.mCurSeq == mSequence) {
user.update(context, true); user.update(context, true);
@@ -1409,10 +1414,10 @@ public class RunningState {
} }
} }
for (int i=0; i<mMergedItems.size(); i++) { for (int i = 0; i < mMergedItems.size(); i++) {
mMergedItems.get(i).updateSize(context); mMergedItems.get(i).updateSize(context);
} }
synchronized (mLock) { synchronized (mLock) {
mNumBackgroundProcesses = numBackgroundProcesses; mNumBackgroundProcesses = numBackgroundProcesses;
mNumForegroundProcesses = numForegroundProcesses; mNumForegroundProcesses = numForegroundProcesses;
@@ -1432,10 +1437,10 @@ public class RunningState {
mLock.notifyAll(); mLock.notifyAll();
} }
} }
return changed; return changed;
} }
void setWatchingBackgroundItems(boolean watching) { void setWatchingBackgroundItems(boolean watching) {
synchronized (mLock) { synchronized (mLock) {
mWatchingBackgroundItems = watching; mWatchingBackgroundItems = watching;

View File

@@ -112,7 +112,7 @@ public class BatteryTipPreferenceController extends BasePreferenceController {
for (int i = 0, size = batteryTips.size(); i < size; i++) { for (int i = 0, size = batteryTips.size(); i < size; i++) {
final BatteryTip batteryTip = mBatteryTips.get(i); final BatteryTip batteryTip = mBatteryTips.get(i);
batteryTip.sanityCheck(mContext); batteryTip.validateCheck(mContext);
if (batteryTip.getState() != BatteryTip.StateType.INVISIBLE) { if (batteryTip.getState() != BatteryTip.StateType.INVISIBLE) {
batteryTip.updatePreference(mCardPreference); batteryTip.updatePreference(mCardPreference);
mBatteryTipMap.put(mCardPreference.getKey(), batteryTip); mBatteryTipMap.put(mCardPreference.getKey(), batteryTip);

View File

@@ -138,7 +138,7 @@ public abstract class BatteryTip implements Comparable<BatteryTip>, Parcelable {
* Check whether data is still make sense. If not, try recover. * Check whether data is still make sense. If not, try recover.
* @param context used to do validate check * @param context used to do validate check
*/ */
public void sanityCheck(Context context) { public void validateCheck(Context context) {
// do nothing // do nothing
} }

View File

@@ -107,8 +107,8 @@ public class RestrictAppTip extends BatteryTip {
} }
@Override @Override
public void sanityCheck(Context context) { public void validateCheck(Context context) {
super.sanityCheck(context); super.validateCheck(context);
// Set it invisible if there is no valid app // Set it invisible if there is no valid app
mRestrictAppList.removeIf(AppLabelPredicate.getInstance(context)); mRestrictAppList.removeIf(AppLabelPredicate.getInstance(context));

View File

@@ -34,7 +34,6 @@ import android.os.Parcel;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.fuelgauge.batterytip.AppInfo; import com.android.settings.fuelgauge.batterytip.AppInfo;
import com.android.settings.testutils.BatteryTestUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import org.junit.After; import org.junit.After;
@@ -45,10 +44,10 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class RestrictAppTipTest { public class RestrictAppTipTest {
@@ -198,7 +197,7 @@ public class RestrictAppTipTest {
appInfos.add(mUninstallAppInfo); appInfos.add(mUninstallAppInfo);
final BatteryTip batteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, appInfos); final BatteryTip batteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, appInfos);
batteryTip.sanityCheck(mContext); batteryTip.validateCheck(mContext);
assertThat(batteryTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE); assertThat(batteryTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
} }
@@ -210,7 +209,7 @@ public class RestrictAppTipTest {
appInfos.add(mUninstallAppInfo); appInfos.add(mUninstallAppInfo);
final BatteryTip batteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, appInfos); final BatteryTip batteryTip = new RestrictAppTip(BatteryTip.StateType.NEW, appInfos);
batteryTip.sanityCheck(mContext); batteryTip.validateCheck(mContext);
assertThat(batteryTip.getState()).isEqualTo(BatteryTip.StateType.NEW); assertThat(batteryTip.getState()).isEqualTo(BatteryTip.StateType.NEW);
} }