Get rid of task edit wrapper activity in default task edititing mode

pull/14/head
Tim Su 14 years ago
parent b79c666f22
commit 372e66da8a

@ -25,4 +25,17 @@
android:layout_weight="33" android:layout_weight="33"
android:id="@+id/tasklist_fragment_container" /> android:id="@+id/tasklist_fragment_container" />
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:background="#000000"/>
<!-- Task Edit -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="11"
android:id="@+id/taskedit_fragment_container"
android:visibility="gone" />
</LinearLayout> </LinearLayout>

@ -143,17 +143,46 @@ public class AstridWrapperActivity extends FragmentActivity
if (getIntent().hasExtra(TaskListActivity.TOKEN_FILTER)) if (getIntent().hasExtra(TaskListActivity.TOKEN_FILTER))
intent.putExtra(TaskListActivity.TOKEN_FILTER, getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER)); intent.putExtra(TaskListActivity.TOKEN_FILTER, getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER));
if (this instanceof TaskEditWrapperActivity || fragmentLayout == LAYOUT_TRIPLE) { if (fragmentLayout != LAYOUT_SINGLE) {
findViewById(R.id.taskedit_fragment_container).setVisibility(View.VISIBLE);
TaskEditActivity editActivity = getTaskEditFragment(); TaskEditActivity editActivity = getTaskEditFragment();
findViewById(R.id.taskedit_fragment_container).setVisibility(View.VISIBLE);
if(fragmentLayout == LAYOUT_DOUBLE) {
findViewById(R.id.filterlist_fragment_container).setVisibility(View.GONE);
}
if(editActivity == null) {
editActivity = new TaskEditActivity();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.taskedit_fragment_container, editActivity, TaskEditActivity.TAG_TASKEDIT_FRAGMENT);
transaction.addToBackStack(null);
transaction.commit();
}
editActivity.save(true); editActivity.save(true);
editActivity.repopulateFromScratch(intent); editActivity.repopulateFromScratch(intent);
} else { } else {
startActivityForResult(intent, TaskListActivity.ACTIVITY_EDIT_TASK); startActivityForResult(intent, TaskListActivity.ACTIVITY_EDIT_TASK);
AndroidUtilities.callOverridePendingTransition(this, R.anim.slide_left_in, R.anim.slide_left_out); AndroidUtilities.callOverridePendingTransition(this, R.anim.slide_left_in, R.anim.slide_left_out);
} }
} }
@Override
public void onBackPressed() {
// manage task edit visibility
if(findViewById(R.id.taskedit_fragment_container).getVisibility() == View.VISIBLE) {
if(fragmentLayout == LAYOUT_DOUBLE) {
findViewById(R.id.taskedit_fragment_container).setVisibility(View.GONE);
findViewById(R.id.filterlist_fragment_container).setVisibility(View.VISIBLE);
} else {
findViewById(R.id.taskedit_fragment_container).setVisibility(View.INVISIBLE);
}
onPostResume();
}
super.onBackPressed();
}
@Override @Override
public void onTaskEditDetailsClicked(int category, int position) { public void onTaskEditDetailsClicked(int category, int position) {
// //
@ -172,7 +201,7 @@ public class AstridWrapperActivity extends FragmentActivity
} }
} }
protected void setupFragment(String tag, int container, Class<? extends Fragment> cls) { protected Fragment setupFragment(String tag, int container, Class<? extends Fragment> cls) {
FragmentManager fm = getSupportFragmentManager(); FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(tag); Fragment fragment = fm.findFragmentByTag(tag);
if(fragment == null) { if(fragment == null) {
@ -180,15 +209,16 @@ public class AstridWrapperActivity extends FragmentActivity
try { try {
fragment = cls.newInstance(); fragment = cls.newInstance();
} catch (InstantiationException e) { } catch (InstantiationException e) {
return; return null;
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
return; return null;
} }
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(container, fragment, tag); ft.replace(container, fragment, tag);
ft.commit(); ft.commit();
} }
return fragment;
} }
/** /**

@ -608,7 +608,7 @@ public final class TaskEditActivity extends Fragment {
if(model == null) { if(model == null) {
exceptionService.reportError("task-edit-no-task", exceptionService.reportError("task-edit-no-task",
new NullPointerException("model")); new NullPointerException("model"));
getActivity().finish(); getActivity().onBackPressed();
return; return;
} }
@ -639,6 +639,9 @@ public final class TaskEditActivity extends Fragment {
/** Save task model from values in UI components */ /** Save task model from values in UI components */
public void save(boolean onPause) { public void save(boolean onPause) {
if(title == null)
return;
if(title.getText().length() > 0) if(title.getText().length() > 0)
model.setValue(Task.DELETION_DATE, 0L); model.setValue(Task.DELETION_DATE, 0L);
@ -672,7 +675,7 @@ public final class TaskEditActivity extends Fragment {
} }
shouldSaveState = false; shouldSaveState = false;
getActivity().finish(); getActivity().onBackPressed();
} }
} }
@ -769,8 +772,7 @@ public final class TaskEditActivity extends Fragment {
} }
showCancelToast(); showCancelToast();
getActivity().setResult(Activity.RESULT_CANCELED); getActivity().onBackPressed();
getActivity().finish();
} }
/** /**
@ -793,7 +795,7 @@ public final class TaskEditActivity extends Fragment {
shouldSaveState = false; shouldSaveState = false;
showDeleteToast(); showDeleteToast();
getActivity().setResult(Activity.RESULT_CANCELED); getActivity().setResult(Activity.RESULT_CANCELED);
getActivity().finish(); getActivity().onBackPressed();
} }
}) })
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
@ -847,11 +849,11 @@ public final class TaskEditActivity extends Fragment {
item = menu.add(Menu.NONE, MENU_DISCARD_ID, 0, R.string.TEA_menu_discard); item = menu.add(Menu.NONE, MENU_DISCARD_ID, 0, R.string.TEA_menu_discard);
item.setIcon(android.R.drawable.ic_menu_close_clear_cancel); item.setIcon(android.R.drawable.ic_menu_close_clear_cancel);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item = menu.add(Menu.NONE, MENU_SAVE_ID, 0, R.string.TEA_menu_save); item = menu.add(Menu.NONE, MENU_SAVE_ID, 0, R.string.TEA_menu_save);
item.setIcon(android.R.drawable.ic_menu_save); item.setIcon(android.R.drawable.ic_menu_save);
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item = menu.add(Menu.NONE, MENU_DELETE_ID, 0, R.string.TEA_menu_delete); item = menu.add(Menu.NONE, MENU_DELETE_ID, 0, R.string.TEA_menu_delete);
item.setIcon(android.R.drawable.ic_menu_delete); item.setIcon(android.R.drawable.ic_menu_delete);

@ -6,6 +6,7 @@ import android.support.v4.app.Fragment;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.widget.TextView; import android.widget.TextView;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.AndroidUtilities; import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.service.ThemeService; import com.todoroo.astrid.service.ThemeService;

@ -66,10 +66,8 @@ public class TaskListWrapperActivity extends AstridWrapperActivity {
actionBar.getCustomView().findViewById(R.id.list_disclosure_arrow).setVisibility(View.GONE); actionBar.getCustomView().findViewById(R.id.list_disclosure_arrow).setVisibility(View.GONE);
listsNav.setOnClickListener(null); listsNav.setOnClickListener(null);
if(editFragment != null) { if(editFragment != null && editFragment.getVisibility() == View.INVISIBLE) {
fragmentLayout = LAYOUT_TRIPLE; fragmentLayout = LAYOUT_TRIPLE;
setupFragment(TaskEditActivity.TAG_TASKEDIT_FRAGMENT,
R.id.taskedit_fragment_container, TaskEditActivity.class);
} else { } else {
fragmentLayout = LAYOUT_DOUBLE; fragmentLayout = LAYOUT_DOUBLE;
} }

Loading…
Cancel
Save