11ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov/* 21ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project 31ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * 41ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License"); 51ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * you may not use this file except in compliance with the License. 61ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * You may obtain a copy of the License at 71ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * 81ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * http://www.apache.org/licenses/LICENSE-2.0 91ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * 101ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * Unless required by applicable law or agreed to in writing, software 111ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS, 121ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * See the License for the specific language governing permissions and 141ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * limitations under the License. 151ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov */ 161ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikovpackage com.android.contacts.interactions; 171ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov 189d730dd9d9efe125c9102b298f897577157ffecdDmitri Plotnikovimport android.app.Activity; 191ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikovimport android.app.FragmentManager; 209d730dd9d9efe125c9102b298f897577157ffecdDmitri Plotnikovimport android.content.Intent; 211ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikovimport android.os.Bundle; 221ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikovimport android.widget.EditText; 231ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov 24e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.android.contacts.ContactSaveService; 25e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Chengimport com.android.contacts.R; 26851222a96b5d68602fb361ea3527101e893f67e3Maurice Chuimport com.android.contacts.model.account.AccountWithDataSet; 27e0b2f1e2d01d1ac52ba207dc7ce76971d853298eChiao Cheng 281ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov/** 291ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov * A dialog for creating a new group. 301ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov */ 311ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikovpublic class GroupCreationDialogFragment extends GroupNameDialogFragment { 321ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov private static final String ARG_ACCOUNT_TYPE = "accountType"; 331ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov private static final String ARG_ACCOUNT_NAME = "accountName"; 342b3f3c54d3beb017b2f59f19e9ce0ecc3e039dbcDave Santoro private static final String ARG_DATA_SET = "dataSet"; 351ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov 36b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu public static final String FRAGMENT_TAG = "createGroupDialog"; 37b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu 38b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu private final OnGroupCreatedListener mListener; 39b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu 40b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu public interface OnGroupCreatedListener { 41b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu public void onGroupCreated(); 42b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu } 43b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu 441ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov public static void show( 452b3f3c54d3beb017b2f59f19e9ce0ecc3e039dbcDave Santoro FragmentManager fragmentManager, String accountType, String accountName, 46b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu String dataSet, OnGroupCreatedListener listener) { 47b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu GroupCreationDialogFragment dialog = new GroupCreationDialogFragment(listener); 481ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov Bundle args = new Bundle(); 491ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov args.putString(ARG_ACCOUNT_TYPE, accountType); 501ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov args.putString(ARG_ACCOUNT_NAME, accountName); 512b3f3c54d3beb017b2f59f19e9ce0ecc3e039dbcDave Santoro args.putString(ARG_DATA_SET, dataSet); 521ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov dialog.setArguments(args); 53b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu dialog.show(fragmentManager, FRAGMENT_TAG); 54b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu } 55b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu 56b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu public GroupCreationDialogFragment() { 57b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu super(); 58b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu mListener = null; 59b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu } 60b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu 61b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu private GroupCreationDialogFragment(OnGroupCreatedListener listener) { 62b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu super(); 63b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu mListener = listener; 64b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu } 65b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu 66b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu public OnGroupCreatedListener getOnGroupCreatedListener() { 67b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu return mListener; 681ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov } 691ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov 701ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov @Override 711ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov protected void initializeGroupLabelEditText(EditText editText) { 721ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov } 731ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov 741ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov @Override 751ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov protected int getTitleResourceId() { 761ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov return R.string.create_group_dialog_title; 771ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov } 781ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov 791ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov @Override 801ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov protected void onCompleted(String groupLabel) { 811ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov Bundle arguments = getArguments(); 821ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov String accountType = arguments.getString(ARG_ACCOUNT_TYPE); 831ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov String accountName = arguments.getString(ARG_ACCOUNT_NAME); 842b3f3c54d3beb017b2f59f19e9ce0ecc3e039dbcDave Santoro String dataSet = arguments.getString(ARG_DATA_SET); 851ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov 86b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu // Indicate to the listener that a new group will be created. 87b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu // If the device is rotated, mListener will become null, so that the 88b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu // popup from GroupMembershipView will not be shown. 89b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu if (mListener != null) { 90b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu mListener.onGroupCreated(); 91b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu } 92b03e6a266e3a4181d22e6be4f3fa0c5dd158d7e1Maurice Chu 939d730dd9d9efe125c9102b298f897577157ffecdDmitri Plotnikov Activity activity = getActivity(); 949d730dd9d9efe125c9102b298f897577157ffecdDmitri Plotnikov activity.startService(ContactSaveService.createNewGroupIntent(activity, 952b3f3c54d3beb017b2f59f19e9ce0ecc3e039dbcDave Santoro new AccountWithDataSet(accountName, accountType, dataSet), groupLabel, 96717e343811088da922cd84fb0d196de85fba7fe9Katherine Kuan null /* no new members to add */, 979d730dd9d9efe125c9102b298f897577157ffecdDmitri Plotnikov activity.getClass(), Intent.ACTION_EDIT)); 981ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov } 991ac58b6f2a925c5a4f759346e5244dfd174acd08Dmitri Plotnikov} 100