Fixed ClassCastException for MilkFilterExposer

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

@ -11,6 +11,7 @@ import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import com.timsu.astrid.R;
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.QueryTemplate;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.AstridFilterExposer;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListHeader;
@ -36,7 +38,7 @@ import com.todoroo.astrid.data.TaskApiDao.TaskCriteria;
* @author Tim Su <tim@todoroo.com>
*
*/
public class MilkFilterExposer extends BroadcastReceiver {
public class MilkFilterExposer extends BroadcastReceiver implements AstridFilterExposer {
@Autowired private MilkListService milkListService;
@ -66,11 +68,20 @@ public class MilkFilterExposer extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Resources r = context.getResources();
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(!MilkUtilities.INSTANCE.isLoggedIn())
return;
return null;
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(lists.length == 0)
return;
return null;
Filter[] listFilters = new Filter[lists.length];
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));
FilterCategory rtmLists = new FilterCategory(context.getString(R.string.rmilk_FEx_list),
FilterListHeader rtmHeader = new FilterListHeader(ContextManager.getContext().getString(R.string.rmilk_FEx_header));
FilterCategory rtmLists = new FilterCategory(ContextManager.getContext().getString(R.string.rmilk_FEx_list),
listFilters);
// transmit filter list
FilterListItem[] list = new FilterListItem[2];
list[0] = rtmHeader;
list[1] = rtmLists;
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);
return list;
}
@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