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 18e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.AlertDialog; 19e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.Dialog; 20e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.DialogFragment; 21e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.app.FragmentManager; 22e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.content.DialogInterface; 23e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikovimport android.os.Bundle; 24e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 25e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.android.contacts.ContactSaveService; 26e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.android.contacts.R; 27e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Cheng 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"; 352b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan private static final String ARG_SHOULD_END_ACTIVITY = "endActivity"; 36267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson 37267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson public static void show(FragmentManager fragmentManager, long groupId, String label, 38267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson boolean endActivity) { 392b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan GroupDeletionDialogFragment dialog = new GroupDeletionDialogFragment(); 40e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov Bundle args = new Bundle(); 41e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov args.putLong(ARG_GROUP_ID, groupId); 42e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov args.putString(ARG_LABEL, label); 432b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan args.putBoolean(ARG_SHOULD_END_ACTIVITY, endActivity); 44e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov dialog.setArguments(args); 45e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov dialog.show(fragmentManager, "deleteGroup"); 46e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 47e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 48e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov @Override 49e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov public Dialog onCreateDialog(Bundle savedInstanceState) { 50e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov String label = getArguments().getString(ARG_LABEL); 51e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov String message = getActivity().getString(R.string.delete_group_dialog_message, label); 52e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 53e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov return new AlertDialog.Builder(getActivity()) 544292dfa46123a6c0e1de9862b4d8694bfb87875aDmitri Plotnikov .setIconAttribute(android.R.attr.alertDialogIcon) 55e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .setMessage(message) 56e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .setPositiveButton(android.R.string.ok, 57e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov new DialogInterface.OnClickListener() { 58e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov @Override 59e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov public void onClick(DialogInterface dialog, int whichButton) { 60e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov deleteGroup(); 61e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 62e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 63e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov ) 64e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .setNegativeButton(android.R.string.cancel, null) 65e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov .create(); 66e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 67e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 68e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov protected void deleteGroup() { 69e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov Bundle arguments = getArguments(); 70e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov long groupId = arguments.getLong(ARG_GROUP_ID); 71e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov 72e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov getActivity().startService(ContactSaveService.createGroupDeletionIntent( 73e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov getActivity(), groupId)); 742b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan if (shouldEndActivity()) { 75267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson getActivity().finish(); 76267073407439d7df012a2e0df577e39a1f89c4a8Isaac Katzenelson } 77e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov } 782b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan 792b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan private boolean shouldEndActivity() { 802b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan return getArguments().getBoolean(ARG_SHOULD_END_ACTIVITY); 812b995e2c10e23834b224cad8205c30acc88219d9Katherine Kuan } 82e898a9fa52728b2ff6fcd3add693471e9e15553dDmitri Plotnikov} 83