Fixed ClassCastException for MilkFilterExposer

pull/14/head
Arne Jans 14 years ago
parent 229ffb278c
commit c1c6199082

@ -11,6 +11,7 @@ import android.content.BroadcastReceiver;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
@ -20,6 +21,7 @@ import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Join;
import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.AstridFilterExposer;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterCategory; import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListHeader; import com.todoroo.astrid.api.FilterListHeader;
@ -36,7 +38,7 @@ import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
* @author Tim Su <tim@todoroo.com> * @author Tim Su <tim@todoroo.com>
* *
*/ */
public class MilkFilterExposer extends BroadcastReceiver { public class MilkFilterExposer extends BroadcastReceiver implements AstridFilterExposer {
@Autowired private MilkListService milkListService; @Autowired private MilkListService milkListService;
@ -66,11 +68,20 @@ public class MilkFilterExposer extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
Resources r = context.getResources();
ContextManager.setContext(context); ContextManager.setContext(context);
FilterListItem[] list = prepareFilters(r);
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS);
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, MilkUtilities.IDENTIFIER);
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list);
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
}
private FilterListItem[] prepareFilters(Resources r) {
// if we aren't logged in, don't expose features // if we aren't logged in, don't expose features
if(!MilkUtilities.INSTANCE.isLoggedIn()) if(!MilkUtilities.INSTANCE.isLoggedIn())
return; return null;
DependencyInjectionService.getInstance().inject(this); DependencyInjectionService.getInstance().inject(this);
@ -78,24 +89,31 @@ public class MilkFilterExposer extends BroadcastReceiver {
// If user does not have any tags, don't show this section at all // If user does not have any tags, don't show this section at all
if(lists.length == 0) if(lists.length == 0)
return; return null;
Filter[] listFilters = new Filter[lists.length]; Filter[] listFilters = new Filter[lists.length];
for(int i = 0; i < lists.length; i++) for(int i = 0; i < lists.length; i++)
listFilters[i] = filterFromList(context, lists[i]); listFilters[i] = filterFromList(ContextManager.getContext(), lists[i]);
FilterListHeader rtmHeader = new FilterListHeader(context.getString(R.string.rmilk_FEx_header)); FilterListHeader rtmHeader = new FilterListHeader(ContextManager.getContext().getString(R.string.rmilk_FEx_header));
FilterCategory rtmLists = new FilterCategory(context.getString(R.string.rmilk_FEx_list), FilterCategory rtmLists = new FilterCategory(ContextManager.getContext().getString(R.string.rmilk_FEx_list),
listFilters); listFilters);
// transmit filter list // transmit filter list
FilterListItem[] list = new FilterListItem[2]; FilterListItem[] list = new FilterListItem[2];
list[0] = rtmHeader; list[0] = rtmHeader;
list[1] = rtmLists; list[1] = rtmLists;
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_FILTERS);
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, MilkUtilities.IDENTIFIER); return list;
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_RESPONSE, list); }
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
@Override
public FilterListItem[] getFilters() {
if (ContextManager.getContext() == null || ContextManager.getContext().getResources() == null)
return null;
Resources r = ContextManager.getContext().getResources();
return prepareFilters(r);
} }
} }

Loading…
Cancel
Save