package com.fernandomantoan.ramaispti.android.fragment;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
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.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.fernandomantoan.ramaispti.android.R;
import com.fernandomantoan.ramaispti.android.adapter.TelephoneAdapter;
import com.fernandomantoan.ramaispti.android.entity.LegalEntity;
import com.fernandomantoan.ramaispti.android.util.Telephony;
/**
* Fragment that appears in the "content_frame", shows the telephone list
*
* @author inovatic
*
*/
public class TelephonesFragment extends Fragment {
private TelephoneAdapter adapter;
private ListView list;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.telephone_list, container, false);
// lista de telefones Ășteis
List<LegalEntity> entities = getArguments().getParcelableArrayList("array");
Collections.sort(entities, new Comparator<LegalEntity>() {
@Override
public int compare(LegalEntity oneEntity, LegalEntity anotherEntity) {
return oneEntity.getEntityName().compareTo(
anotherEntity.getEntityName());
}
});
adapter = new TelephoneAdapter(getActivity(), R.layout.telephone_item,
entities);
this.list = (ListView) view.findViewById(R.id.telephones_list);
this.list.setAdapter(adapter);
this.list.setOnItemClickListener(itemClickListener);
setHasOptionsMenu(true);
return view;
}
@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) {
LegalEntity entity = (LegalEntity) adapter
.getItemAtPosition(position);
if (entity.getTelephone() == null
|| "".equals(entity.getTelephone()))
return;
final String[] arrayTel = entity.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:" + entity.getDiableTelephone());
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
startActivity(callIntent);
}
}
}
};
}