summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/AppErrorDialog.java25
-rw-r--r--services/core/java/com/android/server/am/AppNotRespondingDialog.java5
-rw-r--r--services/core/java/com/android/server/am/AppWaitingForDebuggerDialog.java5
-rw-r--r--services/core/java/com/android/server/am/BaseErrorDialog.java36
-rw-r--r--services/core/java/com/android/server/am/StrictModeViolationDialog.java5
-rw-r--r--services/core/java/com/android/server/wm/FactoryErrorDialog.java5
6 files changed, 54 insertions, 27 deletions
diff --git a/services/core/java/com/android/server/am/AppErrorDialog.java b/services/core/java/com/android/server/am/AppErrorDialog.java
index 48222cb075cd..a9e557103966 100644
--- a/services/core/java/com/android/server/am/AppErrorDialog.java
+++ b/services/core/java/com/android/server/am/AppErrorDialog.java
@@ -18,10 +18,7 @@ package com.android.server.am;
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
-import android.content.BroadcastReceiver;
import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
@@ -138,19 +135,6 @@ final class AppErrorDialog extends BaseErrorDialog implements View.OnClickListen
findViewById(com.android.internal.R.id.customPanel).setVisibility(View.VISIBLE);
}
- @Override
- public void onStart() {
- super.onStart();
- getContext().registerReceiver(mReceiver,
- new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- getContext().unregisterReceiver(mReceiver);
- }
-
private final Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
setResult(msg.what);
@@ -204,15 +188,6 @@ final class AppErrorDialog extends BaseErrorDialog implements View.OnClickListen
}
}
- private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) {
- cancel();
- }
- }
- };
-
static class Data {
AppErrorResult result;
int taskId;
diff --git a/services/core/java/com/android/server/am/AppNotRespondingDialog.java b/services/core/java/com/android/server/am/AppNotRespondingDialog.java
index 77d2898842c6..b233a2ccc6e3 100644
--- a/services/core/java/com/android/server/am/AppNotRespondingDialog.java
+++ b/services/core/java/com/android/server/am/AppNotRespondingDialog.java
@@ -181,6 +181,11 @@ final class AppNotRespondingDialog extends BaseErrorDialog implements View.OnCli
}
};
+ @Override
+ protected void closeDialog() {
+ mHandler.obtainMessage(FORCE_CLOSE).sendToTarget();
+ }
+
static class Data {
final ProcessRecord proc;
final ApplicationInfo aInfo;
diff --git a/services/core/java/com/android/server/am/AppWaitingForDebuggerDialog.java b/services/core/java/com/android/server/am/AppWaitingForDebuggerDialog.java
index 3ce24712b42f..262e79521e8c 100644
--- a/services/core/java/com/android/server/am/AppWaitingForDebuggerDialog.java
+++ b/services/core/java/com/android/server/am/AppWaitingForDebuggerDialog.java
@@ -61,6 +61,11 @@ final class AppWaitingForDebuggerDialog extends BaseErrorDialog {
public void onStop() {
}
+ @Override
+ protected void closeDialog() {
+ /* Do nothing */
+ }
+
private final Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
diff --git a/services/core/java/com/android/server/am/BaseErrorDialog.java b/services/core/java/com/android/server/am/BaseErrorDialog.java
index aabb5877764e..7b5f2cd78947 100644
--- a/services/core/java/com/android/server/am/BaseErrorDialog.java
+++ b/services/core/java/com/android/server/am/BaseErrorDialog.java
@@ -16,16 +16,19 @@
package com.android.server.am;
-import com.android.internal.R;
-
import android.app.AlertDialog;
+import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.WindowManager;
import android.widget.Button;
+import com.android.internal.R;
+
public class BaseErrorDialog extends AlertDialog {
private static final int ENABLE_BUTTONS = 0;
private static final int DISABLE_BUTTONS = 1;
@@ -44,10 +47,19 @@ public class BaseErrorDialog extends AlertDialog {
getWindow().setAttributes(attrs);
}
+ @Override
public void onStart() {
super.onStart();
mHandler.sendEmptyMessage(DISABLE_BUTTONS);
mHandler.sendMessageDelayed(mHandler.obtainMessage(ENABLE_BUTTONS), 1000);
+ getContext().registerReceiver(mReceiver,
+ new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+ }
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ getContext().unregisterReceiver(mReceiver);
}
public boolean dispatchKeyEvent(KeyEvent event) {
@@ -84,4 +96,24 @@ public class BaseErrorDialog extends AlertDialog {
}
}
};
+
+ /**
+ * Called when received ACTION_CLOSE_SYSTEM_DIALOGS.
+ */
+ protected void closeDialog() {
+ if (mCancelable) {
+ cancel();
+ } else {
+ dismiss();
+ }
+ }
+
+ private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) {
+ closeDialog();
+ }
+ }
+ };
}
diff --git a/services/core/java/com/android/server/am/StrictModeViolationDialog.java b/services/core/java/com/android/server/am/StrictModeViolationDialog.java
index 4cc1fc1b7d09..9dddd658575b 100644
--- a/services/core/java/com/android/server/am/StrictModeViolationDialog.java
+++ b/services/core/java/com/android/server/am/StrictModeViolationDialog.java
@@ -82,6 +82,11 @@ final class StrictModeViolationDialog extends BaseErrorDialog {
DISMISS_TIMEOUT);
}
+ @Override
+ protected void closeDialog() {
+ mHandler.obtainMessage(ACTION_OK).sendToTarget();
+ }
+
private final Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
synchronized (mService.mProcLock) {
diff --git a/services/core/java/com/android/server/wm/FactoryErrorDialog.java b/services/core/java/com/android/server/wm/FactoryErrorDialog.java
index 88b5475cc3a2..afdf1ee4de7f 100644
--- a/services/core/java/com/android/server/wm/FactoryErrorDialog.java
+++ b/services/core/java/com/android/server/wm/FactoryErrorDialog.java
@@ -41,6 +41,11 @@ final class FactoryErrorDialog extends BaseErrorDialog {
public void onStop() {
}
+ @Override
+ protected void closeDialog() {
+ /* Do nothing */
+ }
+
private final Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
throw new RuntimeException("Rebooting from failed factory test");