Merge pull request #116 from StingerAJ/120110_aj_tabletfixes

120110 aj tabletfixes
pull/14/head
sbosley 14 years ago
commit d3be9240ae

@ -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);
} }
} }

@ -37,6 +37,24 @@ public class AstridWrapperActivity extends FragmentActivity
*/ */
protected boolean mMultipleFragments = false; protected boolean mMultipleFragments = false;
protected FilterListActivity getFilterListFragment() {
FilterListActivity frag = (FilterListActivity) getSupportFragmentManager()
.findFragmentById(R.id.filterlist_fragment);
if (frag == null || !frag.isInLayout())
return null;
return frag;
}
protected TaskListActivity getTaskListFragment() {
TaskListActivity frag = (TaskListActivity) getSupportFragmentManager()
.findFragmentById(R.id.tasklist_fragment);
if (frag == null || !frag.isInLayout())
return null;
return frag;
}
/* (non-Javadoc) /* (non-Javadoc)
* @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle) * @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
*/ */
@ -45,6 +63,19 @@ public class AstridWrapperActivity extends FragmentActivity
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
} }
/* (non-Javadoc)
* @see android.app.Activity#onNewIntent(android.content.Intent)
*/
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
FilterListActivity frag = getFilterListFragment();
if (frag != null) {
// forwarding for search-requests
frag.onNewIntent(intent);
}
}
/** /**
* Handles items being clicked from the filterlist-fragment. Return true if item is handled. * Handles items being clicked from the filterlist-fragment. Return true if item is handled.
*/ */

@ -26,9 +26,8 @@ public class FilterListWrapperActivity extends AstridWrapperActivity {
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
Fragment frag = (Fragment) getSupportFragmentManager() Fragment frag = getTaskListFragment();
.findFragmentById(R.id.tasklist_fragment); if (frag != null) {
if (frag != null && frag.isInLayout()) {
mMultipleFragments = true; mMultipleFragments = true;
} else { } else {
mMultipleFragments = false; mMultipleFragments = false;
@ -37,9 +36,8 @@ public class FilterListWrapperActivity extends AstridWrapperActivity {
@Override @Override
public void setTitle(CharSequence title) { public void setTitle(CharSequence title) {
Fragment frag = (Fragment) getSupportFragmentManager() Fragment frag = getTaskListFragment();
.findFragmentById(R.id.tasklist_fragment); if (frag != null)
if (frag != null && frag.isInLayout())
((TextView)frag.getView().findViewById(R.id.listLabel)).setText(title); ((TextView)frag.getView().findViewById(R.id.listLabel)).setText(title);
// update the actionbar-title // update the actionbar-title
getSupportActionBar().setTitle(title); getSupportActionBar().setTitle(title);

@ -25,9 +25,8 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
Fragment frag = (Fragment) getSupportFragmentManager() Fragment frag = getFilterListFragment();
.findFragmentById(R.id.filterlist_fragment); if (frag != null) {
if (frag != null && frag.isInLayout()) {
mMultipleFragments = true; mMultipleFragments = true;
} else { } else {
mMultipleFragments = false; mMultipleFragments = false;
@ -36,9 +35,8 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
@Override @Override
public void setTitle(CharSequence title) { public void setTitle(CharSequence title) {
Fragment frag = (Fragment) getSupportFragmentManager() Fragment frag = getTaskListFragment();
.findFragmentById(R.id.tasklist_fragment); if (frag != null)
if (frag != null && frag.isInLayout())
((TextView)frag.getView().findViewById(R.id.listLabel)).setText(title); ((TextView)frag.getView().findViewById(R.id.listLabel)).setText(title);
// update the actionbar-title // update the actionbar-title
getSupportActionBar().setTitle(title); getSupportActionBar().setTitle(title);

Loading…
Cancel
Save