102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey/* 202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * Copyright (C) 2013 The Android Open Source Project 302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * 402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * you may not use this file except in compliance with the License. 602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * You may obtain a copy of the License at 702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * 802ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 902ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * 1002ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * Unless required by applicable law or agreed to in writing, software 1102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 1202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * See the License for the specific language governing permissions and 1402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * limitations under the License. 1502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey */ 1602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 1702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeypackage com.android.shell; 1802ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 1902ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport static com.android.shell.BugreportPrefs.STATE_HIDE; 2002ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport static com.android.shell.BugreportPrefs.STATE_SHOW; 2102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport static com.android.shell.BugreportPrefs.STATE_UNKNOWN; 2202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport static com.android.shell.BugreportPrefs.getWarningState; 2302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport static com.android.shell.BugreportPrefs.setWarningState; 2402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 2502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport android.app.AlertDialog; 2602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport android.content.DialogInterface; 2702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport android.content.Intent; 2802ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport android.os.Bundle; 2902ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport android.view.LayoutInflater; 3002ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport android.widget.CheckBox; 3102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 3202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport com.android.internal.app.AlertActivity; 3302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeyimport com.android.internal.app.AlertController; 3402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 3502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey/** 3602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey * Dialog that warns about contents of a bugreport. 3702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey */ 3802ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkeypublic class BugreportWarningActivity extends AlertActivity 3902ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey implements DialogInterface.OnClickListener { 4002ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 4102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey private Intent mSendIntent; 4202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey private CheckBox mConfirmRepeat; 4302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 4402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey @Override 4502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey public void onCreate(Bundle icicle) { 4602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey super.onCreate(icicle); 4702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 4802ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey mSendIntent = getIntent().getParcelableExtra(Intent.EXTRA_INTENT); 4902ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 5002ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey // We need to touch the extras to unpack them so they get migrated to 5102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey // ClipData correctly. 5202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey mSendIntent.hasExtra(Intent.EXTRA_STREAM); 5302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 5402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey final AlertController.AlertParams ap = mAlertParams; 5502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey ap.mView = LayoutInflater.from(this).inflate(R.layout.confirm_repeat, null); 5602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey ap.mPositiveButtonText = getString(android.R.string.ok); 5702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey ap.mNegativeButtonText = getString(android.R.string.cancel); 5802ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey ap.mPositiveButtonListener = this; 5902ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey ap.mNegativeButtonListener = this; 6002ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 6102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey mConfirmRepeat = (CheckBox) ap.mView.findViewById(android.R.id.checkbox); 6202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey mConfirmRepeat.setChecked(getWarningState(this, STATE_UNKNOWN) == STATE_SHOW); 6302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 6402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey setupAlert(); 6502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey } 6602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 6702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey @Override 6802ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey public void onClick(DialogInterface dialog, int which) { 6902ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey if (which == AlertDialog.BUTTON_POSITIVE) { 7002ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey // Remember confirm state, and launch target 7102ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey setWarningState(this, mConfirmRepeat.isChecked() ? STATE_SHOW : STATE_HIDE); 7202ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey startActivity(mSendIntent); 7302ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey } 7402ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey 7502ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey finish(); 7602ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey } 7702ffba940ca96988ed3e7774c606b43c58373b5eJeff Sharkey} 78