Skip to content

Instantly share code, notes, and snippets.

@cloudshooterhuman
Created April 30, 2014 17:02
Show Gist options
  • Save cloudshooterhuman/9c1fcec308c9fa8dd4b1 to your computer and use it in GitHub Desktop.
Save cloudshooterhuman/9c1fcec308c9fa8dd4b1 to your computer and use it in GitHub Desktop.
package pro.app.fragments;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import pro.app.R;
import pro.app.adapters.ExpandableAdapter;
import pro.app.models.Item;
import pro.app.models.Secteur;
import pro.app.models.Ville;
import pro.app.sqlite.DatabaseHelper;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ExpandableListView;
import android.widget.Switch;
public class RechercheVilleSecteurFragment extends Fragment implements OnCheckedChangeListener, OnClickListener {
private Switch mSwitch;
// Button Rechercher
Button rechercher;
private LinkedHashMap<Item,ArrayList<Item>> groupList;
private ExpandableListView expandableListView;
Boolean uiRechercher = true;
String checked="actu";
List<String> ville_ids;
List<String> secteur_ids;
DatabaseHelper db;
Ville[] villes = new Ville[] {new Ville("0","Tout les villes"),new Ville("1","Agadir"),new Ville("2","Casablanca"),new Ville("3","El Jadida"),new Ville("4","Essaouira"),
new Ville("5","Fès"),new Ville("6","Ifrane"),new Ville("7","Kénitra"),new Ville("8","Marrakech"),
new Ville("9","Meknès"),new Ville("10","Mohammedia"),new Ville("11","Ouarzazate"),new Ville("12","Rabat"),
new Ville("13","Salé"),new Ville("14","Tanger"),new Ville("15","Témara"),new Ville("16","Tétouan")};
Secteur[] secteurs = new Secteur[] {new Secteur("99","Tous les secteurs"),new Secteur("100","Beauté & Bien-être"),new Secteur("101","Commerce"),new Secteur("102","Enseignement"),new Secteur("103","Evénementiel"),
new Secteur("104","Informatique"),new Secteur("105","Mode et Haute Couture"),new Secteur("106","Restauration"),
new Secteur("107","Santé"),new Secteur("108","Sport")};
public RechercheVilleSecteurFragment(){}
private void initViews(View view){
initFiltreList();
expandableListView = (ExpandableListView)view.findViewById(R.id.expandableListView);
ExpandableAdapter adapter = new ExpandableAdapter(RechercheVilleSecteurFragment.this.getActivity(), expandableListView, groupList);
expandableListView.setAdapter(adapter);
}
private void initFiltreList(){
groupList = new LinkedHashMap<Item,ArrayList<Item>>();
ArrayList<Item> groupsList = fetchGroups();
Log.i("GroupsListSize",String.valueOf(groupsList.size()));
//if(groupList.size()>0){
for(Item item:groupsList){
Log.i("Item id",item.id);
String[] ids = item.id.split(",");
ArrayList<Item> groupMembers =new ArrayList<Item>();
for(int i=0;i<ids.length;i++){
String groupId = ids[i];
Log.i("GroupId",groupId);
groupMembers.addAll(fetchGroupMembers(groupId));
}
item.name = item.name +" ("+groupMembers.size()+")";
groupList.put(item,groupMembers);
}
//}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getActivity().findViewById(R.id.bottom_bar).setVisibility(View.GONE);
getActivity().findViewById(R.id.bottom_bar_rechercher).setVisibility(View.VISIBLE);
getActivity().findViewById(R.id.main_activity_linear_layout).setVisibility(View.GONE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_recherhcer, container, false);
initViews(rootView);
return inflater.inflate(R.layout.fragment_recherhcer, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
this.getActivity().findViewById(R.id.ll_profil_actualite).setVisibility(View.VISIBLE);
//SWITCH TOGGLE BUTTON
this.mSwitch = (Switch) this.getView().findViewById(
R.id.switch_actu_prof);
//set the switch to ON
mSwitch.setChecked(true);
checked="prof";
//attach a listener to check for changes in state
mSwitch.setOnCheckedChangeListener(this);
//BUTTON RECHERCHER
rechercher = (Button)getActivity().findViewById(R.id.tab_rechercher);
rechercher.setOnClickListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked)
{
// actualité
checked = "prof";
}
else{
//professionels
checked = "actu";
}
}
@Override
public void onClick(View arg0) {
if(uiRechercher){
this.getActivity().findViewById(R.id.frame_container_rechercher).setVisibility(View.VISIBLE);
if(checked.equals("prof")){
// Caché la liste de recherche
this.getActivity().findViewById(R.id.ll_profil_actualite).setVisibility(View.GONE);
// Affichage de la liste professionels/actualités
// update the main content by replacing fragments
Fragment fragment = fragment = new ProfessionnelFragment(1,buildRequestParameters());
if (fragment != null) {
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container_rechercher, fragment).commit();
}
}
else{
// Caché la liste de recherche
this.getActivity().findViewById(R.id.ll_profil_actualite).setVisibility(View.GONE);
// Affichage de la liste professionels/actualités
// update the main content by replacing fragments
Fragment fragment = fragment = new ActualiteFragment(1,buildRequestParameters());
if (fragment != null) {
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container_rechercher, fragment).commit();
}
}
}
else{
// SparseBooleanArray checkedItemPositions = getListView().getCheckedItemPositions();
// checkedItemPositions.clear();
this.getActivity().findViewById(R.id.ll_profil_actualite).setVisibility(View.VISIBLE);
this.getActivity().findViewById(R.id.frame_container_rechercher).setVisibility(View.GONE);
}
uiRechercher = !uiRechercher;
}
// Les parametres de la requete
String buildRequestParameters(){
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("");
if(ville_ids.size()>0){
if(!ville_ids.contains("0")){
stringBuilder.append("?ville=");
for(String s : ville_ids){
stringBuilder.append(s);
stringBuilder.append(',');
}
stringBuilder.append("&");
}
else{
stringBuilder.append("?");
}
}
else{
stringBuilder.append("?");
}
if(secteur_ids.size()>0){
if(!secteur_ids.contains((db.getVillesCount()+1))){
stringBuilder.append("secteur=");
for(String s : secteur_ids){
stringBuilder.append(s);
stringBuilder.append(',');
}
}
}
return stringBuilder.toString();
}
private ArrayList<Item> fetchGroups(){
ArrayList<Item> groupList = new ArrayList<Item>();
groupList.add(new Item("Villes", "1", false));
groupList.add(new Item("Secteurs", "2",false));
return groupList;
}
private ArrayList<Item> fetchGroupMembers(String groupId){
ArrayList<Item> groupMembers = new ArrayList<Item>();
int i = 0;
if(groupId.equals("1")){
for(Ville v : villes)
{
groupMembers.add(new Item(v.getVilleName(), v.getId(), false));
i++;
}
}
if(groupId.equals("2")){
for(Secteur s : secteurs)
{
groupMembers.add(new Item(s.getSecteurName(), s.getId(), false));
i++;
}
}
return groupMembers;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment