package org.iilab.pb.common; import org.iilab.pb.R; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.ImageButton; import static android.app.Activity.RESULT_OK; import static android.content.Intent.ACTION_GET_CONTENT; import static android.provider.ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE; import static android.view.View.OnClickListener; public class ContactPickerFragment extends Fragment { private static final int PICK_CONTACT_REQUEST_ID = 100; private ImageButton contactPickerButton; private EditText phoneNumberEditText; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.contact_picker_fragment, container, false); contactPickerButton = (ImageButton) view.findViewById(R.id.contact_picker_button); phoneNumberEditText = (EditText) view.findViewById(R.id.contact_edit_text); return view; } // private OnClickListener contactPickerListener = new OnClickListener() { // @Override // public void onClick(View view) { // launchContactPicker(view); // } // }; // @Override // public void onViewCreated(View view, Bundle savedInstanceState) { // super.onViewCreated(view, savedInstanceState); // contactPickerButton.setOnClickListener(contactPickerListener); // } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); contactPickerButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int wizardState = ApplicationSettings.getWizardState(getActivity()); // if(wizardState != AppConstants.WIZARD_FLAG_HOME_READY){ AppConstants.IS_BACK_BUTTON_PRESSED = true; AppConstants.IS_BACK_BUTTON_PRESSED = true; // } launchContactPicker(v); } }); } public void launchContactPicker(View view) { Intent contactPickerIntent = new Intent(ACTION_GET_CONTENT); contactPickerIntent.setType(CONTENT_ITEM_TYPE); startActivityForResult(contactPickerIntent, PICK_CONTACT_REQUEST_ID); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if ((requestCode == PICK_CONTACT_REQUEST_ID) && (resultCode == RESULT_OK)) { phoneNumberEditText.setText(getPhoneNumber(data.getData())); } } private String getPhoneNumber(Uri contactData) { String[] projection = {ContactsContract.CommonDataKinds.Phone.NUMBER}; Cursor cursor = getCursor(contactData, projection); cursor.moveToNext(); return cursor.getString(0); } Cursor getCursor(Uri contactData, String[] projection) { return getActivity().managedQuery(contactData, projection, null, null, null); } }