Exemplo n.º 1
0
  /**
   * Deletes the command set.
   *
   * @param pid process id
   * @param uid user id
   * @param setName command set name
   * @param featureType feature type
   * @return result
   */
  public int deleteSetLocked(int pid, int uid, String setName, int featureType) {

    int result = VoiceCommonState.SUCCESS;

    ProcessRecord processRecord = getProcessRecordLocked(pid, uid);
    ListenerRecord listenerRecord =
        processRecord == null ? null : processRecord.getListenerRecord(getFeatureName(featureType));

    if (processRecord == null || listenerRecord == null) {
      // Check whether is illegal process from third party application
      // Maybe third application connect service without using
      // VoiceCommandManager
      result = VoiceCommonState.PROCESS_ILLEGAL;
    } else {

      if (setName.equals(listenerRecord.getSetName())) {
        if (listenerRecord == processRecord.getSwipListenerRecord()) {
          // The setName already in used ,so we need to check state
          // Swip is using the set , so we can't delete the set
          result = VoiceCommonState.SET_OCCUPIED;
        } else {
          listenerRecord.setSetName(null);
        }
      }
      // Ask swip to delete the set
      // listenerRecord.selectSet(null);
      if (result == VoiceCommonState.SUCCESS) {
        String swipSet =
            ProcessRecord.getSetNameForSwip(
                processRecord.getProcssName(),
                processRecord.getPid(),
                getFeatureName(featureType),
                setName);
        result = mSwip.deleteSetName(swipSet);
      }
    }
    return result;
  }