am 50ea0493: am ec39177c: am 44fb627c: Merge "Don\'t have app info pages load so much info" into mnc-dev
* commit '50ea0493c38e682ad79cc92c4cb8404fe993932c':
Don't have app info pages load so much info
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 012c574..5e0f4eb 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -54,7 +54,6 @@
protected boolean mAppControlRestricted = false;
protected ApplicationsState mState;
- private ApplicationsState.Session mSession;
protected ApplicationsState.AppEntry mAppEntry;
protected PackageInfo mPackageInfo;
protected int mUserId;
@@ -76,7 +75,6 @@
mFinishing = false;
mState = ApplicationsState.getInstance(getActivity().getApplication());
- mSession = mState.newSession(this);
Context context = getActivity();
mDpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
@@ -84,9 +82,6 @@
IBinder b = ServiceManager.getService(Context.USB_SERVICE);
mUsbManager = IUsbManager.Stub.asInterface(b);
- // Need to make sure we have loaded applications at this point.
- mSession.resume();
-
retrieveAppEntry();
}
@@ -94,25 +89,12 @@
public void onResume() {
super.onResume();
mAppControlRestricted = mUserManager.hasUserRestriction(UserManager.DISALLOW_APPS_CONTROL);
- mSession.resume();
if (!refreshUi()) {
setIntentAndFinish(true, true);
}
}
- @Override
- public void onPause() {
- super.onPause();
- mSession.pause();
- }
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- mSession.release();
- }
-
protected String retrieveAppEntry() {
final Bundle args = getArguments();
mPackageName = (args != null) ? args.getString(ARG_PACKAGE_NAME) : null;
diff --git a/src/com/android/settings/applications/ApplicationsState.java b/src/com/android/settings/applications/ApplicationsState.java
index 01355d9..055e415 100644
--- a/src/com/android/settings/applications/ApplicationsState.java
+++ b/src/com/android/settings/applications/ApplicationsState.java
@@ -878,20 +878,33 @@
synchronized (mEntriesMap) {
AppEntry entry = mEntriesMap.get(userId).get(packageName);
if (entry == null) {
- for (int i=0; i<mApplications.size(); i++) {
- ApplicationInfo info = mApplications.get(i);
- if (packageName.equals(info.packageName)
- && userId == UserHandle.getUserId(info.uid)) {
- entry = getEntryLocked(info);
- break;
+ ApplicationInfo info = getAppInfoLocked(packageName, userId);
+ if (info == null) {
+ try {
+ info = mIpm.getApplicationInfo(packageName, 0, userId);
+ } catch (RemoteException e) {
+ Log.w(TAG, "getEntry couldn't reach PackageManager", e);
+ return null;
}
}
+ entry = getEntryLocked(info);
}
if (DEBUG_LOCKING) Log.v(TAG, "...getEntry releasing lock");
return entry;
}
}
+ private ApplicationInfo getAppInfoLocked(String pkg, int userId) {
+ for (int i = 0; i < mApplications.size(); i++) {
+ ApplicationInfo info = mApplications.get(i);
+ if (pkg.equals(info.packageName)
+ && userId == UserHandle.getUserId(info.uid)) {
+ return info;
+ }
+ }
+ return null;
+ }
+
void ensureIcon(AppEntry entry) {
if (entry.icon != null) {
return;
@@ -1153,8 +1166,8 @@
mMainHandler.sendMessage(msg);
}
}
- if (mCurComputingSizePkg == null
- || (mCurComputingSizePkg.equals(stats.packageName)
+ if (mCurComputingSizePkg != null
+ && (mCurComputingSizePkg.equals(stats.packageName)
&& mCurComputingSizeUserId == stats.userHandle)) {
mCurComputingSizePkg = null;
sendEmptyMessage(MSG_LOAD_SIZES);
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 73f9c7d..9268309 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -251,6 +251,7 @@
if (mFinishing) {
return;
}
+ mState.requestSize(mPackageName, mUserId);
AppItem app = new AppItem(mAppEntry.info.uid);
app.addUid(mAppEntry.info.uid);
if (mStatsSession != null) {