Loading res/layout-v11/fragment_task_list_selection.xml +1 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ android:text="@string/task_list_selection_ok" android:textAllCaps="true" android:textSize="14sp" android:enabled="false" android:textStyle="bold" /> </LinearLayout> Loading src/org/dmfs/tasks/homescreen/TaskListSelectionFragment.java +20 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import org.dmfs.provider.tasks.TaskContract.TaskLists; import org.dmfs.tasks.R; import org.dmfs.tasks.model.TaskList; import org.dmfs.tasks.utils.TasksListCursorAdapter; import org.dmfs.tasks.utils.TasksListCursorAdapter.SelectionEnabledListener; import android.app.Activity; import android.database.Cursor; Loading Loading @@ -131,6 +132,25 @@ public class TaskListSelectionFragment extends ListFragment implements LoaderMan mTaskListAdapter = new TasksListCursorAdapter(mActivity); mTaskList.setAdapter(mTaskListAdapter); mTaskListAdapter.setSelectionEnabledListener(new SelectionEnabledListener() { @Override public void onSelectionEnabled() { mButtonOk.setEnabled(true); } @Override public void onSelectionDisabled() { mButtonOk.setEnabled(false); } }); Bundle bundle = new Bundle(); bundle.putParcelable(LIST_LOADER_URI, TaskLists.getContentUri(mAuthority)); bundle.putString(LIST_LOADER_FILTER, LIST_LOADER_VISIBLE_LISTS_FILTER); Loading src/org/dmfs/tasks/homescreen/TaskListWidgetUpdaterService.java +18 −17 Original line number Diff line number Diff line Loading @@ -374,10 +374,10 @@ public class TaskListWidgetUpdaterService extends RemoteViewsService + TaskContract.Instances.INSTANCE_START + "<=" + System.currentTimeMillis() + " OR " + TaskContract.Instances.INSTANCE_START + " is null)"); String[] selectionArgs = new String[lists.size() * 2]; if (lists.size() > 0) if (lists != null && lists.size() > 0) { selection.append(" AND ( "); } for (int i = 0; i < lists.size(); i++) { TaskList list = lists.get(i); Loading @@ -397,6 +397,7 @@ public class TaskListWidgetUpdaterService extends RemoteViewsService selectionArgs[i * 2 + 1] = list.listName; } } // load all upcoming non-completed tasks Cursor c = mContext.getContentResolver().query( Loading src/org/dmfs/tasks/utils/TasksListCursorAdapter.java +38 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,8 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap private int mIdColumn; private Map<Long, TaskList> mSelectedLists = new HashMap<Long, TaskList>(); private SelectionEnabledListener mListener; public TasksListCursorAdapter(Context context) { Loading @@ -61,6 +63,12 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap } public void setSelectionEnabledListener(SelectionEnabledListener listener) { mListener = listener; } @Override public Cursor swapCursor(Cursor c) { Loading Loading @@ -123,6 +131,8 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { int oldSize = mSelectedLists.size(); if (isChecked) { TaskList taskList = mSelectedLists.get(id); Loading @@ -139,6 +149,20 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap { mSelectedLists.remove(id); } if (mListener != null) { if (oldSize == 0 && mSelectedLists.size() > 0) { mListener.onSelectionEnabled(); } if (oldSize > 0 && mSelectedLists.size() == 0) { mListener.onSelectionDisabled(); } } } }); return convertView; Loading @@ -149,4 +173,18 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap { return mSelectedLists.values(); } /** * Listener that is used to notify if the select item count is > 0 or equal 0. * * @author Tobias Reinsch <tobias@dmfs.org> * */ public interface SelectionEnabledListener { public void onSelectionEnabled(); public void onSelectionDisabled(); } } Loading
res/layout-v11/fragment_task_list_selection.xml +1 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ android:text="@string/task_list_selection_ok" android:textAllCaps="true" android:textSize="14sp" android:enabled="false" android:textStyle="bold" /> </LinearLayout> Loading
src/org/dmfs/tasks/homescreen/TaskListSelectionFragment.java +20 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import org.dmfs.provider.tasks.TaskContract.TaskLists; import org.dmfs.tasks.R; import org.dmfs.tasks.model.TaskList; import org.dmfs.tasks.utils.TasksListCursorAdapter; import org.dmfs.tasks.utils.TasksListCursorAdapter.SelectionEnabledListener; import android.app.Activity; import android.database.Cursor; Loading Loading @@ -131,6 +132,25 @@ public class TaskListSelectionFragment extends ListFragment implements LoaderMan mTaskListAdapter = new TasksListCursorAdapter(mActivity); mTaskList.setAdapter(mTaskListAdapter); mTaskListAdapter.setSelectionEnabledListener(new SelectionEnabledListener() { @Override public void onSelectionEnabled() { mButtonOk.setEnabled(true); } @Override public void onSelectionDisabled() { mButtonOk.setEnabled(false); } }); Bundle bundle = new Bundle(); bundle.putParcelable(LIST_LOADER_URI, TaskLists.getContentUri(mAuthority)); bundle.putString(LIST_LOADER_FILTER, LIST_LOADER_VISIBLE_LISTS_FILTER); Loading
src/org/dmfs/tasks/homescreen/TaskListWidgetUpdaterService.java +18 −17 Original line number Diff line number Diff line Loading @@ -374,10 +374,10 @@ public class TaskListWidgetUpdaterService extends RemoteViewsService + TaskContract.Instances.INSTANCE_START + "<=" + System.currentTimeMillis() + " OR " + TaskContract.Instances.INSTANCE_START + " is null)"); String[] selectionArgs = new String[lists.size() * 2]; if (lists.size() > 0) if (lists != null && lists.size() > 0) { selection.append(" AND ( "); } for (int i = 0; i < lists.size(); i++) { TaskList list = lists.get(i); Loading @@ -397,6 +397,7 @@ public class TaskListWidgetUpdaterService extends RemoteViewsService selectionArgs[i * 2 + 1] = list.listName; } } // load all upcoming non-completed tasks Cursor c = mContext.getContentResolver().query( Loading
src/org/dmfs/tasks/utils/TasksListCursorAdapter.java +38 −0 Original line number Diff line number Diff line Loading @@ -53,6 +53,8 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap private int mIdColumn; private Map<Long, TaskList> mSelectedLists = new HashMap<Long, TaskList>(); private SelectionEnabledListener mListener; public TasksListCursorAdapter(Context context) { Loading @@ -61,6 +63,12 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap } public void setSelectionEnabledListener(SelectionEnabledListener listener) { mListener = listener; } @Override public Cursor swapCursor(Cursor c) { Loading Loading @@ -123,6 +131,8 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { int oldSize = mSelectedLists.size(); if (isChecked) { TaskList taskList = mSelectedLists.get(id); Loading @@ -139,6 +149,20 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap { mSelectedLists.remove(id); } if (mListener != null) { if (oldSize == 0 && mSelectedLists.size() > 0) { mListener.onSelectionEnabled(); } if (oldSize > 0 && mSelectedLists.size() == 0) { mListener.onSelectionDisabled(); } } } }); return convertView; Loading @@ -149,4 +173,18 @@ public class TasksListCursorAdapter extends android.support.v4.widget.CursorAdap { return mSelectedLists.values(); } /** * Listener that is used to notify if the select item count is > 0 or equal 0. * * @author Tobias Reinsch <tobias@dmfs.org> * */ public interface SelectionEnabledListener { public void onSelectionEnabled(); public void onSelectionDisabled(); } }