@@ -0,0 +1,1772 @@
+package com.agiliq.android.moreappslib;%0A%0Aimport android.app.Activity;%0Aimport android.content.Context;%0Aimport android.view.LayoutInflater;%0Aimport android.view.View;%0Aimport android.view.ViewGroup;%0Aimport android.widget.ArrayAdapter;%0Aimport android.widget.ImageView;%0Aimport android.widget.TextView;%0A%0Apublic class GridItemAdapter extends ArrayAdapter%3CGridItemData%3E %7B%0A    private final Context context;%0A    private final int gridCellLayoutResource;%0A    private final GridItemData%5B%5D gridItems;%0A%0A    public GridItemAdapter(Context context, int gridCellLayoutResource, GridItemData%5B%5D gridItems) %7B%0A        super(context, gridCellLayoutResource, gridItems);%0A        this.context = context;%0A        this.gridCellLayoutResource = gridCellLayoutResource;%0A        this.gridItems = gridItems;%0A    %7D%0A%0A    @Override%0A    public View getView(int position, View gridCell, ViewGroup parent) %7B%0A        GridItemHolder holder;%0A%0A        if (gridCell != null) %7B%0A            holder = (GridItemHolder) gridCell.getTag();%0A        %7D else %7B%0A            LayoutInflater inflater = ((Activity) context).getLayoutInflater();%0A            gridCell = inflater.inflate(gridCellLayoutResource, parent, false);%0A%0A            holder = new GridItemHolder();%0A            holder.imageView = (ImageView) gridCell.findViewById(R.id.mal_imageView);%0A            holder.textView = (TextView) gridCell.findViewById(R.id.mal_textView);%0A%0A            gridCell.setTag(holder);%0A        %7D%0A%0A        GridItemData gridItem = gridItems%5Bposition%5D;%0A        holder.imageView.setImageResource(gridItem.getShowcasedAppIconDrawableResource());%0A        holder.textView.setText(gridItem.getShowcasedAppName());%0A%0A        return gridCell;%0A    %7D%0A%0A    static class GridItemHolder %7B%0A        ImageView imageView;%0A        TextView textView;%0A    %7D%0A%7D%0A

Add adapter class for the custom layout