1ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang/* 2ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * Copyright (C) 2015 The Android Open Source Project 3ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * 4ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * Licensed under the Apache License, Version 2.0 (the "License"); 5ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * you may not use this file except in compliance with the License. 6ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * You may obtain a copy of the License at 7ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * 8ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * http://www.apache.org/licenses/LICENSE-2.0 9ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * 10ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * Unless required by applicable law or agreed to in writing, software 11ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * distributed under the License is distributed on an "AS IS" BASIS, 12ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * See the License for the specific language governing permissions and 14ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * limitations under the License 15ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang */ 16ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 17ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jangpackage com.android.contacts.editor; 18ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 19ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jangimport android.app.Dialog; 20ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jangimport android.app.DialogFragment; 21ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jangimport android.content.DialogInterface; 22ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jangimport android.os.Bundle; 23c40f3e945c43ff1ff90abb7fb2daf56aba315e10Gary Maiimport android.support.v7.app.AlertDialog; 24ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 250a49afa2ad697307cc04ef4cb86570574fa720f2Gary Maiimport com.android.contacts.R; 260a49afa2ad697307cc04ef4cb86570574fa720f2Gary Mai 27ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang/** 28ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * Asks the user whether to cancel editing the contact. 29ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang */ 30ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jangpublic class CancelEditDialogFragment extends DialogFragment { 31ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 32ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang private static final String TAG = "cancelEditor"; 33ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 34ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang /** 35ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * Shows a {@link CancelEditDialogFragment} after setting the given Fragment as the 36ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * target of the dialog. 37ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang */ 38363af60ea23e5a3b945005712a16564ab69db18bGary Mai public static void show(ContactEditorFragment fragment) { 39ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang final CancelEditDialogFragment dialog = new CancelEditDialogFragment(); 40ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang dialog.setTargetFragment(fragment, 0); 41ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang dialog.show(fragment.getFragmentManager(), TAG); 42ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang } 43ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 44ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang @Override 45ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang public Dialog onCreateDialog(Bundle savedInstanceState) { 46ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang return new AlertDialog.Builder(getActivity()) 47ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang .setIconAttribute(android.R.attr.alertDialogIcon) 48ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang .setMessage(R.string.cancel_confirmation_dialog_message) 49d1cc5fe91e96bdbea59fbc8c7561a76c60835e49Walter Jang .setPositiveButton(R.string.cancel_confirmation_dialog_cancel_editing_button, 50168331d85c5be43a816eb24fd37a2ebdbe61ac53Tingting Wang new DialogInterface.OnClickListener() { 51ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang @Override 52ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang public void onClick(DialogInterface dialogInterface, int which) { 53ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang final Listener targetListener = (Listener) getTargetFragment(); 54ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang targetListener.onCancelEditConfirmed(); 55ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang } 56ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang } 57ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang ) 58d1cc5fe91e96bdbea59fbc8c7561a76c60835e49Walter Jang .setNegativeButton(R.string.cancel_confirmation_dialog_keep_editing_button, null) 59ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang .create(); 60ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang } 61ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 62ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang /** 63ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * Callbacks for {@link CancelEditDialogFragment} hosts. 64ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang */ 65ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang public interface Listener { 66ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang 67ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang /** 68ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang * Invoked when the user confirms that they want to cancel editing the contact. 69ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang */ 70ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang void onCancelEditConfirmed(); 71ed8f6c9744dd38e089598acfba6fb90446954e6eWalter Jang } 727b0970fd1db1a97f1be915d66d07f4dc8499f96dWalter Jang} 73