Pass task from NotificationActivity

pull/795/head
Alex Baker 7 years ago
parent 1415736bcf
commit 704a59fcf7

@ -3,7 +3,6 @@ package org.tasks.intents;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import androidx.core.app.TaskStackBuilder;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.todoroo.astrid.activity.MainActivity; import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
@ -12,13 +11,6 @@ import org.jetbrains.annotations.Nullable;
public class TaskIntents { public class TaskIntents {
public static TaskStackBuilder getEditTaskStack(
Context context, final Filter filter, final long taskId) {
Intent intent = getTaskListIntent(context, filter);
intent.putExtra(MainActivity.OPEN_TASK, taskId);
return TaskStackBuilder.create(context).addNextIntent(intent);
}
public static Intent getEditTaskIntent(Context context, Filter filter, Task task) { public static Intent getEditTaskIntent(Context context, Filter filter, Task task) {
Intent intent = getTaskListIntent(context, filter); Intent intent = getTaskListIntent(context, filter);
intent.putExtra(MainActivity.OPEN_NEW_TASK, task); intent.putExtra(MainActivity.OPEN_NEW_TASK, task);

@ -5,12 +5,18 @@ import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import com.todoroo.astrid.dao.TaskDao;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
import javax.inject.Inject; import javax.inject.Inject;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents; import org.tasks.intents.TaskIntents;
import org.tasks.notifications.NotificationManager; import org.tasks.notifications.NotificationManager;
import org.tasks.receivers.CompleteTaskReceiver; import org.tasks.receivers.CompleteTaskReceiver;
import timber.log.Timber;
public class NotificationActivity extends InjectingAppCompatActivity public class NotificationActivity extends InjectingAppCompatActivity
implements NotificationDialog.NotificationHandler { implements NotificationDialog.NotificationHandler {
@ -19,8 +25,10 @@ public class NotificationActivity extends InjectingAppCompatActivity
public static final String EXTRA_TASK_ID = "extra_task_id"; public static final String EXTRA_TASK_ID = "extra_task_id";
private static final String FRAG_TAG_NOTIFICATION_FRAGMENT = "frag_tag_notification_fragment"; private static final String FRAG_TAG_NOTIFICATION_FRAGMENT = "frag_tag_notification_fragment";
@Inject NotificationManager notificationManager; @Inject NotificationManager notificationManager;
@Inject TaskDao taskDao;
private long taskId; private long taskId;
private CompositeDisposable disposables;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -60,11 +68,33 @@ public class NotificationActivity extends InjectingAppCompatActivity
finish(); finish();
} }
@Override
protected void onResume() {
super.onResume();
disposables = new CompositeDisposable();
}
@Override
protected void onPause() {
super.onPause();
disposables.dispose();
}
@Override @Override
public void edit() { public void edit() {
TaskIntents.getEditTaskStack(this, null, taskId).startActivities();
notificationManager.cancel(taskId); notificationManager.cancel(taskId);
finish(); disposables.add(
Single.fromCallable(() -> taskDao.fetch(taskId))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
task -> {
startActivity(TaskIntents.getEditTaskIntent(this, null, task));
finish();
},
e -> Timber.e("Task not found: %s", taskId)));
} }
@Override @Override

Loading…
Cancel
Save