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

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

@ -25,4 +25,17 @@
android:layout_weight="33"
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>

@ -143,17 +143,46 @@ public class AstridWrapperActivity extends FragmentActivity
if (getIntent().hasExtra(TaskListActivity.TOKEN_FILTER))
intent.putExtra(TaskListActivity.TOKEN_FILTER, getIntent().getParcelableExtra(TaskListActivity.TOKEN_FILTER));
if (this instanceof TaskEditWrapperActivity || fragmentLayout == LAYOUT_TRIPLE) {
findViewById(R.id.taskedit_fragment_container).setVisibility(View.VISIBLE);
if (fragmentLayout != LAYOUT_SINGLE) {
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.repopulateFromScratch(intent);
} else {
startActivityForResult(intent, TaskListActivity.ACTIVITY_EDIT_TASK);
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
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();
Fragment fragment = fm.findFragmentByTag(tag);
if(fragment == null) {
@ -180,15 +209,16 @@ public class AstridWrapperActivity extends FragmentActivity
try {
fragment = cls.newInstance();
} catch (InstantiationException e) {
return;
return null;
} catch (IllegalAccessException e) {
return;
return null;
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(container, fragment, tag);
ft.commit();
}
return fragment;
}
/**

@ -608,7 +608,7 @@ public final class TaskEditActivity extends Fragment {
if(model == null) {
exceptionService.reportError("task-edit-no-task",
new NullPointerException("model"));
getActivity().finish();
getActivity().onBackPressed();
return;
}
@ -639,6 +639,9 @@ public final class TaskEditActivity extends Fragment {
/** Save task model from values in UI components */
public void save(boolean onPause) {
if(title == null)
return;
if(title.getText().length() > 0)
model.setValue(Task.DELETION_DATE, 0L);
@ -672,7 +675,7 @@ public final class TaskEditActivity extends Fragment {
}
shouldSaveState = false;
getActivity().finish();
getActivity().onBackPressed();
}
}
@ -769,8 +772,7 @@ public final class TaskEditActivity extends Fragment {
}
showCancelToast();
getActivity().setResult(Activity.RESULT_CANCELED);
getActivity().finish();
getActivity().onBackPressed();
}
/**
@ -793,7 +795,7 @@ public final class TaskEditActivity extends Fragment {
shouldSaveState = false;
showDeleteToast();
getActivity().setResult(Activity.RESULT_CANCELED);
getActivity().finish();
getActivity().onBackPressed();
}
})
.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.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.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.setIcon(android.R.drawable.ic_menu_delete);

@ -6,6 +6,7 @@ import android.support.v4.app.Fragment;
import android.view.KeyEvent;
import android.widget.TextView;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.AndroidUtilities;
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);
listsNav.setOnClickListener(null);
if(editFragment != null) {
if(editFragment != null && editFragment.getVisibility() == View.INVISIBLE) {
fragmentLayout = LAYOUT_TRIPLE;
setupFragment(TaskEditActivity.TAG_TASKEDIT_FRAGMENT,
R.id.taskedit_fragment_container, TaskEditActivity.class);
} else {
fragmentLayout = LAYOUT_DOUBLE;
}

Loading…
Cancel
Save