\frameworks\base\services\java\com\android\server\power\ShutdownThread.java
public static void reboot(final Context context, boolean confirm) {
synchronized (sIsStartedGuard) {
if (sIsStarted) {
Log.d(TAG, "Request to shutdown already running, returning.");
return;
}
}
com.android.internal.R.integer.config_longPressOnPowerBehavior);
final int resourceId = longPressBehavior == 2
? com.android.internal.R.string.restart_confirm_question
: com.android.internal.R.string.restart_confirm;
Log.d(TAG, "Notifying thread to start shutdown longPressBehavior=" + longPressBehavior);
if (confirm) {
final CloseDialogReceiver closer = new CloseDialogReceiver(context);
final AlertDialog dialog = new AlertDialog.Builder(context).setTitle(com.android.internal.R.string.global_action_power_restart)..setMessage(resourceId)..setPositiveButton(com.android.internal.R.string.yes, new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {
beginShutdownSequence(context);
}})..setNegativeButton(com.android.internal.R.string.no, null)..create();
closer.dialog = dialog;
dialog.setOnDismissListener(closer);
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
dialog.show();}else {
beginShutdownSequence(context);
}
}
frameworks\base\policy\src\com\android\internal\policy\impl\GlobalActions.java
private AlertDialog createDialog() {......
mItems.add( new SinglePressAction(
com.android.internal.R.drawable.ic_lock_power_off,
R.string.global_action_power_restart){ public void onPress() {ShutdownThread.reboot(mContext, null,true);}
public boolean showDuringKeyguard() {return true;}
public boolean showBeforeProvisioning() {return true; }});
}