diff --git a/astrid/src/main/AndroidManifest.xml b/astrid/src/main/AndroidManifest.xml index dfcc6751a..a8ec4ec63 100644 --- a/astrid/src/main/AndroidManifest.xml +++ b/astrid/src/main/AndroidManifest.xml @@ -219,12 +219,6 @@ - - - - - - diff --git a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index 4bb33f756..c1829c64d 100644 --- a/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -511,8 +511,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList * Report who launched this activity */ protected void trackActivitySource() { - switch (getIntent().getIntExtra(TOKEN_SOURCE, - Constants.SOURCE_DEFAULT)) { + switch (getIntent().getIntExtra(TOKEN_SOURCE, Constants.SOURCE_DEFAULT)) { case Constants.SOURCE_NOTIFICATION: break; case Constants.SOURCE_OTHER: @@ -523,7 +522,6 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList break; case Constants.SOURCE_C2DM: break; - case Constants.SOURCE_REENGAGEMENT: } getIntent().putExtra(TOKEN_SOURCE, Constants.SOURCE_DEFAULT); // Only report source once } diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementFragment.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementFragment.java deleted file mode 100644 index 8bc42e570..000000000 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementFragment.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.reminders; - -import android.content.res.Resources; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.TextView; - -import com.todoroo.astrid.activity.TaskListFragment; -import com.todoroo.astrid.service.ThemeService; - -import org.tasks.R; - -public class ReengagementFragment extends TaskListFragment { - - public static final String EXTRA_TEXT = "dialogText"; //$NON-NLS-1$ - - @Override - protected void initializeData() { - // hide quick add - getView().findViewById(R.id.taskListFooter).setVisibility(View.GONE); - - super.initializeData(); - - setupSpeechBubble(); - } - - @Override - protected View getListBody(ViewGroup root) { - ViewGroup parent = (ViewGroup) getActivity().getLayoutInflater().inflate(R.layout.task_list_body_reengagement, root, false); - - View taskListView = super.getListBody(parent); - parent.addView(taskListView, 0); - - return parent; - } - - @Override - protected void refresh() { - super.refresh(); - setupSpeechBubble(); - } - - private void setupSpeechBubble() { - Resources r = getActivity().getResources(); - TextView snooze = (TextView) getView().findViewById(R.id.reminder_snooze); - snooze.setBackgroundColor(r.getColor(ThemeService.getThemeColor())); - TextView reminder = (TextView) getView().findViewById(R.id.reminder_message); - if (taskAdapter.getCount() == 0) { - snooze.setText(R.string.rmd_reengage_add_tasks); - snooze.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - quickAddBar.performButtonClick(); - } - }); - } else { - snooze.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - getActivity().finish(); - } - }); - } - - reminder.setText(extras.getString(EXTRA_TEXT)); - } - -} diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementReceiver.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementReceiver.java deleted file mode 100644 index ff683f1f1..000000000 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementReceiver.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.reminders; - -import android.app.Notification; -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.graphics.Color; -import android.os.Bundle; - -import com.todoroo.andlib.data.TodorooCursor; -import com.todoroo.andlib.service.Autowired; -import com.todoroo.andlib.service.DependencyInjectionService; -import com.todoroo.andlib.service.NotificationManager; -import com.todoroo.andlib.service.NotificationManager.AndroidNotificationManager; -import com.todoroo.andlib.sql.Query; -import com.todoroo.andlib.sql.QueryTemplate; -import com.todoroo.andlib.utility.Preferences; -import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.activity.TaskListFragment; -import com.todoroo.astrid.api.FilterWithCustomIntent; -import com.todoroo.astrid.core.SortHelper; -import com.todoroo.astrid.dao.TaskDao.TaskCriteria; -import com.todoroo.astrid.data.Task; -import com.todoroo.astrid.service.TaskService; -import com.todoroo.astrid.utility.Constants; -import com.todoroo.astrid.utility.Flags; - -import org.tasks.R; - -public class ReengagementReceiver extends BroadcastReceiver { - - @Autowired TaskService taskService; - - private static final int TASK_LIMIT = 3; - - @Override - public void onReceive(Context context, Intent intent) { - if (!Preferences.getBoolean(R.string.p_rmd_enabled, true)) { - return; - } - - DependencyInjectionService.getInstance().inject(this); - - int reengagementReminders = Preferences.getInt(ReengagementService.PREF_REENGAGEMENT_COUNT, 1); - Preferences.setInt(ReengagementService.PREF_REENGAGEMENT_COUNT, reengagementReminders + 1); - - Intent notifIntent = new Intent(context, TaskListActivity.class); - - QueryTemplate template = new QueryTemplate().where(TaskCriteria.activeVisibleMine()); - String sql = SortHelper.adjustQueryForFlagsAndSort(template.toString(), 0, SortHelper.SORT_AUTO) + " LIMIT " + TASK_LIMIT; //$NON-NLS-1$ - - boolean hasTasks = false; - TodorooCursor tasks = taskService.query(Query.select(Task.ID).where(TaskCriteria.activeVisibleMine()).limit(TASK_LIMIT)); - try { - hasTasks = tasks.getCount() > 0; - } finally { - tasks.close(); - } - - String title = Notifications.getRandomReminder(context.getResources().getStringArray(R.array.rmd_reengage_notif_titles)); - if (title.contains("%s")) { //$NON-NLS-1$ - String name = ""; //$NON-NLS-1$ - title = String.format(title, name); - } - - String text = Notifications.getRandomReminder(context.getResources().getStringArray(hasTasks ? R.array.rmd_reengage_dialog_options : R.array.rmd_reengage_dialog_empty_options)); - - FilterWithCustomIntent filter = new FilterWithCustomIntent(context.getString(R.string.rmd_NoA_filter), - context.getString(R.string.rmd_NoA_filter), - sql, - null); - filter.customTaskList = new ComponentName(context, ReengagementFragment.class); - filter.customExtras = new Bundle(); - filter.customExtras.putString(ReengagementFragment.EXTRA_TEXT, text); - - notifIntent.setAction("NOTIFY_reengagement"); //$NON-NLS-1$ - notifIntent.putExtra(TaskListFragment.TOKEN_FILTER, filter); - notifIntent.putExtra(ReengagementFragment.EXTRA_TEXT, text); - notifIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); - notifIntent.putExtra(TaskListActivity.TOKEN_SOURCE, Constants.SOURCE_REENGAGEMENT); - - - NotificationManager manager = new AndroidNotificationManager(context); - Notification notification = new Notification(R.drawable.notif_astrid, - text, System.currentTimeMillis()); - - PendingIntent pendingIntent = PendingIntent.getActivity(context, - 0, notifIntent, PendingIntent.FLAG_UPDATE_CURRENT); - - notification.setLatestEventInfo(context, - title, - text, - pendingIntent); - - notification.flags |= Notification.FLAG_AUTO_CANCEL; - if(Preferences.getBoolean(R.string.p_rmd_persistent, true)) { - notification.flags |= Notification.FLAG_NO_CLEAR | - Notification.FLAG_SHOW_LIGHTS; - notification.ledOffMS = 5000; - notification.ledOnMS = 700; - notification.ledARGB = Color.YELLOW; - } else { - notification.defaults = Notification.DEFAULT_LIGHTS; - } - - manager.notify(0, notification); - Flags.set(Flags.REFRESH); // Forces a reload when app launches - - ReengagementService.scheduleReengagementAlarm(context); - } - -} diff --git a/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementService.java b/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementService.java deleted file mode 100644 index e5fbce981..000000000 --- a/astrid/src/main/java/com/todoroo/astrid/reminders/ReengagementService.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.reminders; - -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; - -import com.todoroo.andlib.utility.DateUtilities; -import com.todoroo.andlib.utility.Preferences; -import com.todoroo.astrid.utility.AstridPreferences; -import com.todoroo.astrid.utility.Constants; - -import java.util.Date; - -public final class ReengagementService { - - private static final int REQUEST_CODE = 10; - - - public static final String PREF_REENGAGEMENT_COUNT = "pref_reengagement_count"; //$NON-NLS-1$ - - public static final String BROADCAST_SHOW_REENGAGEMENT = Constants.PACKAGE + ".SHOW_REENGAGEMENT"; //$NON-NLS-1$ - - public static void scheduleReengagementAlarm(Context context) { - AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); - Intent intent = new Intent(BROADCAST_SHOW_REENGAGEMENT); - PendingIntent pendingIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, 0); - am.cancel(pendingIntent); - - long time = getNextReminderTime(); - am.set(AlarmManager.RTC_WAKEUP, time, pendingIntent); - } - - private static long getNextReminderTime() { - int reengagementReminders = Preferences.getInt(PREF_REENGAGEMENT_COUNT, 1); - int days; - if (DateUtilities.now() - Preferences.getLong(AstridPreferences.P_FIRST_LAUNCH, 0) > DateUtilities.ONE_DAY * 30) { // Installed longer than 30 days - // Sequence: every 6, 8, 10 days - days = Math.min(10, 4 + 2 * reengagementReminders); - } else { - // Sequence: every 2, 3, 4, 5 days - days = Math.min(5, 1 + reengagementReminders); - } - - Date date = new Date(DateUtilities.now() + DateUtilities.ONE_DAY * days / 1000L * 1000L); - date.setHours(18); - date.setMinutes(0); - date.setSeconds(0); - - return date.getTime(); - } - -} diff --git a/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java b/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java index c45aa6318..02d5b681c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java +++ b/astrid/src/main/java/com/todoroo/astrid/service/StartupService.java @@ -45,7 +45,6 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gcal.CalendarStartupReceiver; import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.sync.GtasksSyncService; -import com.todoroo.astrid.reminders.ReengagementService; import com.todoroo.astrid.reminders.ReminderStartupReceiver; import com.todoroo.astrid.tags.TaskToTagMetadata; import com.todoroo.astrid.utility.AstridPreferences; @@ -178,7 +177,6 @@ public class StartupService { public void run() { startWidgetService(context); - ReengagementService.scheduleReengagementAlarm(context); taskService.cleanup(); // if sync ongoing flag was set, clear it diff --git a/astrid/src/main/java/com/todoroo/astrid/utility/Constants.java b/astrid/src/main/java/com/todoroo/astrid/utility/Constants.java index 29cebb761..23cf6dffb 100644 --- a/astrid/src/main/java/com/todoroo/astrid/utility/Constants.java +++ b/astrid/src/main/java/com/todoroo/astrid/utility/Constants.java @@ -40,7 +40,6 @@ public final class Constants { public static final int SOURCE_WIDGET = 2; public static final int SOURCE_PPWIDGET = 3; public static final int SOURCE_C2DM = 4; - public static final int SOURCE_REENGAGEMENT = 5; // --- notification id's diff --git a/astrid/src/main/res/layout/task_list_body_reengagement.xml b/astrid/src/main/res/layout/task_list_body_reengagement.xml deleted file mode 100644 index bc5180043..000000000 --- a/astrid/src/main/res/layout/task_list_body_reengagement.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - -