[Demonstration 1]

[Buggy Method]
@Override
public final int getItemViewType(int position) {
    if (position == 0 && getDataCount() == 0) {
        return TYPE_LOADMORE;
    }
    if (enableLoadMore && position == getItemCount() - 1) {
        return TYPE_LOADMORE;
    }
    return getItemType(position);
}

[Buggy Hunk]
if(position==0&&getDataCount()==0){

[Patch]
if(position==0&&getDataCount()==0&&isenablePlaceHolder){

[Demonstration 2]

[Buggy Method]
protected void initData() {
    mFileCagetoryHelper = new FileCategoryHelper(mActivity);
    mFileViewInteractionHub = new FileViewInteractionHub(this);
    Intent intent = getActivity().getIntent();
    //TODO  delete
    mFileIconHelper = new FileIconHelper(mActivity);
    mViewMotionListener = new ViewOnGenericMotionListener();
    if ("list".equals(LocalCache.getViewTag())) {
        addHeadView(mActivity);
        mAdapter = new FileListAdapter(mActivity, R.layout.file_browser_item_list, mFileNameList, mFileViewInteractionHub, mFileIconHelper, mViewMotionListener);
    } else if ("grid".equals(LocalCache.getViewTag())) {
        mAdapter = new FileListAdapter(mActivity, R.layout.file_browser_item_grid, mFileNameList, mFileViewInteractionHub, mFileIconHelper, mViewMotionListener);
    }
    boolean baseSd = intent.getBooleanExtra(Constants.KEY_BASE_SD, !FileManagerPreferenceActivity.isReadRoot(mActivity));
    String rootDir = intent.getStringExtra(ROOT_DIRECTORY);
    if (!TextUtils.isEmpty(rootDir)) {
        if (baseSd && sdDir.startsWith(rootDir)) {
            rootDir = sdDir;
        }
    } else {
        rootDir = baseSd ? sdDir : Constants.ROOT_PATH;
    }
    mFileViewInteractionHub.setRootPath(rootDir);
    String currentDir = FileManagerPreferenceActivity.getPrimaryFolder(mActivity, sdOrSystem, directorPath);
    if (!mIsLeftItem) {
        mMainActivity.setCurPath(currentDir);
    }
    Uri uri = intent.getData();
    if (uri != null) {
        if (baseSd && sdDir.startsWith(uri.getPath())) {
            currentDir = sdDir;
        } else {
            currentDir = uri.getPath();
        }
    }
    mFileViewInteractionHub.setCurrentPath(currentDir);
    curRootDir = currentDir;
    Log.i(TAG, "CurrentDir = " + currentDir);
    operatorData();
    if (mFileInfoList != null && mFileInfoList.size() > 0) {
        mFileViewInteractionHub.setCheckedFileList(mFileInfoList, mCopyOrMove);
    }
    initReciever();
    updateUI();
    setHasOptionsMenu(true);
    mFileListInfo = mAdapter.getFileInfoList();
}

[Buggy Hunk]
mFileViewInteractionHub.setRootPath(rootDir);

[Patch]
mFileViewInteractionHub.setRootPath("/");

[Demonstration 3]

[Buggy Method]
@SuppressLint("NewApi")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.category_item, null);
        holder = new ViewHolder();
        holder.mName = (TextView) convertView.findViewById(R.id.category_item_name_tv);
        holder.mBg = (LinearLayout) convertView.findViewById(R.id.category_item_ll);
        holder.mSelectIv = (ImageView) convertView.findViewById(R.id.category_item_select_iv);
        holder.mIconIv = (ImageView) convertView.findViewById(R.id.category_item_icon_iv);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    holder.mSelectIv.setVisibility(View.INVISIBLE);
    holder.mIconIv.setVisibility(View.GONE);
    if (position == 0) {
        holder.mSelectIv.setVisibility(View.GONE);
        holder.mIconIv.setVisibility(View.VISIBLE);
        holder.mIconIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.white_wine));
        // holder.mIconIv.setBackground(mContext.getResources().getDrawable(
        // R.drawable.white_wine));
    }
    if (position != 0 && "true".equals(mDatas.get(position).getIsTopCategory())) {
        holder.mSelectIv.setVisibility(View.GONE);
        // holder.mBg.setBackgroundColor(mContext.getResources().getColor(
        // R.color.white));
        holder.mIconIv.setVisibility(View.VISIBLE);
        holder.mIconIv.setImageDrawable(mContext.getResources().getDrawable(R.drawable.red_wine));
        // holder.mIconIv.setBackground(mContext.getResources().getDrawable(
        // R.drawable.red_wine));
    }
    holder.mBg.setBackgroundColor(mContext.getResources().getColor(R.color.gray_category_normal_bg));
    holder.mName.setTextColor(mContext.getResources().getColor(R.color.white));
    if (mCurrentSelect.equals(mDatas.get(position).getPpid())) {
        // holder.mSelectIv.setVisibility(View.VISIBLE);
        holder.mBg.setBackgroundColor(mContext.getResources().getColor(R.color.gray_category_select_bg));
        holder.mName.setTextColor(mContext.getResources().getColor(R.color.black_character));
    }
    holder.mName.setText(mDatas.get(position).getPpmc());
    return convertView;
}

[Buggy Hunk]
.getDrawable(R.drawable.red_wine));

[Patch]
.getDrawable(R.drawable.white_wine));