package com.ijoomer.src;
import android.annotation.SuppressLint;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import com.androidquery.AQuery;
import com.ijoomer.common.classes.IjoomerSuperMaster;
import com.ijoomer.common.classes.ViewHolder;
import com.ijoomer.common.configuration.IjoomerGlobalConfiguration;
import com.ijoomer.custom.interfaces.IjoomerSharedPreferences;
import com.ijoomer.customviews.IjoomerTextView;
import com.smart.framework.ItemView;
import com.smart.framework.SmartActivity;
import com.smart.framework.SmartApplication;
import com.smart.framework.SmartFragment;
import com.smart.framework.SmartListAdapterWithHolder;
import com.smart.framework.SmartListItem;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
/**
* This Fragment Contains All Method Related To IjoomerHomeFragment.
*
* @author tasol
*
*/
@SuppressLint("ValidFragment")
public class IjoomerHomeFragment extends SmartFragment implements IjoomerSharedPreferences {
private GridView grdHome;
private AQuery androidQuery;
private ArrayList<SmartListItem> dataHomeMenu;
private SmartListAdapterWithHolder gridAdapter;
private JSONArray data;
private final String ICON = "icon";
private final String ITEMVIEW = "itemview";
private final String ITEMCAPTION = "itemcaption";
private int startCount;
private int endCount;
/**
* Constructor
*
* @param start
* start index
* @param end
* end index
* @param itemData
* json array data
*/
public IjoomerHomeFragment(int start, int end, JSONArray itemData) {
startCount = start;
endCount = end;
data = itemData;
}
/**
* Overrides methods
*/
@Override
public int setLayoutId() {
return R.layout.ijoomer_home_grid;
}
@Override
public View setLayoutView() {
return null;
}
@Override
public void initComponents(View currentView) {
androidQuery = new AQuery(getActivity());
dataHomeMenu = new ArrayList<SmartListItem>();
grdHome = (GridView) currentView.findViewById(R.id.grdHome);
}
@Override
public void prepareViews(View currentView) {
prepareGrid();
gridAdapter = getHomeMenuAdapter();
grdHome.setAdapter(gridAdapter);
}
@Override
public void setActionListeners(View currentView) {
grdHome.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
try {
JSONObject object = (JSONObject) gridAdapter.getItem(arg2).getValues().get(0);
((IjoomerSuperMaster) getActivity()).launchActivity(object);
} catch (Exception e) {
}
}
});
}
/**
* Class methods
*/
/**
* This method used to prepare list home icon grid.
*/
private void prepareGrid() {
dataHomeMenu.clear();
for (int i = startCount; i < endCount; i++) {
try {
JSONObject objItem = data.getJSONObject(i);
if (objItem.getString(ITEMVIEW).equals("Login") && (SmartApplication.REF_SMART_APPLICATION.readSharedPreferences().getString(SP_LOGIN_REQ_OBJECT, null)) != null) {
objItem.put("logout", "logout");
}
if (!objItem.has(ICON)) {
ArrayList<HashMap<String, String>> iconData = IjoomerGlobalConfiguration.getSideMenuIcon(getActivity(), objItem.getString(ITEMVIEW));
if (iconData != null && iconData.size() > 0) {
objItem.put(ICON, iconData.get(0).get(ICON));
}
}
SmartListItem item = new SmartListItem();
item.setItemLayout(R.layout.ijoomer_home_grid_menuitem);
ArrayList<Object> obj = new ArrayList<Object>();
obj.add(objItem);
item.setValues(obj);
dataHomeMenu.add(item);
} catch (Exception e) {
}
}
}
/**
* List adapter for home icon grid.
*/
private SmartListAdapterWithHolder getHomeMenuAdapter() {
SmartListAdapterWithHolder listAdapterWithHolder = new SmartListAdapterWithHolder(getActivity(), R.layout.ijoomer_home_grid_menuitem, dataHomeMenu, new ItemView() {
@Override
public View setItemView(int position, View v, SmartListItem item, ViewHolder holder) {
holder.imgMenuItemicon = (ImageView) v.findViewById(R.id.imgMenuItemicon);
holder.txtMenuItemCaption = (IjoomerTextView) v.findViewById(R.id.txtMenuItemCaption);
final JSONObject obj = (JSONObject) item.getValues().get(0);
if (obj.has("logout")) {
holder.txtMenuItemCaption.setText(getString(R.string.logout));
holder.imgMenuItemicon.setImageResource(R.drawable.logout);
} else {
try {
holder.txtMenuItemCaption.setText(obj.getString(ITEMCAPTION));
if (obj.has(ICON)) {
androidQuery.id(holder.imgMenuItemicon).image(obj.getString(ICON), true, true, ((SmartActivity) getActivity()).getDeviceWidth(), 0);
}
} catch (Exception e) {
}
}
return v;
}
@Override
public View setItemView(int position, View v, SmartListItem item) {
return null;
}
});
return listAdapterWithHolder;
}
}