Merge remote-tracking branch 'upstream/master' into 120712_sb_in_app_billing

pull/14/head
Sam Bosley 13 years ago
commit 12cab2e912

@ -289,7 +289,15 @@ public class TagUpdatesFragment extends ListFragment {
return; return;
MenuItem item; MenuItem item;
if(actFmPreferenceService.isLoggedIn()) { boolean showCommentsRefresh = actFmPreferenceService.isLoggedIn();
if (showCommentsRefresh) {
Activity activity = getActivity();
if (activity instanceof TaskListActivity) {
TaskListActivity tla = (TaskListActivity) activity;
showCommentsRefresh = tla.getTaskEditFragment() == null;
}
}
if(showCommentsRefresh) {
item = menu.add(Menu.NONE, MENU_REFRESH_ID, Menu.NONE, item = menu.add(Menu.NONE, MENU_REFRESH_ID, Menu.NONE,
R.string.ENA_refresh_comments); R.string.ENA_refresh_comments);
item.setIcon(R.drawable.icn_menu_refresh_dark); item.setIcon(R.drawable.icn_menu_refresh_dark);

@ -123,7 +123,8 @@ public class TagViewFragment extends TaskListFragment {
((EditText) getView().findViewById(R.id.quickAddText)).setOnTouchListener(onTouch); ((EditText) getView().findViewById(R.id.quickAddText)).setOnTouchListener(onTouch);
View membersEdit = getView().findViewById(R.id.members_edit); View membersEdit = getView().findViewById(R.id.members_edit);
membersEdit.setOnClickListener(settingsListener); if (membersEdit != null)
membersEdit.setOnClickListener(settingsListener);
originalFilter = filter; originalFilter = filter;
} }
@ -165,8 +166,9 @@ public class TagViewFragment extends TaskListFragment {
if (!Preferences.getBoolean(R.string.p_showed_list_settings_help, false)) { if (!Preferences.getBoolean(R.string.p_showed_list_settings_help, false)) {
Preferences.setBoolean(R.string.p_showed_list_settings_help, true); Preferences.setBoolean(R.string.p_showed_list_settings_help, true);
View tabView = getView().findViewById(R.id.members_edit); View tabView = getView().findViewById(R.id.members_edit);
HelpInfoPopover.showPopover(getActivity(), tabView, if (tabView != null)
R.string.help_popover_list_settings, null); HelpInfoPopover.showPopover(getActivity(), tabView,
R.string.help_popover_list_settings, null);
} }
} }
@ -214,10 +216,10 @@ public class TagViewFragment extends TaskListFragment {
} }
postLoadTagData(); postLoadTagData();
setUpMembersGallery();
super.initializeData(); super.initializeData();
setUpMembersGallery();
if (extras.getBoolean(TOKEN_START_ACTIVITY, false)) { if (extras.getBoolean(TOKEN_START_ACTIVITY, false)) {
extras.remove(TOKEN_START_ACTIVITY); extras.remove(TOKEN_START_ACTIVITY);
activity.showComments(); activity.showComments();
@ -334,12 +336,15 @@ public class TagViewFragment extends TaskListFragment {
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
} }
getView().findViewById(R.id.filter_assigned).setOnClickListener(new OnClickListener() {
@Override View filterAssigned = getView().findViewById(R.id.filter_assigned);
public void onClick(View v) { if (filterAssigned != null)
resetAssignedFilter(); filterAssigned.setOnClickListener(new OnClickListener() {
} @Override
}); public void onClick(View v) {
resetAssignedFilter();
}
});
} }
@SuppressWarnings("nls") @SuppressWarnings("nls")
@ -395,11 +400,13 @@ public class TagViewFragment extends TaskListFragment {
Criterion assigned = Criterion.and(TaskCriteria.activeAndVisible(), assignedCriterion); Criterion assigned = Criterion.and(TaskCriteria.activeAndVisible(), assignedCriterion);
filter = TagFilterExposer.filterFromTag(getActivity(), new Tag(tagData), assigned); filter = TagFilterExposer.filterFromTag(getActivity(), new Tag(tagData), assigned);
TextView filterByAssigned = (TextView) getView().findViewById(R.id.filter_assigned); TextView filterByAssigned = (TextView) getView().findViewById(R.id.filter_assigned);
filterByAssigned.setVisibility(View.VISIBLE); if (filterByAssigned != null) {
if (id == Task.USER_ID_UNASSIGNED) filterByAssigned.setVisibility(View.VISIBLE);
filterByAssigned.setText(getString(R.string.actfm_TVA_filter_by_unassigned)); if (id == Task.USER_ID_UNASSIGNED)
else filterByAssigned.setText(getString(R.string.actfm_TVA_filter_by_unassigned));
filterByAssigned.setText(getString(R.string.actfm_TVA_filtered_by_assign, displayName)); else
filterByAssigned.setText(getString(R.string.actfm_TVA_filtered_by_assign, displayName));
}
setUpTaskList(); setUpTaskList();
} }
} }
@ -416,7 +423,9 @@ public class TagViewFragment extends TaskListFragment {
private void resetAssignedFilter() { private void resetAssignedFilter() {
currentId = Task.USER_ID_IGNORE; currentId = Task.USER_ID_IGNORE;
filter = originalFilter; filter = originalFilter;
getView().findViewById(R.id.filter_assigned).setVisibility(View.GONE); View filterAssigned = getView().findViewById(R.id.filter_assigned);
if (filterAssigned != null)
filterAssigned.setVisibility(View.GONE);
setUpTaskList(); setUpTaskList();
} }

@ -17,10 +17,14 @@ import android.view.View;
import android.view.ViewGroup.OnHierarchyChangeListener; import android.view.ViewGroup.OnHierarchyChangeListener;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.andlib.utility.TodorooPreferenceActivity; import com.todoroo.andlib.utility.TodorooPreferenceActivity;
import com.todoroo.astrid.actfm.ActFmLoginActivity;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
/** /**
* Displays synchronization preferences and an action panel so users can * Displays synchronization preferences and an action panel so users can
@ -37,6 +41,9 @@ public class BackupPreferences extends TodorooPreferenceActivity {
private int statusColor = Color.BLACK; private int statusColor = Color.BLACK;
@Autowired
private ActFmPreferenceService actFmPreferenceService;
@Override @Override
public int getPreferenceResource() { public int getPreferenceResource() {
return R.xml.preferences_backup; return R.xml.preferences_backup;
@ -45,6 +52,7 @@ public class BackupPreferences extends TodorooPreferenceActivity {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
DependencyInjectionService.getInstance().inject(this);
getListView().setOnHierarchyChangeListener(new OnHierarchyChangeListener() { getListView().setOnHierarchyChangeListener(new OnHierarchyChangeListener() {
@Override @Override
@ -68,6 +76,14 @@ public class BackupPreferences extends TodorooPreferenceActivity {
return false; return false;
} }
}); });
findPreference(getString(R.string.backup_BAc_cloud)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
initiateCloudBackup();
return false;
}
});
} }
@Override @Override
@ -133,4 +149,14 @@ public class BackupPreferences extends TodorooPreferenceActivity {
} }
private void initiateCloudBackup() {
if (actFmPreferenceService.isLoggedIn()) {
DialogUtilities.okDialog(this, getString(R.string.DLG_information_title), 0,
getString(R.string.backup_BPr_cloud_already_logged_in), null);
} else {
Intent intent = new Intent(this, ActFmLoginActivity.class);
startActivity(intent);
}
}
} }

@ -56,4 +56,9 @@ public class PeopleFilterMode implements FilterModeSpec {
TaskListFragment.MENU_ADDONS_ID, TaskListFragment.MENU_ADDONS_ID,
MainMenuPopover.MAIN_MENU_ITEM_FRIENDS MainMenuPopover.MAIN_MENU_ITEM_FRIENDS
}; };
@Override
public boolean showComments() {
return false;
}
} }

@ -3,6 +3,8 @@ package com.todoroo.astrid.tags.reusable;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView; import android.widget.ListView;
import com.todoroo.astrid.adapter.FilterAdapter; import com.todoroo.astrid.adapter.FilterAdapter;
@ -34,4 +36,23 @@ public class FeaturedListFilterAdapter extends FilterAdapter {
public void unregisterRecevier() { public void unregisterRecevier() {
activity.unregisterReceiver(filterReceiver); activity.unregisterReceiver(filterReceiver);
} }
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
ViewHolder viewHolder = (ViewHolder) v.getTag();
viewHolder.size.setVisibility(View.GONE);
viewHolder.name.setSingleLine(false);
viewHolder.name.setLines(2);
viewHolder.name.setMaxLines(2);
int right = (int) (metrics.density * 10);
int top = (int) (metrics.density * 2);
viewHolder.name.setPadding(0, top, right, 0);
viewHolder.name.setTextSize(14);
viewHolder.name.setLineSpacing(0.0f, 1.2f);
return v;
}
} }

@ -48,6 +48,9 @@ public class FeaturedListFilterMode implements FilterModeSpec {
// //
} }
@Override
public boolean showComments() {
return false;
}
} }

@ -2,8 +2,15 @@ package com.todoroo.astrid.tags.reusable;
import android.app.Activity; import android.app.Activity;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Intent;
import android.content.res.Resources;
import android.support.v4.view.Menu;
import android.support.v4.view.MenuItem;
import android.text.TextUtils;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -13,16 +20,24 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.sql.Query; import com.todoroo.andlib.sql.Query;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.TagViewFragment; import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.adapter.TaskAdapter; import com.todoroo.astrid.adapter.TaskAdapter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.TagData; import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.AsyncImageView;
import com.todoroo.astrid.service.TagDataService; import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TagService.Tag;
import com.todoroo.astrid.utility.Flags; import com.todoroo.astrid.utility.Flags;
public class FeaturedTaskListFragment extends TagViewFragment { public class FeaturedTaskListFragment extends TagViewFragment {
@Autowired private TagDataService tagDataService; @Autowired private TagDataService tagDataService;
private static final int MENU_CLONE_LIST = R.string.actfm_feat_list_clone;
@Override @Override
protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) { protected TaskAdapter createTaskAdapter(TodorooCursor<Task> cursor) {
return new ReusableTaskAdapter(this, R.layout.reusable_task_adapter_row, return new ReusableTaskAdapter(this, R.layout.reusable_task_adapter_row,
@ -46,61 +61,119 @@ public class FeaturedTaskListFragment extends TagViewFragment {
return R.layout.task_list_body_featured_list; return R.layout.task_list_body_featured_list;
} }
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
MenuItem item = menu.add(Menu.NONE, MENU_CLONE_LIST, 0, R.string.actfm_feat_list_clone);
item.setIcon(R.drawable.ic_menu_list_copy);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
@Override
public boolean handleOptionsMenuItemSelected(int id, Intent intent) {
if (id == MENU_CLONE_LIST) {
cloneList();
return true;
}
return super.handleOptionsMenuItemSelected(id, intent);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// Do nothing
}
@Override @Override
protected void setUpMembersGallery() { protected void setUpMembersGallery() {
// Repurposed this method to set up listener for clone list button // Repurposed this method to set up the description view
View clone = getView().findViewById(R.id.clone_list); AsyncImageView imageView = (AsyncImageView) getView().findViewById(R.id.url_image);
clone.setOnClickListener(new OnClickListener() { String imageUrl = tagData.getValue(TagData.PICTURE);
if (!TextUtils.isEmpty(imageUrl)) {
imageView.setVisibility(View.VISIBLE);
imageView.setDefaultImageResource(R.drawable.default_list_0);
imageView.setUrl(imageUrl);
} else {
imageView.setVisibility(View.GONE);
}
final String description = tagData.getValue(TagData.TAG_DESCRIPTION);
final Resources r = getActivity().getResources();
TextView desc = (TextView) getView().findViewById(R.id.feat_list_desc);
desc.setText(description);
desc.setLines(4);
desc.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
// Clone list DialogUtilities.okDialog(getActivity(), r.getString(R.string.DLG_information_title),
if (taskAdapter == null || taskAdapter.getCount() == 0) { 0, description, null);
Toast.makeText(getActivity(), R.string.actfm_feat_list_clone_empty, Toast.LENGTH_LONG).show(); }
return; });
} }
final String localName = tagData.getValue(TagData.NAME) + " " + getString(R.string.actfm_feat_list_suffix); //$NON-NLS-1$
long remoteId = 0; private void cloneList() {
TodorooCursor<TagData> existing = tagDataService.query(Query.select(TagData.REMOTE_ID) // Clone list
.where(TagData.NAME.eqCaseInsensitive(localName))); if (taskAdapter == null || taskAdapter.getCount() == 0) {
Toast.makeText(getActivity(), R.string.actfm_feat_list_clone_empty, Toast.LENGTH_LONG).show();
return;
}
final String localName = tagData.getValue(TagData.NAME) + " " + getString(R.string.actfm_feat_list_suffix); //$NON-NLS-1$
long remoteId = 0;
TodorooCursor<TagData> existing = tagDataService.query(Query.select(TagData.REMOTE_ID)
.where(TagData.NAME.eqCaseInsensitive(localName)));
try {
if (existing.getCount() > 0) {
existing.moveToFirst();
TagData match = new TagData(existing);
remoteId = match.getValue(TagData.REMOTE_ID);
}
} finally {
existing.close();
}
final ProgressDialog pd = DialogUtilities.progressDialog(getActivity(), getString(R.string.actfm_feat_list_cloning));
final long finalRemoteId = remoteId;
new Thread(new Runnable() {
@Override
public void run() {
final TodorooCursor<Task> tasks = taskService.fetchFiltered(taskAdapter.getQuery(), null, Task.PROPERTIES);
try { try {
if (existing.getCount() > 0) { Task t = new Task();
existing.moveToFirst(); for (tasks.moveToFirst(); !tasks.isAfterLast(); tasks.moveToNext()) {
TagData match = new TagData(existing); t.readFromCursor(tasks);
remoteId = match.getValue(TagData.REMOTE_ID); taskService.cloneReusableTask(t,
localName, finalRemoteId);
}
final Activity activity = getActivity();
if (activity != null) {
DialogUtilities.dismissDialog(activity, pd);
DialogUtilities.okDialog(activity, getString(R.string.actfm_feat_list_clone_success), null);
} }
} finally { Flags.set(Flags.REFRESH);
existing.close(); if (activity instanceof TaskListActivity) {
} activity.runOnUiThread(new Runnable() {
@Override
public void run() {
TaskListActivity tla = (TaskListActivity) activity;
tla.setFilterMode(TaskListActivity.FILTER_MODE_NORMAL);
final ProgressDialog pd = DialogUtilities.progressDialog(getActivity(), getString(R.string.actfm_feat_list_cloning)); Filter clonedFilter;
Tag tag = new Tag(localName, tasks.getCount(), finalRemoteId);
final long finalRemoteId = remoteId; clonedFilter = TagFilterExposer.filterFromTag(activity, tag, TaskCriteria.activeAndVisible());
new Thread(new Runnable() {
@Override
public void run() {
TodorooCursor<Task> tasks = taskService.fetchFiltered(taskAdapter.getQuery(), null, Task.PROPERTIES);
try {
Task t = new Task();
for (tasks.moveToFirst(); !tasks.isAfterLast(); tasks.moveToNext()) {
t.readFromCursor(tasks);
taskService.cloneReusableTask(t,
localName, finalRemoteId);
}
Activity activity = getActivity();
if (activity != null) {
DialogUtilities.dismissDialog(activity, pd);
DialogUtilities.okDialog(activity, getString(R.string.actfm_feat_list_clone_success), null);
}
Flags.set(Flags.REFRESH); tla.onFilterItemClicked(clonedFilter);
} finally { }
tasks.close(); });
}
} }
}).start(); } finally {
tasks.close();
}
} }
}); }).start();
} }
@Override @Override

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 901 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

@ -6,50 +6,34 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="100"> android:layout_weight="100">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="43dip" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:gravity="center" android:background="?attr/asMembersHeaderBackground"
android:background="?attr/asMembersHeaderBackground"> android:padding="15dip"
android:gravity="center_vertical">
<com.todoroo.astrid.helper.AsyncImageView
android:id="@+id/url_image"
android:layout_width="75dip"
android:layout_height="75dip"
android:scaleType="fitCenter"/>
<TextView <TextView
android:id="@+id/clone_list" android:id="@+id/feat_list_desc"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:gravity="center" android:gravity="left"
android:paddingLeft="15dip"
style="@style/TextAppearance" style="@style/TextAppearance"
android:textStyle="bold" android:textStyle="bold"
android:textColor="#333333" android:textColor="#333333"
android:text="@string/actfm_feat_list_clone"/> android:singleLine="false"
<ImageView android:lines="4"
android:id="@+id/members_edit" android:ellipsize="end"/>
android:layout_width="43dip" <!-- For some reason this degrades to two lines on
android:layout_height="43dip" pre-ICS phones. May be an OS bug with ellipsize-->
android:padding="5dip"
android:layout_weight="1"
android:src="@drawable/list_settings"
android:scaleType="fitCenter"
android:visibility="gone"/>
</LinearLayout> </LinearLayout>
<TextView
android:id="@+id/filter_assigned"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:paddingTop="3dip"
android:paddingBottom="3dip"
style="@style/TextAppearance"
android:background="@android:color/darker_gray"
android:visibility="gone"/>
</LinearLayout>
<!-- List body goes here --> <!-- List body goes here -->

@ -273,7 +273,7 @@
<!-- ================================================ Featured Lists --> <!-- ================================================ Featured Lists -->
<string name="actfm_feat_list_clone">Copy this list</string> <string name="actfm_feat_list_clone">Copy list</string>
<string name="actfm_feat_list_suffix">(Copy)</string> <string name="actfm_feat_list_suffix">(Copy)</string>

@ -39,6 +39,8 @@
<string name="backup_BPr_how_to_restore">How do I restore backups?</string> <string name="backup_BPr_how_to_restore">How do I restore backups?</string>
<!-- Preference screen Restoring Tasks Help Dialog Text--> <!-- Preference screen Restoring Tasks Help Dialog Text-->
<string name="backup_BPr_how_to_restore_dialog">You need to add the Astrid Power Pack to manage and restore your backups. As a favor, Astrid also automatically backs up your tasks, just in case.</string> <string name="backup_BPr_how_to_restore_dialog">You need to add the Astrid Power Pack to manage and restore your backups. As a favor, Astrid also automatically backs up your tasks, just in case.</string>
<string name="backup_BPr_cloud_already_logged_in">You already have cloud backup on Astrid.com!</string>
<!-- ================================================= BackupActivity == --> <!-- ================================================= BackupActivity == -->
@ -53,6 +55,9 @@
<!-- backup activity export button --> <!-- backup activity export button -->
<string name="backup_BAc_export">Export Tasks</string> <string name="backup_BAc_export">Export Tasks</string>
<!-- backup activity cloud (Astrid.com) option -->
<string name="backup_BAc_cloud">Click for free cloud backup on Astrid.com</string>
<!-- ============================================== Importer / Exporter == --> <!-- ============================================== Importer / Exporter == -->

@ -33,5 +33,11 @@
android:title="@string/backup_BAc_label" android:title="@string/backup_BAc_label"
android:textSize="24sp" android:textSize="24sp"
android:gravity="center"/> android:gravity="center"/>
<com.todoroo.astrid.ui.MultilinePreference
android:key="@string/backup_BAc_cloud"
android:title="@string/backup_BAc_cloud"
android:textSize="24sp"
android:gravity="center" />
</PreferenceScreen> </PreferenceScreen>

@ -303,6 +303,7 @@ public class AstridActivity extends FragmentActivity
final FragmentManager fm = getSupportFragmentManager(); final FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(tag); Fragment fragment = fm.findFragmentByTag(tag);
if(fragment == null || replace) { if(fragment == null || replace) {
Fragment oldFragment = fragment;
try { try {
fragment = cls.newInstance(); fragment = cls.newInstance();
} catch (InstantiationException e) { } catch (InstantiationException e) {
@ -312,8 +313,11 @@ public class AstridActivity extends FragmentActivity
} }
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
if (container == 0) if (container == 0) {
if (oldFragment != null && replace)
ft.remove(oldFragment);
ft.add(fragment, tag); ft.add(fragment, tag);
}
else else
ft.replace(container, fragment, tag); ft.replace(container, fragment, tag);
ft.commit(); ft.commit();

@ -39,4 +39,9 @@ public class DefaultFilterMode implements FilterModeSpec {
// //
} }
@Override
public boolean showComments() {
return true;
}
} }

@ -13,5 +13,6 @@ public interface FilterModeSpec {
public Filter getDefaultFilter(Context context); public Filter getDefaultFilter(Context context);
public int getMainMenuIconAttr(); public int getMainMenuIconAttr();
public void onFilterItemClickedCallback(FilterListItem item); public void onFilterItemClickedCallback(FilterListItem item);
public boolean showComments();
} }

@ -46,6 +46,7 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem; import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.core.CustomFilterExposer; import com.todoroo.astrid.core.CustomFilterExposer;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.AsyncImageView; import com.todoroo.astrid.helper.AsyncImageView;
import com.todoroo.astrid.people.PeopleFilterMode; import com.todoroo.astrid.people.PeopleFilterMode;
@ -76,9 +77,10 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
public static final String OPEN_TASK = "openTask"; //$NON-NLS-1$ public static final String OPEN_TASK = "openTask"; //$NON-NLS-1$
private static final String FILTER_MODE = "filterMode"; //$NON-NLS-1$ private static final String FILTER_MODE = "filterMode"; //$NON-NLS-1$
private static final int FILTER_MODE_NORMAL = 0;
private static final int FILTER_MODE_PEOPLE = 1; public static final int FILTER_MODE_NORMAL = 0;
private static final int FILTER_MODE_FEATURED = 2; public static final int FILTER_MODE_PEOPLE = 1;
public static final int FILTER_MODE_FEATURED = 2;
@Autowired private ABTestEventReportingService abTestEventReportingService; @Autowired private ABTestEventReportingService abTestEventReportingService;
@ -260,6 +262,14 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
} }
} }
@Override
protected Bundle configureIntentAndExtrasWithFilter(Intent intent,
Filter filter) {
Bundle extras = super.configureIntentAndExtrasWithFilter(intent, filter);
getIntent().putExtra(FILTER_MODE, filterMode);
return extras;
}
/** /**
* *
* @param actionBar * @param actionBar
@ -377,6 +387,21 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
return result; return result;
} }
@Override
public void setupActivityFragment(TagData tagData) {
super.setupActivityFragment(tagData);
int visibility = (filterModeSpec.showComments() ? View.VISIBLE : View.GONE);
if (fragmentLayout != LAYOUT_TRIPLE) {
commentsButton.setVisibility(visibility);
} else {
View container = findViewById(R.id.taskedit_fragment_container);
if (container != null)
container.setVisibility(visibility);
}
}
private void setListsDropdownSelected(boolean selected) { private void setListsDropdownSelected(boolean selected) {
int oldTextColor = lists.getTextColors().getDefaultColor(); int oldTextColor = lists.getTextColors().getDefaultColor();
int textStyle = (selected ? R.style.TextAppearance_ActionBar_ListsHeader_Selected : int textStyle = (selected ? R.style.TextAppearance_ActionBar_ListsHeader_Selected :
@ -678,9 +703,10 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
tlf.handleOptionsMenuItemSelected(item, customIntent); tlf.handleOptionsMenuItemSelected(item, customIntent);
} }
private void setFilterMode(int mode) { public void setFilterMode(int mode) {
filterMode = mode; filterMode = mode;
updateFilterModeSpec(mode); updateFilterModeSpec(mode);
getIntent().putExtra(FILTER_MODE, mode);
refreshMainMenu(); refreshMainMenu();
if (fragmentLayout == LAYOUT_SINGLE) { if (fragmentLayout == LAYOUT_SINGLE) {
@ -703,7 +729,6 @@ public class TaskListActivity extends AstridActivity implements MainMenuListener
onFilterItemClicked(getDefaultFilter()); onFilterItemClicked(getDefaultFilter());
if (fragmentLayout == LAYOUT_SINGLE) if (fragmentLayout == LAYOUT_SINGLE)
listsNav.performClick(); listsNav.performClick();
getIntent().putExtra(FILTER_MODE, mode);
} }
public void refreshMainMenu() { public void refreshMainMenu() {

@ -428,8 +428,11 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
return; return;
boolean isTablet = AstridPreferences.useTabletLayout(activity); boolean isTablet = AstridPreferences.useTabletLayout(activity);
if (activity instanceof TaskListActivity) TaskListActivity tla = null;
((TaskListActivity) activity).getMainMenuPopover().clear(); if (activity instanceof TaskListActivity) {
tla = (TaskListActivity) activity;
tla.getMainMenuPopover().clear();
}
// --- sort // --- sort
if (allowResorting()) { if (allowResorting()) {
@ -438,7 +441,8 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
} }
// --- sync // --- sync
addSyncRefreshMenuItem(menu, isTablet ? ThemeService.FLAG_INVERT : 0); if (tla == null || tla.getTaskEditFragment() == null)
addSyncRefreshMenuItem(menu, isTablet ? ThemeService.FLAG_INVERT : 0);
// --- new filter // --- new filter
addMenuItem(menu, R.string.FLA_new_filter, addMenuItem(menu, R.string.FLA_new_filter,

@ -80,7 +80,7 @@ public class FilterAdapter extends ArrayAdapter<Filter> {
protected ListView listView; protected ListView listView;
/** display metrics for scaling icons */ /** display metrics for scaling icons */
private final DisplayMetrics metrics = new DisplayMetrics(); protected final DisplayMetrics metrics = new DisplayMetrics();
/** receiver for new filters */ /** receiver for new filters */
protected final FilterReceiver filterReceiver = new FilterReceiver(); protected final FilterReceiver filterReceiver = new FilterReceiver();

@ -150,8 +150,9 @@ public class SyncActionHelper {
// --- sync logic // --- sync logic
protected void performSyncServiceV2Sync(boolean manual) { protected void performSyncServiceV2Sync(boolean manual) {
syncService.synchronizeActiveTasks(manual, syncResultCallback); boolean syncOccurred = syncService.synchronizeActiveTasks(manual, syncResultCallback);
Preferences.setLong(PREF_LAST_AUTO_SYNC, DateUtilities.now()); if (syncOccurred)
Preferences.setLong(PREF_LAST_AUTO_SYNC, DateUtilities.now());
} }
/** /**

@ -59,10 +59,14 @@ public class SyncV2Service {
* *
* @param manual if manual sync * @param manual if manual sync
* @param callback result callback * @param callback result callback
* @return true if any servide was logged in and initiated a sync
*/ */
public void synchronizeActiveTasks(final boolean manual, final SyncResultCallback callback) { public boolean synchronizeActiveTasks(final boolean manual, final SyncResultCallback callback) {
final List<SyncV2Provider> active = activeProviders(); final List<SyncV2Provider> active = activeProviders();
if (active.size() == 0)
return false;
if (active.size() > 1) { if (active.size() > 1) {
SyncResultCallback newCallback = new SyncResultCallback() { SyncResultCallback newCallback = new SyncResultCallback() {
private int next = 1; private int next = 1;
@ -94,6 +98,8 @@ public class SyncV2Service {
} else if (active.size() == 1) { } else if (active.size() == 1) {
active.get(0).synchronizeActiveTasks(manual, callback); active.get(0).synchronizeActiveTasks(manual, callback);
} }
return true;
} }
/** /**

Loading…
Cancel
Save