Merge "Show force stop button if package is not fully stopped."
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 8edf206..aafd3a1 100644
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -742,18 +742,28 @@
private final BroadcastReceiver mCheckKillProcessesReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- mForceStopButton.setEnabled(getResultCode() != Activity.RESULT_CANCELED);
- mForceStopButton.setOnClickListener(InstalledAppDetails.this);
+ updateForceStopButton(getResultCode() != Activity.RESULT_CANCELED);
}
};
+
+ private void updateForceStopButton(boolean enabled) {
+ mForceStopButton.setEnabled(enabled);
+ mForceStopButton.setOnClickListener(InstalledAppDetails.this);
+ }
private void checkForceStop() {
Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
Uri.fromParts("package", mAppEntry.info.packageName, null));
intent.putExtra(Intent.EXTRA_PACKAGES, new String[] { mAppEntry.info.packageName });
intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
- getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
- Activity.RESULT_CANCELED, null, null);
+ if ((mAppEntry.info.flags&ApplicationInfo.FLAG_STOPPED) == 0) {
+ // If the app isn't explicitly stopped, then always show the
+ // force stop button.
+ updateForceStopButton(true);
+ } else {
+ getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
+ Activity.RESULT_CANCELED, null, null);
+ }
}
static class DisableChanger extends AsyncTask<Object, Object, Object> {