Task list menu cleanup

pull/384/head
Alex Baker 10 years ago
parent da3d2a26e1
commit ef017bbf13

@ -6,6 +6,7 @@
package com.todoroo.astrid.gtasks; package com.todoroo.astrid.gtasks;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem; import android.view.MenuItem;
import com.todoroo.andlib.data.Property; import com.todoroo.andlib.data.Property;
@ -71,6 +72,12 @@ public class GtasksListFragment extends SubtasksListFragment {
((OrderedMetadataListFragmentHelper<GtasksList>)helper).setList(list); ((OrderedMetadataListFragmentHelper<GtasksList>)helper).setList(list);
} }
@Override
protected void inflateMenu(Toolbar toolbar) {
super.inflateMenu(toolbar);
toolbar.inflateMenu(R.menu.menu_gtasks_list_fragment);
}
@Override @Override
public void onSaveInstanceState(Bundle outState) { public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);

@ -5,20 +5,33 @@
*/ */
package com.todoroo.astrid.actfm; package com.todoroo.astrid.actfm;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.activity.TaskListFragment;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.TagFilter; import com.todoroo.astrid.api.TagFilter;
import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.dao.TagDataDao; import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.tags.TagFilterExposer;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.injection.FragmentComponent; import org.tasks.injection.FragmentComponent;
import javax.inject.Inject; import javax.inject.Inject;
public class TagViewFragment extends TaskListFragment { public class TagViewFragment extends TaskListFragment {
private static final int REQUEST_EDIT_TAG = 11543;
public static TaskListFragment newTagViewFragment(TagFilter filter, TagData tagData) { public static TaskListFragment newTagViewFragment(TagFilter filter, TagData tagData) {
TagViewFragment fragment = new TagViewFragment(); TagViewFragment fragment = new TagViewFragment();
fragment.filter = filter; fragment.filter = filter;
@ -29,6 +42,7 @@ public class TagViewFragment extends TaskListFragment {
private static final String EXTRA_TAG_DATA = "extra_tag_data"; private static final String EXTRA_TAG_DATA = "extra_tag_data";
@Inject TagDataDao tagDataDao; @Inject TagDataDao tagDataDao;
@Inject Broadcaster broadcaster;
protected TagData tagData; protected TagData tagData;
@ -41,6 +55,56 @@ public class TagViewFragment extends TaskListFragment {
} }
} }
@Override
protected void inflateMenu(Toolbar toolbar) {
super.inflateMenu(toolbar);
toolbar.inflateMenu(R.menu.menu_tag_view_fragment);
}
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_tag_settings:
startActivityForResult(new Intent(getActivity(), TagSettingsActivity.class) {{
putExtra(TagSettingsActivity.EXTRA_TAG_DATA, tagData);
}}, REQUEST_EDIT_TAG);
return true;
default:
return super.onMenuItemClick(item);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_EDIT_TAG) {
if (resultCode == Activity.RESULT_OK) {
String action = data.getAction();
String uuid = data.getStringExtra(TagSettingsActivity.EXTRA_TAG_UUID);
TaskListActivity activity = (TaskListActivity) getActivity();
if (AstridApiConstants.BROADCAST_EVENT_TAG_RENAMED.equals(action)) {
if (tagData.getUuid().equals(uuid)) {
TagData newTagData = tagDataDao.fetch(uuid, TagData.PROPERTIES);
if (newTagData != null) {
Filter filter = TagFilterExposer.filterFromTag(newTagData);
activity.onFilterItemClicked(filter);
}
}
} else if (AstridApiConstants.BROADCAST_EVENT_TAG_DELETED.equals(action)) {
String activeUuid = tagData.getUuid();
if (activeUuid.equals(uuid)) {
activity.onFilterItemClicked(BuiltInFilterExposer.getMyTasksFilter(getResources()));
activity.clearNavigationDrawer(); // Should auto refresh
}
}
activity.refreshNavigationDrawer();
broadcaster.refresh();
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override @Override
public void onActivityCreated(final Bundle savedInstanceState) { public void onActivityCreated(final Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
@ -55,10 +119,6 @@ public class TagViewFragment extends TaskListFragment {
outState.putParcelable(EXTRA_TAG_DATA, tagData); outState.putParcelable(EXTRA_TAG_DATA, tagData);
} }
public TagData getTagData() {
return tagData;
}
@Override @Override
protected void initiateAutomaticSyncImpl() { protected void initiateAutomaticSyncImpl() {
if (tagData != null) { if (tagData != null) {

@ -44,7 +44,6 @@ import com.todoroo.andlib.sql.Join;
import com.todoroo.andlib.sql.QueryTemplate; import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.actfm.FilterSettingsActivity; import com.todoroo.astrid.actfm.FilterSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.adapter.TaskAdapter; import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener; import com.todoroo.astrid.adapter.TaskAdapter.OnCompletedTaskListener;
@ -54,10 +53,8 @@ import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.core.BuiltInFilterExposer; import com.todoroo.astrid.core.BuiltInFilterExposer;
import com.todoroo.astrid.core.SortHelper; import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.dao.TagDataDao;
import com.todoroo.astrid.dao.TaskAttachmentDao; import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment; import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.gtasks.GtasksListFragment; import com.todoroo.astrid.gtasks.GtasksListFragment;
@ -69,7 +66,6 @@ import com.todoroo.astrid.service.TaskDuplicator;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksListFragment; import com.todoroo.astrid.subtasks.SubtasksListFragment;
import com.todoroo.astrid.subtasks.SubtasksTagListFragment; import com.todoroo.astrid.subtasks.SubtasksTagListFragment;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.timers.TimerPlugin; import com.todoroo.astrid.timers.TimerPlugin;
import com.todoroo.astrid.voice.VoiceInputAssistant; import com.todoroo.astrid.voice.VoiceInputAssistant;
@ -117,7 +113,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
public static final String TAG_TASKLIST_FRAGMENT = "tasklist_fragment"; //$NON-NLS-1$ public static final String TAG_TASKLIST_FRAGMENT = "tasklist_fragment"; //$NON-NLS-1$
public static final int VOICE_RECOGNITION_REQUEST_CODE = 1234; public static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
private static final int REQUEST_EDIT_TAG = 11543;
private static final int REQUEST_EDIT_FILTER = 11544; private static final int REQUEST_EDIT_FILTER = 11544;
private static final int REQUEST_SORT = 11545; private static final int REQUEST_SORT = 11545;
@ -148,7 +143,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
@Inject CheckBoxes checkBoxes; @Inject CheckBoxes checkBoxes;
@Inject VoiceInputAssistant voiceInputAssistant; @Inject VoiceInputAssistant voiceInputAssistant;
@Inject TaskCreator taskCreator; @Inject TaskCreator taskCreator;
@Inject TagDataDao tagDataDao;
@Inject Broadcaster broadcaster; @Inject Broadcaster broadcaster;
@Bind(R.id.swipe_layout) SwipeRefreshLayout swipeRefreshLayout; @Bind(R.id.swipe_layout) SwipeRefreshLayout swipeRefreshLayout;
@ -263,7 +257,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
callbacks.onNavigationIconClicked(); callbacks.onNavigationIconClicked();
} }
}); });
toolbar.inflateMenu(R.menu.task_list_fragment); inflateMenu(toolbar);
Menu menu = toolbar.getMenu(); Menu menu = toolbar.getMenu();
for (int i = 0 ; i < menu.size() ; i++) { for (int i = 0 ; i < menu.size() ; i++) {
MenuColorizer.colorMenuItem(menu.getItem(i), getResources().getColor(android.R.color.white)); MenuColorizer.colorMenuItem(menu.getItem(i), getResources().getColor(android.R.color.white));
@ -274,8 +268,14 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
return parent; return parent;
} }
protected void inflateMenu(Toolbar toolbar) {
toolbar.inflateMenu(R.menu.menu_task_list_fragment);
if (filter instanceof CustomFilter && ((CustomFilter) filter).getId() > 0) {
toolbar.inflateMenu(R.menu.menu_custom_filter);
}
}
private void setupMenu(Menu menu) { private void setupMenu(Menu menu) {
TaskListFragment tlf = this;
MenuItem hidden = menu.findItem(R.id.menu_show_hidden); MenuItem hidden = menu.findItem(R.id.menu_show_hidden);
if (preferences.getBoolean(R.string.p_show_hidden_tasks, false)) { if (preferences.getBoolean(R.string.p_show_hidden_tasks, false)) {
hidden.setChecked(true); hidden.setChecked(true);
@ -284,20 +284,13 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
if (preferences.getBoolean(R.string.p_show_completed_tasks, false)) { if (preferences.getBoolean(R.string.p_show_completed_tasks, false)) {
completed.setChecked(true); completed.setChecked(true);
} }
if (tlf instanceof GtasksListFragment) { if (this instanceof GtasksListFragment) {
menu.findItem(R.id.menu_clear_completed).setVisible(true);
menu.findItem(R.id.menu_sort).setVisible(false); menu.findItem(R.id.menu_sort).setVisible(false);
completed.setChecked(true); completed.setChecked(true);
completed.setEnabled(false); completed.setEnabled(false);
} else if(tlf instanceof TagViewFragment) {
menu.findItem(R.id.menu_tag_settings).setVisible(true);
} else {
if(filter instanceof CustomFilter && ((CustomFilter) filter).getId() > 0) {
menu.findItem(R.id.menu_filter_settings).setVisible(true);
}
} }
if (tlf instanceof SubtasksTagListFragment || tlf instanceof SubtasksListFragment) { if (this instanceof SubtasksTagListFragment || this instanceof SubtasksListFragment) {
hidden.setChecked(true); hidden.setChecked(true);
hidden.setEnabled(false); hidden.setEnabled(false);
} }
@ -348,11 +341,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
putExtra(SortActivity.EXTRA_MANUAL_ENABLED, hasDraggableOption()); putExtra(SortActivity.EXTRA_MANUAL_ENABLED, hasDraggableOption());
}}, REQUEST_SORT); }}, REQUEST_SORT);
return true; return true;
case R.id.menu_tag_settings:
startActivityForResult(new Intent(getActivity(), TagSettingsActivity.class) {{
putExtra(TagSettingsActivity.EXTRA_TAG_DATA, ((TagViewFragment) TaskListFragment.this).getTagData());
}}, REQUEST_EDIT_TAG);
return true;
case R.id.menu_show_hidden: case R.id.menu_show_hidden:
item.setChecked(!item.isChecked()); item.setChecked(!item.isChecked());
preferences.setBoolean(R.string.p_show_hidden_tasks, item.isChecked()); preferences.setBoolean(R.string.p_show_hidden_tasks, item.isChecked());
@ -740,32 +728,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
}; };
voiceInputAssistant.handleActivityResult(data, quickAddTask); voiceInputAssistant.handleActivityResult(data, quickAddTask);
} }
} else if (requestCode == REQUEST_EDIT_TAG) {
if (resultCode == Activity.RESULT_OK) {
String action = data.getAction();
String uuid = data.getStringExtra(TagSettingsActivity.EXTRA_TAG_UUID);
if (this instanceof TagViewFragment) {
TagData tagData = ((TagViewFragment) this).getTagData();
if (AstridApiConstants.BROADCAST_EVENT_TAG_RENAMED.equals(action)) {
if (tagData.getUuid().equals(uuid)) {
TagData newTagData = tagDataDao.fetch(uuid, TagData.PROPERTIES);
if (newTagData != null) {
Filter filter = TagFilterExposer.filterFromTag(newTagData);
((TaskListActivity) getActivity()).onFilterItemClicked(filter);
}
}
} else if (AstridApiConstants.BROADCAST_EVENT_TAG_DELETED.equals(action)) {
String activeUuid = tagData.getUuid();
if (activeUuid.equals(uuid)) {
((TaskListActivity) getActivity()).onFilterItemClicked(BuiltInFilterExposer.getMyTasksFilter(getResources()));
((TaskListActivity) getActivity()).clearNavigationDrawer(); // Should auto refresh
}
}
}
((TaskListActivity) getActivity()).refreshNavigationDrawer();
broadcaster.refresh();
}
} else if (requestCode == REQUEST_EDIT_FILTER) { } else if (requestCode == REQUEST_EDIT_FILTER) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
String action = data.getAction(); String action = data.getAction();

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_filter_settings"
android:title="@string/filter_settings"
app:showAsAction="never" />
</menu>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_clear_completed"
android:title="@string/gtasks_GTA_clear_completed"
app:showAsAction="never" />
</menu>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_tag_settings"
android:title="@string/tag_settings"
app:showAsAction="never" />
</menu>

@ -30,19 +30,4 @@
android:title="@string/show_completed" android:title="@string/show_completed"
android:checkable="true" /> android:checkable="true" />
</group> </group>
<item
android:id="@+id/menu_clear_completed"
android:title="@string/gtasks_GTA_clear_completed"
android:visible="false"
app:showAsAction="never" />
<item
android:id="@+id/menu_tag_settings"
android:title="@string/tag_settings"
android:visible="false"
app:showAsAction="never" />
<item
android:id="@+id/menu_filter_settings"
android:title="@string/filter_settings"
android:visible="false"
app:showAsAction="never" />
</menu> </menu>
Loading…
Cancel
Save