diff options
Diffstat (limited to 'src/com/android/settings/applications/InstalledAppDetails.java')
-rwxr-xr-x | src/com/android/settings/applications/InstalledAppDetails.java | 19 |
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); + } } }; |