package com.reactnativenavigation.params.parsers;
import android.os.Bundle;
import android.support.annotation.NonNull;
import com.reactnativenavigation.params.NavigationParams;
import com.reactnativenavigation.params.PageParams;
import java.util.List;
class TopTabParamsParser extends Parser {
private static final String KEY_SCREEN_ID = "screenId";
private static final String KEY_TITLE = "title";
private static final String NAVIGATION_PARAMS = "navigationParams";
@SuppressWarnings("ConstantConditions")
public List<PageParams> parse(Bundle params) {
return parseBundle(params, new ParseStrategy<PageParams>() {
@Override
public PageParams parse(Bundle topTabs) {
return parseItem(topTabs);
}
});
}
@NonNull
private static PageParams parseItem(Bundle params) {
PageParams result = new PageParams();
result.screenId = params.getString(KEY_SCREEN_ID);
result.title = params.getString(KEY_TITLE);
result.tabIcon = new TabIconParser(params).parse();
result.navigationParams = new NavigationParams(params.getBundle(NAVIGATION_PARAMS));
result.leftButton = ButtonParser.parseLeftButton(params);
result.rightButtons = ButtonParser.parseRightButton(params);
result.fabParams = ButtonParser.parseFab(params, result.navigationParams.navigatorEventId, result.navigationParams.screenInstanceId);
result.styleParams = new StyleParamsParser(params.getBundle("styleParams")).parse();
return result;
}
}