package com.fernandomantoan.ramaispti.android.fragment; import java.util.Collections; import java.util.Comparator; import java.util.List; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.NavUtils; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import com.fernandomantoan.ramaispti.android.R; import com.fernandomantoan.ramaispti.android.adapter.PersonAdapter; import com.fernandomantoan.ramaispti.android.entity.Person; import com.fernandomantoan.ramaispti.android.util.Telephony; /** * Lists the people found in the {@link SearchFragment} * * @author fernando */ public class PeopleFragment extends Fragment { // --------------------------------------------------------------------------------------------- // Attributes // --------------------------------------------------------------------------------------------- private PersonAdapter adapter; private ListView list; // --------------------------------------------------------------------------------------------- // Main Activity Overrides // --------------------------------------------------------------------------------------------- @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.people, container, false); List<Person> people = getArguments().getParcelableArrayList("array");////ver se é null // Sort by name Collections.sort(people, new Comparator<Person>() { @Override public int compare(Person onePerson, Person anotherPerson) { return onePerson.getName().compareTo(anotherPerson.getName()); } }); adapter = new PersonAdapter(getActivity(), R.layout.person_item, people); this.list = (ListView) view.findViewById(R.id.people); this.list.setAdapter(adapter); this.list.setOnItemClickListener(itemClickListener); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); final InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getView().getWindowToken(), 0); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(getActivity()); return true; } return super.onOptionsItemSelected(item); } // --------------------------------------------------------------------------------------------- // Handlers // --------------------------------------------------------------------------------------------- /** * When one person is selected, show the Dialer */ final OnItemClickListener itemClickListener = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapter, View view, int position, long arg3) { Person person = (Person) adapter.getItemAtPosition(position); if (person.getTelephone() == null || "".equals(person.getTelephone())) return; final String [] arrayTel = person.getTelephone().split("/"); if (arrayTel.length > 1) { NumberChoiceDialogFragment search = NumberChoiceDialogFragment.newInstance(arrayTel); search.show(getFragmentManager(), "searchFragment"); } else { // If the device has dialer and SIM card available if (Telephony.isTelephonyAvailable(getActivity())) { Uri number = Uri.parse("tel:" + person.getDiableTelephone()); Intent callIntent = new Intent(Intent.ACTION_DIAL, number); startActivity(callIntent); } } } }; }