GroupDeletionDialogFragment.java revision 267073407439d7df012a2e0df577e39a1f89c4a8
1e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov/* 2e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project 3e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * 4e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License"); 5e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * you may not use this file except in compliance with the License. 6e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * You may obtain a copy of the License at 7e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * 8e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * http://www.apache.org/licenses/LICENSE-2.0 9e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * 10e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * Unless required by applicable law or agreed to in writing, software 11e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS, 12e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * See the License for the specific language governing permissions and 14e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * limitations under the License. 15e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov */ 16e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovpackage com.android.contacts.interactions; 17e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 1818ffaa2561cc7dd2e3ef81737e6537931c0a9a11Dmitri Plotnikovimport com.android.contacts.ContactSaveService; 19e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport com.android.contacts.R; 20e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 21e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.AlertDialog; 22e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.Dialog; 23e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.DialogFragment; 24e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.FragmentManager; 25e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.content.DialogInterface; 26e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.os.Bundle; 27e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 28e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov/** 29e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov * A dialog for deleting a group. 30e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov */ 31e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovpublic class GroupDeletionDialogFragment extends DialogFragment { 32e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 33e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov private static final String ARG_GROUP_ID = "groupId"; 34e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov private static final String ARG_LABEL = "label"; 35e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 36267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson private boolean mEndActivity; 37267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson 38267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson public GroupDeletionDialogFragment(boolean endActivity) { 39267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson mEndActivity = endActivity; 40267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson } 41267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson 42267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson public static void show(FragmentManager fragmentManager, long groupId, String label, 43267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson boolean endActivity) { 44267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson GroupDeletionDialogFragment dialog = new GroupDeletionDialogFragment(endActivity); 45e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov Bundle args = new Bundle(); 46e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov args.putLong(ARG_GROUP_ID, groupId); 47e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov args.putString(ARG_LABEL, label); 48e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov dialog.setArguments(args); 49e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov dialog.show(fragmentManager, "deleteGroup"); 50e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 51e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 52e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov @Override 53e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov public Dialog onCreateDialog(Bundle savedInstanceState) { 54e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov String label = getArguments().getString(ARG_LABEL); 55e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov String message = getActivity().getString(R.string.delete_group_dialog_message, label); 56e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 57e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov return new AlertDialog.Builder(getActivity()) 584292dfa46123a6c0e1de9862b4d8694bfb87875aDmitri Plotnikov .setIconAttribute(android.R.attr.alertDialogIcon) 59e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .setTitle(R.string.delete_group_dialog_title) 60e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .setMessage(message) 61e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .setPositiveButton(android.R.string.ok, 62e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov new DialogInterface.OnClickListener() { 63e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov @Override 64e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov public void onClick(DialogInterface dialog, int whichButton) { 65e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov deleteGroup(); 66e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 67e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 68e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov ) 69e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .setNegativeButton(android.R.string.cancel, null) 70e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .create(); 71e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 72e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 73e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov protected void deleteGroup() { 74e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov Bundle arguments = getArguments(); 75e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov long groupId = arguments.getLong(ARG_GROUP_ID); 76e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 77e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov getActivity().startService(ContactSaveService.createGroupDeletionIntent( 78e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov getActivity(), groupId)); 79267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson if (mEndActivity) { 80267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson getActivity().finish(); 81267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson } 82e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 83e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov} 84