@Override
  public void onItemClick(View v, final int position, final AppInfo appInfo) {

    if (appInfo.getStatus() == AppInfo.STATUS_DOWNLOADING
        || appInfo.getStatus() == AppInfo.STATUS_CONNECTING) {
      if (isCurrentListViewItemVisible(position)) {
        DownloadManager.getInstance().pause(appInfo.getUrl());
      }
      return;
    } else if (appInfo.getStatus() == AppInfo.STATUS_COMPLETE) {
      if (isCurrentListViewItemVisible(position)) {
        Utils.installApp(getActivity(), new File(dir, appInfo.getName() + ".apk"));
      }
      return;
    } else if (appInfo.getStatus() == AppInfo.STATUS_INSTALLED) {
      if (isCurrentListViewItemVisible(position)) {
        Utils.unInstallApp(getActivity(), appInfo.getPackageName());
      }
    } else {
      download(position, appInfo);
    }
  }