/** @param context */
  public AppPermssionView(Context context, AppItem appItem) {
    super(context);

    setBackgroundColor(getResources().getColor(R.color.content_bg_color));
    this.appItem = appItem;

    // ���Ȩ���б�
    taskMark = marketContext.getTaskMarkPool().createAppPermissionTaskMark(appItem.getId());
    if (appItem.getPermissionList().size() == 0) {
      addView(R.layout.progressbar_view_l_r);
      marketContext.getServiceWraper().getAppPermissionList(this, taskMark, null, appItem.getId());
    } else {
      handleInitShowPermissionList();
    }
  }
  @Override
  public void handleResult(OperateResult result) {
    AppItem appItem = (AppItem) result.getResultData();
    ATaskMark taskMark = result.getTaskMark();
    if (appItem != null) {
      // ����ظ�����ͬһ������ĸ�Ҫ��Ϣ�Ļ��������滻��ʹ�þ�ֵ
      AppItem oldAppItem = appCahceManager.getAppItemById(appItem.getId());
      if (oldAppItem != null) {
        trackerResult = oldAppItem;

      } else {
        appCahceManager.addAppItemToCache(appItem);
        trackerResult = appItem;
      }

    } else {
      taskMark.setTaskStatus(ATaskMark.HANDLE_ERROR);
    }
  }
  // ��ʼ��Ȩ���б�
  private void handleInitShowPermissionList() {
    // �б���ͼ
    removeAllViews();
    addView(R.layout.app_permission);

    // ��ʼ��Ȩ���б�
    LinearLayout showPermissionList = (LinearLayout) findViewById(R.id.showPermissionList);
    LinearLayout hidePermissionList = (LinearLayout) findViewById(R.id.hidePermissionList);
    List<AppPermission> permList = appItem.getPermissionList();
    View permissionView = null;
    LayoutInflater layoutInflater = LayoutInflater.from(getContext());
    for (AppPermission appPermission : permList) {
      if (appPermission.isHide()) {
        permissionView = layoutInflater.inflate(R.layout.permision_less_item, null);
        hidePermissionList.addView(permissionView);
      } else {
        permissionView = layoutInflater.inflate(R.layout.permision_item, null);
        showPermissionList.addView(permissionView);
      }
      ((TextView) permissionView.findViewById(R.id.permissionTitleLabel))
          .setText(appPermission.getTitle());
      ((TextView) permissionView.findViewById(R.id.permissionDesLabel))
          .setText(appPermission.getDes());
    }

    // ��ʾ���ص�Ȩ��
    View view = findViewById(R.id.showHidePermissionView);
    if (hidePermissionList.getChildCount() == 0) {
      view.setVisibility(View.GONE);
      hidePermissionList.setVisibility(View.GONE);
    } else {
      view.setOnClickListener(this);
      // ��ʼʱ�۵���
      view.setTag(false);
    }
  }