summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/applications/InstalledAppDetails.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/applications/InstalledAppDetails.java')
-rwxr-xr-xsrc/com/android/settings/applications/InstalledAppDetails.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 4d29c73..ef3788c 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -413,8 +413,8 @@ public class InstalledAppDetails extends AppInfoBase
mUpdatedSysApp = (mAppEntry.info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
menu.findItem(UNINSTALL_UPDATES).setVisible(mUpdatedSysApp && !mAppControlRestricted);
- menu.findItem(OPEN_PROTECTED_APPS).setVisible(mPackageInfo.applicationInfo.protect);
-
+ menu.findItem(OPEN_PROTECTED_APPS).setVisible(mPackageInfo != null &&
+ mPackageInfo.applicationInfo != null && mPackageInfo.applicationInfo.protect);
}
@Override
@@ -709,6 +709,10 @@ public class InstalledAppDetails extends AppInfoBase
}
private void checkForceStop() {
+ if (getActivity() == null || getActivity().isFinishing()) {
+ return;
+ }
+
if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
// User can't force stop device admin.
updateForceStopButton(false);
@@ -984,6 +988,13 @@ public class InstalledAppDetails extends AppInfoBase
mPm.setApplicationEnabledSetting(mInfo.packageName, mState, 0);
return null;
}
+
+ @Override
+ protected void onPostExecute(Object o) {
+ if (mActivity.get() != null) {
+ mActivity.get().refreshUi();
+ }
+ }
}
private final LoaderCallbacks<ChartData> mDataCallbacks = new LoaderCallbacks<ChartData>() {
@@ -1008,7 +1019,9 @@ public class InstalledAppDetails extends AppInfoBase
private final BroadcastReceiver mCheckKillProcessesReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- updateForceStopButton(getResultCode() != Activity.RESULT_CANCELED);
+ if (getActivity() != null && !getActivity().isDestroyed()) {
+ updateForceStopButton(getResultCode() != Activity.RESULT_CANCELED);
+ }
}
};