Why it's look like a design problem?
Can I create ActivityManager with CachingActivityMapper and FilteredActivityMapper?
Somthing like this:
public CachingHorizontalMasterActivityMapper(HorizontalMasterActivityMapper horizontalMasterActivityMapper) {
FilteredActivityMapper.Filter filter = new FilteredActivityMapper.Filter() {
@Override
public Place filter(Place place) {
return place instanceof MailDetailPlace ? new MailListPlace() : place;
}
};
CachingActivityMapper cachingActivityMapper = new CachingActivityMapper(horizontalMasterActivityMapper);
filteredActivityMapper = new FilteredActivityMapper(filter, cachingActivityMapper);
}
@Override
public Activity getActivity(Place place) {
return filteredActivityMapper.getActivity(place);
}
This ActivityManager does not stop currently started activity MailListActivity if new place is MailDetailPlace, right?
If, so, why ActivityManager ask current MailListActivity mayStop, if it will not stop it?
Is there in my words any logic?
Or you mean that my ListEditActivity has design problem?
ListEditActivity is responsible for saving all changed list items in one server call, each item has been changed by ItemDetailActivity (but not actually sended to server for save).
for this functionality there is ListEditView which implements IsEditor<ListEditor<T, E>>
and ListEditActivity.mayStop is performed then user go from one item to edit another item in list - trying to change ItemDetailPlace - this place stops current ItemDetailActivity and starts new ItemDetailActivity
this call of ListEditActivity.mayStop not need because ListEditActivity will not stopped. Only ItemDetailActivity will be stopped in ItemDetailActivity.mayStop needt to call.
And call ListEditActivity.mayStop need only when place ListEditPlace is changed, then ListEditActivity will be stopped
very kind of you to send me those links ))))