Fixed a crash on startup, made notifications a bit better by opening up a new separate filter, also refactor.

pull/14/head
Tim Su 14 years ago
parent 8b85736976
commit f707702ed2

@ -37,7 +37,7 @@ public final class CoreFilterExposer extends BroadcastReceiver {
// build filters // build filters
Filter inbox = buildInboxFilter(r); Filter inbox = buildInboxFilter(r);
Filter all = new Filter(CorePlugin.pluginIdentifier, r.getString(R.string.BFE_All), Filter all = new Filter(CorePlugin.IDENTIFIER, r.getString(R.string.BFE_All),
r.getString(R.string.BFE_All), r.getString(R.string.BFE_All),
new QueryTemplate().where(Criterion.not(TaskCriteria.isDeleted())). new QueryTemplate().where(Criterion.not(TaskCriteria.isDeleted())).
orderBy(Order.desc(Task.MODIFICATION_DATE)), orderBy(Order.desc(Task.MODIFICATION_DATE)),
@ -59,7 +59,7 @@ public final class CoreFilterExposer extends BroadcastReceiver {
*/ */
@SuppressWarnings("nls") @SuppressWarnings("nls")
public static Filter buildInboxFilter(Resources r) { public static Filter buildInboxFilter(Resources r) {
Filter inbox = new Filter(CorePlugin.pluginIdentifier, r.getString(R.string.BFE_Inbox), Filter inbox = new Filter(CorePlugin.IDENTIFIER, r.getString(R.string.BFE_Inbox),
r.getString(R.string.BFE_Inbox_title), r.getString(R.string.BFE_Inbox_title),
new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
TaskCriteria.isVisible(DateUtilities.now()))).orderBy( TaskCriteria.isVisible(DateUtilities.now()))).orderBy(

@ -9,11 +9,11 @@ import com.todoroo.astrid.api.Plugin;
public class CorePlugin extends BroadcastReceiver { public class CorePlugin extends BroadcastReceiver {
static final String pluginIdentifier = "core"; static final String IDENTIFIER = "core";
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
Plugin plugin = new Plugin(pluginIdentifier, "Core Filters", "Todoroo", Plugin plugin = new Plugin(IDENTIFIER, "Core Filters", "Todoroo",
"Provides 'Inbox' and 'All Tasks' Filters"); "Provides 'Inbox' and 'All Tasks' Filters");
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_PLUGINS); Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_PLUGINS);

@ -36,10 +36,10 @@ public final class ExtendedFilterExposer extends BroadcastReceiver {
Resources r = context.getResources(); Resources r = context.getResources();
// build filters // build filters
FilterListHeader header = new FilterListHeader(ExtendedPlugin.pluginIdentifier, FilterListHeader header = new FilterListHeader(ExtendedPlugin.IDENTIFIER,
"Extended"); "Extended");
Filter alphabetical = new Filter(ExtendedPlugin.pluginIdentifier, Filter alphabetical = new Filter(ExtendedPlugin.IDENTIFIER,
"Alphabetical", "Alphabetical",
"Alphabetical", "Alphabetical",
new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
@ -48,7 +48,7 @@ public final class ExtendedFilterExposer extends BroadcastReceiver {
null); null);
alphabetical.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_alpha)).getBitmap(); alphabetical.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_alpha)).getBitmap();
Filter recent = new Filter(ExtendedPlugin.pluginIdentifier, Filter recent = new Filter(ExtendedPlugin.IDENTIFIER,
"Recently Modified", "Recently Modified",
"Recently Modified", "Recently Modified",
new QueryTemplate().orderBy(Order.desc(Task.MODIFICATION_DATE)).limit(15), new QueryTemplate().orderBy(Order.desc(Task.MODIFICATION_DATE)).limit(15),
@ -57,7 +57,7 @@ public final class ExtendedFilterExposer extends BroadcastReceiver {
ContentValues hiddenValues = new ContentValues(); ContentValues hiddenValues = new ContentValues();
hiddenValues.put(Task.HIDE_UNTIL.name, DateUtilities.now() + DateUtilities.ONE_DAY); hiddenValues.put(Task.HIDE_UNTIL.name, DateUtilities.now() + DateUtilities.ONE_DAY);
Filter hidden = new Filter(ExtendedPlugin.pluginIdentifier, Filter hidden = new Filter(ExtendedPlugin.IDENTIFIER,
"Hidden Tasks", "Hidden Tasks",
"Hidden Tasks", "Hidden Tasks",
new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(), new QueryTemplate().where(Criterion.and(TaskCriteria.isActive(),
@ -66,7 +66,7 @@ public final class ExtendedFilterExposer extends BroadcastReceiver {
hiddenValues); hiddenValues);
hidden.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_hidden)).getBitmap(); hidden.listingIcon = ((BitmapDrawable)r.getDrawable(R.drawable.filter_hidden)).getBitmap();
Filter deleted = new Filter(ExtendedPlugin.pluginIdentifier, Filter deleted = new Filter(ExtendedPlugin.IDENTIFIER,
"Deleted Tasks", "Deleted Tasks",
"Deleted Tasks", "Deleted Tasks",
new QueryTemplate().where(TaskCriteria.isDeleted()). new QueryTemplate().where(TaskCriteria.isDeleted()).

@ -9,11 +9,11 @@ import com.todoroo.astrid.api.Plugin;
public class ExtendedPlugin extends BroadcastReceiver { public class ExtendedPlugin extends BroadcastReceiver {
static final String pluginIdentifier = "extended"; static final String IDENTIFIER = "extended";
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
Plugin plugin = new Plugin(pluginIdentifier, "Extended Filters", "Todoroo", Plugin plugin = new Plugin(IDENTIFIER, "Extended Filters", "Todoroo",
"Provides extended filters for viewing subsets of your tasks"); "Provides extended filters for viewing subsets of your tasks");
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_PLUGINS); Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_PLUGINS);

@ -23,8 +23,10 @@ import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import com.timsu.astrid.activities.TaskList; import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
/** /**
* This activity is launched when a user opens up a notification from the * This activity is launched when a user opens up a notification from the
@ -35,6 +37,16 @@ import com.todoroo.astrid.activity.TaskListActivity;
*/ */
public class NotificationActivity extends Activity { public class NotificationActivity extends Activity {
// --- constants
/** task id from notification */
public static final String TOKEN_ID = "id";
/** task title */
public static final String TOKEN_TITLE = "title";
// --- implementation
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -50,8 +62,18 @@ public class NotificationActivity extends Activity {
} }
private void launchTaskList(Intent intent) { private void launchTaskList(Intent intent) {
long id = intent.getLongExtra(TOKEN_ID, -1);
if(id == -1)
return;
Intent taskListIntent = new Intent(this, TaskListActivity.class); Intent taskListIntent = new Intent(this, TaskListActivity.class);
taskListIntent.putExtra(TaskList.VARIABLES_TAG, intent.getExtras()); Filter itemFilter = new Filter(ReminderPlugin.IDENTIFIER,
"Notification",
"Notification",
new QueryTemplate().where(TaskCriteria.byId(id)),
null);
taskListIntent.putExtra(TaskListActivity.TOKEN_FILTER, itemFilter);
startActivity(taskListIntent); startActivity(taskListIntent);
finish(); finish();

@ -0,0 +1,24 @@
package com.todoroo.astrid.reminders;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Plugin;
public class ReminderPlugin extends BroadcastReceiver {
static final String IDENTIFIER = "reminders";
@Override
public void onReceive(Context context, Intent intent) {
Plugin plugin = new Plugin(IDENTIFIER, "Reminders", "Todoroo",
"Provides notification reminders for tasks");
Intent broadcastIntent = new Intent(AstridApiConstants.BROADCAST_SEND_PLUGINS);
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_PLUGIN, plugin);
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
}
}

@ -1035,6 +1035,8 @@ public final class TaskEditActivity extends TabActivity {
@Override @Override
public void writeToModel() { public void writeToModel() {
model.setValue(Task.REMINDER_FLAGS, getValue()); model.setValue(Task.REMINDER_FLAGS, getValue());
if(random.isChecked())
model.setValue(Task.REMINDER_PERIOD, periodic);
} }
} }

@ -273,6 +273,11 @@ public final class Task extends AbstractModel {
* @param hasDueTime * @param hasDueTime
*/ */
public void setDueDateAndTime(Date dueDate, boolean hasDueTime) { public void setDueDateAndTime(Date dueDate, boolean hasDueTime) {
if(dueDate == null || dueDate.getTime() == 0) {
setValue(Task.DUE_DATE, 0L);
return;
}
if(!hasDueTime) { if(!hasDueTime) {
dueDate.setHours(23); dueDate.setHours(23);
dueDate.setMinutes(59); dueDate.setMinutes(59);

@ -23,6 +23,7 @@ public class Preferences {
setIfUnset(prefs, editor, r, R.string.p_default_urgency_key, 4); setIfUnset(prefs, editor, r, R.string.p_default_urgency_key, 4);
setIfUnset(prefs, editor, r, R.string.p_default_importance_key, 2); setIfUnset(prefs, editor, r, R.string.p_default_importance_key, 2);
setIfUnset(prefs, editor, r, R.string.p_default_hideUntil_key, 0); setIfUnset(prefs, editor, r, R.string.p_default_hideUntil_key, 0);
setIfUnset(prefs, editor, r, R.string.p_fontSize, 22);
editor.commit(); editor.commit();
} }

Loading…
Cancel
Save