if (filterHandy && !(call.isMobileCall()))
if (filterHandy && (call.isMobileCall()))
	public void updateFilter() {		boolean filterCallIn = JFritzUtils.parseBoolean(jfritz.getProperties()				.getProperty("filter.callin"));		boolean filterCallInFailed = JFritzUtils.parseBoolean(jfritz				.getProperties().getProperty("filter.callinfailed"));		boolean filterCallOut = JFritzUtils.parseBoolean(jfritz.getProperties()				.getProperty("filter.callout"));		boolean filterNumber = JFritzUtils.parseBoolean(jfritz.getProperties()				.getProperty("filter.number"));		boolean filterHandy = JFritzUtils.parseBoolean(jfritz.getProperties()				.getProperty("filter.handy"));		boolean filterDate = JFritzUtils.parseBoolean(jfritz.getProperties()				.getProperty("filter.date"));		String filterSearch = jfritz.getProperties().getProperty(				"filter.search", "");		String filterDateFrom = jfritz.getProperties().getProperty(				"filter.date_from", "");		String filterDateTo = jfritz.getProperties().getProperty(				"filter.date_to", "");		Debug				.msg(3, "CallTypeFilter: " + filterCallIn + "|"						+ filterCallInFailed + "|" + filterCallOut + "|"						+ filterSearch);		try {			jfritz.getJframe().getCallertable().getCellEditor()					.cancelCellEditing();		} catch (NullPointerException e) {		}		if ((!filterCallIn) && (!filterCallInFailed) && (!filterCallOut)				&& (!filterNumber) && (!filterDate) && (!filterHandy)				&& (filterSearch.length() == 0)) {			// Use unfiltered data			filteredCallerData = unfilteredCallerData;			sortAllFilteredRowsBy(sortColumn, sortDirection);		} else { // Data got to be filtered			Enumeration en = unfilteredCallerData.elements();			Vector filteredcallerdata;			filteredcallerdata = new Vector();			while (en.hasMoreElements()) {				Call call = (Call) en.nextElement();				boolean dateFilterPassed = true;				boolean searchFilterPassed = true;				boolean handyFilterPassed = true;				// SearchFilter: Number, Participant, Date				String parts[] = filterSearch.split(" ");				for (int i = 0; i < parts.length; i++) {					String part = parts[i];					if (part.length() > 0							&& call.getNumber().indexOf(parts[i]) == -1							&& call.getParticipant().toLowerCase().indexOf(									part.toLowerCase()) == -1) {						searchFilterPassed = false;						break;					}				}				try {					if (filterDate							&& !(call.getCalldate().after(									new SimpleDateFormat("dd.MM.yy")											.parse(filterDateFrom)) && call									.getCalldate().before(											new SimpleDateFormat(													"dd.MM.yy HH:mm")													.parse(filterDateTo															+ " 23:59")))) {						dateFilterPassed = false;					}				} catch (ParseException e1) {				}				if (filterHandy && !(call.isMobileCall()))					handyFilterPassed = false;				if (searchFilterPassed && dateFilterPassed && handyFilterPassed)					if (!(filterNumber && call.getNumber().equals(""))) {						if ((!filterCallIn)								&& (call.getCalltype().toInt() == CallType.CALLIN))							filteredcallerdata.add(call);						else if ((!filterCallInFailed)								&& (call.getCalltype().toInt() == CallType.CALLIN_FAILED))							filteredcallerdata.add(call);						else if ((!filterCallOut)								&& (call.getCalltype().toInt() == CallType.CALLOUT))							filteredcallerdata.add(call);					}			}			filteredCallerData = filteredcallerdata;			sortAllFilteredRowsBy(sortColumn, sortDirection);		}		if (jfritz.getJframe() != null)			jfritz.getJframe().setStatus();	}