package com.mobmonkey.mobmonkeyandroid.fragments;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.AdapterView.OnItemClickListener;
import com.mobmonkey.mobmonkeyandroid.R;
import com.mobmonkey.mobmonkeyandroid.arrayadapters.MMExistingHotSpotsArrayAdapter;
import com.mobmonkey.mobmonkeyandroid.arrayadapters.MMNearbyLocationsArrayAdapter;
import com.mobmonkey.mobmonkeyandroid.listeners.MMOnExistingHotSpotsFragmentCreateHotSpotClickListener;
import com.mobmonkey.mobmonkeyandroid.listeners.MMOnExistingHotSpotsFragmentItemClickListener;
import com.mobmonkey.mobmonkeyandroid.listeners.MMOnMasterLocationNearbyLocationsFragmentItemClickListener;
import com.mobmonkey.mobmonkeyandroid.listeners.MMOnNearbyLocationsItemClickListener;
import com.mobmonkey.mobmonkeyandroid.utils.MMExpandedListView;
import com.mobmonkey.mobmonkeyandroid.utils.MMFragment;
import com.mobmonkey.mobmonkeysdk.adapters.MMMakeARequestAdapter;
import com.mobmonkey.mobmonkeysdk.utils.MMSDKConstants;
/**
* @author Dezapp, LLC
*
*/
public class ExistingHotSpotsFragment extends MMFragment implements OnItemClickListener,
OnClickListener {
private static final String TAG = "ExistingHotSpotsFragment: ";
private JSONObject parentLocation;
private JSONArray subLocations;
private MMExpandedListView elvExistingHotSpots;
private Button btnCreateHotSpot;
private MMExistingHotSpotsArrayAdapter existingHotSpotsArrayAdapter;
private MMOnExistingHotSpotsFragmentItemClickListener existingHotSpotItemClickListener;
private MMOnExistingHotSpotsFragmentCreateHotSpotClickListener existingHotSpotsCreateHotSpotClickListener;
/* (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_existing_hot_spots, container, false);
elvExistingHotSpots = (MMExpandedListView) view.findViewById(R.id.elvexistinghotspots);
btnCreateHotSpot = (Button) view.findViewById(R.id.btncreatehotspot);
elvExistingHotSpots.setOnItemClickListener(ExistingHotSpotsFragment.this);
btnCreateHotSpot.setOnClickListener(ExistingHotSpotsFragment.this);
Log.d(TAG, TAG + "fragmentManager: " + getFragmentManager().findFragmentByTag(MMSDKConstants.MMSUPPORT_MAP_FRAGMENT_TAG));
try {
parentLocation = new JSONObject(getArguments().getString(MMSDKConstants.KEY_INTENT_EXTRA_EXISTING_HOT_SPOTS));
subLocations = parentLocation.getJSONArray(MMSDKConstants.JSON_KEY_SUB_LOCATIONS);
setExistingHotSpots();
} catch (JSONException e) {
e.printStackTrace();
}
return view;
}
/* (non-Javadoc)
* @see android.support.v4.app.Fragment#onAttach(android.app.Activity)
*/
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
if(activity instanceof MMOnExistingHotSpotsFragmentItemClickListener) {
existingHotSpotItemClickListener = (MMOnExistingHotSpotsFragmentItemClickListener) activity;
if(activity instanceof MMOnExistingHotSpotsFragmentCreateHotSpotClickListener) {
existingHotSpotsCreateHotSpotClickListener = (MMOnExistingHotSpotsFragmentCreateHotSpotClickListener) activity;
}
}
}
/* (non-Javadoc)
* @see android.widget.AdapterView.OnItemClickListener#onItemClick(android.widget.AdapterView, android.view.View, int, long)
*/
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
existingHotSpotItemClickListener.onExistingHotSpotsItemClick(existingHotSpotsArrayAdapter.getItem(position));
}
/* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View view) {
switch(view.getId()) {
case R.id.btncreatehotspot:
existingHotSpotsCreateHotSpotClickListener.onExistingHotSpotsCreateHotSpotClick(parentLocation, MMSDKConstants.REQUEST_CODE_EXISTING_HOT_SPOTS);
break;
}
}
/* (non-Javadoc)
* @see com.mobmonkey.mobmonkeyandroid.utils.MMFragment#onFragmentBackPressed()
*/
@Override
public void onFragmentBackPressed() {
}
private void setExistingHotSpots() throws JSONException {
ArrayList<JSONObject> existingHotSpots = new ArrayList<JSONObject>();
for(int i = 0; i < subLocations.length(); i++) {
existingHotSpots.add(subLocations.getJSONObject(i));
}
existingHotSpotsArrayAdapter = new MMExistingHotSpotsArrayAdapter(getActivity(), R.layout.listview_row_existing_hot_spots, existingHotSpots);
elvExistingHotSpots.setAdapter(existingHotSpotsArrayAdapter);
}
}