public AppNotRespondingDialog(ActivityManagerService service, android.content.Context context, ProcessRecord app, ActivityRecord activity, boolean aboveSystem)
super(context);
mService = service;
mProc = app;
Resources res = context.getResources();
setCancelable(false);
int resid;
CharSequence name1 = activity != null
? activity.info.loadLabel(context.getPackageManager())
: null;
CharSequence name2 = null;
if ((app.pkgList.size() == 1) &&
(name2=context.getPackageManager().getApplicationLabel(app.info)) != null) {
if (name1 != null) {
resid = com.android.internal.R.string.anr_activity_application;
} else {
name1 = name2;
name2 = app.processName;
resid = com.android.internal.R.string.anr_application_process;
}
} else {
if (name1 != null) {
name2 = app.processName;
resid = com.android.internal.R.string.anr_activity_process;
} else {
name1 = app.processName;
resid = com.android.internal.R.string.anr_process;
}
}
setMessage(name2 != null
? res.getString(resid, name1.toString(), name2.toString())
: res.getString(resid, name1.toString()));
setButton(DialogInterface.BUTTON_POSITIVE,
res.getText(com.android.internal.R.string.force_close),
mHandler.obtainMessage(FORCE_CLOSE));
setButton(DialogInterface.BUTTON_NEGATIVE,
res.getText(com.android.internal.R.string.wait),
mHandler.obtainMessage(WAIT));
if (app.errorReportReceiver != null) {
setButton(DialogInterface.BUTTON_NEUTRAL,
res.getText(com.android.internal.R.string.report),
mHandler.obtainMessage(WAIT_AND_REPORT));
}
setTitle(res.getText(com.android.internal.R.string.anr_title));
if (aboveSystem) {
getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR);
}
WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.setTitle("Application Not Responding: " + app.info.processName);
attrs.privateFlags = WindowManager.LayoutParams.PRIVATE_FLAG_SYSTEM_ERROR |
WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
getWindow().setAttributes(attrs);
|