Rapidly switch between editing tasks when in landscape mode

pull/14/head
Sam Bosley 13 years ago
parent 3931e3a624
commit 251d40c638

@ -39,20 +39,27 @@ public class AstridWrapperActivity extends FragmentActivity
*/
protected boolean mMultipleFragments = false;
protected FilterListActivity getFilterListFragment() {
public FilterListActivity getFilterListFragment() {
FilterListActivity frag = (FilterListActivity) getSupportFragmentManager()
.findFragmentById(R.id.filterlist_fragment);
return frag;
}
protected TaskListActivity getTaskListFragment() {
public TaskListActivity getTaskListFragment() {
TaskListActivity frag = (TaskListActivity) getSupportFragmentManager()
.findFragmentByTag(TaskListActivity.TAG_TASKLIST_FRAGMENT);
return frag;
}
public TaskEditActivity getTaskEditFragment() {
TaskEditActivity frag = (TaskEditActivity) getSupportFragmentManager()
.findFragmentByTag(TaskEditActivity.TAG_TASKEDIT_FRAGMENT);
return frag;
}
/* (non-Javadoc)
* @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
*/
@ -157,6 +164,7 @@ public class AstridWrapperActivity extends FragmentActivity
@Override
public void onTaskListItemClicked(int category, int position) {
}
@Override

@ -654,6 +654,12 @@ public final class TaskEditActivity extends Fragment {
Notifications.cancelNotifications(model.getId());
}
/** Convenience method to populate fields after setting model to null */
public void repopulateFromScratch(Intent intent) {
model = null;
populateFields(intent);
}
/** Populate UI component values from the model */
public void populateFields(Intent intent) {
loadItem(intent);
@ -676,7 +682,7 @@ public final class TaskEditActivity extends Fragment {
}
/** Save task model from values in UI components */
private void save(boolean onPause) {
public void save(boolean onPause) {
if(title.getText().length() > 0)
model.setValue(Task.DELETION_DATE, 0L);

@ -17,7 +17,9 @@ import java.util.concurrent.atomic.AtomicReference;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@ -927,11 +929,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
mBar = null;
if(position == 0) {
Intent intent = new Intent(fragment.getActivity(), TaskEditWrapperActivity.class);
intent.putExtra(TaskEditActivity.TOKEN_ID, taskId);
intent.putExtra(TaskListActivity.TOKEN_FILTER, fragment.getFilter());
fragment.startActivityForResult(intent, TaskListActivity.ACTIVITY_EDIT_TASK);
AndroidUtilities.callOverridePendingTransition(fragment.getActivity(), R.anim.slide_left_in, R.anim.slide_left_out);
editTask(taskId);
} else {
flushSpecific(taskId);
try {
@ -988,11 +986,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
if (actions.size() > 0)
mBar.show(v);
else {
Intent intent = new Intent(fragment.getActivity(), TaskEditWrapperActivity.class);
intent.putExtra(TaskEditActivity.TOKEN_ID, taskId);
intent.putExtra(TaskListActivity.TOKEN_FILTER, fragment.getFilter());
fragment.getActivity().startActivityForResult(intent, TaskListActivity.ACTIVITY_EDIT_TASK);
AndroidUtilities.callOverridePendingTransition(fragment.getActivity(), R.anim.slide_left_in, R.anim.slide_left_out);
editTask(taskId);
}
} else if (!viewHolder.task.getFlag(Task.FLAGS, Task.FLAG_IS_READONLY)) {
// Register a temporary receiver in case we clicked a task with no actions forthcoming and should start
@ -1016,11 +1010,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
if (taskId != -1) {
Collection<TaskAction> actions = taskActionManager.get(taskId);
if (actions != null && actions.size() == 0) {
Intent editIntent = new Intent(fragment.getActivity(), TaskEditWrapperActivity.class);
editIntent.putExtra(TaskEditActivity.TOKEN_ID, taskId);
editIntent.putExtra(TaskListActivity.TOKEN_FILTER, fragment.getFilter());
fragment.getActivity().startActivityForResult(editIntent, TaskListActivity.ACTIVITY_EDIT_TASK);
AndroidUtilities.callOverridePendingTransition(fragment.getActivity(), R.anim.slide_left_in, R.anim.slide_left_out);
editTask(taskId);
}
}
fragment.getActivity().unregisterReceiver(this);
@ -1028,6 +1018,22 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
}
private void editTask(long taskId) {
Activity activity = fragment.getActivity();
Intent intent = (Intent) activity.getIntent().clone();
intent.setComponent(new ComponentName(activity, TaskEditWrapperActivity.class));
intent.putExtra(TaskEditActivity.TOKEN_ID, taskId);
intent.putExtra(TaskListActivity.TOKEN_FILTER, fragment.getFilter());
if (activity instanceof TaskEditWrapperActivity) {
TaskEditActivity editActivity = ((TaskEditWrapperActivity) activity).getTaskEditFragment();
editActivity.save(true);
editActivity.repopulateFromScratch(intent);
} else {
fragment.startActivityForResult(intent, TaskListActivity.ACTIVITY_EDIT_TASK);
AndroidUtilities.callOverridePendingTransition(fragment.getActivity(), R.anim.slide_left_in, R.anim.slide_left_out);
}
}
/**
* Call me when the parent presses trackpad
*/

Loading…
Cancel
Save