Pass task from TaskEditActivity

pull/795/head
Alex Baker 7 years ago
parent c36f71705e
commit de9fc7e254

@ -1,23 +1,57 @@
package com.todoroo.astrid.activity; package com.todoroo.astrid.activity;
import android.app.Activity; import com.todoroo.astrid.dao.TaskDao;
import android.content.Intent; import com.todoroo.astrid.service.TaskCreator;
import android.os.Bundle; 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 org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
public class TaskEditActivity extends Activity { public class TaskEditActivity extends InjectingAppCompatActivity {
private static final String TOKEN_ID = "id"; private static final String TOKEN_ID = "id";
@Inject TaskCreator taskCreator;
@Inject TaskDao taskDao;
private CompositeDisposable disposables;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onResume() {
super.onCreate(savedInstanceState); super.onResume();
final long taskId = getIntent().getLongExtra(TOKEN_ID, 0); long taskId = getIntent().getLongExtra(TOKEN_ID, 0);
Intent intent = new Intent(this, MainActivity.class); disposables = new CompositeDisposable();
intent.putExtra(MainActivity.OPEN_TASK, taskId);
startActivity(intent);
if (taskId == 0) {
startActivity(TaskIntents.getEditTaskIntent(this, taskCreator.createWithValues("")));
finish();
} else {
disposables.add(
Single.fromCallable(() -> taskDao.fetch(taskId))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
task -> {
startActivity(TaskIntents.getEditTaskIntent(this, task));
finish(); finish();
}));
}
}
@Override
protected void onPause() {
super.onPause();
disposables.dispose();
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
} }
} }

@ -3,6 +3,7 @@ package org.tasks.injection;
import com.todoroo.astrid.activity.BeastModePreferences; import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.activity.MainActivity; import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.activity.ShareLinkActivity; import com.todoroo.astrid.activity.ShareLinkActivity;
import com.todoroo.astrid.activity.TaskEditActivity;
import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.DefaultsPreferences; import com.todoroo.astrid.core.DefaultsPreferences;
import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.core.OldTaskPreferences;
@ -134,4 +135,6 @@ public interface ActivityComponent {
void inject(DriveLoginActivity driveLoginActivity); void inject(DriveLoginActivity driveLoginActivity);
void inject(DebugPreferences debugPreferences); void inject(DebugPreferences debugPreferences);
void inject(TaskEditActivity taskEditActivity);
} }

@ -11,7 +11,11 @@ import org.jetbrains.annotations.Nullable;
public class TaskIntents { public class TaskIntents {
public static Intent getEditTaskIntent(Context context, Filter filter, Task task) { public static Intent getEditTaskIntent(Context context, Task task) {
return getEditTaskIntent(context, null, task);
}
public static Intent getEditTaskIntent(Context context, @Nullable 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);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);

@ -91,7 +91,7 @@ public class NotificationActivity extends InjectingAppCompatActivity
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe( .subscribe(
task -> { task -> {
startActivity(TaskIntents.getEditTaskIntent(this, null, task)); startActivity(TaskIntents.getEditTaskIntent(this, task));
finish(); finish();
}, },
e -> Timber.e("Task not found: %s", taskId))); e -> Timber.e("Task not found: %s", taskId)));

Loading…
Cancel
Save