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