package org.tvbrowser.filter;
import org.tvbrowser.tvbrowser.WhereClause;
import org.tvbrowser.utils.UiUtils;
import android.content.Context;
import android.view.ViewGroup;
public class FilterValuesKeyword extends FilterValues implements KeywordFilter {
private String mKeyword;
private String mColumn;
public FilterValuesKeyword() {
this("","");
}
public FilterValuesKeyword(String name, String values) {
super(name);
final String[] parts = values.split(";");
if(parts.length == 2) {
mKeyword = parts[0];
mColumn = parts[1];
}
else {
mKeyword = "";
mColumn = "";
}
}
public FilterValuesKeyword(String name, String keyword, String column) {
super(name);
mKeyword = keyword;
mColumn = column;
}
@Override
public String getColumn() {
return mColumn;
}
@Override
public String getKeyword() {
return mKeyword;
}
@Override
public void setFilterValues(String name, String keyword, String column) {
if(name != null && keyword != null && mColumn != null) {
mName = name;
mKeyword = keyword;
mColumn = column;
if(mCallback != null) {
mCallback.run();
}
mCallback = null;
}
}
@Override
public WhereClause getWhereClause(Context context) {
final StringBuilder where = new StringBuilder(" ");
where.append(" AND ( ").append(mColumn).append(" LIKE \"%").append(mKeyword.replaceAll("\\s+OR\\s+", "%\" OR "+mColumn+" LIKE \"%").replaceAll("\\s+AND\\s+", "%\" AND "+mColumn+" LIKE \"%")).append("%\" ) ");
return new WhereClause(where.toString(), null);
}
@Override
protected String getSaveString() {
return mKeyword+";"+mColumn;
}
private Runnable mCallback;
@Override
public void edit(Context context, Runnable callback, ViewGroup parent) {
mCallback = callback;
UiUtils.showKeywordSelection(context, this, parent, null);
}
}