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