/* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.calendar; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.widget.Button; /** * A helper class for editing the response to an invitation when the invitation * is a repeating event. */ public class EditResponseHelper implements DialogInterface.OnClickListener { private final Activity mParent; private int mWhichEvents = -1; private AlertDialog mAlertDialog; /** * This callback is passed in to this object when this object is created * and is invoked when the "Ok" button is selected. */ private DialogInterface.OnClickListener mDialogListener; public EditResponseHelper(Activity parent) { mParent = parent; } public void setOnClickListener(DialogInterface.OnClickListener listener) { mDialogListener = listener; } public int getWhichEvents() { return mWhichEvents; } public void setWhichEvents(int which) { mWhichEvents = which; } public void onClick(DialogInterface dialog, int which) { } /** * This callback is used when a list item is selected */ private DialogInterface.OnClickListener mListListener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { mWhichEvents = which; // Enable the "ok" button now that the user has selected which // events in the series to delete. Button ok = mAlertDialog.getButton(DialogInterface.BUTTON_POSITIVE); ok.setEnabled(true); } }; public void showDialog(int whichEvents) { // We need to have a non-null listener, otherwise we get null when // we try to fetch the "Ok" button. if (mDialogListener == null) { mDialogListener = this; } AlertDialog dialog = new AlertDialog.Builder(mParent).setTitle( R.string.change_response_title).setIconAttribute(android.R.attr.alertDialogIcon) .setSingleChoiceItems(R.array.change_response_labels, whichEvents, mListListener) .setPositiveButton(android.R.string.ok, mDialogListener) .setNegativeButton(android.R.string.cancel, null).show(); mAlertDialog = dialog; if (whichEvents == -1) { // Disable the "Ok" button until the user selects which events to // delete. Button ok = dialog.getButton(DialogInterface.BUTTON_POSITIVE); ok.setEnabled(false); } } }