Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81f4e405 authored by tobias's avatar tobias
Browse files

Merge branch 'new_list_style' of...

Merge branch 'new_list_style' of ssh://gitosis@git.dmfs.org:23023/android-tasks/tasks.git into new_list_style
parents b5070970 93e391e3
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
@@ -25,15 +25,8 @@ import java.util.List;
 * 
 * @author Marten Gajda <marten@dmfs.org>
 */
public abstract class AbstractFilter
public interface AbstractFilter
{
	/**
	 * The the selection part of this filter.
	 * 
	 * @return A selection string.
	 */
	public abstract String getSelection();


	/**
	 * Append the selection part of this filter to a {@link StringBuilder}. This is much more efficiently when you're using a StringBuilder anyway.
@@ -44,14 +37,6 @@ public abstract class AbstractFilter
	public abstract void getSelection(StringBuilder stringBuilder);


	/**
	 * Get the selection arguments of this filter.
	 * 
	 * @return An array of Strings that contains the actual positional arguments.
	 */
	public abstract String[] getSelectionArgs();


	/**
	 * Append the selection arguments of this filter to a {@link List} of {@link String}s.
	 * 
+3 −56
Original line number Diff line number Diff line
@@ -17,8 +17,6 @@

package org.dmfs.tasks.groupings.filters;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


@@ -27,7 +25,7 @@ import java.util.List;
 * 
 * @author Marten Gajda <marten@dmfs.org>
 */
public class BinaryOperationFilter extends AbstractFilter
public class BinaryOperationFilter implements AbstractFilter
{
	private final AbstractFilter[] mFilters;
	private final String mOperator;
@@ -48,57 +46,6 @@ public class BinaryOperationFilter extends AbstractFilter
	}


	@Override
	public final String getSelection()
	{
		AbstractFilter[] filters = mFilters;
		if (filters.length == 0)
		{
			// return a valid filter that always matches
			return "1=1";
		}

		StringBuilder selection = new StringBuilder(filters.length * 24); // assuming an average of 24 characters per filter

		boolean first = true;
		for (AbstractFilter filter : filters)
		{
			if (first)
			{
				first = false;
				selection.append("(");
			}
			else
			{
				selection.append(") ");
				selection.append(mOperator);
				selection.append(" (");
			}
			selection.append(filter.getSelection());
		}
		selection.append(")");

		return selection.toString();
	}


	@Override
	public final String[] getSelectionArgs()
	{
		AbstractFilter[] filters = mFilters;
		if (filters.length == 0)
		{
			return new String[] {};
		}
		ArrayList<String> result = new ArrayList<String>(filters.length + 8);
		for (AbstractFilter filter : filters)
		{
			result.addAll(Arrays.asList(filter.getSelectionArgs()));
		}
		return result.toArray(new String[result.size()]);
	}


	@Override
	public final void getSelection(StringBuilder stringBuilder)
	{
@@ -124,7 +71,7 @@ public class BinaryOperationFilter extends AbstractFilter
				stringBuilder.append(mOperator);
				stringBuilder.append(" (");
			}
			stringBuilder.append(filter.getSelection());
			filter.getSelection(stringBuilder);
		}
		stringBuilder.append(")");
	}
@@ -135,7 +82,7 @@ public class BinaryOperationFilter extends AbstractFilter
	{
		for (AbstractFilter filter : mFilters)
		{
			selectionArgs.addAll(Arrays.asList(filter.getSelectionArgs()));
			filter.getSelectionArgs(selectionArgs);
		}
	}
}
+1 −15
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ import java.util.List;
 * 
 * @author Marten Gajda <marten@dmfs.org>
 */
public final class ConstantFilter extends AbstractFilter
public final class ConstantFilter implements AbstractFilter
{
	private final String mSelection;
	private final String[] mSelectionArgs;
@@ -46,20 +46,6 @@ public final class ConstantFilter extends AbstractFilter
	}


	@Override
	public String getSelection()
	{
		return mSelection;
	}


	@Override
	public String[] getSelectionArgs()
	{
		return mSelectionArgs;
	}


	@Override
	public void getSelection(StringBuilder stringBuilder)
	{