package com.trello.rxlifecycle.navi;
import com.trello.navi.Event;
import com.trello.rxlifecycle.android.ActivityEvent;
import com.trello.rxlifecycle.android.FragmentEvent;
import rx.functions.Func1;
/**
* Maps from Navi events to RxLifecycleAndroid events
*/
final class NaviLifecycleMaps {
static final Func1<Event.Type, ActivityEvent> ACTIVITY_EVENT_MAP =
new Func1<Event.Type, ActivityEvent>() {
@Override
public ActivityEvent call(Event.Type type) {
switch (type) {
case CREATE:
return ActivityEvent.CREATE;
case START:
return ActivityEvent.START;
case RESUME:
return ActivityEvent.RESUME;
case PAUSE:
return ActivityEvent.PAUSE;
case STOP:
return ActivityEvent.STOP;
case DESTROY:
return ActivityEvent.DESTROY;
default:
return null;
}
}
};
static final Func1<Event.Type, FragmentEvent> FRAGMENT_EVENT_MAP =
new Func1<Event.Type, FragmentEvent>() {
@Override
public FragmentEvent call(Event.Type type) {
switch (type) {
case ATTACH:
return FragmentEvent.ATTACH;
case CREATE:
return FragmentEvent.CREATE;
case CREATE_VIEW:
return FragmentEvent.CREATE_VIEW;
case START:
return FragmentEvent.START;
case RESUME:
return FragmentEvent.RESUME;
case PAUSE:
return FragmentEvent.PAUSE;
case STOP:
return FragmentEvent.STOP;
case DESTROY_VIEW:
return FragmentEvent.DESTROY_VIEW;
case DESTROY:
return FragmentEvent.DESTROY;
case DETACH:
return FragmentEvent.DETACH;
default:
return null;
}
}
};
private NaviLifecycleMaps() {
throw new AssertionError("No instances!");
}
}