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

@ -654,6 +654,12 @@ public final class TaskEditActivity extends Fragment {
Notifications.cancelNotifications(model.getId()); 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 */ /** Populate UI component values from the model */
public void populateFields(Intent intent) { public void populateFields(Intent intent) {
loadItem(intent); loadItem(intent);
@ -676,7 +682,7 @@ public final class TaskEditActivity extends Fragment {
} }
/** Save task model from values in UI components */ /** Save task model from values in UI components */
private void save(boolean onPause) { public void save(boolean onPause) {
if(title.getText().length() > 0) if(title.getText().length() > 0)
model.setValue(Task.DELETION_DATE, 0L); model.setValue(Task.DELETION_DATE, 0L);

@ -17,7 +17,9 @@ import java.util.concurrent.atomic.AtomicReference;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import android.app.Activity;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
@ -927,11 +929,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
mBar = null; mBar = null;
if(position == 0) { if(position == 0) {
Intent intent = new Intent(fragment.getActivity(), TaskEditWrapperActivity.class); editTask(taskId);
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);
} else { } else {
flushSpecific(taskId); flushSpecific(taskId);
try { try {
@ -988,11 +986,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
if (actions.size() > 0) if (actions.size() > 0)
mBar.show(v); mBar.show(v);
else { else {
Intent intent = new Intent(fragment.getActivity(), TaskEditWrapperActivity.class); editTask(taskId);
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);
} }
} else if (!viewHolder.task.getFlag(Task.FLAGS, Task.FLAG_IS_READONLY)) { } 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 // 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) { if (taskId != -1) {
Collection<TaskAction> actions = taskActionManager.get(taskId); Collection<TaskAction> actions = taskActionManager.get(taskId);
if (actions != null && actions.size() == 0) { if (actions != null && actions.size() == 0) {
Intent editIntent = new Intent(fragment.getActivity(), TaskEditWrapperActivity.class); editTask(taskId);
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);
} }
} }
fragment.getActivity().unregisterReceiver(this); 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 * Call me when the parent presses trackpad
*/ */

Loading…
Cancel
Save